()
| 402 | |
| 403 | #[test] |
| 404 | fn test_sliced_values() { |
| 405 | // [0, 0, 1, 2, 2, 2] |
| 406 | let buffer = RunEndBuffer::new(vec![2i32, 3, 6].into(), 0, 6); |
| 407 | |
| 408 | // Slice: [0, 1, 2, 2] start: 1, len: 4 |
| 409 | // Logical indices: 1, 2, 3, 4 |
| 410 | // Original run ends: [2, 3, 6] |
| 411 | // Adjusted: [2-1, 3-1, 6-1] capped at 4 -> [1, 2, 4] |
| 412 | let sliced = buffer.slice(1, 4); |
| 413 | let sliced_values: Vec<i32> = sliced.sliced_values().collect(); |
| 414 | assert_eq!(sliced_values, &[1, 2, 4]); |
| 415 | |
| 416 | // Slice: [2, 2] start: 4, len: 2 |
| 417 | // Original run ends: [2, 3, 6] |
| 418 | // Slicing at 4 means we only have the last run (physical index 2, which ends at 6) |
| 419 | // Adjusted: [6-4] capped at 2 -> [2] |
| 420 | let sliced = buffer.slice(4, 2); |
| 421 | let sliced_values: Vec<i32> = sliced.sliced_values().collect(); |
| 422 | assert_eq!(sliced_values, &[2]); |
| 423 | } |
| 424 | } |
nothing calls this directly
no test coverage detected