]> gitweb.factorcode.org Git - factor.git/blob - basis/unrolled-lists/unrolled-lists-tests.factor
factor: Retrying on the unit tests. Also normalize some syntax with FUNCTION:.
[factor.git] / basis / unrolled-lists / unrolled-lists-tests.factor
1 USING: unrolled-lists tools.test deques kernel sequences
2 random prettyprint grouping math ;
3 IN: unrolled-lists.tests
4
5 { 1 } [ <unrolled-list> 1 over push-front pop-front ] unit-test
6 { 1 } [ <unrolled-list> 1 over push-front pop-back ] unit-test
7 { 1 } [ <unrolled-list> 1 over push-back pop-front ] unit-test
8 { 1 } [ <unrolled-list> 1 over push-back pop-back ] unit-test
9
10 { 1 2 } [
11     <unrolled-list> 1 over push-back 2 over push-back
12     [ pop-front ] [ pop-front ] bi
13 ] unit-test
14
15 { 2 1 } [
16     <unrolled-list> 1 over push-back 2 over push-back
17     [ pop-back ] [ pop-back ] bi
18 ] unit-test
19
20 { 1 2 3 } [
21     <unrolled-list>
22     1 over push-back
23     2 over push-back
24     3 over push-back
25     [ pop-front ] [ pop-front ] [ pop-front ] tri
26 ] unit-test
27
28 { 3 2 1 } [
29     <unrolled-list>
30     1 over push-back
31     2 over push-back
32     3 over push-back
33     [ pop-back ] [ pop-back ] [ pop-back ] tri
34 ] unit-test
35
36 { { 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 } } [
37     <unrolled-list>
38     32 [ over push-front ] each-integer
39     32 [ dup pop-back ] replicate
40     nip
41 ] unit-test
42
43 { { 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 } } [
44     <unrolled-list>
45     32 [ over push-front ] each-integer
46     32 [ dup pop-front ] replicate reverse
47     nip
48 ] unit-test
49
50 { t } [
51     <unrolled-list>
52     1000 [ 1000 random ] replicate
53     [ [ over push-front ] each ]
54     [ length [ dup pop-back ] replicate ]
55     [ ]
56     tri
57     =
58     nip
59 ] unit-test
60
61 { t } [
62     <unrolled-list>
63     1000 [ 1000 random ] replicate
64     [
65         10 group [
66             [ [ over push-front ] each ]
67             [ length [ dup pop-back ] replicate ]
68             bi
69         ] map concat
70     ] keep
71     =
72     nip
73 ] unit-test
74
75 { t } [ <unrolled-list> deque-empty? ] unit-test
76
77 { t } [
78     <unrolled-list>
79     1 over push-front
80     dup pop-front*
81     deque-empty?
82 ] unit-test
83
84 { t } [
85     <unrolled-list>
86     1 over push-back
87     dup pop-front*
88     deque-empty?
89 ] unit-test
90
91 { t } [
92     <unrolled-list>
93     1 over push-front
94     dup pop-back*
95     deque-empty?
96 ] unit-test
97
98 { t } [
99     <unrolled-list>
100     1 over push-back
101     dup pop-back*
102     deque-empty?
103 ] unit-test
104
105 { t } [
106     <unrolled-list>
107     21 over push-front
108     22 over push-front
109     25 over push-front
110     26 over push-front
111     dup pop-back 21 assert=
112     28 over push-front
113     dup pop-back 22 assert=
114     29 over push-front
115     dup pop-back 25 assert=
116     24 over push-front
117     dup pop-back 26 assert=
118     23 over push-front
119     dup pop-back 28 assert=
120     dup pop-back 29 assert=
121     dup pop-back 24 assert=
122     17 over push-front
123     dup pop-back 23 assert=
124     27 over push-front
125     dup pop-back 17 assert=
126     30 over push-front
127     dup pop-back 27 assert=
128     dup pop-back 30 assert=
129     deque-empty?
130 ] unit-test