goscript 0.0.37 → 0.0.39
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/compiler/analysis.go +129 -8
- package/compiler/compiler.go +4 -1
- package/compiler/composite-lit.go +2 -4
- package/compiler/expr-call.go +12 -0
- package/compiler/lit.go +100 -6
- package/compiler/protobuf.go +2 -2
- package/compiler/spec-value.go +3 -3
- package/compiler/spec.go +6 -3
- package/compiler/stmt-assign.go +1 -1
- package/dist/gs/builtin/builtin.d.ts +45 -0
- package/dist/gs/builtin/builtin.js +197 -0
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/slice.js +2 -1
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/bytes/buffer.gs.d.ts +56 -0
- package/dist/gs/bytes/buffer.gs.js +611 -0
- package/dist/gs/bytes/buffer.gs.js.map +1 -0
- package/dist/gs/bytes/bytes.gs.d.ts +78 -0
- package/dist/gs/bytes/bytes.gs.js +1011 -0
- package/dist/gs/bytes/bytes.gs.js.map +1 -0
- package/dist/gs/bytes/index.d.ts +4 -0
- package/dist/gs/bytes/index.js +5 -0
- package/dist/gs/bytes/index.js.map +1 -0
- package/dist/gs/bytes/iter.gs.d.ts +9 -0
- package/dist/gs/bytes/iter.gs.js +143 -0
- package/dist/gs/bytes/iter.gs.js.map +1 -0
- package/dist/gs/bytes/reader.gs.d.ts +34 -0
- package/dist/gs/bytes/reader.gs.js +198 -0
- package/dist/gs/bytes/reader.gs.js.map +1 -0
- package/dist/gs/github.com/pkg/errors/errors.d.ts +1 -1
- package/dist/gs/github.com/pkg/errors/errors.js +182 -23
- package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
- package/dist/gs/github.com/pkg/errors/go113.d.ts +1 -1
- package/dist/gs/github.com/pkg/errors/go113.js +1 -1
- package/dist/gs/github.com/pkg/errors/go113.js.map +1 -1
- package/dist/gs/github.com/pkg/errors/index.d.ts +3 -3
- package/dist/gs/github.com/pkg/errors/index.js +3 -3
- package/dist/gs/github.com/pkg/errors/index.js.map +1 -1
- package/dist/gs/github.com/pkg/errors/stack.d.ts +1 -1
- package/dist/gs/github.com/pkg/errors/stack.js +8 -5
- package/dist/gs/github.com/pkg/errors/stack.js.map +1 -1
- package/dist/gs/internal/abi/index.d.ts +20 -0
- package/dist/gs/internal/abi/index.js +20 -0
- package/dist/gs/internal/abi/index.js.map +1 -0
- package/dist/gs/internal/bytealg/index.d.ts +14 -0
- package/dist/gs/internal/bytealg/index.js +139 -0
- package/dist/gs/internal/bytealg/index.js.map +1 -0
- package/dist/gs/internal/byteorder/index.d.ts +1 -1
- package/dist/gs/internal/byteorder/index.js +4 -4
- package/dist/gs/internal/byteorder/index.js.map +1 -1
- package/dist/gs/math/index.d.ts +44 -44
- package/dist/gs/math/index.js +44 -44
- package/dist/gs/math/index.js.map +1 -1
- package/dist/gs/os/index.d.ts +19 -19
- package/dist/gs/os/index.js +19 -19
- package/dist/gs/os/index.js.map +1 -1
- package/dist/gs/reflect/deepequal.d.ts +2 -0
- package/dist/gs/reflect/deepequal.js +91 -0
- package/dist/gs/reflect/deepequal.js.map +1 -0
- package/dist/gs/reflect/index.d.ts +8 -0
- package/dist/gs/reflect/index.js +10 -0
- package/dist/gs/reflect/index.js.map +1 -0
- package/dist/gs/reflect/iter.d.ts +4 -0
- package/dist/gs/reflect/iter.js +24 -0
- package/dist/gs/reflect/iter.js.map +1 -0
- package/dist/gs/reflect/map.d.ts +20 -0
- package/dist/gs/reflect/map.js +74 -0
- package/dist/gs/reflect/map.js.map +1 -0
- package/dist/gs/reflect/swapper.d.ts +2 -0
- package/dist/gs/reflect/swapper.js +46 -0
- package/dist/gs/reflect/swapper.js.map +1 -0
- package/dist/gs/reflect/type.d.ts +134 -0
- package/dist/gs/reflect/type.js +825 -0
- package/dist/gs/reflect/type.js.map +1 -0
- package/dist/gs/reflect/types.d.ts +90 -0
- package/dist/gs/reflect/types.js +119 -0
- package/dist/gs/reflect/types.js.map +1 -0
- package/dist/gs/reflect/value.d.ts +13 -0
- package/dist/gs/reflect/value.js +202 -0
- package/dist/gs/reflect/value.js.map +1 -0
- package/dist/gs/reflect/visiblefields.d.ts +4 -0
- package/dist/gs/reflect/visiblefields.js +149 -0
- package/dist/gs/reflect/visiblefields.js.map +1 -0
- package/dist/gs/strconv/index.d.ts +6 -6
- package/dist/gs/strconv/index.js +6 -6
- package/dist/gs/strconv/index.js.map +1 -1
- package/dist/gs/strings/index.d.ts +1 -1
- package/dist/gs/strings/index.js +1 -1
- package/dist/gs/strings/index.js.map +1 -1
- package/dist/gs/strings/replace.js.map +1 -1
- package/dist/gs/sync/atomic/index.d.ts +4 -4
- package/dist/gs/sync/atomic/index.js +4 -4
- package/dist/gs/sync/atomic/index.js.map +1 -1
- package/dist/gs/syscall/index.d.ts +6 -6
- package/dist/gs/syscall/index.js +34 -28
- package/dist/gs/syscall/index.js.map +1 -1
- package/dist/gs/unicode/utf8/utf8.d.ts +1 -1
- package/dist/gs/unicode/utf8/utf8.js +4 -2
- package/dist/gs/unicode/utf8/utf8.js.map +1 -1
- package/dist/gs/unsafe/unsafe.js.map +1 -1
- package/gs/builtin/builtin.ts +219 -0
- package/gs/builtin/slice.ts +2 -1
- package/gs/bytes/buffer.gs.ts +614 -0
- package/gs/bytes/bytes.gs.ts +1180 -0
- package/gs/bytes/godoc.txt +69 -0
- package/gs/bytes/index.ts +69 -0
- package/gs/bytes/iter.gs.ts +149 -0
- package/gs/bytes/reader.gs.ts +230 -0
- package/gs/github.com/pkg/errors/errors.ts +408 -238
- package/gs/github.com/pkg/errors/go113.ts +5 -6
- package/gs/github.com/pkg/errors/index.ts +12 -3
- package/gs/github.com/pkg/errors/stack.ts +107 -105
- package/gs/internal/abi/index.ts +37 -0
- package/gs/internal/bytealg/index.ts +149 -0
- package/gs/internal/byteorder/index.ts +5 -5
- package/gs/math/abs.gs.test.ts +1 -1
- package/gs/math/acosh.gs.test.ts +4 -2
- package/gs/math/asin.gs.test.ts +1 -1
- package/gs/math/asinh.gs.test.ts +7 -3
- package/gs/math/atan.gs.test.ts +1 -1
- package/gs/math/atan2.gs.test.ts +17 -9
- package/gs/math/atanh.gs.test.ts +1 -1
- package/gs/math/bits.gs.test.ts +1 -1
- package/gs/math/cbrt.gs.test.ts +1 -1
- package/gs/math/const.gs.test.ts +34 -8
- package/gs/math/copysign.gs.test.ts +7 -3
- package/gs/math/dim.gs.test.ts +19 -7
- package/gs/math/erf.gs.test.ts +1 -1
- package/gs/math/erfinv.gs.test.ts +4 -2
- package/gs/math/exp.gs.test.ts +1 -1
- package/gs/math/expm1.gs.test.ts +6 -4
- package/gs/math/floor.gs.test.ts +17 -4
- package/gs/math/fma.gs.test.ts +53 -53
- package/gs/math/frexp.gs.test.ts +112 -117
- package/gs/math/gamma.gs.test.ts +1 -1
- package/gs/math/hypot.gs.test.ts +53 -53
- package/gs/math/index.ts +80 -44
- package/gs/math/j0.gs.test.ts +6 -2
- package/gs/math/j1.gs.test.ts +6 -2
- package/gs/math/jn.gs.test.ts +9 -5
- package/gs/math/ldexp.gs.test.ts +103 -86
- package/gs/math/lgamma.gs.test.ts +10 -10
- package/gs/math/log.gs.test.ts +1 -1
- package/gs/math/log10.gs.test.ts +1 -1
- package/gs/math/log1p.gs.test.ts +2 -2
- package/gs/math/logb.gs.test.ts +1 -1
- package/gs/math/mod.gs.test.ts +2 -2
- package/gs/math/modf.gs.test.ts +7 -7
- package/gs/math/nextafter.gs.test.ts +9 -7
- package/gs/math/pow.gs.test.ts +6 -4
- package/gs/math/pow10.gs.test.ts +1 -1
- package/gs/math/remainder.gs.test.ts +1 -1
- package/gs/math/signbit.gs.test.ts +1 -1
- package/gs/math/sin.gs.test.ts +1 -1
- package/gs/math/sincos.gs.test.ts +33 -14
- package/gs/math/sinh.gs.test.ts +1 -1
- package/gs/math/sqrt.gs.test.ts +1 -1
- package/gs/math/tan.gs.test.ts +3 -3
- package/gs/math/tanh.gs.test.ts +1 -1
- package/gs/os/index.ts +128 -19
- package/gs/reflect/ANALYSIS.md +278 -0
- package/gs/reflect/deepequal.test.ts +41 -0
- package/gs/reflect/deepequal.ts +169 -0
- package/gs/reflect/function-types.test.ts +146 -0
- package/gs/reflect/godoc.txt +67 -0
- package/gs/reflect/index.ts +83 -0
- package/gs/reflect/iter.ts +44 -0
- package/gs/reflect/map.test.ts +30 -0
- package/gs/reflect/map.ts +85 -0
- package/gs/reflect/swapper.ts +52 -0
- package/gs/reflect/type.ts +1016 -0
- package/gs/reflect/types.ts +214 -0
- package/gs/reflect/value.ts +270 -0
- package/gs/reflect/visiblefields.ts +177 -0
- package/gs/strconv/index.ts +39 -6
- package/gs/strings/index.ts +7 -1
- package/gs/strings/replace.ts +1 -9
- package/gs/sync/atomic/index.ts +53 -4
- package/gs/syscall/index.ts +45 -37
- package/gs/unicode/utf8/utf8.ts +8 -5
- package/gs/unsafe/unsafe.ts +1 -1
- package/package.json +2 -1
- package/dist/gs/internal/testlog/index.d.ts +0 -1
- package/dist/gs/internal/testlog/index.js +0 -5
- package/dist/gs/internal/testlog/index.js.map +0 -1
- package/dist/gs/maps/iter.gs.d.ts +0 -7
- package/dist/gs/maps/iter.gs.js +0 -65
- package/dist/gs/maps/iter.gs.js.map +0 -1
- package/dist/gs/maps/maps.gs.d.ts +0 -7
- package/dist/gs/maps/maps.gs.js +0 -79
- package/dist/gs/maps/maps.gs.js.map +0 -1
- package/dist/gs/stringslite/index.d.ts +0 -1
- package/dist/gs/stringslite/index.js +0 -2
- package/dist/gs/stringslite/index.js.map +0 -1
- package/dist/gs/stringslite/strings.d.ts +0 -11
- package/dist/gs/stringslite/strings.js +0 -67
- package/dist/gs/stringslite/strings.js.map +0 -1
- package/gs/internal/testlog/index.ts +0 -7
package/gs/math/logb.gs.test.ts
CHANGED
package/gs/math/mod.gs.test.ts
CHANGED
|
@@ -35,7 +35,7 @@ describe('Mod', () => {
|
|
|
35
35
|
expect(Number.isNaN(Mod(Number.NaN, 3))).toBe(true)
|
|
36
36
|
expect(Number.isNaN(Mod(5, 0))).toBe(true)
|
|
37
37
|
expect(Number.isNaN(Mod(5, Number.NaN))).toBe(true)
|
|
38
|
-
|
|
38
|
+
|
|
39
39
|
expect(Mod(5, Number.POSITIVE_INFINITY)).toBe(5)
|
|
40
40
|
expect(Mod(5, Number.NEGATIVE_INFINITY)).toBe(5)
|
|
41
41
|
expect(Mod(-5, Number.POSITIVE_INFINITY)).toBe(-5)
|
|
@@ -61,4 +61,4 @@ describe('mod', () => {
|
|
|
61
61
|
expect(mod(5.5, 2)).toBe(Mod(5.5, 2))
|
|
62
62
|
expect(Number.isNaN(mod(5, 0))).toBe(Number.isNaN(Mod(5, 0)))
|
|
63
63
|
})
|
|
64
|
-
})
|
|
64
|
+
})
|
package/gs/math/modf.gs.test.ts
CHANGED
|
@@ -18,7 +18,7 @@ describe('Modf', () => {
|
|
|
18
18
|
const [int, frac] = Modf(0)
|
|
19
19
|
expect(int).toBe(0)
|
|
20
20
|
expect(frac).toBe(0)
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
const [intNeg, fracNeg] = Modf(-0)
|
|
23
23
|
expect(Object.is(intNeg, -0)).toBe(true)
|
|
24
24
|
expect(fracNeg === 0 || Object.is(fracNeg, -0)).toBe(true)
|
|
@@ -28,7 +28,7 @@ describe('Modf', () => {
|
|
|
28
28
|
const [int, frac] = Modf(5)
|
|
29
29
|
expect(int).toBe(5)
|
|
30
30
|
expect(frac).toBe(0)
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
const [intNeg, fracNeg] = Modf(-5)
|
|
33
33
|
expect(intNeg).toBe(-5)
|
|
34
34
|
expect(fracNeg === 0 || Object.is(fracNeg, -0)).toBe(true)
|
|
@@ -38,11 +38,11 @@ describe('Modf', () => {
|
|
|
38
38
|
const [intPosInf, fracPosInf] = Modf(Number.POSITIVE_INFINITY)
|
|
39
39
|
expect(intPosInf).toBe(Number.POSITIVE_INFINITY)
|
|
40
40
|
expect(Number.isNaN(fracPosInf)).toBe(true)
|
|
41
|
-
|
|
41
|
+
|
|
42
42
|
const [intNegInf, fracNegInf] = Modf(Number.NEGATIVE_INFINITY)
|
|
43
43
|
expect(intNegInf).toBe(Number.NEGATIVE_INFINITY)
|
|
44
44
|
expect(Number.isNaN(fracNegInf)).toBe(true)
|
|
45
|
-
|
|
45
|
+
|
|
46
46
|
const [intNaN, fracNaN] = Modf(Number.NaN)
|
|
47
47
|
expect(Number.isNaN(intNaN)).toBe(true)
|
|
48
48
|
expect(Number.isNaN(fracNaN)).toBe(true)
|
|
@@ -52,7 +52,7 @@ describe('Modf', () => {
|
|
|
52
52
|
const [int1, frac1] = Modf(2.5)
|
|
53
53
|
expect(Math.sign(int1)).toBe(1)
|
|
54
54
|
expect(Math.sign(frac1)).toBe(1)
|
|
55
|
-
|
|
55
|
+
|
|
56
56
|
const [int2, frac2] = Modf(-2.5)
|
|
57
57
|
expect(Math.sign(int2)).toBe(-1)
|
|
58
58
|
expect(Math.sign(frac2)).toBe(-1)
|
|
@@ -71,10 +71,10 @@ describe('modf', () => {
|
|
|
71
71
|
const [int2, frac2] = Modf(3.14)
|
|
72
72
|
expect(int1).toBe(int2)
|
|
73
73
|
expect(frac1).toBe(frac2)
|
|
74
|
-
|
|
74
|
+
|
|
75
75
|
const [int3, frac3] = modf(-3.14)
|
|
76
76
|
const [int4, frac4] = Modf(-3.14)
|
|
77
77
|
expect(int3).toBe(int4)
|
|
78
78
|
expect(frac3).toBe(frac4)
|
|
79
79
|
})
|
|
80
|
-
})
|
|
80
|
+
})
|
|
@@ -6,7 +6,9 @@ describe('Nextafter', () => {
|
|
|
6
6
|
expect(Nextafter(1.0, 1.0)).toBe(1.0)
|
|
7
7
|
expect(Nextafter(0.0, 0.0)).toBe(0.0)
|
|
8
8
|
expect(Nextafter(-1.0, -1.0)).toBe(-1.0)
|
|
9
|
-
expect(Nextafter(Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY)).toBe(
|
|
9
|
+
expect(Nextafter(Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY)).toBe(
|
|
10
|
+
Number.POSITIVE_INFINITY,
|
|
11
|
+
)
|
|
10
12
|
})
|
|
11
13
|
|
|
12
14
|
it('should return NaN when either input is NaN', () => {
|
|
@@ -18,7 +20,7 @@ describe('Nextafter', () => {
|
|
|
18
20
|
it('should handle zero correctly', () => {
|
|
19
21
|
const nextPos = Nextafter(0, 1)
|
|
20
22
|
const nextNeg = Nextafter(0, -1)
|
|
21
|
-
|
|
23
|
+
|
|
22
24
|
expect(nextPos).toBeGreaterThan(0)
|
|
23
25
|
expect(nextNeg).toBeLessThan(0)
|
|
24
26
|
expect(Math.abs(nextPos)).toBe(Number.MIN_VALUE)
|
|
@@ -70,7 +72,7 @@ describe('Nextafter32', () => {
|
|
|
70
72
|
it('should handle zero correctly', () => {
|
|
71
73
|
const nextPos = Nextafter32(0, 1)
|
|
72
74
|
const nextNeg = Nextafter32(0, -1)
|
|
73
|
-
|
|
75
|
+
|
|
74
76
|
expect(nextPos).toBeGreaterThan(0)
|
|
75
77
|
expect(nextNeg).toBeLessThan(0)
|
|
76
78
|
// For float32, the smallest positive value is different
|
|
@@ -82,7 +84,7 @@ describe('Nextafter32', () => {
|
|
|
82
84
|
const x = 1.0
|
|
83
85
|
const nextUp = Nextafter32(x, 2.0)
|
|
84
86
|
const nextDown = Nextafter32(x, 0.0)
|
|
85
|
-
|
|
87
|
+
|
|
86
88
|
expect(nextUp).toBeGreaterThan(x)
|
|
87
89
|
expect(nextDown).toBeLessThan(x)
|
|
88
90
|
})
|
|
@@ -91,7 +93,7 @@ describe('Nextafter32', () => {
|
|
|
91
93
|
const x = 1.0
|
|
92
94
|
const nextUp = Nextafter32(x, Number.POSITIVE_INFINITY)
|
|
93
95
|
const nextDown = Nextafter32(x, 0.0)
|
|
94
|
-
|
|
96
|
+
|
|
95
97
|
expect(nextUp).toBeGreaterThan(x)
|
|
96
98
|
expect(nextDown).toBeLessThan(x)
|
|
97
99
|
})
|
|
@@ -100,8 +102,8 @@ describe('Nextafter32', () => {
|
|
|
100
102
|
const x = -1.0
|
|
101
103
|
const nextUp = Nextafter32(x, 0.0)
|
|
102
104
|
const nextDown = Nextafter32(x, -2.0)
|
|
103
|
-
|
|
105
|
+
|
|
104
106
|
expect(nextUp).toBeGreaterThan(x)
|
|
105
107
|
expect(nextDown).toBeLessThan(x)
|
|
106
108
|
})
|
|
107
|
-
})
|
|
109
|
+
})
|
package/gs/math/pow.gs.test.ts
CHANGED
|
@@ -37,7 +37,7 @@ describe('Pow', () => {
|
|
|
37
37
|
expect(Pow(2, Number.NEGATIVE_INFINITY)).toBe(0)
|
|
38
38
|
expect(Pow(0.5, Number.POSITIVE_INFINITY)).toBe(0)
|
|
39
39
|
expect(Pow(0.5, Number.NEGATIVE_INFINITY)).toBe(Number.POSITIVE_INFINITY)
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
expect(Pow(Number.POSITIVE_INFINITY, 1)).toBe(Number.POSITIVE_INFINITY)
|
|
42
42
|
expect(Pow(Number.POSITIVE_INFINITY, -1)).toBe(0)
|
|
43
43
|
expect(Pow(Number.NEGATIVE_INFINITY, 2)).toBe(Number.POSITIVE_INFINITY)
|
|
@@ -59,7 +59,7 @@ describe('Pow', () => {
|
|
|
59
59
|
|
|
60
60
|
it('should handle fractional exponents', () => {
|
|
61
61
|
expect(Pow(4, 0.5)).toBe(2)
|
|
62
|
-
expect(Pow(8, 1/3)).toBeCloseTo(2, 15)
|
|
62
|
+
expect(Pow(8, 1 / 3)).toBeCloseTo(2, 15)
|
|
63
63
|
expect(Pow(16, 0.25)).toBe(2)
|
|
64
64
|
})
|
|
65
65
|
})
|
|
@@ -69,7 +69,9 @@ describe('pow', () => {
|
|
|
69
69
|
expect(pow(2, 3)).toBe(Pow(2, 3))
|
|
70
70
|
expect(pow(0, 1)).toBe(Pow(0, 1))
|
|
71
71
|
expect(pow(-2, 2)).toBe(Pow(-2, 2))
|
|
72
|
-
expect(pow(Number.POSITIVE_INFINITY, 1)).toBe(
|
|
72
|
+
expect(pow(Number.POSITIVE_INFINITY, 1)).toBe(
|
|
73
|
+
Pow(Number.POSITIVE_INFINITY, 1),
|
|
74
|
+
)
|
|
73
75
|
})
|
|
74
76
|
})
|
|
75
77
|
|
|
@@ -100,4 +102,4 @@ describe('isOddInt', () => {
|
|
|
100
102
|
expect(isOddInt(1 << 53)).toBe(false) // too large
|
|
101
103
|
expect(isOddInt((1 << 53) - 1)).toBe(true) // largest odd integer
|
|
102
104
|
})
|
|
103
|
-
})
|
|
105
|
+
})
|
package/gs/math/pow10.gs.test.ts
CHANGED
package/gs/math/sin.gs.test.ts
CHANGED
|
@@ -6,7 +6,7 @@ describe('Sincos', () => {
|
|
|
6
6
|
const [sin, cos] = Sincos(0)
|
|
7
7
|
expect(sin).toBe(0)
|
|
8
8
|
expect(cos).toBe(1)
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
const [sinNeg, cosNeg] = Sincos(-0)
|
|
11
11
|
expect(sinNeg).toBe(-0)
|
|
12
12
|
expect(cosNeg).toBe(1)
|
|
@@ -16,15 +16,15 @@ describe('Sincos', () => {
|
|
|
16
16
|
const [sin1, cos1] = Sincos(Math.PI / 2)
|
|
17
17
|
expect(sin1).toBeCloseTo(1, 15)
|
|
18
18
|
expect(cos1).toBeCloseTo(0, 15)
|
|
19
|
-
|
|
19
|
+
|
|
20
20
|
const [sin2, cos2] = Sincos(-Math.PI / 2)
|
|
21
21
|
expect(sin2).toBeCloseTo(-1, 15)
|
|
22
22
|
expect(cos2).toBeCloseTo(0, 15)
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
const [sin3, cos3] = Sincos(Math.PI)
|
|
25
25
|
expect(sin3).toBeCloseTo(0, 15)
|
|
26
26
|
expect(cos3).toBeCloseTo(-1, 15)
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
const [sin4, cos4] = Sincos(-Math.PI)
|
|
29
29
|
expect(sin4).toBeCloseTo(0, 15)
|
|
30
30
|
expect(cos4).toBeCloseTo(-1, 15)
|
|
@@ -34,11 +34,11 @@ describe('Sincos', () => {
|
|
|
34
34
|
const [sin1, cos1] = Sincos(Math.PI / 6)
|
|
35
35
|
expect(sin1).toBeCloseTo(0.5, 15)
|
|
36
36
|
expect(cos1).toBeCloseTo(Math.sqrt(3) / 2, 15)
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
const [sin2, cos2] = Sincos(Math.PI / 4)
|
|
39
39
|
expect(sin2).toBeCloseTo(Math.sqrt(2) / 2, 15)
|
|
40
40
|
expect(cos2).toBeCloseTo(Math.sqrt(2) / 2, 15)
|
|
41
|
-
|
|
41
|
+
|
|
42
42
|
const [sin3, cos3] = Sincos(Math.PI / 3)
|
|
43
43
|
expect(sin3).toBeCloseTo(Math.sqrt(3) / 2, 15)
|
|
44
44
|
expect(cos3).toBeCloseTo(0.5, 15)
|
|
@@ -48,19 +48,29 @@ describe('Sincos', () => {
|
|
|
48
48
|
const [sin1, cos1] = Sincos(Number.POSITIVE_INFINITY)
|
|
49
49
|
expect(Number.isNaN(sin1)).toBe(true)
|
|
50
50
|
expect(Number.isNaN(cos1)).toBe(true)
|
|
51
|
-
|
|
51
|
+
|
|
52
52
|
const [sin2, cos2] = Sincos(Number.NEGATIVE_INFINITY)
|
|
53
53
|
expect(Number.isNaN(sin2)).toBe(true)
|
|
54
54
|
expect(Number.isNaN(cos2)).toBe(true)
|
|
55
|
-
|
|
55
|
+
|
|
56
56
|
const [sin3, cos3] = Sincos(Number.NaN)
|
|
57
57
|
expect(Number.isNaN(sin3)).toBe(true)
|
|
58
58
|
expect(Number.isNaN(cos3)).toBe(true)
|
|
59
59
|
})
|
|
60
60
|
|
|
61
61
|
it('should satisfy the Pythagorean identity', () => {
|
|
62
|
-
const testValues = [
|
|
63
|
-
|
|
62
|
+
const testValues = [
|
|
63
|
+
0,
|
|
64
|
+
Math.PI / 6,
|
|
65
|
+
Math.PI / 4,
|
|
66
|
+
Math.PI / 3,
|
|
67
|
+
Math.PI / 2,
|
|
68
|
+
Math.PI,
|
|
69
|
+
1.5,
|
|
70
|
+
2.7,
|
|
71
|
+
-1.2,
|
|
72
|
+
]
|
|
73
|
+
|
|
64
74
|
for (const x of testValues) {
|
|
65
75
|
const [sin, cos] = Sincos(x)
|
|
66
76
|
expect(sin * sin + cos * cos).toBeCloseTo(1, 14)
|
|
@@ -72,7 +82,7 @@ describe('Sincos', () => {
|
|
|
72
82
|
const [sin1, cos1] = Sincos(x)
|
|
73
83
|
const [sin2, cos2] = Sincos(x + 2 * Math.PI)
|
|
74
84
|
const [sin3, cos3] = Sincos(x + 4 * Math.PI)
|
|
75
|
-
|
|
85
|
+
|
|
76
86
|
expect(sin1).toBeCloseTo(sin2, 14)
|
|
77
87
|
expect(cos1).toBeCloseTo(cos2, 14)
|
|
78
88
|
expect(sin1).toBeCloseTo(sin3, 14)
|
|
@@ -80,12 +90,21 @@ describe('Sincos', () => {
|
|
|
80
90
|
})
|
|
81
91
|
|
|
82
92
|
it('should match individual Math.sin and Math.cos calls', () => {
|
|
83
|
-
const testValues = [
|
|
84
|
-
|
|
93
|
+
const testValues = [
|
|
94
|
+
0,
|
|
95
|
+
Math.PI / 6,
|
|
96
|
+
Math.PI / 4,
|
|
97
|
+
Math.PI / 3,
|
|
98
|
+
Math.PI / 2,
|
|
99
|
+
Math.PI,
|
|
100
|
+
1.5,
|
|
101
|
+
-1.2,
|
|
102
|
+
]
|
|
103
|
+
|
|
85
104
|
for (const x of testValues) {
|
|
86
105
|
const [sin, cos] = Sincos(x)
|
|
87
106
|
expect(sin).toBeCloseTo(Math.sin(x), 15)
|
|
88
107
|
expect(cos).toBeCloseTo(Math.cos(x), 15)
|
|
89
108
|
}
|
|
90
109
|
})
|
|
91
|
-
})
|
|
110
|
+
})
|
package/gs/math/sinh.gs.test.ts
CHANGED
package/gs/math/sqrt.gs.test.ts
CHANGED
package/gs/math/tan.gs.test.ts
CHANGED
|
@@ -22,8 +22,8 @@ describe('Tan', () => {
|
|
|
22
22
|
it('should approach infinity near asymptotes', () => {
|
|
23
23
|
const nearPiOver2 = Math.PI / 2 - 1e-10
|
|
24
24
|
expect(Math.abs(Tan(nearPiOver2))).toBeGreaterThan(1e9)
|
|
25
|
-
|
|
26
|
-
const near3PiOver2 = 3 * Math.PI / 2 - 1e-10
|
|
25
|
+
|
|
26
|
+
const near3PiOver2 = (3 * Math.PI) / 2 - 1e-10
|
|
27
27
|
expect(Math.abs(Tan(near3PiOver2))).toBeGreaterThan(1e9)
|
|
28
28
|
})
|
|
29
29
|
|
|
@@ -47,4 +47,4 @@ describe('tan', () => {
|
|
|
47
47
|
expect(tan(Math.PI)).toBe(Tan(Math.PI))
|
|
48
48
|
expect(Number.isNaN(tan(Number.NaN))).toBe(Number.isNaN(Tan(Number.NaN)))
|
|
49
49
|
})
|
|
50
|
-
})
|
|
50
|
+
})
|
package/gs/math/tanh.gs.test.ts
CHANGED
package/gs/os/index.ts
CHANGED
|
@@ -1,19 +1,128 @@
|
|
|
1
|
-
export { CopyFS, ReadDir } from
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
export { CopyFS, ReadDir } from './dir.gs.js'
|
|
2
|
+
export {
|
|
3
|
+
Clearenv,
|
|
4
|
+
Environ,
|
|
5
|
+
Expand,
|
|
6
|
+
ExpandEnv,
|
|
7
|
+
Getenv,
|
|
8
|
+
LookupEnv,
|
|
9
|
+
Setenv,
|
|
10
|
+
Unsetenv,
|
|
11
|
+
} from './env.gs.js'
|
|
12
|
+
export {
|
|
13
|
+
ErrClosed,
|
|
14
|
+
ErrDeadlineExceeded,
|
|
15
|
+
ErrExist,
|
|
16
|
+
ErrInvalid,
|
|
17
|
+
ErrNoDeadline,
|
|
18
|
+
ErrNotExist,
|
|
19
|
+
ErrPermission,
|
|
20
|
+
ErrUnimplemented,
|
|
21
|
+
IsExist,
|
|
22
|
+
IsNotExist,
|
|
23
|
+
IsPermission,
|
|
24
|
+
IsTimeout,
|
|
25
|
+
NewSyscallError,
|
|
26
|
+
PathError,
|
|
27
|
+
SyscallError,
|
|
28
|
+
} from './error.gs.js'
|
|
29
|
+
export {
|
|
30
|
+
ErrProcessDone,
|
|
31
|
+
FindProcess,
|
|
32
|
+
Getpid,
|
|
33
|
+
Getppid,
|
|
34
|
+
ProcAttr,
|
|
35
|
+
Process,
|
|
36
|
+
Signal,
|
|
37
|
+
StartProcess,
|
|
38
|
+
} from './exec.gs.js'
|
|
39
|
+
export { Interrupt, Kill, ProcessState } from './exec_posix.gs.js'
|
|
40
|
+
export { Executable } from './executable.gs.js'
|
|
41
|
+
export {
|
|
42
|
+
Chdir,
|
|
43
|
+
Chmod,
|
|
44
|
+
Create,
|
|
45
|
+
DirFS,
|
|
46
|
+
Mkdir,
|
|
47
|
+
Open,
|
|
48
|
+
OpenFile,
|
|
49
|
+
ReadFile,
|
|
50
|
+
Rename,
|
|
51
|
+
WriteFile,
|
|
52
|
+
MkdirAll,
|
|
53
|
+
RemoveAll,
|
|
54
|
+
} from './file_js.gs.js'
|
|
55
|
+
export {
|
|
56
|
+
LinkError,
|
|
57
|
+
O_APPEND,
|
|
58
|
+
O_CREATE,
|
|
59
|
+
O_EXCL,
|
|
60
|
+
O_RDONLY,
|
|
61
|
+
O_RDWR,
|
|
62
|
+
O_SYNC,
|
|
63
|
+
O_TRUNC,
|
|
64
|
+
O_WRONLY,
|
|
65
|
+
Readlink,
|
|
66
|
+
SEEK_CUR,
|
|
67
|
+
SEEK_END,
|
|
68
|
+
SEEK_SET,
|
|
69
|
+
TempDir,
|
|
70
|
+
UserCacheDir,
|
|
71
|
+
UserConfigDir,
|
|
72
|
+
UserHomeDir,
|
|
73
|
+
} from './file_constants_js.gs.js'
|
|
74
|
+
export {
|
|
75
|
+
DevNull,
|
|
76
|
+
Link,
|
|
77
|
+
NewFile,
|
|
78
|
+
Remove,
|
|
79
|
+
Stderr,
|
|
80
|
+
Stdin,
|
|
81
|
+
Stdout,
|
|
82
|
+
Symlink,
|
|
83
|
+
Truncate,
|
|
84
|
+
} from './file_unix_js.gs.js'
|
|
85
|
+
export { Chown, Chtimes, Lchown } from './file_posix_js.gs.js'
|
|
86
|
+
export { Getwd } from './getwd_js.gs.js'
|
|
87
|
+
export {
|
|
88
|
+
IsPathSeparator,
|
|
89
|
+
PathListSeparator,
|
|
90
|
+
PathSeparator,
|
|
91
|
+
} from './path_unix.gs.js'
|
|
92
|
+
export { Pipe } from './pipe_wasm.gs.js'
|
|
93
|
+
export {
|
|
94
|
+
Args,
|
|
95
|
+
Exit,
|
|
96
|
+
Getegid,
|
|
97
|
+
Geteuid,
|
|
98
|
+
Getgid,
|
|
99
|
+
Getgroups,
|
|
100
|
+
Getuid,
|
|
101
|
+
} from './proc.gs.js'
|
|
102
|
+
export { OpenInRoot, OpenRoot, Root } from './root_js.gs.js'
|
|
103
|
+
export { Lstat, Stat } from './stat_js.gs.js'
|
|
104
|
+
export { Hostname } from './sys.gs.js'
|
|
105
|
+
export { CreateTemp, MkdirTemp } from './tempfile.gs.js'
|
|
106
|
+
export {
|
|
107
|
+
DirEntry,
|
|
108
|
+
File,
|
|
109
|
+
FileInfo,
|
|
110
|
+
FileMode,
|
|
111
|
+
Getpagesize,
|
|
112
|
+
ModeAppend,
|
|
113
|
+
ModeCharDevice,
|
|
114
|
+
ModeDevice,
|
|
115
|
+
ModeDir,
|
|
116
|
+
ModeExclusive,
|
|
117
|
+
ModeIrregular,
|
|
118
|
+
ModeNamedPipe,
|
|
119
|
+
ModePerm,
|
|
120
|
+
ModeSetgid,
|
|
121
|
+
ModeSetuid,
|
|
122
|
+
ModeSocket,
|
|
123
|
+
ModeSticky,
|
|
124
|
+
ModeSymlink,
|
|
125
|
+
ModeTemporary,
|
|
126
|
+
ModeType,
|
|
127
|
+
SameFile,
|
|
128
|
+
} from './types_js.gs.js'
|