@@ -11,77 +11,84 @@ import (
1111func TestCompleteJSON_base (t * testing.T ) {
1212 streamingJSONCase := map [string ]string {
1313 // test case: basic object properity
14- `{` : `{}` , // mirror stack: [], should remove from stack: [], should push into mirror stack: [`}`]
15- `{}` : `{}` , // mirror stack: [], should remove from stack: [], should push into mirror stack: []
16- `{"` : `{"":null}` , // mirror stack: [`}`], should remove from stack: [], should push into mirror stack: [`"`, `:`, `n`, `u`, `l`, `l`]
17- `{""` : `{"":null}` , // mirror stack: [`"`, `:`, `n`, `u`, `l`, `l`,`}`], should remove from stack: [`"`], should push into mirror stack: []
18- `{"a` : `{"a":null}` ,
19- `{"a"` : `{"a":null}` ,
20- `{"a":` : `{"a":null}` ,
21- `{"a":n` : `{"a":null}` ,
22- `{"a":nu` : `{"a":null}` ,
23- `{"a":nul` : `{"a":null}` ,
24- `{"a":null` : `{"a":null}` ,
25- `{"a":null,` : `{"a":null}` ,
26- `{"a":t` : `{"a":true}` ,
27- `{"a":tr` : `{"a":true}` ,
28- `{"a":tru` : `{"a":true}` ,
29- `{"a":true` : `{"a":true}` ,
30- `{"a":true,` : `{"a":true}` ,
31- `{"a":f` : `{"a":false}` ,
32- `{"a":fa` : `{"a":false}` ,
33- `{"a":fal` : `{"a":false}` ,
34- `{"a":fals` : `{"a":false}` ,
35- `{"a":false` : `{"a":false}` ,
36- `{"a":false,` : `{"a":false}` ,
37- `{"a":-` : `{"a":0}` ,
38- `{"a":12` : `{"a":12}` ,
39- `{"a":-0` : `{"a":-0}` , // @TODO: should be 0, not -0
40- `{"a":-12` : `{"a":-12}` ,
41- `{"a":12,` : `{"a":12}` ,
42- `{"a":12.` : `{"a":12.0}` ,
43- `{"a":12.15` : `{"a":12.15}` ,
44- `{"a":12.15,` : `{"a":12.15}` ,
45- `{"a":-12.15,` : `{"a":-12.15}` ,
46- `{"a":-1.215e,` : `{"a":-1.215}` ,
47- `{"a":-1.215E,` : `{"a":-1.215}` ,
48- `{"a":-1.215e1,` : `{"a":-1.215e1}` ,
49- `{"a":-1.215e-1,` : `{"a":-1.215e-1}` ,
50- `{"a":-1.215e+1,` : `{"a":-1.215e+1}` ,
51- `{"a":-1.215E1,` : `{"a":-1.215E1}` ,
52- `{"a":-1.215E-1,` : `{"a":-1.215E-1}` ,
53- `{"a":-1.215E+1,` : `{"a":-1.215E+1}` ,
54- `{"a":-1.215e12` : `{"a":-1.215e12}` ,
55- `{"a":-1.215E12` : `{"a":-1.215E12}` ,
56- `{"a":-1.215e12,` : `{"a":-1.215e12}` ,
57- `{"a":-1.215E12,` : `{"a":-1.215E12}` ,
58- `{"a":"` : `{"a":""}` ,
59- `{"a":""` : `{"a":""}` ,
60- `{"a":"",` : `{"a":""}` ,
61- `{"a":"string` : `{"a":"string"}` ,
62- `{"a":"string"` : `{"a":"string"}` ,
63- `{"a":"string",` : `{"a":"string"}` ,
64- `{"a":"\u0` : `{"a":""}` ,
65- `{"a":"\u00` : `{"a":""}` ,
66- `{"a":"\u004` : `{"a":""}` ,
67- `{"a":"\u0049` : `{"a":"\u0049"}` ,
68- `{"a":"\u0049"` : `{"a":"\u0049"}` ,
69- `{"a":"\u0049",` : `{"a":"\u0049"}` ,
70- `{"a":"\u0049","b":"` : `{"a":"\u0049","b":""}` ,
71- `{"a":"\u0049","b":"\` : `{"a":"\u0049","b":""}` ,
72- `{"a":"\u0049","b":"\u` : `{"a":"\u0049","b":""}` ,
73- `{"a":"\u0049","b":"\u0` : `{"a":"\u0049","b":""}` ,
74- `{"a":"\u0049","b":"\u00` : `{"a":"\u0049","b":""}` ,
75- `{"a":"\u0049","b":"\u005` : `{"a":"\u0049","b":""}` ,
76- `{"a":"\u0049","b":"\u0050` : `{"a":"\u0049","b":"\u0050"}` ,
77- `{"a":"\u0049","b":"\u0050"` : `{"a":"\u0049","b":"\u0050"}` ,
78- `{"a":"\u0049","b":"\u0050"}` : `{"a":"\u0049","b":"\u0050"}` ,
79- `{"a":"\u0123",` : `{"a":"\u0123"}` ,
80- `{"a":"\u4567",` : `{"a":"\u4567"}` ,
81- `{"a":"\u89ab",` : `{"a":"\u89ab"}` ,
82- `{"a":"\u89AB",` : `{"a":"\u89AB"}` ,
83- `{"a":"\ucdef",` : `{"a":"\ucdef"}` ,
84- `{"a":"\uCDEF",` : `{"a":"\uCDEF"}` ,
14+ `{` : `{}` , // mirror stack: [], should remove from stack: [], should push into mirror stack: [`}`]
15+ `{}` : `{}` , // mirror stack: [], should remove from stack: [], should push into mirror stack: []
16+ `{"` : `{"":null}` , // mirror stack: [`}`], should remove from stack: [], should push into mirror stack: [`"`, `:`, `n`, `u`, `l`, `l`]
17+ `{""` : `{"":null}` , // mirror stack: [`"`, `:`, `n`, `u`, `l`, `l`,`}`], should remove from stack: [`"`], should push into mirror stack: []
18+ `{"a` : `{"a":null}` ,
19+ `{"a"` : `{"a":null}` ,
20+ `{"a":` : `{"a":null}` ,
21+ `{"a":n` : `{"a":null}` ,
22+ `{"a":nu` : `{"a":null}` ,
23+ `{"a":nul` : `{"a":null}` ,
24+ `{"a":null` : `{"a":null}` ,
25+ `{"a":null , "b` : `{"a":null , "b":null}` ,
26+ `{"a":t` : `{"a":true}` ,
27+ `{"a":tr` : `{"a":true}` ,
28+ `{"a":tru` : `{"a":true}` ,
29+ `{"a":true` : `{"a":true}` ,
30+ `{"a":true,` : `{"a":true}` ,
31+ `{"a":true , "b` : `{"a":true , "b":null}` ,
32+ `{"a":f` : `{"a":false}` ,
33+ `{"a":fa` : `{"a":false}` ,
34+ `{"a":fal` : `{"a":false}` ,
35+ `{"a":fals` : `{"a":false}` ,
36+ `{"a":false` : `{"a":false}` ,
37+ `{"a":false,` : `{"a":false}` ,
38+ `{"a":false , "b` : `{"a":false , "b":null}` ,
39+ `{"a":-` : `{"a":0}` ,
40+ `{"a":12` : `{"a":12}` ,
41+ `{"a":-0` : `{"a":-0}` , // @TODO: should be 0, not -0
42+ `{"a":-12` : `{"a":-12}` ,
43+ `{"a":12,` : `{"a":12}` ,
44+ `{"a":12.` : `{"a":12.0}` ,
45+ `{"a":12.15` : `{"a":12.15}` ,
46+ `{"a":12.15,` : `{"a":12.15}` ,
47+ `{"a":-12.15,` : `{"a":-12.15}` ,
48+ `{"a":-1.215e,` : `{"a":-1.215}` ,
49+ `{"a":-1.215E,` : `{"a":-1.215}` ,
50+ `{"a":-1.215e1,` : `{"a":-1.215e1}` ,
51+ `{"a":-1.215e-1,` : `{"a":-1.215e-1}` ,
52+ `{"a":-1.215e+1,` : `{"a":-1.215e+1}` ,
53+ `{"a":-1.215E1,` : `{"a":-1.215E1}` ,
54+ `{"a":-1.215E-1,` : `{"a":-1.215E-1}` ,
55+ `{"a":-1.215E+1,` : `{"a":-1.215E+1}` ,
56+ `{"a":-1.215e12` : `{"a":-1.215e12}` ,
57+ `{"a":-1.215E12` : `{"a":-1.215E12}` ,
58+ `{"a":-1.215e12,` : `{"a":-1.215e12}` ,
59+ `{"a":-1.215E12,` : `{"a":-1.215E12}` ,
60+ `{"a":"` : `{"a":""}` ,
61+ `{"a":""` : `{"a":""}` ,
62+ `{"a":"",` : `{"a":""}` ,
63+ `{"a":"string` : `{"a":"string"}` ,
64+ `{"a":"string"` : `{"a":"string"}` ,
65+ `{"a":"string",` : `{"a":"string"}` ,
66+ `{"a":"abcdefghijklmnopqrstuvwxyz",` : `{"a":"abcdefghijklmnopqrstuvwxyz"}` ,
67+ `{"a":"ABCDEFGHIJKLMNOPQRSTUVWXYZ",` : `{"a":"ABCDEFGHIJKLMNOPQRSTUVWXYZ"}` ,
68+ `{"a":"0123456789",` : `{"a":"0123456789"}` ,
69+ `{"a":"\u0` : `{"a":""}` ,
70+ `{"a":"\u00` : `{"a":""}` ,
71+ `{"a":"\u004` : `{"a":""}` ,
72+ `{"a":"\u0049` : `{"a":"\u0049"}` ,
73+ `{"a":"\u0049"` : `{"a":"\u0049"}` ,
74+ `{"a":"\u0049",` : `{"a":"\u0049"}` ,
75+ `{"a":"\u0049","b":"` : `{"a":"\u0049","b":""}` ,
76+ `{"a":"\u0049","b":"\` : `{"a":"\u0049","b":""}` ,
77+ `{"a":"\u0049","b":"\u` : `{"a":"\u0049","b":""}` ,
78+ `{"a":"\u0049","b":"\u0` : `{"a":"\u0049","b":""}` ,
79+ `{"a":"\u0049","b":"\u00` : `{"a":"\u0049","b":""}` ,
80+ `{"a":"\u0049","b":"\u005` : `{"a":"\u0049","b":""}` ,
81+ `{"a":"\u0049","b":"\u0050` : `{"a":"\u0049","b":"\u0050"}` ,
82+ `{"a":"\u0049","b":"\u0050"` : `{"a":"\u0049","b":"\u0050"}` ,
83+ `{"a":"\u0049","b":"\u0050"}` : `{"a":"\u0049","b":"\u0050"}` ,
84+ `{"a":"\u0123",` : `{"a":"\u0123"}` ,
85+ `{"a":"\u4567",` : `{"a":"\u4567"}` ,
86+ `{"a":"\u89ab",` : `{"a":"\u89ab"}` ,
87+ `{"a":"\u89AB",` : `{"a":"\u89AB"}` ,
88+ `{"a":"\ucdef",` : `{"a":"\ucdef"}` ,
89+ `{"a":"\ucdee",` : `{"a":"\ucdee"}` ,
90+ `{"a":"\uaaaa",` : `{"a":"\uaaaa"}` ,
91+ `{"a":"\uCDEF",` : `{"a":"\uCDEF"}` ,
8592
8693 // test case: escape character
8794 `{"\` : `{"":null}` ,
0 commit comments