use serde_json::json;
use json_packer::{compress_to_bytes, decompress_from_bytes, CompressOptions};
use json_packer::test_expose::compress_with_options;
#[test]
fn v2_string_pool_roundtrip_and_benefit() {
let v = json!({
"items": [
{"status": "connected", "msg": "connected to server"},
{"status": "connected", "msg": "connected to server"},
{"status": "connected", "msg": "connected to server"},
{"status": "connected", "msg": "connected to server"},
{"status": "disconnected", "msg": "connected to server"}
]
});
let bytes_v1 = compress_to_bytes(&v, &CompressOptions::default()).unwrap();
let opt = CompressOptions { enable_value_pool: true, pool_min_repeats: 3, pool_min_string_len: 8 };
let bytes_v2 = compress_with_options(&v, &opt).unwrap();
let out_v2 = decompress_from_bytes(&bytes_v2).unwrap();
assert_eq!(v, out_v2);
assert!(bytes_v2.len() <= bytes_v1.len());
}