atomic-fns 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/.esdoc.json +2 -2
  2. package/README.md +48 -13
  3. package/core/collections/BTree.d.ts +229 -0
  4. package/core/collections/BTree.js +1165 -0
  5. package/core/collections/BTree.ts +1340 -0
  6. package/core/collections/Heap.d.ts +69 -0
  7. package/core/collections/Heap.js +181 -0
  8. package/core/collections/Heap.ts +189 -0
  9. package/core/collections/LRUCache.d.ts +131 -0
  10. package/core/collections/LRUCache.js +388 -0
  11. package/core/collections/LRUCache.ts +465 -0
  12. package/core/collections/SortedMap.d.ts +92 -0
  13. package/core/collections/SortedMap.js +130 -0
  14. package/core/collections/SortedMap.ts +146 -0
  15. package/core/collections/SortedSet.d.ts +63 -0
  16. package/core/collections/SortedSet.js +93 -0
  17. package/core/collections/SortedSet.ts +104 -0
  18. package/core/collections/SortedTree.d.ts +103 -0
  19. package/core/collections/SortedTree.js +141 -0
  20. package/core/collections/SortedTree.ts +160 -0
  21. package/core/collections/SplayTree.d.ts +105 -0
  22. package/core/collections/SplayTree.js +338 -0
  23. package/core/collections/SplayTree.ts +354 -0
  24. package/core/collections/abc.d.ts +152 -0
  25. package/core/collections/abc.js +39 -0
  26. package/core/collections/abc.ts +176 -0
  27. package/core/collections/deque.d.ts +110 -0
  28. package/core/collections/deque.js +285 -0
  29. package/core/collections/deque.ts +329 -0
  30. package/core/collections/frozenset.d.ts +19 -0
  31. package/core/collections/frozenset.js +33 -0
  32. package/core/collections/frozenset.ts +37 -0
  33. package/{src → core}/collections/index.d.ts +41 -162
  34. package/{src → core}/collections/index.js +57 -165
  35. package/{src → core}/collections/index.ts +61 -225
  36. package/core/collections/test.html +10 -0
  37. package/core/collections/typedArrays.d.ts +31 -0
  38. package/core/collections/typedArrays.js +143 -0
  39. package/core/collections/typedArrays.ts +163 -0
  40. package/core/datetime/index.d.ts +45 -0
  41. package/core/datetime/index.js +71 -0
  42. package/core/datetime/index.ts +128 -0
  43. package/{src → core}/functools/index.d.ts +2 -2
  44. package/{src → core}/functools/index.js +2 -2
  45. package/{src → core}/functools/index.ts +2 -2
  46. package/{src → core}/globals/index.d.ts +2 -7
  47. package/{src → core}/globals/index.js +5 -2
  48. package/{src → core}/globals/index.ts +6 -9
  49. package/{src → core}/index.d.ts +0 -1
  50. package/{src → core}/index.js +0 -1
  51. package/{src → core}/index.ts +0 -1
  52. package/{src → core}/itertools/index.d.ts +9 -7
  53. package/{src → core}/itertools/index.js +25 -9
  54. package/{src → core}/itertools/index.ts +39 -16
  55. package/{src → core}/math/index.d.ts +0 -0
  56. package/{src → core}/math/index.js +0 -0
  57. package/{src → core}/math/index.ts +0 -0
  58. package/core/operators/index.d.ts +148 -0
  59. package/core/operators/index.js +271 -0
  60. package/core/operators/index.ts +282 -0
  61. package/{src → core}/random/index.d.ts +0 -0
  62. package/{src → core}/random/index.js +0 -0
  63. package/{src → core}/random/index.ts +0 -0
  64. package/package.json +6 -6
  65. package/tests/BTree.spec.ts +143 -0
  66. package/tests/Cache.spec.ts +161 -0
  67. package/tests/Heap.spec.ts +66 -0
  68. package/tests/SortedMap.spec.ts +144 -0
  69. package/tests/SortedSet.spec.ts +84 -0
  70. package/tests/SortedTree.spec.ts +164 -0
  71. package/tests/SplayTree.spec.ts +121 -0
  72. package/tests/collections.spec.ts +1 -1
  73. package/tests/deque.spec.ts +107 -0
  74. package/tests/globals.spec.ts +2 -2
  75. package/tests/itertools.spec.ts +2 -2
  76. package/tests/math.spec.ts +1 -1
  77. package/tests/operators.spec.ts +5 -5
  78. package/tests/random.spec.ts +10 -10
  79. package/tsconfig.json +10 -10
  80. package/tsconfig.node.json +2 -2
  81. package/tsconfig.xo.json +2 -2
  82. package/src/datetime/index.d.ts +0 -6
  83. package/src/datetime/index.js +0 -6
  84. package/src/datetime/index.ts +0 -7
  85. package/src/operators/index.d.ts +0 -31
  86. package/src/operators/index.js +0 -171
  87. package/src/operators/index.ts +0 -175
