assocs accessors trees.avl.private trees.private ;
IN: trees.avl.tests
-{ "key1" 0 "key2" 0 } [
- T{ avl-node f "key1" f f T{ avl-node f "key2" f f f 1 } 2 }
+{ "key1" 0 "key3" "key2" 0 } [
+ T{ avl-node f "key1" f f T{ avl-node f "key2" f T{ avl-node f "key3" } f 1 } 2 }
[ single-rotate ] go-left
[ left>> dup key>> swap balance>> ] keep
+ [ left>> right>> key>> ] keep
dup key>> swap balance>>
] unit-test
-{ "key1" 0 "key2" 0 } [
- T{ avl-node f "key1" f f T{ avl-node f "key2" f f f 1 } 2 }
+{ "key1" 0 "key3" "key2" 0 } [
+ T{ avl-node f "key1" f f T{ avl-node f "key2" f T{ avl-node f "key3" } f 1 } 2 }
[ select-rotate ] go-left
[ left>> dup key>> swap balance>> ] keep
+ [ left>> right>> key>> ] keep
dup key>> swap balance>>
] unit-test
-{ "key1" 0 "key2" 0 } [
- T{ avl-node f "key1" f T{ avl-node f "key2" f f f -1 } f -2 }
+{ "key1" 0 "key3" "key2" 0 } [
+ T{ avl-node f "key1" f T{ avl-node f "key2" f f T{ avl-node f "key3" } -1 } f -2 }
[ single-rotate ] go-right
[ right>> dup key>> swap balance>> ] keep
+ [ right>> left>> key>> ] keep
dup key>> swap balance>>
] unit-test
-{ "key1" 0 "key2" 0 } [
- T{ avl-node f "key1" f T{ avl-node f "key2" f f f -1 } f -2 }
+{ "key1" 0 "key3" "key2" 0 } [
+ T{ avl-node f "key1" f T{ avl-node f "key2" f f T{ avl-node f "key3" } -1 } f -2 }
[ select-rotate ] go-right
[ right>> dup key>> swap balance>> ] keep
+ [ right>> left>> key>> ] keep
dup key>> swap balance>>
] unit-test