extern crate ids_container; use ids_container::IdsContainer; #[test] fn different_ids() { let mut container = IdsContainer::new(); let id1 = container.insert(5); let id2 = container.insert(5); let id3 = container.insert(7); let id4 = container.insert(12); assert!(id1 != id2); assert!(id2 != id3); assert!(id3 != id4); } #[test] fn get() { let mut container = IdsContainer::new(); let id1 = container.insert(5); let id2 = container.insert(8); assert_eq!(container.get(&id1), Some(&5)); assert_eq!(container.get(&id2), Some(&8)); let id3 = container.insert(12); container.remove(id3.clone()); assert_eq!(container.get(&id3), None); } #[test] fn len() { let mut container = IdsContainer::new(); assert_eq!(container.len(), 0); let id1 = container.insert(5); assert_eq!(container.len(), 1); let id2 = container.insert(5); assert_eq!(container.len(), 2); let id3 = container.insert(7); assert_eq!(container.len(), 3); let id4 = container.insert(12); assert_eq!(container.len(), 4); container.remove(id2); assert_eq!(container.len(), 3); container.remove(id1); assert_eq!(container.len(), 2); container.remove(id4); assert_eq!(container.len(), 1); container.remove(id3); assert_eq!(container.len(), 0); } #[test] fn is_empty() { let mut container = IdsContainer::new(); assert!(container.is_empty()); let id1 = container.insert(5); assert!(!container.is_empty()); let id2 = container.insert(5); assert!(!container.is_empty()); let id3 = container.insert(7); assert!(!container.is_empty()); let id4 = container.insert(12); assert!(!container.is_empty()); container.remove(id2); assert!(!container.is_empty()); container.remove(id1); assert!(!container.is_empty()); container.remove(id4); assert!(!container.is_empty()); container.remove(id3); assert!(container.is_empty()); }