functionalscript 0.0.500 → 0.0.502
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.
- package/package.json +2 -2
- package/types/number/test.f.cjs +155 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "functionalscript",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.502",
|
|
4
4
|
"description": "FunctionalScript is a functional subset of JavaScript",
|
|
5
5
|
"main": "module.f.cjs",
|
|
6
6
|
"scripts": {
|
|
@@ -31,6 +31,6 @@
|
|
|
31
31
|
"homepage": "https://github.com/functionalscript/functionalscript#readme",
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "^18.11.18",
|
|
34
|
-
"typescript": "^4.9.
|
|
34
|
+
"typescript": "^4.9.5"
|
|
35
35
|
}
|
|
36
36
|
}
|
package/types/number/test.f.cjs
CHANGED
|
@@ -24,12 +24,15 @@ module.exports = {
|
|
|
24
24
|
if (result !== -1) { throw result }
|
|
25
25
|
},
|
|
26
26
|
standard: () => {
|
|
27
|
-
/** @type {(
|
|
28
|
-
const
|
|
29
|
-
if (BigInt(Number(
|
|
27
|
+
/** @type {(a: bigint) => (a: bigint) => void} */
|
|
28
|
+
const check = a => b => {
|
|
29
|
+
if (BigInt(Number(a)) != b) { throw [a, b] }
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
/** @type {(v: bigint) => void} */
|
|
33
|
+
const eq = v => check(v)(v)
|
|
34
|
+
|
|
35
|
+
// 53, 0x35 bits.
|
|
33
36
|
// 3 2 1 0
|
|
34
37
|
// 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210
|
|
35
38
|
eq(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000n)
|
|
@@ -37,5 +40,152 @@ module.exports = {
|
|
|
37
40
|
eq(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0010n)
|
|
38
41
|
eq(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0011n)
|
|
39
42
|
eq(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0100n)
|
|
43
|
+
//
|
|
44
|
+
eq(0b1_1101_0010_0110_1110_1000_0010_1000_1101_0000_0001_0011_0100_1000n)
|
|
45
|
+
eq(0b1_0101_0110_0110_0101_0110_0011_1100_0110_0110_0100_1100_1111_0001n)
|
|
46
|
+
eq(0b1_1011_0011_0010_1010_1110_1101_1000_1111_0010_0100_1100_0010_1010n)
|
|
47
|
+
eq(0b1_1010_0101_0010_0001_1000_1100_1010_1110_0110_0011_0001_0010_0011n)
|
|
48
|
+
eq(0b1_0011_0001_0101_1101_1000_1111_0111_1100_0011_1100_0000_1010_1100n)
|
|
49
|
+
//
|
|
50
|
+
eq(0b1_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111n)
|
|
51
|
+
eq(0b1_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110n)
|
|
52
|
+
eq(0b1_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1101n)
|
|
53
|
+
eq(0b1_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1100n)
|
|
54
|
+
eq(0b1_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1011n)
|
|
55
|
+
eq(0b1_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1010n)
|
|
56
|
+
eq(0b1_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1001n)
|
|
57
|
+
eq(0b1_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1000n)
|
|
58
|
+
|
|
59
|
+
// 54, 0x35+1 bits.
|
|
60
|
+
// 3 2 1 0
|
|
61
|
+
// 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_1
|
|
62
|
+
check
|
|
63
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0n)
|
|
64
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0n)
|
|
65
|
+
check
|
|
66
|
+
(0b01_1101_0111_0110_0101_1001_1101_0101_0010_1101_1011_0110_0111_1011_0n)
|
|
67
|
+
(0b01_1101_0111_0110_0101_1001_1101_0101_0010_1101_1011_0110_0111_1011_0n)
|
|
68
|
+
check
|
|
69
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_0n)
|
|
70
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_0n)
|
|
71
|
+
// round down
|
|
72
|
+
check
|
|
73
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_1n)
|
|
74
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0n)
|
|
75
|
+
check
|
|
76
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0010_1n)
|
|
77
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0010_0n)
|
|
78
|
+
check
|
|
79
|
+
(0b01_0100_1101_0100_1111_1101_1010_0110_1100_1111_1010_1000_1111_0010_1n)
|
|
80
|
+
(0b01_0100_1101_0100_1111_1101_1010_0110_1100_1111_1010_1000_1111_0010_0n)
|
|
81
|
+
check
|
|
82
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110_1n)
|
|
83
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110_0n)
|
|
84
|
+
// round up
|
|
85
|
+
check
|
|
86
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_1n)
|
|
87
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0010_0n)
|
|
88
|
+
check
|
|
89
|
+
(0b01_1011_1101_1010_0011_1010_1111_0111_1101_0001_1110_1111_1001_1011_1n)
|
|
90
|
+
(0b01_1011_1101_1010_0011_1010_1111_0111_1101_0001_1110_1111_1001_1100_0n)
|
|
91
|
+
check
|
|
92
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1n)
|
|
93
|
+
(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0n)
|
|
94
|
+
|
|
95
|
+
// 55, 0x35+2 bits.
|
|
96
|
+
// 3 2 1 0
|
|
97
|
+
// 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_12
|
|
98
|
+
// 0_xx: down, down, up
|
|
99
|
+
// 0_00
|
|
100
|
+
check
|
|
101
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_00n)
|
|
102
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_00n)
|
|
103
|
+
check
|
|
104
|
+
(0b01_1011_1000_1010_1100_0110_1010_1010_0110_1100_0010_1010_1111_0000_00n)
|
|
105
|
+
(0b01_1011_1000_1010_1100_0110_1010_1010_0110_1100_0010_1010_1111_0000_00n)
|
|
106
|
+
check
|
|
107
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110_00n)
|
|
108
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110_00n)
|
|
109
|
+
// 0_01 round down
|
|
110
|
+
check
|
|
111
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_01n)
|
|
112
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_00n)
|
|
113
|
+
check
|
|
114
|
+
(0b01_1111_1101_1010_1111_0011_1100_0011_1010_1001_1100_1010_1110_1000_01n)
|
|
115
|
+
(0b01_1111_1101_1010_1111_0011_1100_0011_1010_1001_1100_1010_1110_1000_00n)
|
|
116
|
+
check
|
|
117
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110_01n)
|
|
118
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110_00n)
|
|
119
|
+
// 0_10 round down
|
|
120
|
+
check
|
|
121
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_10n)
|
|
122
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_00n)
|
|
123
|
+
check
|
|
124
|
+
(0b01_0010_0011_1101_1100_0011_0001_1000_1101_0011_0011_0011_1111_0110_10n)
|
|
125
|
+
(0b01_0010_0011_1101_1100_0011_0001_1000_1101_0011_0011_0011_1111_0110_00n)
|
|
126
|
+
check
|
|
127
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110_10n)
|
|
128
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110_00n)
|
|
129
|
+
// 0_11 round up
|
|
130
|
+
check
|
|
131
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_11n)
|
|
132
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_00n)
|
|
133
|
+
check
|
|
134
|
+
(0b01_0010_0111_0000_1101_1011_0111_0010_0100_1101_1100_0010_0111_0000_11n)
|
|
135
|
+
(0b01_0010_0111_0000_1101_1011_0111_0010_0100_1101_1100_0010_0111_0001_00n)
|
|
136
|
+
check
|
|
137
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110_11n)
|
|
138
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_00n)
|
|
139
|
+
// 1_xx: down, up, up
|
|
140
|
+
// 1_00
|
|
141
|
+
check
|
|
142
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_00n)
|
|
143
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_00n)
|
|
144
|
+
check
|
|
145
|
+
(0b01_1000_0001_1111_0001_1011_1101_0000_1001_1111_0011_0011_0111_0101_00n)
|
|
146
|
+
(0b01_1000_0001_1111_0001_1011_1101_0000_1001_1111_0011_0011_0111_0101_00n)
|
|
147
|
+
check
|
|
148
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1110_11n)
|
|
149
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_00n)
|
|
150
|
+
// 1_01 round down
|
|
151
|
+
check
|
|
152
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_01n)
|
|
153
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_00n)
|
|
154
|
+
check
|
|
155
|
+
(0b01_0100_1000_1100_1010_0010_1111_1011_0111_1011_1010_1011_0100_0001_01n)
|
|
156
|
+
(0b01_0100_1000_1100_1010_0010_1111_1011_0111_1011_1010_1011_0100_0001_00n)
|
|
157
|
+
check
|
|
158
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_01n)
|
|
159
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_00n)
|
|
160
|
+
// 1_10 round up
|
|
161
|
+
check
|
|
162
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_10n)
|
|
163
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0010_00n)
|
|
164
|
+
check
|
|
165
|
+
(0b01_1111_1011_1100_1010_1111_0010_1010_1111_1101_0110_0101_1001_0011_10n)
|
|
166
|
+
(0b01_1111_1011_1100_1010_1111_0010_1010_1111_1101_0110_0101_1001_0100_00n)
|
|
167
|
+
check
|
|
168
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_10n)
|
|
169
|
+
(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_00n)
|
|
170
|
+
// 1_11 round up
|
|
171
|
+
check
|
|
172
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_11n)
|
|
173
|
+
(0b01_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0010_00n)
|
|
174
|
+
check
|
|
175
|
+
(0b01_1111_0001_1001_1000_1110_0011_1011_0011_0100_0111_0010_0000_0101_11n)
|
|
176
|
+
(0b01_1111_0001_1001_1000_1110_0011_1011_0011_0100_0111_0010_0000_0110_00n)
|
|
177
|
+
check
|
|
178
|
+
(0b01_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_11n)
|
|
179
|
+
(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_00n)
|
|
180
|
+
|
|
181
|
+
// 57, 0x35+4 bits.
|
|
182
|
+
// 3 2 1 0
|
|
183
|
+
// 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_1234
|
|
184
|
+
check
|
|
185
|
+
(0b01_0111_0001_0111_1101_1011_0100_1111_1110_0010_1111_0010_0010_1111_1110n)
|
|
186
|
+
(0b01_0111_0001_0111_1101_1011_0100_1111_1110_0010_1111_0010_0011_0000_0000n)
|
|
187
|
+
check
|
|
188
|
+
(0b01_1111_1010_1111_0011_0101_0111_1001_1111_1001_1101_0111_0000_0001_0100n)
|
|
189
|
+
(0b01_1111_1010_1111_0011_0101_0111_1001_1111_1001_1101_0111_0000_0001_0000n)
|
|
40
190
|
}
|
|
41
|
-
}
|
|
191
|
+
}
|