atomic-fns 0.3.0 → 0.3.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 (85) 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 +12 -161
  34. package/{src → core}/collections/index.js +13 -164
  35. package/{src → core}/collections/index.ts +13 -224
  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/{src → core}/datetime/index.d.ts +0 -0
  41. package/{src → core}/datetime/index.js +0 -0
  42. package/{src → core}/datetime/index.ts +0 -0
  43. package/core/datetime/test.html +0 -0
  44. package/{src → core}/functools/index.d.ts +2 -2
  45. package/{src → core}/functools/index.js +2 -2
  46. package/{src → core}/functools/index.ts +2 -2
  47. package/{src → core}/globals/index.d.ts +2 -7
  48. package/{src → core}/globals/index.js +5 -2
  49. package/{src → core}/globals/index.ts +6 -9
  50. package/{src → core}/index.d.ts +0 -0
  51. package/{src → core}/index.js +0 -0
  52. package/{src → core}/index.ts +0 -0
  53. package/{src → core}/itertools/index.d.ts +9 -7
  54. package/{src → core}/itertools/index.js +25 -9
  55. package/{src → core}/itertools/index.ts +39 -16
  56. package/{src → core}/math/index.d.ts +0 -0
  57. package/{src → core}/math/index.js +0 -0
  58. package/{src → core}/math/index.ts +0 -0
  59. package/core/operators/index.d.ts +148 -0
  60. package/core/operators/index.js +271 -0
  61. package/core/operators/index.ts +282 -0
  62. package/{src → core}/random/index.d.ts +0 -0
  63. package/{src → core}/random/index.js +0 -0
  64. package/{src → core}/random/index.ts +0 -0
  65. package/package.json +7 -4
  66. package/tests/BTree.spec.ts +143 -0
  67. package/tests/Cache.spec.ts +161 -0
  68. package/tests/Heap.spec.ts +66 -0
  69. package/tests/SortedMap.spec.ts +144 -0
  70. package/tests/SortedSet.spec.ts +84 -0
  71. package/tests/SortedTree.spec.ts +164 -0
  72. package/tests/SplayTree.spec.ts +121 -0
  73. package/tests/collections.spec.ts +1 -1
  74. package/tests/deque.spec.ts +107 -0
  75. package/tests/globals.spec.ts +2 -2
  76. package/tests/itertools.spec.ts +2 -2
  77. package/tests/math.spec.ts +1 -1
  78. package/tests/operators.spec.ts +5 -5
  79. package/tests/random.spec.ts +10 -10
  80. package/tsconfig.json +10 -10
  81. package/tsconfig.node.json +2 -2
  82. package/tsconfig.xo.json +2 -2
  83. package/src/operators/index.d.ts +0 -31
  84. package/src/operators/index.js +0 -171
  85. package/src/operators/index.ts +0 -175
@@ -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', () => {
@@ -1,26 +1,26 @@
1
1
  import assert from 'assert'
2
- import { any, times } from '../src/itertools/index.js'
3
- import { choice, random, randomInt, sample, shuffle } from '../src/random/index.js'
2
+ import { any, times } from '../core/itertools/index.js'
3
+ import { choice, random, randomInt, sample, shuffle } from '../core/random/index.js'
4
4
 
5
- const randomArr = () => [...times(10, (i) => randomInt(i, 71))]
5
+ const randomArr = () => [...times(100, (i) => randomInt(i, 100))]
6
6
 
