#![cfg(all(feature = "compression", feature = "checksum", feature = "messagepack"))]
use cachekit_core::ByteStorage;
const FIRST_OVERFLOWING_LEN: usize = 39_045_158;
const _: () = assert!(39_045_157u64 * 110 <= u32::MAX as u64);
const _: () = assert!(FIRST_OVERFLOWING_LEN as u64 * 110 > u32::MAX as u64);
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[cfg_attr(not(target_arch = "wasm32"), test)]
fn store_retrieve_past_32_bit_compress_bound() {
let data: Vec<u8> = (0..FIRST_OVERFLOWING_LEN)
.map(|i| (i % 251) as u8)
.collect();
let storage = ByteStorage::new(None);
let stored = storage.store(&data, None).expect("store must succeed");
let (retrieved, format) = storage.retrieve(&stored).expect("retrieve must succeed");
assert_eq!(format, "msgpack");
assert!(retrieved == data, "round trip changed the data");
}