diff --git a/src/map/slice.rs b/src/map/slice.rs index e0835f61..c994f677 100644 --- a/src/map/slice.rs +++ b/src/map/slice.rs @@ -786,4 +786,37 @@ mod tests { assert_eq!(subslice.len(), 3); assert_eq!(subslice, &[(3, 9), (4, 16), (5, 25)]); } + + #[test] + fn slice_split_at_checked() { + let map: IndexMap = (0..4).map(|i| (i, i * i)).collect(); + let slice = map.as_slice(); + + let (first, second) = slice.split_at_checked(1).unwrap(); + assert_eq!(first, &[(0, 0)]); + assert_eq!(second, &[(1, 1), (2, 4), (3, 9)]); + + let (first, second) = slice.split_at_checked(4).unwrap(); + assert_eq!(first.len(), 4); + assert!(second.is_empty()); + + assert!(slice.split_at_checked(5).is_none()); + } + + #[test] + fn slice_split_at_mut_checked() { + let mut map: IndexMap = (0..4).map(|i| (i, i * i)).collect(); + let slice: &mut Slice = map.as_mut_slice(); + + { + let (first, second) = slice.split_at_mut_checked(2).unwrap(); + assert_eq!(first, &[(0, 0), (1, 1)]); + assert_eq!(second, &[(2, 4), (3, 9)]); + first[0] = 100; + second[0] = 200; + } + assert_eq!(slice, &[(0, 100), (1, 1), (2, 200), (3, 9)]); + + assert!(slice.split_at_mut_checked(5).is_none()); + } } diff --git a/src/map/tests.rs b/src/map/tests.rs index 5b7a174c..3c77edcd 100644 --- a/src/map/tests.rs +++ b/src/map/tests.rs @@ -606,6 +606,24 @@ fn get_index_mut2() { assert_eq!(map.get_index(0).unwrap().0, &8); } +#[test] +fn get_key_value_mut() { + let mut map: IndexMap = IndexMap::new(); + map.insert(1, 2); + map.insert(3, 4); + + { + let (key, value) = map.get_key_value_mut(&3).unwrap(); + assert_eq!(*key, 3); + assert_eq!(*value, 4); + *value = 7; + } + assert_eq!(map[&3], 7); + assert_eq!(map[&1], 2); + + assert!(map.get_key_value_mut(&5).is_none()); +} + #[test] fn shift_shift_remove_index() { let mut map: IndexMap = IndexMap::new(); diff --git a/src/set/slice.rs b/src/set/slice.rs index b0fda998..5dd9d6a1 100644 --- a/src/set/slice.rs +++ b/src/set/slice.rs @@ -426,4 +426,20 @@ mod tests { } } } + + #[test] + fn slice_split_at_checked() { + let set: IndexSet = (0..4).collect(); + let slice = set.as_slice(); + + let (first, second) = slice.split_at_checked(1).unwrap(); + assert_eq!(first, &[0]); + assert_eq!(second, &[1, 2, 3]); + + let (first, second) = slice.split_at_checked(4).unwrap(); + assert_eq!(first.len(), 4); + assert!(second.is_empty()); + + assert!(slice.split_at_checked(5).is_none()); + } }