@@ -0,0 +1,144 @@
1
+ import assert from 'assert'
2
+ import { SortedMap } from '../core/collections/SortedMap.js'
3
+
4
+ describe('SortedMap', () => {
5
+ it('empty', () => {
6
+ let tree = new SortedMap()
7
+ assert(tree.empty())
8
+ assert(tree.size === 0)
9
+ })
10
+
11
+ it('initialized', () => {
12
+ let entries: Array<[number, number]> = [
13
+ [5, 5],
14
+ [4, 4],
15
+ [3, 3],
16
+ [1, 1],
17
+ [2, 2]
18
+ ]
19
+ let tree = new SortedMap(entries)
20
+ assert(!tree.empty())
21
+ assert(tree.size === 5)
22
+ entries.sort((x, y) => x[0] - y[0])
23
+ assert.deepEqual(
24
+ [...tree.keys()],
25
+ entries.map((x) => x[0])
26
+ )
27
+ })
28
+
29
+ it('add', () => {
30
+ let tree = new SortedMap()
31
+ for (let i = 10; i > 0; i--) {
32
+ tree.add(i)
33
+ assert(tree.get(i) === null)
34
+ assert(tree.contains(i))
35
+ }
36
+ assert(tree.size === 10)
37
+ })
38
+
39
+ it('set', () => {
40
+ let tree = new SortedMap()
41
+ for (let i = 10; i > 0; i--) {
42
+ tree.set(i, i)
43
+ assert(tree.get(i) === i)
44
+ assert(tree.contains(i))
45
+ }
46
+ // update a key
47
+ tree.set(1, 42)
48
+ assert(tree.get(1) === 42)
49
+ // adds if not exists
50
+ tree.set(0, 42)
51
+ assert(tree.size === 11)
52
+ })
53
+
54
+ it('get', () => {
55
+ let tree = new SortedMap()
56
+ for (let i = 10; i > 0; i--) {
57
+ tree.set(i, i)
58
+ assert(tree.get(i) === i)
59
+ assert(tree.contains(i))
60
+ }
61
+ assert(tree.size === 10)
62
+ })
63
+
64
+ it('has', () => {
65
+ let tree = new SortedMap()
66
+ for (let i = 100; i > 0; i--) {
67
+ tree.add(i)
68
+ assert(tree.has(i))
69
+ }
70
+ assert(tree.size === 100)
71
+ })
72
+
73
+ it('min', () => {
74
+ let tree = new SortedMap()
75
+ for (let i = 10; i > 0; i--) {
76
+ tree.add(i)
77
+ }
78
+ assert(tree.min() === 1)
79
+ })
80
+
81
+ it('max', () => {
82
+ let tree = new SortedMap()
83
+ for (let i = 10; i > 0; i--) {
84
+ tree.add(i)
85
+ }
86
+ assert(tree.max() === 10)
87
+ })
88
+
89
+ it('delete', () => {
90
+ let tree = new SortedMap()
91
+ tree.add(42)
92
+ assert(tree.contains(42))
93
+ assert(tree.delete(42) === true)
94
+ assert(!tree.contains(42))
95
+ assert(tree.delete(42) === false)
96
+ })
97
+
98
+ it('clear', () => {
99
+ let tree = new SortedMap()
100
+ for (let i = 1; i <= 5; i++) {
101
+ tree.add(i)
102
+ assert(tree.contains(i))
103
+ }
104
+ tree.clear()
105
+ assert(tree.empty())
106
+ assert(tree.size === 0)
107
+ for (let i = 1; i <= 5; i++) {
108
+ assert(!tree.contains(i))
109
+ }
110
+ })
111
+
112
+ it('keys', () => {
113
+ let tree = new SortedMap()
114
+ for (let i = 1; i <= 5; i++) {
115
+ tree.set(i, i * 2)
116
+ }
117
+ assert.deepEqual([...tree.keys()], [1, 2, 3, 4, 5])
118
+ })
119
+
120
+ it('values', () => {
121
+ let tree = new SortedMap()
122
+ for (let i = 1; i <= 5; i++) {
123
+ tree.set(i, i * 2)
124
+ }
125
+ assert.deepEqual([...tree.values()], [2, 4, 6, 8, 10])
126
+ })
127
+
128
+ it('entries', () => {
129
+ let tree = new SortedMap()
130
+ for (let i = 1; i <= 5; i++) {
131
+ tree.set(i, i * 2)
132
+ }
133
+ assert.deepEqual(
134
+ [...tree.entries()],
135
+ [
136
+ [1, 2],
137
+ [2, 4],
138
+ [3, 6],
139
+ [4, 8],
140
+ [5, 10]
141
+ ]
142
+ )
143
+ })
144
+ })
@@ -0,0 +1,84 @@
1
+ import assert from 'assert'
2
+ import { SortedSet } from '../core/collections/SortedSet.js'
3
+
4
+ describe('SortedSet', () => {
5
+ it('empty', () => {
6
+ let tree = new SortedSet()
7
+ assert(tree.empty())
8
+ assert(tree.size === 0)
9
+ })
10
+
11
+ it('initialized', () => {
12
+ let entries: number[] = [5, 4, 3, 1, 2]
13
+ let tree = new SortedSet(entries)
14
+ assert(!tree.empty())
15
+ assert(tree.size === 5)
16
+ entries.sort()
17
+ assert.deepEqual([...tree.values()], entries)
18
+ })
19
+
20
+ it('add', () => {
21
+ let tree = new SortedSet()
22
+ for (let i = 10; i > 0; i--) {
23
+ tree.add(i)
24
+ assert(tree.contains(i))
25
+ }
26
+ assert(tree.size === 10)
27
+ })
28
+
29
+ it('has', () => {
30
+ let tree = new SortedSet()
31
+ for (let i = 100; i > 0; i--) {
32
+ tree.add(i)
33
+ assert(tree.has(i))
34
+ }
35
+ assert(tree.size === 100)
36
+ })
37
+
38
+ it('min', () => {
39
+ let tree = new SortedSet()
40
+ for (let i = 10; i > 0; i--) {
41
+ tree.add(i)
42
+ }
43
+ assert(tree.min() === 1)
44
+ })
45
+
46
+ it('max', () => {
47
+ let tree = new SortedSet()
48
+ for (let i = 10; i > 0; i--) {
49
+ tree.add(i)
50
+ }
51
+ assert(tree.max() === 10)
52
+ })
53
+
54
+ it('delete', () => {
55
+ let tree = new SortedSet()
56
+ tree.add(42)
57
+ assert(tree.contains(42))
58
+ assert(tree.delete(42) === true)
59
+ assert(!tree.contains(42))
60
+ assert(tree.delete(42) === false)
61
+ })
62
+
63
+ it('clear', () => {
64
+ let tree = new SortedSet()
65
+ for (let i = 1; i <= 5; i++) {
66
+ tree.add(i)
67
+ assert(tree.contains(i))
68
+ }
69
+ tree.clear()
70
+ assert(tree.empty())
71
+ assert(tree.size === 0)
72
+ for (let i = 1; i <= 5; i++) {
73
+ assert(!tree.contains(i))
74
+ }
75
+ })
76
+
77
+ it('values', () => {
78
+ let tree = new SortedSet()
79
+ for (let i = 1; i <= 5; i++) {
80
+ tree.add(i * 2)
81
+ }
82
+ assert.deepEqual([...tree.values()], [2, 4, 6, 8, 10])
83
+ })
84
+ })
@@ -0,0 +1,164 @@
1
+ import assert from 'assert'
2
+ import { SortedTree } from '../core/collections/SortedTree.js'
3
+
4
+ describe('SortedTree', () => {
5
+ it('empty', () => {
6
+ let tree = new SortedTree()
7
+ assert(tree.empty())
8
+ assert(tree.size === 0)
9
+ })
10
+
11
+ it('initialized', () => {
12
+ let entries: Array<[number, number]> = [
13
+ [5, 5],
14
+ [4, 4],
15
+ [3, 3],
16
+ [1, 1],
17
+ [2, 2]
18
+ ]
19
+ let tree = new SortedTree(entries)
20
+ assert(!tree.empty())
21
+ assert(tree.size === 5)
22
+ entries.sort((x, y) => x[0] - y[0])
23
+ assert.deepEqual(
24
+ [...tree.keys()],
25
+ entries.map((x) => x[0])
26
+ )
27
+ })
28
+
29
+ it('add', () => {
30
+ let tree = new SortedTree()
31
+ for (let i = 10; i > 0; i--) {
32
+ tree.add(i)
33
+ assert(tree.get(i) === null)
34
+ assert(tree.contains(i))
35
+ }
36
+ assert(tree.size === 10)
37
+ })
38
+
39
+ it('get', () => {
40
+ let tree = new SortedTree()
41
+ for (let i = 10; i > 0; i--) {
42
+ tree.set(i, i)
43
+ assert(tree.get(i) === i)
44
+ assert(tree.contains(i))
45
+ }
46
+ assert(tree.size === 10)
47
+ })
48
+
49
+ it('set', () => {
50
+ let tree = new SortedTree()
51
+ for (let i = 10; i > 0; i--) {
52
+ tree.set(i, i)
53
+ assert(tree.get(i) === i)
54
+ assert(tree.contains(i))
55
+ }
56
+ // update a key
57
+ tree.set(1, 42)
58
+ assert(tree.get(1) === 42)
59
+ // adds if not exists
60
+ tree.set(0, 42)
61
+ assert(tree.size === 11)
62
+ })
63
+
64
+ it('has', () => {
65
+ let tree = new SortedTree()
66
+ for (let i = 100; i > 0; i--) {
67
+ tree.add(i)
68
+ assert(tree.has(i))
69
+ }
70
+ assert(tree.size === 100)
71
+ })
72
+
73
+ it('min', () => {
74
+ let tree = new SortedTree()
75
+ for (let i = 10; i > 0; i--) {
76
+ tree.add(i)
77
+ }
78
+ assert(tree.min() === 1)
79
+ })
80
+
81
+ it('max', () => {
82
+ let tree = new SortedTree()
83
+ for (let i = 10; i > 0; i--) {
84
+ tree.add(i)
85
+ }
86
+ assert(tree.max() === 10)
87
+ })
88
+
89
+ it('delete', () => {
90
+ let tree = new SortedTree()
91
+ tree.add(42)
92
+ assert(tree.contains(42))
93
+ assert(tree.delete(42) === true)
94
+ assert(!tree.contains(42))
95
+ assert(tree.delete(42) === false)
96
+ })
97
+
98
+ it('clear', () => {
99
+ let tree = new SortedTree()
100
+ for (let i = 1; i <= 5; i++) {
101
+ tree.add(i)
102
+ assert(tree.contains(i))
103
+ }
104
+ tree.clear()
105
+ assert(tree.empty())
106
+ assert(tree.size === 0)
107
+ for (let i = 1; i <= 5; i++) {
108
+ assert(!tree.contains(i))
109
+ }
110
+ })
111
+
112
+ it('freeze', () => {
113
+ let tree = new SortedTree()
114
+ for (let i = 10; i > 0; i--) {
115
+ tree.set(i, i)
116
+ }
117
+ tree.freeze()
118
+ assert.throws(tree.clear)
119
+ assert.throws(() => tree.add(11))
120
+ })
121
+
122
+ it('reversed', () => {
123
+ let tree = new SortedTree()
124
+ let entries: any[] = []
125
+ for (let i = 100; i > 0; i--) {
126
+ tree.set(i, i)
127
+ entries.push([i, i])
128
+ }
129
+ assert.deepEqual([...tree.reversed()], entries)
130
+ })
131
+
132
+ it('keys', () => {
133
+ let tree = new SortedTree()
134
+ for (let i = 1; i <= 5; i++) {
135
+ tree.set(i, i * 2)
136
+ }
137
+ assert.deepEqual([...tree.keys()], [1, 2, 3, 4, 5])
138
+ })
139
+
140
+ it('values', () => {
141
+ let tree = new SortedTree()
142
+ for (let i = 1; i <= 5; i++) {
143
+ tree.set(i, i * 2)
144
+ }
145
+ assert.deepEqual([...tree.values()], [2, 4, 6, 8, 10])
146
+ })
147
+
148
+ it('entries', () => {
149
+ let tree = new SortedTree()
150
+ for (let i = 1; i <= 5; i++) {
151
+ tree.set(i, i * 2)
152
+ }
153
+ assert.deepEqual(
154
+ [...tree.entries()],
155
+ [
156
+ [1, 2],
157
+ [2, 4],
158
+ [3, 6],
159
+ [4, 8],
160
+ [5, 10]
161
+ ]
162
+ )
163
+ })
164
+ })
@@ -0,0 +1,121 @@
1
+ import assert from 'assert'
2
+ import { SplayTree } from '../core/collections/SplayTree.js'
3
+
4
+ describe('SplayTree', () => {
5
+ it('empty', () => {
6
+ let tree = new SplayTree()
7
+ assert(tree.empty())
8
+ assert(tree.size === 0)
9
+ for (const value of tree.values()) {
10
+ assert(!value)
11
+ }
12
+ })
13
+
14
+ it('set', () => {
15
+ let tree = new SplayTree()
16
+ for (let i = 10; i > 0; i--) {
17
+ tree.set(i, i)
18
+ assert(tree.contains(i))
19
+ }
20
+ assert(tree.size === 10)
21
+ })
22
+
23
+ it('get', () => {
24
+ let tree = new SplayTree()
25
+ for (let i = 100; i > 0; i--) {
26
+ tree.set(i, i)
27
+ assert(tree.get(i) === i)
28
+ }
29
+ assert(tree.size === 100)
30
+ })
31
+
32
+ it('splay', () => {
33
+ let tree = new SplayTree()
34
+ for (let i = 100; i > 0; i--) {
35
+ tree.add(i)
36
+ assert(tree.contains(i))
37
+ }
38
+ tree.splay(42)
39
+ assert(tree.top() === 42)
40
+ })
41
+
42
+ it('lowerBound', () => {
43
+ let tree = new SplayTree()
44
+ for (let i = 20; i > 0; i -= 2) {
45
+ tree.set(i, i)
46
+ }
47
+ assert(tree.lowerBound(12) === 10)
48
+ })
49
+
50
+ it('min', () => {
51
+ let tree = new SplayTree()
52
+ for (let i = 10; i > 0; i--) {
53
+ tree.set(i, i)
54
+ }
55
+ assert(tree.min() === 1)
56
+ })
57
+
58
+ it('max', () => {
59
+ let tree = new SplayTree()
60
+ for (let i = 10; i > 0; i--) {
61
+ tree.set(i, i)
62
+ }
63
+ assert(tree.max() === 10)
64
+ })
65
+
66
+ it('remove', () => {
67
+ let tree = new SplayTree()
68
+ tree.set(42, 42)
69
+ assert(tree.contains(42))
70
+ assert(tree.remove(42) === 42)
71
+ assert(!tree.contains(42))
72
+ assert(tree.remove(42) === undefined)
73
+ })
74
+
75
+ it('clear', () => {
76
+ let tree = new SplayTree()
77
+ for (let i = 1; i <= 5; i++) {
78
+ tree.add(i)
79
+ assert(tree.contains(i))
80
+ }
81
+ tree.clear()
82
+ assert(tree.empty())
83
+ assert(tree.size === 0)
84
+ for (let i = 1; i <= 5; i++) {
85
+ assert(!tree.contains(i))
86
+ }
87
+ })
88
+
89
+ it('keys', () => {
90
+ let tree = new SplayTree()
91
+ for (let i = 1; i <= 5; i++) {
92
+ tree.set(i, i)
93
+ }
94
+ assert.deepEqual([...tree.keys()], [1, 2, 3, 4, 5])
95
+ })
96
+
97
+ it('values', () => {
98
+ let tree = new SplayTree()
99
+ for (let i = 1; i <= 5; i++) {
100
+ tree.set(i, i * 2)
101
+ }
102
+ assert.deepEqual([...tree.values()], [2, 4, 6, 8, 10])
103
+ })
104
+
105
+ it('entries', () => {
106
+ let tree = new SplayTree()
107
+ for (let i = 1; i <= 5; i++) {
108
+ tree.set(i, i * 2)
109
+ }
110
+ assert.deepEqual(
111
+ [...tree.entries()],
112
+ [
113
+ [1, 2],
114
+ [2, 4],
115
+ [3, 6],
116
+ [4, 8],
117
+ [5, 10]
118
+ ]
119
+ )
120
+ })
121
+ })
@@ -18,7 +18,7 @@ import {
18
18
  sortedUniq,
19
19
  union,
20
20
  uniq
21
- } from '../src/collections/index.js'
21
+ } from '../core/collections/index.js'
22
22
 
