Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80540 views
1
var test = require('tape');
2
var Parser = require('../');
3
4
var input = '{\n "string": "value",\n "number": 3,\n "object"';
5
var input2 = ': {\n "key": "vд"\n },\n "array": [\n -1,\n 12\n ]\n ';
6
var input3 = '"null": null, "true": true, "false": false, "frac": 3.14 }';
7
8
var offsets = [
9
[ 0, Parser.C.LEFT_BRACE ],
10
[ 4, Parser.C.STRING ],
11
[ 12, Parser.C.COLON ],
12
[ 14, Parser.C.STRING ],
13
[ 21, Parser.C.COMMA ],
14
[ 25, Parser.C.STRING ],
15
[ 33, Parser.C.COLON ],
16
[ 35, Parser.C.NUMBER ],
17
[ 36, Parser.C.COMMA ],
18
[ 40, Parser.C.STRING ],
19
[ 48, Parser.C.COLON ],
20
[ 50, Parser.C.LEFT_BRACE ],
21
[ 54, Parser.C.STRING ],
22
[ 59, Parser.C.COLON ],
23
[ 61, Parser.C.STRING ],
24
[ 69, Parser.C.RIGHT_BRACE ],
25
[ 70, Parser.C.COMMA ],
26
[ 74, Parser.C.STRING ],
27
[ 81, Parser.C.COLON ],
28
[ 83, Parser.C.LEFT_BRACKET ],
29
[ 87, Parser.C.NUMBER ],
30
[ 89, Parser.C.COMMA ],
31
[ 93, Parser.C.NUMBER ],
32
[ 98, Parser.C.RIGHT_BRACKET ],
33
[ 102, Parser.C.STRING ],
34
[ 108, Parser.C.COLON ],
35
[ 110, Parser.C.NULL ],
36
[ 114, Parser.C.COMMA ],
37
[ 116, Parser.C.STRING ],
38
[ 122, Parser.C.COLON ],
39
[ 124, Parser.C.TRUE ],
40
[ 128, Parser.C.COMMA ],
41
[ 130, Parser.C.STRING ],
42
[ 137, Parser.C.COLON ],
43
[ 139, Parser.C.FALSE ],
44
[ 144, Parser.C.COMMA ],
45
[ 146, Parser.C.STRING ],
46
[ 152, Parser.C.COLON ],
47
[ 154, Parser.C.NUMBER ],
48
[ 159, Parser.C.RIGHT_BRACE ]
49
];
50
51
test('offset', function(t) {
52
t.plan(offsets.length * 2 + 1);
53
54
var p = new Parser();
55
var i = 0;
56
p.onToken = function (token) {
57
t.equal(p.offset, offsets[i][0]);
58
t.equal(token, offsets[i][1]);
59
i++;
60
};
61
62
p.write(input);
63
p.write(input2);
64
p.write(input3);
65
66
t.equal(i, offsets.length);
67
});
68
69