use std::fs;
use std::path::Path;
use structured_zstd::encoding::{CompressionLevel, compress_to_vec};
mod common;
#[test]
#[ignore = "manual probe — run with --ignored"]
fn corpus_z000033_level22_ratio_breakdown() {
let path = Path::new(env!("CARGO_MANIFEST_DIR")).join("decodecorpus_files/z000033");
let data = fs::read(&path).expect("z000033 corpus file present");
println!("Corpus z000033 size: {} bytes", data.len());
let rust = compress_to_vec(&data[..], CompressionLevel::Level(22));
let c = zstd::bulk::compress(&data[..], 22).unwrap();
let delta = rust.len() as i64 - c.len() as i64;
let pct = (rust.len() as f64 / c.len() as f64 - 1.0) * 100.0;
println!(
"Level 22 output: rust={} c={} delta={delta:+}b ({pct:+.4}%)",
rust.len(),
c.len()
);
common::dump_block_breakdown("Rust", &rust);
common::dump_block_breakdown("C ", &c);
let rt = zstd::bulk::decompress(&rust, data.len() + 64).unwrap();
assert_eq!(
rt.len(),
data.len(),
"rust output decompresses to wrong size"
);
assert_eq!(rt, data, "rust output decompresses to different bytes");
}