diff --git a/extra/benchmark/splay/splay.factor b/extra/benchmark/splay/splay.factor new file mode 100644 index 0000000000..56364cd9fe --- /dev/null +++ b/extra/benchmark/splay/splay.factor @@ -0,0 +1,18 @@ + +USING: arrays assocs kernel math.ranges random sequences sets +sorting trees.splay ; + +IN: splay + +: initial-alist ( n -- alist ) + iota >array randomize dup zip ; + +: change-random ( newkeys splay keys -- splay' ) + swapd [ first pick delete-at first2 pick set-at ] 2each ; + +: run-splay ( -- ) + 100,000 initial-alist 10,000 cut + [ >splay ] [ randomize 10,000 head ] bi + change-random keys dup natural-sort assert= ; + +MAIN: run-splay