@@ -10,43 +10,80 @@ describe('RingBuffer Utils', () => {
10
10
const ring = new RingBuffer < number > ( 5000 ) ;
11
11
expect ( ring . getCapacity ( ) ) . to . equal ( 5000 ) ;
12
12
expect ( ring . getLength ( ) ) . to . equal ( 0 ) ;
13
- expect ( ring . has ( 0 ) ) . to . equal ( false , '4 should not be there' ) ;
13
+ expect ( ring . has ( 0 ) ) . to . equal ( false , '0 should not be there' ) ;
14
14
} ) ;
15
15
16
16
describe ( 'length & capacity are right' , ( ) => {
17
+ it ( 'length is right 0' , ( ) => {
18
+ const ring = new RingBuffer < number > ( 4 ) ;
19
+ expect ( ring . getLength ( ) ) . to . equal ( 0 ) ;
20
+ } ) ;
21
+
17
22
it ( 'length is right 1' , ( ) => {
18
23
const ring = new RingBuffer < number > ( 4 ) ;
19
- ring . add ( 0 ) ;
24
+ ring . insert ( 0 ) ;
20
25
expect ( ring . getLength ( ) ) . to . equal ( 1 ) ;
21
26
} ) ;
22
27
23
28
it ( 'length is right 4' , ( ) => {
24
29
const ring = new RingBuffer < number > ( 4 ) ;
25
- ring . add ( 0 ) ;
26
- ring . add ( 1 ) ;
27
- ring . add ( 2 ) ;
28
- ring . add ( 3 ) ;
30
+ ring . insert ( 0 ) ;
31
+ ring . insert ( 1 ) ;
32
+ ring . insert ( 2 ) ;
33
+ ring . insert ( 3 ) ;
29
34
expect ( ring . getLength ( ) ) . to . equal ( 4 ) ;
30
35
} ) ;
31
36
32
37
it ( 'capacity does not get exceeded' , ( ) => {
33
38
const ring = new RingBuffer < number > ( 4 ) ;
34
- ring . add ( 0 ) ;
35
- ring . add ( 1 ) ;
36
- ring . add ( 2 ) ;
37
- ring . add ( 3 ) ;
38
- ring . add ( 4 ) ;
39
+ ring . insert ( 0 ) ;
40
+ ring . insert ( 1 ) ;
41
+ ring . insert ( 2 ) ;
42
+ ring . insert ( 3 ) ;
43
+ ring . insert ( 4 ) ;
39
44
expect ( ring . getLength ( ) ) . to . equal ( 4 ) ;
40
45
} ) ;
41
46
} ) ;
42
47
48
+ describe ( 'isEmpty is correct' , ( ) => {
49
+ it ( 'no items' , ( ) => {
50
+ const ring = new RingBuffer < number > ( 4 ) ;
51
+ expect ( ring . isEmpty ( ) ) . to . equal ( true , 'no items isEmpty should be true' ) ;
52
+ } ) ;
53
+
54
+ it ( 'length is right 1' , ( ) => {
55
+ const ring = new RingBuffer < number > ( 4 ) ;
56
+ ring . insert ( 0 ) ;
57
+ expect ( ring . isEmpty ( ) ) . to . equal ( false , '1 item isEmpty should be false' ) ;
58
+ } ) ;
59
+
60
+ it ( 'length is right 4' , ( ) => {
61
+ const ring = new RingBuffer < number > ( 4 ) ;
62
+ ring . insert ( 0 ) ;
63
+ ring . insert ( 1 ) ;
64
+ ring . insert ( 2 ) ;
65
+ ring . insert ( 3 ) ;
66
+ expect ( ring . isEmpty ( ) ) . to . equal ( false , '4 items isEmpty should be false' ) ;
67
+ } ) ;
68
+
69
+ it ( 'more than capacity' , ( ) => {
70
+ const ring = new RingBuffer < number > ( 4 ) ;
71
+ ring . insert ( 0 ) ;
72
+ ring . insert ( 1 ) ;
73
+ ring . insert ( 2 ) ;
74
+ ring . insert ( 3 ) ;
75
+ ring . insert ( 4 ) ;
76
+ expect ( ring . isEmpty ( ) ) . to . equal ( false , '5 item isEmpty should be false' ) ;
77
+ } ) ;
78
+ } ) ;
79
+
43
80
it ( 'items are removed in order 1' , ( ) => {
44
81
const ring = new RingBuffer < number > ( 4 ) ;
45
- ring . add ( 0 ) ;
46
- ring . add ( 1 ) ;
47
- ring . add ( 2 ) ;
48
- ring . add ( 3 ) ;
49
- ring . add ( 4 ) ;
82
+ ring . insert ( 0 ) ;
83
+ ring . insert ( 1 ) ;
84
+ ring . insert ( 2 ) ;
85
+ ring . insert ( 3 ) ;
86
+ ring . insert ( 4 ) ;
50
87
expect ( ring . has ( 0 ) ) . to . equal ( false , '0 should not be there anymore' ) ;
51
88
expect ( ring . has ( 1 ) ) . to . equal ( true , '1 should still be there' ) ;
52
89
expect ( ring . has ( 2 ) ) . to . equal ( true , '2 should still be there' ) ;
@@ -56,11 +93,11 @@ describe('RingBuffer Utils', () => {
56
93
57
94
it ( 'two times the same items can exist' , ( ) => {
58
95
const ring = new RingBuffer < number > ( 4 ) ;
59
- ring . add ( 0 ) ;
60
- ring . add ( 1 ) ;
61
- ring . add ( 2 ) ;
62
- ring . add ( 1 ) ;
63
- ring . add ( 4 ) ;
96
+ ring . insert ( 0 ) ;
97
+ ring . insert ( 1 ) ;
98
+ ring . insert ( 2 ) ;
99
+ ring . insert ( 1 ) ;
100
+ ring . insert ( 4 ) ;
64
101
expect ( ring . has ( 0 ) ) . to . equal ( false , '0 should not be there anymore' ) ;
65
102
expect ( ring . has ( 1 ) ) . to . equal ( true , '1 should still be there' ) ;
66
103
expect ( ring . has ( 2 ) ) . to . equal ( true , '2 should still be there' ) ;
@@ -70,14 +107,14 @@ describe('RingBuffer Utils', () => {
70
107
71
108
it ( 'items are removed in order completely' , ( ) => {
72
109
const ring = new RingBuffer < number > ( 4 ) ;
73
- ring . add ( 0 ) ;
74
- ring . add ( 1 ) ;
75
- ring . add ( 2 ) ;
76
- ring . add ( 3 ) ;
77
- ring . add ( 10 ) ;
78
- ring . add ( 20 ) ;
79
- ring . add ( 30 ) ;
80
- ring . add ( 40 ) ;
110
+ ring . insert ( 0 ) ;
111
+ ring . insert ( 1 ) ;
112
+ ring . insert ( 2 ) ;
113
+ ring . insert ( 3 ) ;
114
+ ring . insert ( 10 ) ;
115
+ ring . insert ( 20 ) ;
116
+ ring . insert ( 30 ) ;
117
+ ring . insert ( 40 ) ;
81
118
expect ( ring . has ( 0 ) ) . to . equal ( false , '0 should not be there anymore' ) ;
82
119
expect ( ring . has ( 1 ) ) . to . equal ( false , '1 should not be there' ) ;
83
120
expect ( ring . has ( 2 ) ) . to . equal ( false , '2 should not be there' ) ;
@@ -92,15 +129,96 @@ describe('RingBuffer Utils', () => {
92
129
93
130
it ( 'clear empties the list but keeps the capacity' , ( ) => {
94
131
const ring = new RingBuffer < number > ( 4 ) ;
95
- ring . add ( 0 ) ;
96
- ring . add ( 1 ) ;
97
- ring . add ( 2 ) ;
98
- ring . add ( 1 ) ;
132
+ ring . insert ( 0 ) ;
133
+ ring . insert ( 1 ) ;
134
+ ring . insert ( 2 ) ;
135
+ ring . insert ( 1 ) ;
99
136
expect ( ring . getLength ( ) ) . to . equal ( 4 ) ;
100
137
expect ( ring . getCapacity ( ) ) . to . equal ( 4 ) ;
101
138
ring . clear ( ) ;
102
139
expect ( ring . getCapacity ( ) ) . to . equal ( 4 ) ;
103
140
104
141
expect ( ring . getLength ( ) ) . to . equal ( 0 ) ;
105
142
} ) ;
143
+
144
+ describe ( 'toArray' , ( ) => {
145
+ it ( 'empty buffer' , ( ) => {
146
+ const ring = new RingBuffer < number > ( 4 ) ;
147
+ expect ( ring . toArray ( ) ) . to . deep . eq ( [ ] ) ;
148
+ } ) ;
149
+
150
+ it ( 'with 1' , ( ) => {
151
+ const ring = new RingBuffer < number > ( 4 ) ;
152
+ ring . insert ( 0 ) ;
153
+
154
+ expect ( ring . toArray ( ) ) . to . deep . eq ( [ 0 ] ) ;
155
+ } ) ;
156
+
157
+ it ( 'with 4' , ( ) => {
158
+ const ring = new RingBuffer < number > ( 4 ) ;
159
+ ring . insert ( 0 ) ;
160
+ ring . insert ( 1 ) ;
161
+ ring . insert ( 2 ) ;
162
+ ring . insert ( 3 ) ;
163
+
164
+ expect ( ring . toArray ( ) ) . to . deep . eq ( [ 0 , 1 , 2 , 3 ] ) ;
165
+ } ) ;
166
+
167
+ it ( 'with 5' , ( ) => {
168
+ const ring = new RingBuffer < number > ( 4 ) ;
169
+ ring . insert ( 0 ) ;
170
+ ring . insert ( 1 ) ;
171
+ ring . insert ( 2 ) ;
172
+ ring . insert ( 3 ) ;
173
+ ring . insert ( 4 ) ;
174
+
175
+ expect ( ring . toArray ( ) ) . to . deep . eq ( [ 1 , 2 , 3 , 4 ] ) ;
176
+ } ) ;
177
+
178
+ it ( 'more than 2 full laps erasing data' , ( ) => {
179
+ const ring = new RingBuffer < number > ( 4 ) ;
180
+ ring . insert ( 0 ) ;
181
+ ring . insert ( 1 ) ;
182
+ ring . insert ( 2 ) ;
183
+ ring . insert ( 3 ) ;
184
+ ring . insert ( 4 ) ; // first lap first item
185
+ ring . insert ( 5 ) ;
186
+ ring . insert ( 6 ) ; // first item in toArray should be this one
187
+ ring . insert ( 7 ) ;
188
+ ring . insert ( 8 ) ; // second lap first item
189
+ ring . insert ( 9 ) ;
190
+
191
+ expect ( ring . toArray ( ) ) . to . deep . eq ( [ 6 , 7 , 8 , 9 ] ) ;
192
+ } ) ;
193
+ } ) ;
194
+
195
+ describe ( 'clear' , ( ) => {
196
+ it ( 'empty buffer' , ( ) => {
197
+ const ring = new RingBuffer < number > ( 4 ) ;
198
+ ring . clear ( ) ;
199
+ expect ( ring . getCapacity ( ) ) . to . deep . eq ( 4 ) ;
200
+ expect ( ring . getLength ( ) ) . to . deep . eq ( 0 ) ;
201
+ } ) ;
202
+
203
+ it ( 'with 1' , ( ) => {
204
+ const ring = new RingBuffer < number > ( 4 ) ;
205
+ ring . insert ( 0 ) ;
206
+ ring . clear ( ) ;
207
+ expect ( ring . getCapacity ( ) ) . to . deep . eq ( 4 ) ;
208
+ expect ( ring . getLength ( ) ) . to . deep . eq ( 0 ) ;
209
+ } ) ;
210
+
211
+ it ( 'with 5' , ( ) => {
212
+ const ring = new RingBuffer < number > ( 4 ) ;
213
+ ring . insert ( 0 ) ;
214
+ ring . insert ( 1 ) ;
215
+ ring . insert ( 2 ) ;
216
+ ring . insert ( 3 ) ;
217
+ ring . insert ( 4 ) ;
218
+
219
+ ring . clear ( ) ;
220
+ expect ( ring . getCapacity ( ) ) . to . deep . eq ( 4 ) ;
221
+ expect ( ring . getLength ( ) ) . to . deep . eq ( 0 ) ;
222
+ } ) ;
223
+ } ) ;
106
224
} ) ;
0 commit comments