| 
						|
								var test = require('tape')
							 | 
						|
								var _JSON = require('../')
							 | 
						|
								
							 | 
						|
								function clone (o) {
							 | 
						|
								  return JSON.parse(JSON.stringify(o))
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								var examples = {
							 | 
						|
								  simple: { foo: [], bar: {}, baz: Buffer.from('some binary data') },
							 | 
						|
								  just_buffer: Buffer.from('JUST A BUFFER'),
							 | 
						|
								  all_types: {
							 | 
						|
								    string:'hello',
							 | 
						|
								    number: 3145,
							 | 
						|
								    null: null,
							 | 
						|
								    object: {},
							 | 
						|
								    array: [],
							 | 
						|
								    boolean: true,
							 | 
						|
								    boolean2: false
							 | 
						|
								  },
							 | 
						|
								  foo: Buffer.from('foo'),
							 | 
						|
								  foo2: Buffer.from('foo2'),
							 | 
						|
								  escape: {
							 | 
						|
								    buffer: Buffer.from('x'),
							 | 
						|
								    string: _JSON.stringify(Buffer.from('x'))
							 | 
						|
								  },
							 | 
						|
								  escape2: {
							 | 
						|
								    buffer: Buffer.from('x'),
							 | 
						|
								    string: ':base64:'+ Buffer.from('x').toString('base64')
							 | 
						|
								  },
							 | 
						|
								  undefined: {
							 | 
						|
								    empty: undefined, test: true
							 | 
						|
								  },
							 | 
						|
								  undefined2: {
							 | 
						|
								    first: 1, empty: undefined, test: true
							 | 
						|
								  },
							 | 
						|
								  undefinedArray: {
							 | 
						|
								    array: [undefined, 1, 'two']
							 | 
						|
								  },
							 | 
						|
								  fn: {
							 | 
						|
								    fn: function () {}    
							 | 
						|
								  },
							 | 
						|
								  undefined: undefined
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								for(k in examples)
							 | 
						|
								(function (value, k) { 
							 | 
						|
								  test(k, function (t) {
							 | 
						|
								    var s = _JSON.stringify(value)
							 | 
						|
								    console.log('parse', s)
							 | 
						|
								    if(JSON.stringify(value) !== undefined) {
							 | 
						|
								      console.log(s)
							 | 
						|
								      var _value = _JSON.parse(s)
							 | 
						|
								      t.deepEqual(clone(_value), clone(value))
							 | 
						|
								    }
							 | 
						|
								    else
							 | 
						|
								      t.equal(s, undefined)
							 | 
						|
								    t.end()
							 | 
						|
								  })
							 | 
						|
								})(examples[k], k)
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 |