@@ -14,22 +14,14 @@ describe('LinkedList class', () => {
14
14
expect ( linkedList ) . toBeInstanceOf ( Object )
15
15
expect ( linkedList . head ) . toBe ( null )
16
16
expect ( linkedList . tail ) . toBe ( null )
17
+ expect ( linkedList . length ) . toBe ( 0 )
17
18
} )
18
19
19
20
describe ( 'Method append()' , ( ) => {
20
- it ( 'should be a chain method' , ( ) => {
21
- linkedList
22
- . append ( 1 )
23
- . append ( 2 )
24
- . append ( 3 )
25
- expect ( linkedList . head ) . toBeDefined ( )
26
- expect ( linkedList . tail ) . toBeDefined ( )
27
- expect ( ( linkedList . head as Node ) . value ) . toBe ( 1 )
28
- expect ( ( linkedList . tail as Node ) . value ) . toBe ( 3 )
29
- } )
30
-
31
21
it ( 'should append a node to linkedlist' , ( ) => {
22
+ expect ( linkedList . length ) . toBe ( 0 )
32
23
linkedList . append ( 1 )
24
+ expect ( linkedList . length ) . toBe ( 1 )
33
25
34
26
expect ( linkedList . head ) . toBeDefined ( )
35
27
expect ( linkedList . head ) . toBeInstanceOf ( Node )
@@ -44,6 +36,18 @@ describe('LinkedList class', () => {
44
36
expect ( linkedList . head ) . toBe ( linkedList . tail )
45
37
} )
46
38
39
+ it ( 'should be a chain method' , ( ) => {
40
+ linkedList
41
+ . append ( 1 )
42
+ . append ( 2 )
43
+ . append ( 3 )
44
+ expect ( linkedList . head ) . toBeDefined ( )
45
+ expect ( linkedList . tail ) . toBeDefined ( )
46
+ expect ( ( linkedList . head as Node ) . value ) . toBe ( 1 )
47
+ expect ( ( linkedList . tail as Node ) . value ) . toBe ( 3 )
48
+ expect ( linkedList . length ) . toBe ( 3 )
49
+ } )
50
+
47
51
it ( 'should append 2 values be linked' , ( ) => {
48
52
linkedList . append ( 1 ) . append ( 2 )
49
53
@@ -90,6 +94,7 @@ describe('LinkedList class', () => {
90
94
linkedList . prepend ( 2 )
91
95
92
96
expect ( linkedList . toString ( ) ) . toBe ( '2,1' )
97
+ expect ( linkedList . length ) . toBe ( 2 )
93
98
} )
94
99
95
100
it ( 'should handle head & tail correctly' , ( ) => {
@@ -102,6 +107,7 @@ describe('LinkedList class', () => {
102
107
expect ( linkedList . toString ( ) ) . toBe ( '1,2,3,4,5' )
103
108
expect ( ( linkedList . head as Node ) . value ) . toBe ( 1 )
104
109
expect ( ( linkedList . tail as Node ) . value ) . toBe ( 5 )
110
+ expect ( linkedList . length ) . toBe ( 5 )
105
111
} )
106
112
} )
107
113
@@ -152,6 +158,7 @@ describe('LinkedList class', () => {
152
158
153
159
it ( 'should return null if the list is empty()' , ( ) => {
154
160
expect ( linkedList . delete ( 1 ) ) . toBe ( null )
161
+ expect ( linkedList . length ) . toBe ( 0 )
155
162
} )
156
163
157
164
it ( 'should delete nothing if not found value' , ( ) => {
@@ -162,6 +169,7 @@ describe('LinkedList class', () => {
162
169
163
170
const deletedNode = linkedList . delete ( 6 )
164
171
expect ( deletedNode ) . toBe ( null )
172
+ expect ( linkedList . length ) . toBe ( 3 )
165
173
expect ( ( linkedList . head as Node ) . value ) . toBe ( 1 )
166
174
expect ( ( ( linkedList . head as Node ) . next as Node ) . value ) . toBe ( 2 )
167
175
expect ( ( linkedList . tail as Node ) . value ) . toBe ( 3 )
@@ -176,6 +184,7 @@ describe('LinkedList class', () => {
176
184
177
185
const deletedNode = linkedList . delete ( 3 )
178
186
expect ( ( deletedNode as Node ) . value ) . toBe ( 3 )
187
+ expect ( linkedList . length ) . toBe ( 2 )
179
188
expect ( ( linkedList . head as Node ) . value ) . toBe ( 1 )
180
189
expect ( ( ( linkedList . head as Node ) . next as Node ) . value ) . toBe ( 2 )
181
190
expect ( ( linkedList . tail as Node ) . value ) . toBe ( 2 )
@@ -184,6 +193,7 @@ describe('LinkedList class', () => {
184
193
linkedList . append ( 3 )
185
194
186
195
const deletedNode2 = linkedList . delete ( 1 )
196
+ expect ( linkedList . length ) . toBe ( 2 )
187
197
expect ( ( deletedNode2 as Node ) . value ) . toBe ( 1 )
188
198
expect ( ( linkedList . head as Node ) . value ) . toBe ( 2 )
189
199
expect ( ( linkedList . tail as Node ) . value ) . toBe ( 3 )
@@ -194,6 +204,7 @@ describe('LinkedList class', () => {
194
204
195
205
expect ( linkedList . head ) . toBe ( null )
196
206
expect ( linkedList . tail ) . toBe ( null )
207
+ expect ( linkedList . length ) . toBe ( 0 )
197
208
} )
198
209
} )
199
210
@@ -207,7 +218,7 @@ describe('LinkedList class', () => {
207
218
. append ( 5 )
208
219
expect ( ( linkedList . deleteHead ( ) as Node ) . value ) . toBe ( 1 )
209
220
expect ( linkedList . toString ( ) ) . toBe ( '2,3,4,5' )
210
-
221
+ expect ( linkedList . length ) . toBe ( 4 )
211
222
expect ( ( linkedList . head as Node ) . value ) . toBe ( 2 )
212
223
expect ( ( linkedList . tail as Node ) . value ) . toBe ( 5 )
213
224
} )
@@ -228,6 +239,7 @@ describe('LinkedList class', () => {
228
239
it ( 'should delete tail node and handle head & tail correctly' , ( ) => {
229
240
linkedList . append ( 1 ) . deleteTail ( )
230
241
expect ( linkedList . toString ( ) ) . toBe ( '' )
242
+ expect ( linkedList . length ) . toBe ( 0 )
231
243
expect ( linkedList . head ) . toBe ( null )
232
244
expect ( linkedList . tail ) . toBe ( null )
233
245
@@ -238,16 +250,15 @@ describe('LinkedList class', () => {
238
250
. append ( 4 )
239
251
. append ( 5 )
240
252
linkedList . deleteTail ( )
253
+ expect ( linkedList . length ) . toBe ( 4 )
241
254
expect ( linkedList . toString ( ) ) . toBe ( '1,2,3,4' )
242
255
expect ( ( linkedList . head as Node ) . value ) . toBe ( 1 )
243
256
expect ( ( linkedList . tail as Node ) . value ) . toBe ( 4 )
244
257
} )
245
258
246
259
it ( 'should return null when list is empty' , ( ) => {
247
260
expect ( linkedList . deleteTail ( ) ) . toBe ( null )
248
- linkedList . append ( 1 )
249
- linkedList . append ( 2 )
250
- expect ( ( linkedList . deleteHead ( ) as Node ) . value ) . toBe ( 1 )
261
+ expect ( linkedList . length ) . toBe ( 0 )
251
262
} )
252
263
} )
253
264
@@ -279,6 +290,7 @@ describe('LinkedList class', () => {
279
290
linkedList . insert ( 5 , 1 )
280
291
281
292
expect ( linkedList . toString ( ) ) . toBe ( '1,5,2,1,3' )
293
+ expect ( linkedList . length ) . toBe ( 5 )
282
294
expect ( ( linkedList . head as Node ) . value ) . toBe ( 1 )
283
295
expect ( ( linkedList . tail as Node ) . value ) . toBe ( 3 )
284
296
} )
@@ -291,6 +303,7 @@ describe('LinkedList class', () => {
291
303
. append ( 3 )
292
304
linkedList . insert ( 5 , 3 )
293
305
306
+ expect ( linkedList . length ) . toBe ( 5 )
294
307
expect ( linkedList . toString ( ) ) . toBe ( '1,2,1,3,5' )
295
308
expect ( ( linkedList . head as Node ) . value ) . toBe ( 1 )
296
309
expect ( ( linkedList . tail as Node ) . value ) . toBe ( 5 )
@@ -304,6 +317,7 @@ describe('LinkedList class', () => {
304
317
. append ( 3 )
305
318
linkedList . insert ( 5 , 1 , 'before' )
306
319
320
+ expect ( linkedList . length ) . toBe ( 5 )
307
321
expect ( linkedList . toString ( ) ) . toBe ( '5,1,2,1,3' )
308
322
expect ( ( linkedList . head as Node ) . value ) . toBe ( 5 )
309
323
expect ( ( linkedList . tail as Node ) . value ) . toBe ( 3 )
@@ -317,6 +331,7 @@ describe('LinkedList class', () => {
317
331
. append ( 3 )
318
332
linkedList . insert ( 5 , 3 , 'before' )
319
333
334
+ expect ( linkedList . length ) . toBe ( 5 )
320
335
expect ( linkedList . toString ( ) ) . toBe ( '1,2,1,5,3' )
321
336
expect ( ( linkedList . head as Node ) . value ) . toBe ( 1 )
322
337
expect ( ( linkedList . tail as Node ) . value ) . toBe ( 3 )
@@ -329,6 +344,7 @@ describe('LinkedList class', () => {
329
344
. append ( 3 )
330
345
linkedList . insert ( 5 , 4 , 'before' )
331
346
347
+ expect ( linkedList . length ) . toBe ( 3 )
332
348
expect ( linkedList . toString ( ) ) . toBe ( '1,2,3' )
333
349
} )
334
350
@@ -337,11 +353,13 @@ describe('LinkedList class', () => {
337
353
expect ( linkedList . toString ( ) ) . toBe ( '' )
338
354
expect ( linkedList . head ) . toBe ( null )
339
355
expect ( linkedList . tail ) . toBe ( null )
356
+ expect ( linkedList . length ) . toBe ( 0 )
340
357
341
358
linkedList . insert ( 5 , 3 , 'before' )
342
359
expect ( linkedList . toString ( ) ) . toBe ( '' )
343
360
expect ( linkedList . head ) . toBe ( null )
344
361
expect ( linkedList . tail ) . toBe ( null )
362
+ expect ( linkedList . length ) . toBe ( 0 )
345
363
} )
346
364
} )
347
365
@@ -354,6 +372,7 @@ describe('LinkedList class', () => {
354
372
const reversaledList = linkedList . reversal ( )
355
373
expect ( reversaledList ) . toBeDefined ( )
356
374
expect ( reversaledList ) . toBeInstanceOf ( LinkedList )
375
+ expect ( linkedList . length ) . toBe ( 3 )
357
376
expect ( reversaledList . toString ( ) ) . toBe ( '3,2,1' )
358
377
expect ( ( reversaledList . head as Node ) . value ) . toBe ( 3 )
359
378
expect ( ( reversaledList . tail as Node ) . value ) . toBe ( 1 )
@@ -366,6 +385,7 @@ describe('LinkedList class', () => {
366
385
expect ( reversaledList . toString ( ) ) . toBe ( '' )
367
386
expect ( reversaledList . head ) . toBe ( null )
368
387
expect ( reversaledList . tail ) . toBe ( null )
388
+ expect ( linkedList . length ) . toBe ( 0 )
369
389
} )
370
390
} )
371
391
} )
0 commit comments