| 382 | |
| 383 | #[test] |
| 384 | fn constant_rate_timestamps() { |
| 385 | let values: Vec<i64> = (0..10_000) |
| 386 | .map(|i| 1_700_000_000_000 + i * 10_000) |
| 387 | .collect(); |
| 388 | let encoded = encode(&values); |
| 389 | let decoded = decode(&encoded).unwrap(); |
| 390 | assert_eq!(decoded, values); |
| 391 | |
| 392 | let bits_per_sample = (encoded.len() as f64 * 8.0) / values.len() as f64; |
| 393 | assert!( |
| 394 | bits_per_sample < 2.0, |
| 395 | "constant-rate should compress to ~1 bit/sample, got {bits_per_sample:.1}" |
| 396 | ); |
| 397 | } |
| 398 | |
| 399 | #[test] |
| 400 | fn monotonic_with_jitter() { |