atomic-fns 0.3.5 → 0.4.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 (109) hide show
  1. package/README.md +1 -12
  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 +7 -7
  19. package/{core → dist}/collections/deque.js +6 -8
  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 +207 -105
  23. package/{core → dist}/collections/index.js +179 -436
  24. package/{core → dist}/functools/index.d.ts +30 -16
  25. package/{core → dist}/functools/index.js +34 -12
  26. package/dist/globals/decimal.d.ts +142 -0
  27. package/dist/globals/decimal.js +371 -0
  28. package/{core → dist}/globals/index.d.ts +26 -25
  29. package/{core → dist}/globals/index.js +16 -37
  30. package/dist/i18n/currency.d.ts +24 -0
  31. package/dist/i18n/currency.js +85 -0
  32. package/dist/i18n/date/index.d.ts +204 -0
  33. package/dist/i18n/date/index.js +530 -0
  34. package/dist/i18n/date/utils.d.ts +65 -0
  35. package/dist/i18n/date/utils.js +290 -0
  36. package/dist/i18n/duration.d.ts +112 -0
  37. package/dist/i18n/duration.js +392 -0
  38. package/dist/i18n/format.d.ts +26 -0
  39. package/dist/i18n/format.js +495 -0
  40. package/{core → dist}/i18n/index.d.ts +2 -1
  41. package/{core → dist}/i18n/index.js +2 -1
  42. package/{core → dist}/index.d.ts +0 -0
  43. package/{core → dist}/index.js +0 -0
  44. package/{core → dist}/itertools/index.d.ts +74 -46
  45. package/{core → dist}/itertools/index.js +28 -56
  46. package/{core → dist}/math/index.d.ts +9 -10
  47. package/{core → dist}/math/index.js +3 -1
  48. package/{core → dist}/operators/index.d.ts +4 -4
  49. package/{core → dist}/operators/index.js +2 -8
  50. package/{core → dist}/random/index.d.ts +1 -1
  51. package/{core → dist}/random/index.js +5 -5
  52. package/package.json +28 -42
  53. package/.editorconfig +0 -12
  54. package/.esdoc.json +0 -27
  55. package/.eslintignore +0 -1
  56. package/.eslintrc.json +0 -35
  57. package/.firebaserc +0 -5
  58. package/.prettierrc +0 -19
  59. package/core/collections/BTree.ts +0 -1340
  60. package/core/collections/Heap.ts +0 -189
  61. package/core/collections/LRUCache.d.ts +0 -152
  62. package/core/collections/LRUCache.js +0 -409
  63. package/core/collections/LRUCache.ts +0 -486
  64. package/core/collections/SortedMap.ts +0 -146
  65. package/core/collections/SortedSet.ts +0 -110
  66. package/core/collections/SortedTree.ts +0 -160
  67. package/core/collections/SplayTree.ts +0 -354
  68. package/core/collections/abc.ts +0 -176
  69. package/core/collections/deque.ts +0 -338
  70. package/core/collections/frozenset.ts +0 -37
  71. package/core/collections/index.ts +0 -1024
  72. package/core/collections/test.html +0 -10
  73. package/core/collections/typedArrays.d.ts +0 -31
  74. package/core/collections/typedArrays.js +0 -143
  75. package/core/collections/typedArrays.ts +0 -163
  76. package/core/functools/index.ts +0 -260
  77. package/core/globals/index.ts +0 -481
  78. package/core/i18n/date/format.d.ts +0 -16
  79. package/core/i18n/date/format.js +0 -307
  80. package/core/i18n/date/format.ts +0 -343
  81. package/core/i18n/date/index.d.ts +0 -224
  82. package/core/i18n/date/index.js +0 -387
  83. package/core/i18n/date/index.ts +0 -471
  84. package/core/i18n/date/test.html +0 -67
  85. package/core/i18n/index.ts +0 -8
  86. package/core/index.ts +0 -8
  87. package/core/itertools/index.ts +0 -494
  88. package/core/math/index.ts +0 -152
  89. package/core/operators/index.ts +0 -310
  90. package/core/random/index.ts +0 -66
  91. package/firebase.json +0 -10
  92. package/jasmine.json +0 -14
  93. package/tests/BTree.spec.ts +0 -143
  94. package/tests/Cache.spec.ts +0 -161
  95. package/tests/Heap.spec.ts +0 -66
  96. package/tests/SortedMap.spec.ts +0 -144
  97. package/tests/SortedSet.spec.ts +0 -84
  98. package/tests/SortedTree.spec.ts +0 -164
  99. package/tests/SplayTree.spec.ts +0 -121
  100. package/tests/collections.spec.ts +0 -288
  101. package/tests/deque.spec.ts +0 -107
  102. package/tests/globals.spec.ts +0 -270
  103. package/tests/itertools.spec.ts +0 -266
  104. package/tests/math.spec.ts +0 -25
  105. package/tests/operators.spec.ts +0 -40
  106. package/tests/random.spec.ts +0 -46
  107. package/tsconfig.json +0 -126
  108. package/tsconfig.node.json +0 -18
  109. 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
- })