w-cluster 1.0.1 → 1.0.5
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/.eslintrc.js +1 -0
- package/.github/workflows/ci-test.yml +24 -0
- package/README.md +9 -4
- package/SECURITY.md +5 -0
- package/dist/w-cluster.umd.js +2 -2
- package/dist/w-cluster.umd.js.map +1 -1
- package/dist/w-cluster.wk.umd.js +1 -0
- package/docs/WCluster.mjs.html +1 -1
- package/docs/examples/ex-PCA.html +1 -1
- package/docs/examples/ex-cluster-k-means.html +14 -2
- package/docs/examples/ex-cluster-k-medoids.html +1 -1
- package/docs/examples/ex-cluster-webworker-k-medoids.html +1 -1
- package/docs/global.html +1 -1
- package/docs/index.html +1 -1
- package/examples/ex-cluster-k-means.html +13 -1
- package/examples/ex-cluster-webworker-k-medoids.html +1 -1
- package/g-PCA-nodeworker.mjs +32 -0
- package/g-PCA.mjs +0 -1
- package/g-cluster-nodeworker.mjs +106 -0
- package/g-cluster.mjs +0 -1
- package/package.json +3 -3
- package/src/WPCAMat.mjs +11 -0
- package/test/PCA.test.mjs +125 -0
- package/test/cluster.test.mjs +135 -0
- package/toolg/gDistRollup.mjs +6 -6
- package/toolg/gDocsExams.mjs +2 -2
- package/dist/w-cluster.ww.umd.js +0 -1
- package/test/createParseStream.test.mjs +0 -87
- package/test/createStringifyStream.test.mjs +0 -78
- package/test/parse.test.mjs +0 -135
- package/test/parseByStream.test.mjs +0 -135
- package/test/stringify.test.mjs +0 -135
- package/test/stringifyByStream.test.mjs +0 -135
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import fs from 'fs'
|
|
2
|
-
import assert from 'assert'
|
|
3
|
-
import genPm from 'wsemi/src/genPm.mjs'
|
|
4
|
-
import json from '../src/WJsonStream.mjs'
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
describe(`createParseStream`, function() {
|
|
8
|
-
|
|
9
|
-
async function test() {
|
|
10
|
-
let pm = genPm()
|
|
11
|
-
|
|
12
|
-
//fp
|
|
13
|
-
let fp = './temp-write.json'
|
|
14
|
-
|
|
15
|
-
//jarr
|
|
16
|
-
let jarr = `
|
|
17
|
-
[
|
|
18
|
-
{
|
|
19
|
-
"a": 123,
|
|
20
|
-
"b": 145.67,
|
|
21
|
-
"c": "test中文1",
|
|
22
|
-
"d": true
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"f": [
|
|
26
|
-
11,
|
|
27
|
-
"xyz",
|
|
28
|
-
false,
|
|
29
|
-
[
|
|
30
|
-
null
|
|
31
|
-
]
|
|
32
|
-
],
|
|
33
|
-
"g": {
|
|
34
|
-
"ga": 223,
|
|
35
|
-
"gb": 245.67,
|
|
36
|
-
"gc": "test中文2",
|
|
37
|
-
"gd": [
|
|
38
|
-
null
|
|
39
|
-
]
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
]
|
|
43
|
-
`
|
|
44
|
-
fs.writeFileSync(fp, jarr, 'utf8')
|
|
45
|
-
|
|
46
|
-
//createReadStream
|
|
47
|
-
let readerStream = fs.createReadStream(fp)
|
|
48
|
-
|
|
49
|
-
//createParseStream
|
|
50
|
-
let parseStream = json.createParseStream()
|
|
51
|
-
|
|
52
|
-
//onData
|
|
53
|
-
let res = []
|
|
54
|
-
parseStream.on('data', function(chunk) {
|
|
55
|
-
console.log('parseStream data chunk=', chunk)
|
|
56
|
-
res.push(chunk)
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
//onEnd
|
|
60
|
-
parseStream.on('end', function() {
|
|
61
|
-
console.log('parseStream end res', res)
|
|
62
|
-
fs.unlinkSync(fp)
|
|
63
|
-
pm.resolve(res)
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
//onError
|
|
67
|
-
parseStream.on('error', function(err) {
|
|
68
|
-
console.log('parseStream error', err)
|
|
69
|
-
fs.unlinkSync(fp)
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
//pipe
|
|
73
|
-
readerStream.pipe(parseStream)
|
|
74
|
-
|
|
75
|
-
return pm
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
let res = [
|
|
79
|
-
{ 'value': { 'a': 123, 'b': 145.67, 'c': 'test中文1', 'd': true }, 'key': 0 },
|
|
80
|
-
{ 'value': { 'f': [11, 'xyz', false, [null]], 'g': { 'ga': 223, 'gb': 245.67, 'gc': 'test中文2', 'gd': [null] } }, 'key': 1 }
|
|
81
|
-
]
|
|
82
|
-
it(`should return ${res} when run test`, async function() {
|
|
83
|
-
let r = await test()
|
|
84
|
-
assert.strict.deepStrictEqual(r, res)
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
})
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import fs from 'fs'
|
|
2
|
-
import assert from 'assert'
|
|
3
|
-
import genPm from 'wsemi/src/genPm.mjs'
|
|
4
|
-
import json from '../src/WJsonStream.mjs'
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
describe(`createStringifyStream`, function() {
|
|
8
|
-
|
|
9
|
-
async function test() {
|
|
10
|
-
let pm = genPm()
|
|
11
|
-
|
|
12
|
-
//fp
|
|
13
|
-
let fp = './temp-stringify.json'
|
|
14
|
-
|
|
15
|
-
//arr
|
|
16
|
-
let n = 4000 //4000000
|
|
17
|
-
let arr = []
|
|
18
|
-
for (let i = 1; i <= n; i++) {
|
|
19
|
-
arr.push({
|
|
20
|
-
key: 'k' + i,
|
|
21
|
-
value: {
|
|
22
|
-
a: 123,
|
|
23
|
-
b: 145.67,
|
|
24
|
-
c: 'test中文1',
|
|
25
|
-
d: true,
|
|
26
|
-
f: [11, 'xyz', false, [166, 197, 215]],
|
|
27
|
-
g: {
|
|
28
|
-
ga: 223,
|
|
29
|
-
gb: 245.67,
|
|
30
|
-
gc: 'test中文2',
|
|
31
|
-
gd: [66, 97, 115],
|
|
32
|
-
},
|
|
33
|
-
}
|
|
34
|
-
})
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
//createStringifyStream
|
|
38
|
-
let stringifyStream = json.createStringifyStream(arr)
|
|
39
|
-
|
|
40
|
-
//createWriteStream
|
|
41
|
-
let writerStream = fs.createWriteStream(fp)
|
|
42
|
-
|
|
43
|
-
//stringifyStream onData
|
|
44
|
-
stringifyStream.on('data', function(chunk) {
|
|
45
|
-
writerStream.write(chunk, 'UTF8')
|
|
46
|
-
})
|
|
47
|
-
|
|
48
|
-
//stringifyStream onEnd
|
|
49
|
-
stringifyStream.on('end', function() {
|
|
50
|
-
writerStream.end()
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
//writerStream onFinish
|
|
54
|
-
writerStream.on('finish', function() {
|
|
55
|
-
console.log('writerStream finish')
|
|
56
|
-
let res = fs.readFileSync(fp, 'utf8')
|
|
57
|
-
fs.unlinkSync(fp)
|
|
58
|
-
// console.log(res.length, res.substr(0, 200) + '...')
|
|
59
|
-
res = res.substr(0, 200) + '...'
|
|
60
|
-
pm.resolve(res)
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
//writerStream onError
|
|
64
|
-
writerStream.on('error', function(err) {
|
|
65
|
-
console.log('writerStream error', err)
|
|
66
|
-
fs.unlinkSync(fp)
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
return pm
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
let res = '[{"key":"k1","value":{"a":123,"b":145.67,"c":"test中文1","d":true,"f":[11,"xyz",false,[166,197,215]],"g":{"ga":223,"gb":245.67,"gc":"test中文2","gd":[66,97,115]}}},{"key":"k2","value":{"a":123,"b":145.67,...'
|
|
73
|
-
it(`should return ${res} when run test`, async function() {
|
|
74
|
-
let r = await test()
|
|
75
|
-
assert.strict.deepStrictEqual(r, res)
|
|
76
|
-
})
|
|
77
|
-
|
|
78
|
-
})
|
package/test/parse.test.mjs
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import json from '../src/WJsonStream.mjs'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
describe(`parse`, function() {
|
|
6
|
-
|
|
7
|
-
let obj = {
|
|
8
|
-
a: 123,
|
|
9
|
-
b: 145.67,
|
|
10
|
-
c: 'test中文1',
|
|
11
|
-
d: true,
|
|
12
|
-
f: [11, 'xyz', false, [166, 197, 215]],
|
|
13
|
-
g: {
|
|
14
|
-
ga: 223,
|
|
15
|
-
gb: 245.67,
|
|
16
|
-
gc: 'test中文2',
|
|
17
|
-
gd: [66, 97, 115],
|
|
18
|
-
},
|
|
19
|
-
}
|
|
20
|
-
let cobj = JSON.stringify(obj)
|
|
21
|
-
|
|
22
|
-
let arr = [
|
|
23
|
-
{
|
|
24
|
-
a: 123,
|
|
25
|
-
b: 145.67,
|
|
26
|
-
c: 'test中文1',
|
|
27
|
-
d: true,
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
f: [11, 'xyz', false, [166, 197, 215]],
|
|
31
|
-
g: {
|
|
32
|
-
ga: 223,
|
|
33
|
-
gb: 245.67,
|
|
34
|
-
gc: 'test中文2',
|
|
35
|
-
gd: [66, 97, 115],
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
]
|
|
39
|
-
let carr = JSON.stringify(arr)
|
|
40
|
-
|
|
41
|
-
it(`should return ${cobj} when json.parse('${cobj}')`, async function() {
|
|
42
|
-
let r = await json.parse(cobj)
|
|
43
|
-
assert.strict.deepStrictEqual(r, obj)
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
it(`should return ${carr} when json.parse('${carr}')`, async function() {
|
|
47
|
-
let r = await json.parse(carr)
|
|
48
|
-
assert.strict.deepStrictEqual(r, arr)
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
it(`should return [1, '3', 'abc'] when input [1,"3","abc"]`, async function() {
|
|
52
|
-
let r = await json.parse('[1,"3","abc"]')
|
|
53
|
-
let rr = [1, '3', 'abc']
|
|
54
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
it(`should return [1, '', null, null, [], {}, '3', 'abc'] when input '[1,"",null,null,[],{},"3","abc"]'`, async function() {
|
|
58
|
-
let r = await json.parse('[1,"",null,null,[],{},"3","abc"]')
|
|
59
|
-
let rr = [1, '', null, null, [], {}, '3', 'abc']
|
|
60
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
it(`should return { a: 12.34, b: 'abc' } when input '{"a":12.34,"b":"abc"}'`, async function() {
|
|
64
|
-
let r = await json.parse('{"a":12.34,"b":"abc"}')
|
|
65
|
-
let rr = { a: 12.34, b: 'abc' }
|
|
66
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
it(`should return { a: 12.34, b: 'abc', c: '', d: null, f: [], g: {} } when input '{"a":12.34,"b":"abc","c":"","d":null,"f":[],"g":{}}'`, async function() {
|
|
70
|
-
let r = await json.parse('{"a":12.34,"b":"abc","c":"","d":null,"f":[],"g":{}}')
|
|
71
|
-
let rr = { a: 12.34, b: 'abc', c: '', d: null, f: [], g: {} }
|
|
72
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
it(`should return 123 when input '123'`, async function() {
|
|
76
|
-
let r = await json.parse('123')
|
|
77
|
-
let rr = 123
|
|
78
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
it(`should return 123.456 when input '123.456'`, async function() {
|
|
82
|
-
let r = await json.parse('123.456')
|
|
83
|
-
let rr = 123.456
|
|
84
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
it(`should return '123' when input '"123"'`, async function() {
|
|
88
|
-
let r = await json.parse('"123"')
|
|
89
|
-
let rr = '123'
|
|
90
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
it(`should return '123.456' when input '"123.456"'`, async function() {
|
|
94
|
-
let r = await json.parse('"123.456"')
|
|
95
|
-
let rr = '123.456'
|
|
96
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
it(`sould return true when input 'true'`, async function() {
|
|
100
|
-
let r = await json.parse('true')
|
|
101
|
-
let rr = true
|
|
102
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
it(`sould return '' when input '""'`, async function() {
|
|
106
|
-
let r = await json.parse('""')
|
|
107
|
-
let rr = ''
|
|
108
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
109
|
-
})
|
|
110
|
-
|
|
111
|
-
it(`should return [] when input '[]'`, async function() {
|
|
112
|
-
let r = await json.parse('[]')
|
|
113
|
-
let rr = []
|
|
114
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
it(`should return {} when input '{}'`, async function() {
|
|
118
|
-
let r = await json.parse('{}')
|
|
119
|
-
let rr = {}
|
|
120
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
121
|
-
})
|
|
122
|
-
|
|
123
|
-
it(`should return null when input 'null'`, async function() {
|
|
124
|
-
let r = await json.parse('null')
|
|
125
|
-
let rr = null
|
|
126
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
it(`should return {} when input ''`, async function() {
|
|
130
|
-
let r = await json.parse('')
|
|
131
|
-
let rr = {}
|
|
132
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
133
|
-
})
|
|
134
|
-
|
|
135
|
-
})
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import json from '../src/WJsonStream.mjs'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
describe(`parseByStream`, function() {
|
|
6
|
-
|
|
7
|
-
let obj = {
|
|
8
|
-
a: 123,
|
|
9
|
-
b: 145.67,
|
|
10
|
-
c: 'test中文1',
|
|
11
|
-
d: true,
|
|
12
|
-
f: [11, 'xyz', false, [166, 197, 215]],
|
|
13
|
-
g: {
|
|
14
|
-
ga: 223,
|
|
15
|
-
gb: 245.67,
|
|
16
|
-
gc: 'test中文2',
|
|
17
|
-
gd: [66, 97, 115],
|
|
18
|
-
},
|
|
19
|
-
}
|
|
20
|
-
let cobj = JSON.stringify(obj)
|
|
21
|
-
|
|
22
|
-
let arr = [
|
|
23
|
-
{
|
|
24
|
-
a: 123,
|
|
25
|
-
b: 145.67,
|
|
26
|
-
c: 'test中文1',
|
|
27
|
-
d: true,
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
f: [11, 'xyz', false, [166, 197, 215]],
|
|
31
|
-
g: {
|
|
32
|
-
ga: 223,
|
|
33
|
-
gb: 245.67,
|
|
34
|
-
gc: 'test中文2',
|
|
35
|
-
gd: [66, 97, 115],
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
]
|
|
39
|
-
let carr = JSON.stringify(arr)
|
|
40
|
-
|
|
41
|
-
it(`should return ${cobj} when json.parseByStream('${cobj}')`, async function() {
|
|
42
|
-
let r = await json.parseByStream(cobj)
|
|
43
|
-
assert.strict.deepStrictEqual(r, obj)
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
it(`should return ${carr} when json.parseByStream('${carr}')`, async function() {
|
|
47
|
-
let r = await json.parseByStream(carr)
|
|
48
|
-
assert.strict.deepStrictEqual(r, arr)
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
it(`should return [1, '3', 'abc'] when input [1,"3","abc"]`, async function() {
|
|
52
|
-
let r = await json.parseByStream('[1,"3","abc"]')
|
|
53
|
-
let rr = [1, '3', 'abc']
|
|
54
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
it(`should return [1, '', null, null, [], {}, '3', 'abc'] when input '[1,"",null,null,[],{},"3","abc"]'`, async function() {
|
|
58
|
-
let r = await json.parseByStream('[1,"",null,null,[],{},"3","abc"]')
|
|
59
|
-
let rr = [1, '', null, null, [], {}, '3', 'abc']
|
|
60
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
it(`should return { a: 12.34, b: 'abc' } when input '{"a":12.34,"b":"abc"}'`, async function() {
|
|
64
|
-
let r = await json.parseByStream('{"a":12.34,"b":"abc"}')
|
|
65
|
-
let rr = { a: 12.34, b: 'abc' }
|
|
66
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
it(`should return { a: 12.34, b: 'abc', c: '', d: null, f: [], g: {} } when input '{"a":12.34,"b":"abc","c":"","d":null,"f":[],"g":{}}'`, async function() {
|
|
70
|
-
let r = await json.parseByStream('{"a":12.34,"b":"abc","c":"","d":null,"f":[],"g":{}}')
|
|
71
|
-
let rr = { a: 12.34, b: 'abc', c: '', d: null, f: [], g: {} }
|
|
72
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
it(`should return 123 when input '123'`, async function() {
|
|
76
|
-
let r = await json.parseByStream('123')
|
|
77
|
-
let rr = 123
|
|
78
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
it(`should return 123.456 when input '123.456'`, async function() {
|
|
82
|
-
let r = await json.parseByStream('123.456')
|
|
83
|
-
let rr = 123.456
|
|
84
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
it(`should return '123' when input '"123"'`, async function() {
|
|
88
|
-
let r = await json.parseByStream('"123"')
|
|
89
|
-
let rr = '123'
|
|
90
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
it(`should return '123.456' when input '"123.456"'`, async function() {
|
|
94
|
-
let r = await json.parseByStream('"123.456"')
|
|
95
|
-
let rr = '123.456'
|
|
96
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
it(`sould return true when input 'true'`, async function() {
|
|
100
|
-
let r = await json.parseByStream('true')
|
|
101
|
-
let rr = true
|
|
102
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
it(`sould return '' when input '""'`, async function() {
|
|
106
|
-
let r = await json.parseByStream('""')
|
|
107
|
-
let rr = ''
|
|
108
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
109
|
-
})
|
|
110
|
-
|
|
111
|
-
it(`should return [] when input '[]'`, async function() {
|
|
112
|
-
let r = await json.parseByStream('[]')
|
|
113
|
-
let rr = []
|
|
114
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
it(`should return {} when input '{}'`, async function() {
|
|
118
|
-
let r = await json.parseByStream('{}')
|
|
119
|
-
let rr = {}
|
|
120
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
121
|
-
})
|
|
122
|
-
|
|
123
|
-
it(`should return null when input 'null'`, async function() {
|
|
124
|
-
let r = await json.parseByStream('null')
|
|
125
|
-
let rr = null
|
|
126
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
it(`should return {} when input ''`, async function() {
|
|
130
|
-
let r = await json.parseByStream('')
|
|
131
|
-
let rr = {}
|
|
132
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
133
|
-
})
|
|
134
|
-
|
|
135
|
-
})
|
package/test/stringify.test.mjs
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import json from '../src/WJsonStream.mjs'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
describe(`stringify`, function() {
|
|
6
|
-
|
|
7
|
-
let obj = {
|
|
8
|
-
a: 123,
|
|
9
|
-
b: 145.67,
|
|
10
|
-
c: 'test中文1',
|
|
11
|
-
d: true,
|
|
12
|
-
f: [11, 'xyz', false, [166, 197, 215]],
|
|
13
|
-
g: {
|
|
14
|
-
ga: 223,
|
|
15
|
-
gb: 245.67,
|
|
16
|
-
gc: 'test中文2',
|
|
17
|
-
gd: [66, 97, 115],
|
|
18
|
-
},
|
|
19
|
-
}
|
|
20
|
-
let cobj = JSON.stringify(obj)
|
|
21
|
-
|
|
22
|
-
let arr = [
|
|
23
|
-
{
|
|
24
|
-
a: 123,
|
|
25
|
-
b: 145.67,
|
|
26
|
-
c: 'test中文1',
|
|
27
|
-
d: true,
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
f: [11, 'xyz', false, [166, 197, 215]],
|
|
31
|
-
g: {
|
|
32
|
-
ga: 223,
|
|
33
|
-
gb: 245.67,
|
|
34
|
-
gc: 'test中文2',
|
|
35
|
-
gd: [66, 97, 115],
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
]
|
|
39
|
-
let carr = JSON.stringify(arr)
|
|
40
|
-
|
|
41
|
-
it(`should return '${cobj}' when json.stringify(${cobj})`, async function() {
|
|
42
|
-
let r = await json.stringify(obj)
|
|
43
|
-
assert.strict.deepStrictEqual(r, cobj)
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
it(`should return '${carr}' when json.stringify(${carr})`, async function() {
|
|
47
|
-
let r = await json.stringify(arr)
|
|
48
|
-
assert.strict.deepStrictEqual(r, carr)
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
it(`should return '[1,"3","abc"]' when input [1, '3', 'abc']`, async function() {
|
|
52
|
-
let r = await json.stringify([1, '3', 'abc'])
|
|
53
|
-
let rr = '[1,"3","abc"]'
|
|
54
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
it(`should return '[1,"",null,null,[],{},"3","abc"]' when input [1, '', null, undefined, [], {}, '3', 'abc']`, async function() {
|
|
58
|
-
let r = await json.stringify([1, '', null, undefined, [], {}, '3', 'abc'])
|
|
59
|
-
let rr = '[1,"",null,null,[],{},"3","abc"]'
|
|
60
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
it(`should return '{"a":12.34,"b":"abc"}' when input { a: 12.34, b: 'abc' }`, async function() {
|
|
64
|
-
let r = await json.stringify({ a: 12.34, b: 'abc' })
|
|
65
|
-
let rr = '{"a":12.34,"b":"abc"}'
|
|
66
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
it(`should return '{"a":12.34,"b":"abc","c":"","d":null,"f":[],"g":{}}' when input { a: 12.34, b: 'abc', c: '', d: null, e: undefined, f: [], g: {} }`, async function() {
|
|
70
|
-
let r = await json.stringify({ a: 12.34, b: 'abc', c: '', d: null, e: undefined, f: [], g: {} })
|
|
71
|
-
let rr = '{"a":12.34,"b":"abc","c":"","d":null,"f":[],"g":{}}'
|
|
72
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
it(`should return '123' when input 123`, async function() {
|
|
76
|
-
let r = await json.stringify(123)
|
|
77
|
-
let rr = '123'
|
|
78
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
it(`should return '123.456' when input 123.456`, async function() {
|
|
82
|
-
let r = await json.stringify(123.456)
|
|
83
|
-
let rr = '123.456'
|
|
84
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
it(`should return '"123"' when input '123'`, async function() {
|
|
88
|
-
let r = await json.stringify('123')
|
|
89
|
-
let rr = '"123"'
|
|
90
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
it(`should return '"123.456"' when input '123.456'`, async function() {
|
|
94
|
-
let r = await json.stringify('123.456')
|
|
95
|
-
let rr = '"123.456"'
|
|
96
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
it(`sould return 'true' when input true`, async function() {
|
|
100
|
-
let r = await json.stringify(true)
|
|
101
|
-
let rr = 'true'
|
|
102
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
it(`sould return '""' when input ''`, async function() {
|
|
106
|
-
let r = await json.stringify('')
|
|
107
|
-
let rr = '""'
|
|
108
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
109
|
-
})
|
|
110
|
-
|
|
111
|
-
it(`should return '[]' when input []`, async function() {
|
|
112
|
-
let r = await json.stringify([])
|
|
113
|
-
let rr = '[]'
|
|
114
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
it(`should return '{}' when input {}`, async function() {
|
|
118
|
-
let r = await json.stringify({})
|
|
119
|
-
let rr = '{}'
|
|
120
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
121
|
-
})
|
|
122
|
-
|
|
123
|
-
it(`should return 'null' when input null`, async function() {
|
|
124
|
-
let r = await json.stringify(null)
|
|
125
|
-
let rr = 'null'
|
|
126
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
it(`should return '' when input undefined`, async function() {
|
|
130
|
-
let r = await json.stringify(undefined)
|
|
131
|
-
let rr = ''
|
|
132
|
-
assert.strict.deepStrictEqual(r, rr)
|
|
133
|
-
})
|
|
134
|
-
|
|
135
|
-
})
|