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/tree.rs | 41 +++++++---------------------------------- 1 file changed, 7 insertions(+), 34 deletions(-) (limited to 'src/tree.rs') diff --git a/src/tree.rs b/src/tree.rs index 1b7ed39..977cb78 100644 --- a/src/tree.rs +++ b/src/tree.rs @@ -1,9 +1,6 @@ -extern crate rand; -extern crate test; - -use node::Node; -use node::{insert,delete,search,min,max,is_avl_tree, to_string, min_pair, max_pair}; -use iterators::RangePairIter; +use crate::node::Node; +use crate::node::{insert,delete,search, min_pair, max_pair}; +use crate::iterators::RangePairIter; use std::collections::Bound; @@ -85,7 +82,7 @@ impl AVLTree{ /// assert_eq!(t.get_or(3,&2000), &2000); /// /// ``` - pub fn get_or<'a>(&'a self, key: K, default: &'a D) -> &D{ + pub fn get_or<'a>(&'a self, key: K, default: &'a D) -> &'a D{ self.get(key).map_or(default, |data| data) } @@ -166,11 +163,11 @@ impl AVLTree{ /// be inclusive, exclusive or unbounded). /// # Examples /// ``` -/// #![feature(collections_bound)] -/// # extern crate avl_tree; +/// +/// /// use std::collections::Bound; /// //[...] -/// # let mut t=avl_tree::AVLTree::::new(); +/// let mut t=avl_tree::AVLTree::::new(); /// for (key,val) in t.range(Bound::Excluded(32), Bound::Excluded(38)) { /// println!("{} -> {}",key,val) /// } @@ -179,28 +176,4 @@ impl AVLTree{ pub fn range(&self, min: Bound, max: Bound) -> RangePairIter{ RangePairIter::new(self, min, max) } - - fn test_avl_tree(&self) -> bool { - is_avl_tree(&self.root) - } -} - -#[test] -fn test_fuzz(){ - let mut t = AVLTree::::new(); - for _ in 1..5000 { - let decision = rand::random::(); - if decision { - let to_insert = rand::random::()%500; - t.insert(to_insert, 1337); - assert!(t.contains(to_insert)); - assert!(t.test_avl_tree()); - } else { - let to_delete = rand::random::()%500; - t.delete(to_delete); - assert!(!t.contains(to_delete)); - assert!(t.test_avl_tree()); - }; - }; - return; } -- cgit v1.2.1