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

Function inner_balance

cranelift/bforest/src/node.rs:733–775  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

731
732 #[test]
733 fn inner_balance() {
734 let n1 = Node(1);
735 let n2 = Node(2);
736 let n3 = Node(3);
737 let mut lhs = NodeData::<TF>::inner(n1, 'a', n2);
738 assert!(lhs.try_inner_insert(1, 'b', n3));
739 assert_eq!(lhs.to_string(), "[ node1 a node2 b node3 ]");
740
741 let n11 = Node(11);
742 let n12 = Node(12);
743 let mut rhs = NodeData::<TF>::inner(n11, 'p', n12);
744
745 for i in 1..4 {
746 assert!(rhs.try_inner_insert(
747 usize::from(i),
748 ('p' as u8 + i) as char,
749 Node(i as u32 + 12),
750 ));
751 }
752 assert_eq!(
753 rhs.to_string(),
754 "[ node11 p node12 q node13 r node14 s node15 ]"
755 );
756
757 // 3+5 elements fit in RHS.
758 assert_eq!(lhs.balance('o', &mut rhs), None);
759 assert_eq!(
760 rhs.to_string(),
761 "[ node1 a node2 b node3 o node11 p node12 q node13 r node14 s node15 ]"
762 );
763
764 // 2+8 elements are redistributed.
765 lhs = NodeData::<TF>::inner(Node(20), 'x', Node(21));
766 assert_eq!(lhs.balance('y', &mut rhs), Some('o'));
767 assert_eq!(
768 lhs.to_string(),
769 "[ node20 x node21 y node1 a node2 b node3 ]"
770 );
771 assert_eq!(
772 rhs.to_string(),
773 "[ node11 p node12 q node13 r node14 s node15 ]"
774 );
775 }
776
777 #[test]
778 fn leaf_balance() {

Callers

nothing calls this directly

Calls 2

innerFunction · 0.85
NodeClass · 0.70

Tested by

no test coverage detected