MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / inserting

Function inserting

cranelift/bforest/src/map.rs:910–1013  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

908
909 #[test]
910 fn inserting() {
911 let f = &mut MapForest::<u32, f32>::new();
912 let mut m = Map::<u32, f32>::new();
913
914 // The first seven values stay in a single leaf node.
915 assert_eq!(m.insert(50, 5.0, f, &()), None);
916 assert_eq!(m.insert(50, 5.5, f, &()), Some(5.0));
917 assert_eq!(m.insert(20, 2.0, f, &()), None);
918 assert_eq!(m.insert(80, 8.0, f, &()), None);
919 assert_eq!(m.insert(40, 4.0, f, &()), None);
920 assert_eq!(m.insert(60, 6.0, f, &()), None);
921 assert_eq!(m.insert(90, 9.0, f, &()), None);
922 assert_eq!(m.insert(200, 20.0, f, &()), None);
923
924 m.verify(f, &());
925
926 assert_eq!(
927 m.iter(f).collect::<Vec<_>>(),
928 [
929 (20, 2.0),
930 (40, 4.0),
931 (50, 5.5),
932 (60, 6.0),
933 (80, 8.0),
934 (90, 9.0),
935 (200, 20.0),
936 ]
937 );
938
939 assert_eq!(m.get(0, f, &()), None);
940 assert_eq!(m.get(20, f, &()), Some(2.0));
941 assert_eq!(m.get(30, f, &()), None);
942 assert_eq!(m.get(40, f, &()), Some(4.0));
943 assert_eq!(m.get(50, f, &()), Some(5.5));
944 assert_eq!(m.get(60, f, &()), Some(6.0));
945 assert_eq!(m.get(70, f, &()), None);
946 assert_eq!(m.get(80, f, &()), Some(8.0));
947 assert_eq!(m.get(100, f, &()), None);
948
949 assert_eq!(m.get_or_less(0, f, &()), None);
950 assert_eq!(m.get_or_less(20, f, &()), Some((20, 2.0)));
951 assert_eq!(m.get_or_less(30, f, &()), Some((20, 2.0)));
952 assert_eq!(m.get_or_less(40, f, &()), Some((40, 4.0)));
953 assert_eq!(m.get_or_less(200, f, &()), Some((200, 20.0)));
954 assert_eq!(m.get_or_less(201, f, &()), Some((200, 20.0)));
955
956 {
957 let mut c = m.cursor_mut(f, &());
958 assert_eq!(c.prev(), Some((200, 20.0)));
959 assert_eq!(c.prev(), Some((90, 9.0)));
960 assert_eq!(c.prev(), Some((80, 8.0)));
961 assert_eq!(c.prev(), Some((60, 6.0)));
962 assert_eq!(c.prev(), Some((50, 5.5)));
963 assert_eq!(c.prev(), Some((40, 4.0)));
964 assert_eq!(c.prev(), Some((20, 2.0)));
965 assert_eq!(c.prev(), None);
966 }
967

Callers

nothing calls this directly

Calls 3

cursor_mutMethod · 0.80
newFunction · 0.50
verifyMethod · 0.45

Tested by

no test coverage detected