-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
83 lines (58 loc) · 1.55 KB
/
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
'use strict'
const test = require('tape')
const list = require('./')
test(t => {
const a = new Char('a')
const b = new Char('b')
const c = new Char('c')
const d = new Char('d')
const e = new Char('e')
const f = new Char('f')
const g = new Char('g')
const h = new Char('h')
t.throws(() => list.create(), /Expected an array/)
t.throws(() => list.create([]), /At least one item is required/)
list.create([d, e])
t.equal(list.before(d), null)
t.equal(list.after(d), e)
t.equal(list.before(e), d)
t.equal(list.after(e), null)
list.insertBefore(d, c)
t.equal(list.before(c), null)
t.equal(list.after(c), d)
t.equal(list.before(d), c)
t.equal(list.after(d), e)
t.equal(list.before(e), d)
t.equal(list.after(e), null)
list.insertAfter(e, h)
t.equal(list.before(c), null)
t.equal(list.after(c), d)
t.equal(list.before(d), c)
t.equal(list.after(d), e)
t.equal(list.before(e), d)
t.equal(list.after(e), h)
t.equal(list.before(h), e)
t.equal(list.after(h), null)
list.insertBefore(c, a)
t.equal(list.before(c), a)
t.equal(list.after(c), d)
t.equal(list.before(a), null)
t.equal(list.after(a), c)
list.insertBefore(c, b)
t.equal(list.before(c), b)
t.equal(list.after(c), d)
t.equal(list.before(b), a)
t.equal(list.after(b), c)
t.equal(list.before(a), null)
t.equal(list.after(a), b)
list.insertAfter(e, f)
list.insertBefore(h, g)
t.equal(list.before(b), a)
t.equal(list.before(a), null)
t.equal(list.after(e), f)
t.deepEqual(list.toArray(b).map(c => c.c), 'abcdefgh'.split(''))
t.end()
})
function Char(c){
this.c = c
}