1var test = require('tape'); 2var Parser = require('../'); 3 4var expected = [ 5 [ [], '' ], 6 [ [], 'Hello' ], 7 [ [], 'This"is' ], 8 [ [], '\r\n\f\t\\/"' ], 9 [ [], 'Λάμβδα' ], 10 [ [], '\\' ], 11 [ [], '/' ], 12 [ [], '"' ], 13 [ [ 0 ], 0 ], 14 [ [ 1 ], 1 ], 15 [ [ 2 ], -1 ], 16 [ [], [ 0, 1, -1 ] ], 17 [ [ 0 ], 1 ], 18 [ [ 1 ], 1.1 ], 19 [ [ 2 ], -1.1 ], 20 [ [ 3 ], -1 ], 21 [ [], [ 1, 1.1, -1.1, -1 ] ], 22 [ [ 0 ], -1 ], 23 [ [], [ -1 ] ], 24 [ [ 0 ], -0.1 ], 25 [ [], [ -0.1 ] ], 26 [ [ 0 ], 6.02e+23 ], 27 [ [], [ 6.02e+23 ] ], 28 [ [ 0 ], '7161093205057351174' ], 29 [ [], [ '7161093205057351174'] ] 30]; 31 32test('primitives', function (t) { 33 t.plan(25); 34 35 var p = new Parser(); 36 p.onValue = function (value) { 37 var keys = this.stack 38 .slice(1) 39 .map(function (item) { return item.key }) 40 .concat(this.key !== undefined ? this.key : []) 41 ; 42 t.deepEqual( 43 [ keys, value ], 44 expected.shift() 45 ); 46 }; 47 48 p.write('"""Hello""This\\"is""\\r\\n\\f\\t\\\\\\/\\""'); 49 p.write('"\\u039b\\u03ac\\u03bc\\u03b2\\u03b4\\u03b1"'); 50 p.write('"\\\\"'); 51 p.write('"\\/"'); 52 p.write('"\\""'); 53 p.write('[0,1,-1]'); 54 p.write('[1.0,1.1,-1.1,-1.0][-1][-0.1]'); 55 p.write('[6.02e23]'); 56 p.write('[7161093205057351174]'); 57}); 58