]> gitweb.factorcode.org Git - factor.git/blob - extra/benchmark/splay/splay.factor
7ad9d97bc882bf2faf9b394d5aace3573955c369
[factor.git] / extra / benchmark / splay / splay.factor
1 ! Copyright (C) 2011 John Benediktsson
2 ! See http://factorcode.org/license.txt for BSD license
3
4 USING: arrays assocs kernel math.ranges random sequences sets
5 sorting trees.splay ;
6
7 IN: benchmark.splay
8
9 : initial-alist ( n -- alist )
10     <iota> >array randomize dup zip ;
11
12 : change-random ( newkeys splay keys -- splay' )
13     swapd [ first pick delete-at first2 pick set-at ] 2each ;
14
15 : splay-benchmark ( -- )
16     100,000 initial-alist 10,000 cut
17     [ >splay ] [ randomize 10,000 head ] bi
18     change-random keys dup natural-sort assert= ;
19
20 MAIN: splay-benchmark