@@ -9,13 +9,19 @@ describe('LinkedList', () => {
9
9
it ( 'should append node to linked list' , ( ) => {
10
10
const linkedList = new LinkedList ( ) ;
11
11
12
+ expect ( linkedList . head ) . toBeNull ( ) ;
13
+ expect ( linkedList . tail ) . toBeNull ( ) ;
14
+
12
15
const node1 = linkedList . append ( { value : 1 } ) ;
13
16
const node2 = linkedList . append ( { value : 2 , key : 'test' } ) ;
14
17
15
18
expect ( node1 . value ) . toBe ( 1 ) ;
16
19
expect ( node2 . value ) . toBe ( 2 ) ;
17
20
expect ( node2 . key ) . toBe ( 'test' ) ;
18
21
22
+ expect ( linkedList . head . toString ( ) ) . toBe ( '1' ) ;
23
+ expect ( linkedList . tail . toString ( ) ) . toBe ( 'test:2' ) ;
24
+
19
25
expect ( linkedList . toString ( ) ) . toBe ( '1,test:2' ) ;
20
26
} ) ;
21
27
@@ -28,6 +34,9 @@ describe('LinkedList', () => {
28
34
expect ( node1 . value ) . toBe ( 1 ) ;
29
35
expect ( node2 . value ) . toBe ( 2 ) ;
30
36
37
+ expect ( linkedList . head . toString ( ) ) . toBe ( '2' ) ;
38
+ expect ( linkedList . tail . toString ( ) ) . toBe ( '1' ) ;
39
+
31
40
expect ( linkedList . toString ( ) ) . toBe ( '2,1' ) ;
32
41
} ) ;
33
42
@@ -38,18 +47,61 @@ describe('LinkedList', () => {
38
47
linkedList . append ( { value : 2 } ) ;
39
48
linkedList . append ( { value : 3 } ) ;
40
49
linkedList . append ( { value : 3 } ) ;
50
+ linkedList . append ( { value : 3 } ) ;
41
51
linkedList . append ( { value : 4 } ) ;
42
52
linkedList . append ( { value : 5 } ) ;
43
53
54
+ expect ( linkedList . head . toString ( ) ) . toBe ( '1' ) ;
55
+ expect ( linkedList . tail . toString ( ) ) . toBe ( '5' ) ;
56
+
44
57
const deletedNode = linkedList . deleteByValue ( 3 ) ;
45
58
expect ( deletedNode . value ) . toBe ( 3 ) ;
46
- expect ( linkedList . toString ( ) ) . toBe ( '1,2,3, 4,5' ) ;
59
+ expect ( linkedList . toString ( ) ) . toBe ( '1,2,4,5' ) ;
47
60
48
61
linkedList . deleteByValue ( 3 ) ;
49
62
expect ( linkedList . toString ( ) ) . toBe ( '1,2,4,5' ) ;
50
63
51
64
linkedList . deleteByValue ( 1 ) ;
52
65
expect ( linkedList . toString ( ) ) . toBe ( '2,4,5' ) ;
66
+
67
+ expect ( linkedList . head . toString ( ) ) . toBe ( '2' ) ;
68
+ expect ( linkedList . tail . toString ( ) ) . toBe ( '5' ) ;
69
+
70
+ linkedList . deleteByValue ( 5 ) ;
71
+ expect ( linkedList . toString ( ) ) . toBe ( '2,4' ) ;
72
+
73
+ expect ( linkedList . head . toString ( ) ) . toBe ( '2' ) ;
74
+ expect ( linkedList . tail . toString ( ) ) . toBe ( '4' ) ;
75
+
76
+ linkedList . deleteByValue ( 4 ) ;
77
+ expect ( linkedList . toString ( ) ) . toBe ( '2' ) ;
78
+
79
+ expect ( linkedList . head . toString ( ) ) . toBe ( '2' ) ;
80
+ expect ( linkedList . tail . toString ( ) ) . toBe ( '2' ) ;
81
+ } ) ;
82
+
83
+ it ( 'should delete linked list tail' , ( ) => {
84
+ const linkedList = new LinkedList ( ) ;
85
+
86
+ linkedList . append ( { value : 1 } ) ;
87
+ linkedList . append ( { value : 2 } ) ;
88
+
89
+ expect ( linkedList . head . toString ( ) ) . toBe ( '1' ) ;
90
+ expect ( linkedList . tail . toString ( ) ) . toBe ( '2' ) ;
91
+
92
+ const deletedNode1 = linkedList . deleteTail ( ) ;
93
+
94
+ expect ( deletedNode1 . value ) . toBe ( 2 ) ;
95
+ expect ( linkedList . toString ( ) ) . toBe ( '1' ) ;
96
+ expect ( linkedList . head . toString ( ) ) . toBe ( '1' ) ;
97
+ expect ( linkedList . tail . toString ( ) ) . toBe ( '1' ) ;
98
+
99
+ const deletedNode2 = linkedList . deleteTail ( ) ;
100
+
101
+ expect ( deletedNode2 . value ) . toBe ( 1 ) ;
102
+ expect ( linkedList . toString ( ) ) . toBe ( '' ) ;
103
+ expect ( linkedList . head ) . toBeNull ( ) ;
104
+ expect ( linkedList . tail ) . toBeNull ( ) ;
53
105
} ) ;
54
106
55
107
it ( 'should delete node by key from linked list' , ( ) => {
0 commit comments