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