use vsf::types::VsfType;
fn main() {
println!("Testing VSF Huffman text encoding...\n");
let test_strings = vec![
"hello",
"The quick brown fox jumps over the lazy dog",
"café",
"你好世界",
"مرحبا بالعالم",
"🌍🌎🌏",
];
for text in test_strings {
println!("Testing: {:?}", text);
let vsf = VsfType::x(text.to_string());
let flattened = vsf.flatten();
println!(
" Flattened: {} bytes (UTF-8 would be {} bytes)",
flattened.len(),
text.len()
);
let mut pointer = 0;
let decoded = vsf::decoding::parse::parse(&flattened, &mut pointer).expect("Decode failed");
match decoded {
VsfType::x(decoded_text) => {
assert_eq!(decoded_text, text, "Round-trip failed!");
println!(" ✓ Round-trip successful\n");
}
_ => panic!("Expected VsfType::x, got something else"),
}
}
println!("✓ All VSF Huffman tests passed!");
}