atomic-fns 0.3.4 → 0.4.2

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 (106) hide show
  1. package/README.md +3 -3
  2. package/{core → dist}/collections/BTree.d.ts +6 -6
  3. package/{core → dist}/collections/BTree.js +17 -17
  4. package/{core → dist}/collections/Heap.d.ts +3 -3
  5. package/{core → dist}/collections/Heap.js +0 -0
  6. package/dist/collections/LRUCache.d.ts +80 -0
  7. package/dist/collections/LRUCache.js +126 -0
  8. package/{core → dist}/collections/SortedMap.d.ts +2 -2
  9. package/{core → dist}/collections/SortedMap.js +0 -0
  10. package/{core → dist}/collections/SortedSet.d.ts +3 -3
  11. package/{core → dist}/collections/SortedSet.js +1 -1
  12. package/{core → dist}/collections/SortedTree.d.ts +3 -3
  13. package/{core → dist}/collections/SortedTree.js +1 -1
  14. package/{core → dist}/collections/SplayTree.d.ts +5 -5
  15. package/{core → dist}/collections/SplayTree.js +0 -0
  16. package/{core → dist}/collections/abc.d.ts +1 -1
  17. package/{core → dist}/collections/abc.js +0 -0
  18. package/dist/collections/deque.d.ts +117 -0
  19. package/{core → dist}/collections/deque.js +61 -53
  20. package/{core → dist}/collections/frozenset.d.ts +0 -0
  21. package/{core → dist}/collections/frozenset.js +3 -6
  22. package/{core → dist}/collections/index.d.ts +4 -4
  23. package/{core → dist}/collections/index.js +0 -0
  24. package/{core → dist}/functools/index.d.ts +28 -13
  25. package/{core → dist}/functools/index.js +34 -12
  26. package/{core → dist}/globals/index.d.ts +8 -11
  27. package/{core → dist}/globals/index.js +8 -15
  28. package/dist/i18n/date/index.d.ts +204 -0
  29. package/dist/i18n/date/index.js +530 -0
  30. package/dist/i18n/date/utils.d.ts +65 -0
  31. package/dist/i18n/date/utils.js +312 -0
  32. package/dist/i18n/duration.d.ts +112 -0
  33. package/dist/i18n/duration.js +392 -0
  34. package/dist/i18n/format.d.ts +26 -0
  35. package/dist/i18n/format.js +495 -0
  36. package/{core → dist}/i18n/index.d.ts +1 -1
  37. package/{core → dist}/i18n/index.js +1 -1
  38. package/{core → dist}/index.d.ts +0 -0
  39. package/{core → dist}/index.js +0 -0
  40. package/{core → dist}/itertools/index.d.ts +27 -27
  41. package/{core → dist}/itertools/index.js +24 -24
  42. package/{core → dist}/math/index.d.ts +3 -3
  43. package/{core → dist}/math/index.js +0 -0
  44. package/{core → dist}/operators/index.d.ts +2 -2
  45. package/{core → dist}/operators/index.js +2 -2
  46. package/{core → dist}/random/index.d.ts +1 -1
  47. package/{core → dist}/random/index.js +3 -3
  48. package/package.json +28 -42
  49. package/.editorconfig +0 -12
  50. package/.esdoc.json +0 -27
  51. package/.eslintignore +0 -1
  52. package/.eslintrc.json +0 -35
  53. package/.firebaserc +0 -5
  54. package/.prettierrc +0 -19
  55. package/core/collections/BTree.ts +0 -1340
  56. package/core/collections/Heap.ts +0 -189
  57. package/core/collections/LRUCache.d.ts +0 -152
  58. package/core/collections/LRUCache.js +0 -409
  59. package/core/collections/LRUCache.ts +0 -486
  60. package/core/collections/SortedMap.ts +0 -146
  61. package/core/collections/SortedSet.ts +0 -110
  62. package/core/collections/SortedTree.ts +0 -160
  63. package/core/collections/SplayTree.ts +0 -354
  64. package/core/collections/abc.ts +0 -176
  65. package/core/collections/deque.d.ts +0 -110
  66. package/core/collections/deque.ts +0 -329
  67. package/core/collections/frozenset.ts +0 -37
  68. package/core/collections/index.ts +0 -1024
  69. package/core/collections/test.html +0 -10
  70. package/core/collections/typedArrays.d.ts +0 -31
  71. package/core/collections/typedArrays.js +0 -143
  72. package/core/collections/typedArrays.ts +0 -163
  73. package/core/functools/index.ts +0 -258
  74. package/core/globals/index.ts +0 -481
  75. package/core/i18n/date/format.d.ts +0 -16
  76. package/core/i18n/date/format.js +0 -307
  77. package/core/i18n/date/format.ts +0 -343
  78. package/core/i18n/date/index.d.ts +0 -223
  79. package/core/i18n/date/index.js +0 -387
  80. package/core/i18n/date/index.ts +0 -471
  81. package/core/i18n/date/test.html +0 -67
  82. package/core/i18n/index.ts +0 -8
  83. package/core/index.ts +0 -8
  84. package/core/itertools/index.ts +0 -494
  85. package/core/math/index.ts +0 -152
  86. package/core/operators/index.ts +0 -310
  87. package/core/random/index.ts +0 -66
  88. package/firebase.json +0 -10
  89. package/jasmine.json +0 -14
  90. package/tests/BTree.spec.ts +0 -143
  91. package/tests/Cache.spec.ts +0 -161
  92. package/tests/Heap.spec.ts +0 -66
  93. package/tests/SortedMap.spec.ts +0 -144
  94. package/tests/SortedSet.spec.ts +0 -84
  95. package/tests/SortedTree.spec.ts +0 -164
  96. package/tests/SplayTree.spec.ts +0 -121
  97. package/tests/collections.spec.ts +0 -288
  98. package/tests/deque.spec.ts +0 -107
  99. package/tests/globals.spec.ts +0 -270
  100. package/tests/itertools.spec.ts +0 -266
  101. package/tests/math.spec.ts +0 -25
  102. package/tests/operators.spec.ts +0 -40
  103. package/tests/random.spec.ts +0 -46
  104. package/tsconfig.json +0 -126
  105. package/tsconfig.node.json +0 -18
  106. package/tsconfig.xo.json +0 -9
