]> gitweb.factorcode.org Git - factor.git/blob - unmaintained/trees/splay/splay-tests.factor
Move vocabularies which use delegation to unmaintained, and delete older unmaintained...
[factor.git] / unmaintained / trees / splay / splay-tests.factor
1 ! Copyright (c) 2005 Mackenzie Straight.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel tools.test trees.splay math namespaces assocs
4 sequences random sets ;
5 IN: trees.splay.tests
6
7 : randomize-numeric-splay-tree ( splay-tree -- )
8     100 [ drop 100 random swap at drop ] with each ;
9
10 : make-numeric-splay-tree ( n -- splay-tree )
11     <splay> [ [ conjoin ] curry each ] keep ;
12
13 [ t ] [
14     100 make-numeric-splay-tree dup randomize-numeric-splay-tree
15     [ [ drop , ] assoc-each ] { } make [ < ] monotonic?
16 ] unit-test
17
18 [ 10 ] [ 10 make-numeric-splay-tree keys length ] unit-test
19 [ 10 ] [ 10 make-numeric-splay-tree values length ] unit-test
20
21 [ f ] [ <splay> f 4 pick set-at 4 swap at ] unit-test
22
23 ! Ensure that f can be a value
24 [ t ] [ <splay> f 4 pick set-at 4 swap key? ] unit-test
25
26 [
27 { { 1 "a" } { 2 "b" } { 3 "c" } { 4 "d" } { 5 "e" } { 6 "f" } }
28 ] [
29 {
30     { 4 "d" } { 5 "e" } { 6 "f" }
31     { 1 "a" } { 2 "b" } { 3 "c" }
32 } >splay >alist
33 ] unit-test