| 604 | } |
| 605 | |
| 606 | fn setup_and_assert( |
| 607 | setup_iters: impl Fn(&mut dyn SharedBetweenBitIteratorAndSliceIter), |
| 608 | assert_fn: impl Fn(BitIterator, Copied<Iter<bool>>), |
| 609 | ) { |
| 610 | for (boolean_buffer, source) in get_bit_iterator_cases() { |
| 611 | // Not using `boolean_buffer.iter()` in case the implementation change to not call BitIterator internally |
| 612 | // in which case the test would not test what it intends to test |
| 613 | let mut actual = BitIterator::new(boolean_buffer.values(), 0, boolean_buffer.len()); |
| 614 | let mut expected = source.iter().copied(); |
| 615 | |
| 616 | setup_iters(&mut actual); |
| 617 | setup_iters(&mut expected); |
| 618 | |
| 619 | assert_fn(actual, expected); |
| 620 | } |
| 621 | } |
| 622 | |
| 623 | /// Trait representing an operation on a BitIterator |
| 624 | /// that can be compared against a slice iterator |