use super::{LazyFinder, ROW_EMPTY_SLOT, RowMatchGenerator};
#[test]
fn switching_between_finders_of_one_length_refills_the_buffer() {
let mut matcher = RowMatchGenerator::new(1 << 20);
matcher.set_hash_bits(16);
matcher.finder = LazyFinder::Chain;
matcher.ensure_tables();
let len = matcher.tables_len();
assert!(
matcher.tables.iter().all(|&s| s == ROW_EMPTY_SLOT),
"a chain layout starts empty"
);
matcher.tables.iter_mut().for_each(|s| *s = 77);
matcher.finder = LazyFinder::Tree;
matcher.ensure_tables();
assert_eq!(
matcher.tables_len(),
len,
"the same length for both finders"
);
assert!(
matcher.tables.iter().all(|&s| s == 0),
"the tree layout starts empty on its own sentinel"
);
matcher.tables.iter_mut().for_each(|s| *s = 77);
matcher.ensure_tables();
assert!(
matcher.tables.iter().all(|&s| s == 77),
"a layout already in place is kept"
);
}