From a3f05d181c39d2060c1b0461101402004a7d02f1 Mon Sep 17 00:00:00 2001 From: cc Date: Wed, 20 Aug 2025 21:58:04 -0700 Subject: Update for modern Rust --- src/iterators.rs | 91 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 43 deletions(-) (limited to 'src/iterators.rs') diff --git a/src/iterators.rs b/src/iterators.rs index 2d7a673..23ecf03 100644 --- a/src/iterators.rs +++ b/src/iterators.rs @@ -1,5 +1,5 @@ -use ::tree; -use ::node; +use crate::tree; +use crate::node; use std::collections::Bound; pub struct RangePairIter<'a, K:'a+Ord+Copy,D:'a> { @@ -57,45 +57,50 @@ impl<'a, K:'a+Ord+Copy,D:'a> Iterator for RangePairIter<'a, K, D> { } -#[test] -fn test_iterators(){ - let mut tree = tree::AVLTree::::new(); - tree.insert(18, 1337); - tree.insert(13, 1338); - tree.insert(17, 1339); - tree.insert(10, 1321); - tree.insert(1, 1321); - tree.insert(3, 1322); - let init_key = 0; - let mut iter = RangePairIter::{tree: &tree, prev: Some(&init_key), from: Bound::Unbounded, to: Bound::Unbounded}; - assert_eq!(iter.next().expect("should have a few values").0, &1); - assert_eq!(iter.next().expect("should have a few values").0, &3); - assert_eq!(iter.next().expect("should have a few values").0, &10); - assert_eq!(iter.next().expect("should have a few values").0, &13); - assert_eq!(iter.next().expect("should have a few values").0, &17); - assert_eq!(iter.next().expect("should have a few values").0, &18); - assert!(iter.next().is_none()); - - let mut iter = RangePairIter::new(&tree, Bound::Unbounded, Bound::Unbounded); - assert_eq!(iter.next().expect("should have a few values").0, &1); - assert_eq!(iter.next().expect("should have a few values").0, &3); - assert_eq!(iter.next().expect("should have a few values").0, &10); - assert_eq!(iter.next().expect("should have a few values").0, &13); - assert_eq!(iter.next().expect("should have a few values").0, &17); - assert_eq!(iter.next().expect("should have a few values").0, &18); - assert!(iter.next().is_none()); - - let mut iter = RangePairIter::new(&tree, Bound::Included(3), Bound::Included(17)); - assert_eq!(iter.next().expect("should have a few values").0, &3); - assert_eq!(iter.next().expect("should have a few values").0, &10); - assert_eq!(iter.next().expect("should have a few values").0, &13); - assert_eq!(iter.next().expect("should have a few values").0, &17); - assert!(iter.next().is_none()); - - let mut iter = RangePairIter::new(&tree, Bound::Excluded(1), Bound::Excluded(18)); - assert_eq!(iter.next().expect("should have a few values").0, &3); - assert_eq!(iter.next().expect("should have a few values").0, &10); - assert_eq!(iter.next().expect("should have a few values").0, &13); - assert_eq!(iter.next().expect("should have a few values").0, &17); - assert!(iter.next().is_none()); +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_iterators(){ + let mut tree = tree::AVLTree::::new(); + tree.insert(18, 1337); + tree.insert(13, 1338); + tree.insert(17, 1339); + tree.insert(10, 1321); + tree.insert(1, 1321); + tree.insert(3, 1322); + let init_key = 0; + let mut iter = RangePairIter::{tree: &tree, prev: Some(&init_key), from: Bound::Unbounded, to: Bound::Unbounded}; + assert_eq!(iter.next().expect("should have a few values").0, &1); + assert_eq!(iter.next().expect("should have a few values").0, &3); + assert_eq!(iter.next().expect("should have a few values").0, &10); + assert_eq!(iter.next().expect("should have a few values").0, &13); + assert_eq!(iter.next().expect("should have a few values").0, &17); + assert_eq!(iter.next().expect("should have a few values").0, &18); + assert!(iter.next().is_none()); + + let mut iter = RangePairIter::new(&tree, Bound::Unbounded, Bound::Unbounded); + assert_eq!(iter.next().expect("should have a few values").0, &1); + assert_eq!(iter.next().expect("should have a few values").0, &3); + assert_eq!(iter.next().expect("should have a few values").0, &10); + assert_eq!(iter.next().expect("should have a few values").0, &13); + assert_eq!(iter.next().expect("should have a few values").0, &17); + assert_eq!(iter.next().expect("should have a few values").0, &18); + assert!(iter.next().is_none()); + + let mut iter = RangePairIter::new(&tree, Bound::Included(3), Bound::Included(17)); + assert_eq!(iter.next().expect("should have a few values").0, &3); + assert_eq!(iter.next().expect("should have a few values").0, &10); + assert_eq!(iter.next().expect("should have a few values").0, &13); + assert_eq!(iter.next().expect("should have a few values").0, &17); + assert!(iter.next().is_none()); + + let mut iter = RangePairIter::new(&tree, Bound::Excluded(1), Bound::Excluded(18)); + assert_eq!(iter.next().expect("should have a few values").0, &3); + assert_eq!(iter.next().expect("should have a few values").0, &10); + assert_eq!(iter.next().expect("should have a few values").0, &13); + assert_eq!(iter.next().expect("should have a few values").0, &17); + assert!(iter.next().is_none()); + } } -- cgit v1.2.1