atomic-fns 0.3.5 → 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 (105) hide show
  1. package/README.md +2 -2
  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 +0 -0
  17. package/{core → dist}/collections/abc.js +0 -0
  18. package/{core → dist}/collections/deque.d.ts +6 -6
  19. package/{core → dist}/collections/deque.js +0 -0
  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 +27 -13
  25. package/{core → dist}/functools/index.js +34 -12
  26. package/{core → dist}/globals/index.d.ts +7 -10
  27. package/{core → dist}/globals/index.js +7 -14
  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.ts +0 -338
  66. package/core/collections/frozenset.ts +0 -37
  67. package/core/collections/index.ts +0 -1024
  68. package/core/collections/test.html +0 -10
  69. package/core/collections/typedArrays.d.ts +0 -31
  70. package/core/collections/typedArrays.js +0 -143
  71. package/core/collections/typedArrays.ts +0 -163
  72. package/core/functools/index.ts +0 -260
  73. package/core/globals/index.ts +0 -481
  74. package/core/i18n/date/format.d.ts +0 -16
  75. package/core/i18n/date/format.js +0 -307
  76. package/core/i18n/date/format.ts +0 -343
  77. package/core/i18n/date/index.d.ts +0 -224
  78. package/core/i18n/date/index.js +0 -387
  79. package/core/i18n/date/index.ts +0 -471
  80. package/core/i18n/date/test.html +0 -67
  81. package/core/i18n/index.ts +0 -8
  82. package/core/index.ts +0 -8
  83. package/core/itertools/index.ts +0 -494
  84. package/core/math/index.ts +0 -152
  85. package/core/operators/index.ts +0 -310
  86. package/core/random/index.ts +0 -66
  87. package/firebase.json +0 -10
  88. package/jasmine.json +0 -14
  89. package/tests/BTree.spec.ts +0 -143
  90. package/tests/Cache.spec.ts +0 -161
  91. package/tests/Heap.spec.ts +0 -66
  92. package/tests/SortedMap.spec.ts +0 -144
  93. package/tests/SortedSet.spec.ts +0 -84
  94. package/tests/SortedTree.spec.ts +0 -164
  95. package/tests/SplayTree.spec.ts +0 -121
  96. package/tests/collections.spec.ts +0 -288
  97. package/tests/deque.spec.ts +0 -107
  98. package/tests/globals.spec.ts +0 -270
  99. package/tests/itertools.spec.ts +0 -266
  100. package/tests/math.spec.ts +0 -25
  101. package/tests/operators.spec.ts +0 -40
  102. package/tests/random.spec.ts +0 -46
  103. package/tsconfig.json +0 -126
  104. package/tsconfig.node.json +0 -18
  105. 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
- })