@@ -1,66 +0,0 @@
1
- import assert from 'assert'
2
- import { Heap } from '../core/collections/Heap.js'
3
- import { sorted } from '../core/itertools/index.js'
4
-
5
- describe('Heap', () => {
6
- it('empty', () => {
7
- let h = new Heap()
8
- assert(h.empty())
9
- })
10
-
11
- it('heapifies array', () => {
12
- let arr = [7, 9, 3, 5, 8, 1, 2, 6, 4]
13
- let h = new Heap(arr)
14
- assert.deepEqual([...h.values()], arr)
15
- for (const x of sorted(arr)) {
16
- assert(h.contains(x))
17
- assert(h.pop() === x)
18
- }
19
- })
20
-
21
- it('max heapifies', () => {
22
- let arr = [7, 9, 3, 5, 8, 1, 2, 6, 4]
23
- let h = new Heap(arr, (x, y) => {
24
- if (x > y) return -1
25
- if (x < y) return 1
26
- return 0
27
- })
28
- assert.deepEqual([...h.values()], arr)
29
- for (const x of sorted(arr, true)) {
30
- assert(h.contains(x))
31
- assert(h.pop() === x)
32
- }
33
- })
34
-
35
- it('add', () => {
36
- let h = new Heap()
37
- let arr = [7, 9, 3, 5, 8, 1, 2, 6, 4]
38
- for (const value of arr) {
39
- h.add(value)
40
- assert(h.contains(value))
41
- }
42
- assert(h.size === arr.length)
43
- })
44
-
45
- it('pop', () => {
46
- let h = new Heap()
47
- let arr = [7, 9, 3, 5, 8, 1, 2, 6, 4]
48
- for (const value of arr) {
49
- h.add(value)
50
- }
51
- assert(h.pop() === 1)
52
- assert(h.size === arr.length - 1)
53
- assert(h.pop() === 2)
54
- })
55
-
56
- it('remove', () => {
57
- let h = new Heap()
58
- let arr = [7, 9, 3, 5, 8, 1, 2, 6, 4]
59
- for (const value of arr) {
60
- h.add(value)
61
- }
62
- assert(h.pop() === 1)
63
- assert(h.size === arr.length - 1)
64
- assert(h.pop() === 2)
65
- })
66
- })
@@ -1,144 +0,0 @@
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
- })
@@ -1,84 +0,0 @@
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
- })
@@ -1,164 +0,0 @@
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
- })
@@ -1,121 +0,0 @@
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
- })