23
23
  describe('collections', () => {
24
24
  it('compact', () => {
@@ -0,0 +1,107 @@
1
+ import assert from 'assert'
2
+ import { Deque } from '../core/collections/deque.js'
3
+
4
+ describe('deque', () => {
5
+ const print = (x) => console.log(x.toArray())
6
+
7
+ it('empty', () => {
8
+ let deque = new Deque()
9
+ assert(deque.size === 0)
10
+ })
11
+
12
+ it('iterable', () => {
13
+ let values = [1, 2, 3, 4]
14
+ let deque = new Deque(values)
15
+ let elements = [] as any[]
16
+ for (const value of deque.values()) {
17
+ elements.push(value)
18
+ }
19
+ assert.deepEqual(values, elements)
20
+ })
21
+
22
+ it('append', () => {
23
+ let values = [1, 2, 3, 4]
24
+ let deque = new Deque(values)
25
+ assert(deque.size === values.length)
26
+ assert.deepEqual(deque.toArray(), values)
27
+ deque.append(5)
28
+ assert(deque.size === 5)
29
+ assert.deepEqual(deque.toArray(), [1, 2, 3, 4, 5])
30
+ })
31
+
32
+ it('appendleft', () => {
33
+ let values = [1, 2, 3, 4]
34
+ let deque = new Deque(values)
35
+ deque.appendleft(0)
36
+ deque.appendleft(1)
37
+ deque.appendleft(1)
38
+ deque.appendleft(0)
39
+ assert.deepEqual(deque.toArray(), [0, 1, 1, 0, 1, 2, 3, 4])
40
+ assert(deque.size === 8)
41
+ })
42
+
43
+ it('pop', () => {
44
+ let values = [1, 2, 3, 4]
45
+ let deque = new Deque(values)
46
+ assert(deque.pop() === 4)
47
+ assert(deque.pop() === 3)
48
+ assert(deque.pop() === 2)
49
+ assert(deque.pop() === 1)
50
+ assert(deque.size === 0)
51
+ assert.deepEqual(deque.toArray(), [])
52
+ // assert.throws(() => deque.pop())
53
+ })
54
+
55
+ it('popleft', () => {
56
+ let values = [1, 2, 3, 4]
57
+ let deque = new Deque(values)
58
+ assert(deque.popleft() === 1)
59
+ assert(deque.popleft() === 2)
60
+ assert(deque.popleft() === 3)
61
+ assert(deque.popleft() === 4)
62
+ assert(deque.size === 0)
63
+ assert.deepEqual(deque.toArray(), [])
64
+ // assert.throws(() => deque.popleft())
65
+ })
66
+
67
+ it('contains', () => {
68
+ let values = [1, 2, 3, 4]
69
+ let deque = new Deque(values)
70
+ for (const val of values) {
71
+ assert(deque.contains(val))
72
+ }
73
+ })
74
+
75
+ it('get', () => {
76
+ let values = [1, 2, 3, 4]
77
+ let deque = new Deque(values)
78
+ for (let i = 0; i < values.length; i++) {
79
+ assert(deque.get(i) === values[i])
80
+ }
81
+ assert(deque.get(-1) === 4)
82
+ assert(deque.get(-2) === 3)
83
+ })
84
+
85
+ it('clear', () => {
86
+ let values = [1, 2, 3, 4]
87
+ let deque = new Deque(values)
88
+ deque.clear()
89
+ assert(deque.size === 0)
90
+ assert.deepEqual(deque.toArray(), [])
91
+ })
92
+
93
+ it('reversed', () => {
94
+ let values = [4, 3, 2, 0, 1]
95
+ let deque = new Deque(values)
96
+ values.reverse()
97
+ let arr = deque.reversed()
98
+ assert.deepEqual(arr, values)
99
+ })
100
+
101
+ it('toArray', () => {
102
+ let values = [1, 2, 3, 4]
103
+ let deque = new Deque(values)
104
+ assert(deque.size === values.length)
105
+ assert.deepEqual(deque.toArray(), values)
106
+ })
107
+ })
@@ -35,8 +35,8 @@ import {
35
35
  uniqueId,
36
36
  values,
37
37
  _
38
- } from '../src/globals/index.js'
39
- import { enumerate } from '../src/itertools/index.js'
38
+ } from '../core/globals/index.js'
39
+ import { enumerate } from '../core/itertools/index.js'
40
40
 
41
41
  describe('globals', () => {
42
42
  it('CustomError', () => {
@@ -25,8 +25,8 @@ import {
25
25
  takeWhile,
26
26
  times,
27
27
  zip
28
- } from '../src/itertools/index.js'
29
- import { max } from '../src/math/index.js'
28
+ } from '../core/itertools/index.js'
29
+ import { max } from '../core/math/index.js'
30
30
 
31
31
  const Falsy = (x) => !x
32
32
 
@@ -1,5 +1,5 @@
1
1
  import assert from 'assert'
2
- import { max, min, round, sum } from '../src/math/index.js'
2
+ import { max, min, round, sum } from '../core/math/index.js'
3
3
 
4
4
  describe('math', () => {
5
5
  it('min', () => {
@@ -1,5 +1,5 @@
1
1
  import assert from 'assert'
2
- import { bool, id, isinstance, not, comp, shallowEqual } from '../src/operators/index.js'
2
+ import { bool, id, isinstance, not, compare, shallowEqual } from '../core/operators/index.js'
3
3
 
4
4
  describe('operators', () => {
5
5
  it('id', () => {
@@ -18,10 +18,10 @@ describe('operators', () => {
18
18
  assert(not(''))
19
19
  })
20
20
 
21
- it('comp', () => {
22
- assert(comp(1, 1) === 0)
23
- assert(comp(2, 3) === -1)
24
- assert(comp(4, 3) === 1)
21
+ it('compare', () => {
22
+ assert(compare(1, 1) === 0)
23
+ assert(compare(2, 3) === -1)
24
+ assert(compare(4, 3) === 1)
25
25
  })
26
26
 
27
27
  it('isinstance', () => {