7
7
  describe('random', () => {
8
8
  it('choice', () => {
9
9
  let arr = randomArr()
10
- for (let i = 0; i < 10; i++) {
10
+ for (let i = 0; i < 100; i++) {
11
11
  assert(arr.includes(choice(arr)))
12
12
  }
13
13
  })
14
14
 
15
15
  it('random', () => {
16
- for (let i = 1; i <= 10; i++) {
16
+ for (let i = 1; i <= 100; i++) {
17
17
  let r = random(0, i)
18
18
  assert(0 <= r && r < i)
19
19
  }
20
20
  })
21
21
 
22
22
  it('randomInt', () => {
23
- for (let i = 1; i <= 10; i++) {
23
+ for (let i = 1; i <= 100; i++) {
24
24
  let r = randomInt(0, i)
25
25
  assert(0 <= r && r <= i)
26
26
  }
@@ -29,7 +29,7 @@ describe('random', () => {
29
29
  it('shuffle', () => {
30
30
  let arr = randomArr()
31
31
  let copy = arr.slice()
32
- for (let i = 0; i < 10; i++) {
32
+ for (let i = 0; i < 100; i++) {
33
33
  assert(shuffle(copy) === copy)
34
34
  assert(copy.some((x, i) => x !== arr[i]))
35
35
  }
@@ -37,9 +37,9 @@ describe('random', () => {
37
37
 
38
38
  it('sample', () => {
39
39
  let arr = randomArr()
40
- for (let i = 0; i < 10; i++) {
41
- let s = sample(arr, 3)
42
- assert(s.length === 3)
40
+ for (let i = 0; i < 100; i++) {
41
+ let s = sample(arr, 30)
42
+ assert(s.length === 30)
43
43
  assert(s.some((x, i) => x !== arr[i]))
44
44
  }
45
45
  })
package/tsconfig.json CHANGED
@@ -27,7 +27,7 @@
27
27
  // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
28
28
  /* Modules */
29
29
  "module": "ESNext", /* Specify what module code is generated. */
30
- "rootDir": "./src", /* Specify the root folder within your source files. */
30
+ "rootDir": "core", /* Specify the root folder within your source files. */
31
31
  "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
32
32
  // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
33
33
  // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
@@ -106,14 +106,14 @@
106
106
  ],
107
107
  "typedocOptions": {
108
108
  "entryPoints": [
109
- "./src/globals/index.ts",
110
- "./src/collections/index.ts",
111
- "./src/datetime/index.ts",
112
- "./src/functools/index.ts",
113
- "./src/itertools/index.ts",
114
- "./src/math/index.ts",
115
- "./src/operators/index.ts",
116
- "./src/random/index.ts",
109
+ "./core/globals/index.ts",
110
+ "./core/collections/index.ts",
111
+ "./core/datetime/index.ts",
112
+ "./core/functools/index.ts",
113
+ "./core/itertools/index.ts",
114
+ "./core/math/index.ts",
115
+ "./core/operators/index.ts",
116
+ "./core/random/index.ts",
117
117
  ],
118
118
  "out": "docs",
119
119
  "exclude": [
@@ -122,4 +122,4 @@
122
122
  "excludeExternals": true,
123
123
  "excludePrivate": true,
124
124
  }
125
- }
125
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "include": [
3
- "src"
3
+ "core"
4
4
  ],
5
5
  "compilerOptions": {
6
6
  "composite": true,
@@ -15,4 +15,4 @@
15
15
  "exclude": [
16
16
  "build"
17
17
  ]
18
- }
18
+ }
package/tsconfig.xo.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "extends": "./tsconfig.json",
3
3
  "include": [
4
- "src"
4
+ "core"
5
5
  ],
6
6
  "exclude": [
7
7
  "build"
8
8
  ]
9
- }
9
+ }
@@ -1,31 +0,0 @@
1
- /**
2
- * Generic operations for both values and objects.
3
- *
4
- * @module Operators
5
- */
6
- export declare const id: (x: any) => any;
7
- export declare const bool: (x: any) => boolean;
8
- export declare const not: (x: any) => boolean;
9
- export declare const isinstance: (x: any, y: any) => boolean;
10
- export declare function comp(x: any, y: any): 0 | 1 | -1;
11
- export declare function eq(x: any, y: any): any;
12
- export declare function lt(x: any, y: any): any;
13
- export declare function lte(x: any, y: any): any;
14
- export declare function gt(x: any, y: any): any;
15
- export declare function gte(x: any, y: any): any;
16
- export declare function add(x: any, y: any): any;
17
- export declare function sub(x: any, y: any): any;
18
- export declare function mul(x: any, y: any): any;
19
- export declare function div(x: any, y: any): any;
20
- export declare function mod(x: any, y: any): any;
21
- /**
22
- * Calculates `x` to the power of `y`. If `x` implements a custom `pow` operator
23
- * it will return `x.pow(y)`.
24
- *
25
- * @param {*} x
26
- * @param {*} y
27
- * @return `x` raised to the power `y`
28
- */
29
- export declare function pow(x: any, y: any): any;
30
- export declare function shallowEqual(obj: any, other: any): boolean;
31
- export declare function deepEqual(obj: any, other: any, checker?: typeof eq): boolean;