use memra_gguf::GgufFile;
use memra_tokenizer::Tokenizer;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let path = std::env::args()
.nth(1)
.expect("usage: tok-check <model.gguf> \"<text>\"");
let text = std::env::args()
.nth(2)
.unwrap_or_else(|| "Hello, world!".to_string());
let g = GgufFile::open(&path)?;
let tok = Tokenizer::from_gguf(&g)?;
println!(
"pre={} vocab={} eos={} bos={:?}",
tok.pre(),
tok.vocab_size(),
tok.eos_id(),
tok.bos_id()
);
let ids = tok.encode(&text, true);
let ids_json: Vec<String> = ids.iter().map(|i| i.to_string()).collect();
println!("encode({text:?}) = [{}]", ids_json.join(", "));
let back = tok.decode(&ids);
println!("decode = {back:?}");
println!("round-trip {}", if back == text { "OK" } else { "DIFFERS" });
Ok(())
}