34 lines
968 B
Factor
34 lines
968 B
Factor
! Copyright (c) 2005 Mackenzie Straight.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: kernel tools.test trees.splay math namespaces assocs
|
|
sequences random ;
|
|
IN: temporary
|
|
|
|
: randomize-numeric-splay-tree ( splay-tree -- )
|
|
100 [ drop 100 random swap at drop ] with each ;
|
|
|
|
: make-numeric-splay-tree ( n -- splay-tree )
|
|
<splay> [ [ dupd set-at ] curry each ] keep ;
|
|
|
|
[ t ] [
|
|
100 make-numeric-splay-tree dup randomize-numeric-splay-tree
|
|
[ [ drop , ] assoc-each ] { } make [ < ] monotonic?
|
|
] unit-test
|
|
|
|
[ 10 ] [ 10 make-numeric-splay-tree keys length ] unit-test
|
|
[ 10 ] [ 10 make-numeric-splay-tree values length ] unit-test
|
|
|
|
[ f ] [ <splay> f 4 pick set-at 4 swap at ] unit-test
|
|
|
|
! Ensure that f can be a value
|
|
[ t ] [ <splay> f 4 pick set-at 4 swap key? ] unit-test
|
|
|
|
[
|
|
{ { 1 "a" } { 2 "b" } { 3 "c" } { 4 "d" } { 5 "e" } { 6 "f" } }
|
|
] [
|
|
{
|
|
{ 4 "d" } { 5 "e" } { 6 "f" }
|
|
{ 1 "a" } { 2 "b" } { 3 "c" }
|
|
} >splay >alist
|
|
] unit-test
|