@@ -236,22 +236,43 @@ describe('DoublyLinkedList', () => {
236
236
linkedList
237
237
. append ( 1 )
238
238
. append ( 2 )
239
- . append ( 3 ) ;
239
+ . append ( 3 )
240
+ . append ( 4 ) ;
240
241
241
- expect ( linkedList . toString ( ) ) . toBe ( '1,2,3' ) ;
242
+ expect ( linkedList . toString ( ) ) . toBe ( '1,2,3,4 ' ) ;
242
243
expect ( linkedList . head . value ) . toBe ( 1 ) ;
243
- expect ( linkedList . tail . value ) . toBe ( 3 ) ;
244
+ expect ( linkedList . tail . value ) . toBe ( 4 ) ;
244
245
245
246
// Reverse linked list.
246
247
linkedList . reverse ( ) ;
247
- expect ( linkedList . toString ( ) ) . toBe ( '3,2,1' ) ;
248
- expect ( linkedList . head . value ) . toBe ( 3 ) ;
248
+ expect ( linkedList . toString ( ) ) . toBe ( '4,3,2,1' ) ;
249
+
250
+ expect ( linkedList . head . previous ) . toBeNull ( ) ;
251
+ expect ( linkedList . head . value ) . toBe ( 4 ) ;
252
+ expect ( linkedList . head . next . value ) . toBe ( 3 ) ;
253
+ expect ( linkedList . head . next . next . value ) . toBe ( 2 ) ;
254
+ expect ( linkedList . head . next . next . next . value ) . toBe ( 1 ) ;
255
+
256
+ expect ( linkedList . tail . next ) . toBeNull ( ) ;
249
257
expect ( linkedList . tail . value ) . toBe ( 1 ) ;
258
+ expect ( linkedList . tail . previous . value ) . toBe ( 2 ) ;
259
+ expect ( linkedList . tail . previous . previous . value ) . toBe ( 3 ) ;
260
+ expect ( linkedList . tail . previous . previous . previous . value ) . toBe ( 4 ) ;
250
261
251
262
// Reverse linked list back to initial state.
252
263
linkedList . reverse ( ) ;
253
- expect ( linkedList . toString ( ) ) . toBe ( '1,2,3' ) ;
264
+ expect ( linkedList . toString ( ) ) . toBe ( '1,2,3,4' ) ;
265
+
266
+ expect ( linkedList . head . previous ) . toBeNull ( ) ;
254
267
expect ( linkedList . head . value ) . toBe ( 1 ) ;
255
- expect ( linkedList . tail . value ) . toBe ( 3 ) ;
268
+ expect ( linkedList . head . next . value ) . toBe ( 2 ) ;
269
+ expect ( linkedList . head . next . next . value ) . toBe ( 3 ) ;
270
+ expect ( linkedList . head . next . next . next . value ) . toBe ( 4 ) ;
271
+
272
+ expect ( linkedList . tail . next ) . toBeNull ( ) ;
273
+ expect ( linkedList . tail . value ) . toBe ( 4 ) ;
274
+ expect ( linkedList . tail . previous . value ) . toBe ( 3 ) ;
275
+ expect ( linkedList . tail . previous . previous . value ) . toBe ( 2 ) ;
276
+ expect ( linkedList . tail . previous . previous . previous . value ) . toBe ( 1 ) ;
256
277
} ) ;
257
278
} ) ;
0 commit comments