mod common;
use codec_rs::Translator;
use common::tiny_map;
#[test]
fn empty_input_returns_empty_output() {
let m = tiny_map();
let mut tr = Translator::new(&m, &m);
assert_eq!(tr.translate(&[], false), Vec::<u32>::new());
}
#[test]
fn reset_clears_text_buffer() {
let m = tiny_map();
let mut tr = Translator::new(&m, &m);
tr.translate(&[3u32, 4], true); tr.reset();
assert_eq!(tr.finish(), Vec::<u32>::new());
}
#[test]
fn streaming_chunks_with_word_boundary_buffer() {
let m = tiny_map();
let mut tr = Translator::new(&m, &m);
let part_a = tr.translate(&[3u32, 4], true);
let part_b = tr.translate(&[5u32], true);
let drain = tr.finish();
let mut all: Vec<u32> = Vec::new();
all.extend(part_a);
all.extend(part_b);
all.extend(drain);
use codec_rs::Detokenizer;
let mut d = Detokenizer::new(&m);
assert_eq!(
d.render(&all, Default::default()),
"hello world"
);
}