| 1543 | |
| 1544 | #[test] |
| 1545 | fn range_next_back() { |
| 1546 | let mut f = MapForest::<u32, f32>::new(); |
| 1547 | let mut m = Map::<u32, f32>::new(); |
| 1548 | |
| 1549 | for i in 10..20 { |
| 1550 | m.insert(i, i as f32, &mut f, &()); |
| 1551 | } |
| 1552 | |
| 1553 | assert_eq!( |
| 1554 | m.range(12..16, &f, &()).rev().collect::<Vec<_>>(), |
| 1555 | vec![(15, 15.0), (14, 14.0), (13, 13.0), (12, 12.0)], |
| 1556 | ); |
| 1557 | |
| 1558 | assert_eq!( |
| 1559 | m.range(18.., &f, &()).rev().collect::<Vec<_>>(), |
| 1560 | vec![(19, 19.0), (18, 18.0)], |
| 1561 | ); |
| 1562 | |
| 1563 | assert_eq!( |
| 1564 | m.range(..12, &f, &()).rev().collect::<Vec<_>>(), |
| 1565 | vec![(11, 11.0), (10, 10.0)], |
| 1566 | ); |
| 1567 | |
| 1568 | assert_eq!( |
| 1569 | m.range(11..=12, &f, &()).rev().collect::<Vec<_>>(), |
| 1570 | vec![(12, 12.0), (11, 11.0)], |
| 1571 | ); |
| 1572 | |
| 1573 | let mut iter = m.range(13..=16, &f, &()); |
| 1574 | assert_eq!(iter.next(), Some((13, 13.0))); |
| 1575 | assert_eq!(iter.next_back(), Some((16, 16.0))); |
| 1576 | assert_eq!(iter.next(), Some((14, 14.0))); |
| 1577 | assert_eq!(iter.next_back(), Some((15, 15.0))); |
| 1578 | assert!(iter.next().is_none()); |
| 1579 | assert!(iter.next_back().is_none()); |
| 1580 | |
| 1581 | let mut iter = m.range(13..=16, &f, &()); |
| 1582 | assert_eq!(iter.next_back(), Some((16, 16.0))); |
| 1583 | assert_eq!(iter.next(), Some((13, 13.0))); |
| 1584 | assert_eq!(iter.next_back(), Some((15, 15.0))); |
| 1585 | assert_eq!(iter.next(), Some((14, 14.0))); |
| 1586 | assert!(iter.next_back().is_none()); |
| 1587 | assert!(iter.next().is_none()); |
| 1588 | } |
| 1589 | } |