-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
/
Copy pathDoublyLinkedList.test.js
127 lines (94 loc) · 2.62 KB
/
DoublyLinkedList.test.js
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import { DoubleLinkedList } from '../DoublyLinkedList'
describe('DoubleLinkedList', () => {
it('Check append', () => {
const list = new DoubleLinkedList()
list.append(1)
expect(list.getHead().element).toEqual(1)
list.append(2)
expect(list.getTail().element).toEqual(2)
})
it('Check insert', () => {
const list = new DoubleLinkedList()
list.insert(0, 1)
expect(list.getHead().element).toEqual(1)
list.insert(1, 20)
expect(list.getTail().element).toEqual(20)
})
it('Check removeAt', () => {
const list = new DoubleLinkedList()
list.insert(0, 10)
list.insert(1, 40)
list.insert(2, 30)
list.removeAt(0)
expect(list.getHead().element).toEqual(40)
list.removeAt(1)
expect(list.getTail().element).toEqual(40)
})
it('Check delete', () => {
const list = new DoubleLinkedList()
list.insert(0, 10)
list.insert(1, 40)
list.delete(10)
expect(list.getHead().element).toEqual(40)
})
it('Check deleteTail', () => {
const list = new DoubleLinkedList()
list.insert(0, 10)
list.insert(1, 40)
list.deleteTail()
expect(list.getTail().element).toEqual(10)
})
it('Check toString', () => {
const list = new DoubleLinkedList()
list.insert(0, 20)
expect(list.toString()).toEqual('20')
})
it('Check isEmpty', () => {
const list = new DoubleLinkedList()
expect(list.isEmpty()).toEqual(true)
list.insert(0, 'Hello')
expect(list.isEmpty()).toEqual(false)
})
it('Check size', () => {
const list = new DoubleLinkedList()
expect(list.size()).toBe(0)
list.append(10)
expect(list.size()).toBe(1)
list.removeAt(1)
expect(list.size()).toBe(1)
})
it('Check toArray', () => {
const list = new DoubleLinkedList()
list.append(1)
list.append(2)
const listArray = list.toArray()
expect(listArray).toEqual([1, 2])
})
it('Check getHead', () => {
const list = new DoubleLinkedList()
expect(list.getHead()).toEqual(null)
list.append(1)
list.append(2)
expect(list.getHead()).toBeInstanceOf(Object)
})
it('Check Iterator', () => {
const list = new DoubleLinkedList()
let iterate = list.iterator()
expect(iterate).toBe(-1)
const arr = [10, 20, 5]
list.append(arr[0])
list.append(arr[1])
list.append(arr[2])
iterate = list.iterator()
for (let i = 0; i < arr.length; i++) {
expect(iterate.next().value).toBe(arr[i])
}
expect(iterate.next().value).toBe(undefined)
iterate = list.iterator()
let count = 0
for (const item of iterate) {
expect(item).toBe(arr[count])
count++
}
})
})