#[cfg(test)]
mod tests {
use crate::bloom_sol::struct_def::CountingBloomFilter;
#[test]
fn test_serialize_deserialize() {
let mut cbf = CountingBloomFilter::new(1000, 5, false);
cbf.insert(&"apple");
cbf.insert(&"banana");
let serialized = cbf.serialize();
let deserialized = CountingBloomFilter::deserialize(&serialized).unwrap();
assert_eq!(deserialized.size, cbf.size);
assert_eq!(deserialized.boolean_counting, cbf.boolean_counting);
assert_eq!(deserialized.num_hashes, cbf.num_hashes);
assert_eq!(deserialized.counters, cbf.counters);
assert!(deserialized.contains(&"apple"));
assert!(deserialized.contains(&"banana"));
assert!(CountingBloomFilter::deserialize(&[]).is_err());
assert!(CountingBloomFilter::deserialize(&[0u8; 15]).is_err());
let mut invalid = serialized.clone();
invalid.truncate(invalid.len() - 1); assert!(CountingBloomFilter::deserialize(&invalid).is_err());
}
}