| 1 |
root |
1.6 |
BEGIN { $| = 1; print "1..76\n"; } |
| 2 |
root |
1.1 |
|
| 3 |
|
|
use utf8; |
| 4 |
root |
1.8 |
use Types::Serialiser; |
| 5 |
root |
1.1 |
use JSON::XS; |
| 6 |
|
|
|
| 7 |
|
|
our $test; |
| 8 |
|
|
sub ok($) { |
| 9 |
|
|
print $_[0] ? "" : "not ", "ok ", ++$test, "\n"; |
| 10 |
|
|
} |
| 11 |
|
|
|
| 12 |
|
|
ok (!defined JSON::XS->new->allow_nonref (1)->decode ('null')); |
| 13 |
|
|
ok (JSON::XS->new->allow_nonref (1)->decode ('true') == 1); |
| 14 |
|
|
ok (JSON::XS->new->allow_nonref (1)->decode ('false') == 0); |
| 15 |
|
|
|
| 16 |
root |
1.5 |
my $true = JSON::XS->new->allow_nonref (1)->decode ('true'); |
| 17 |
|
|
ok ($true eq 1); |
| 18 |
root |
1.8 |
ok (Types::Serialiser::is_bool $true); |
| 19 |
root |
1.5 |
my $false = JSON::XS->new->allow_nonref (1)->decode ('false'); |
| 20 |
|
|
ok ($false == !$true); |
| 21 |
root |
1.8 |
ok (Types::Serialiser::is_bool $false); |
| 22 |
root |
1.5 |
ok (++$false == 1); |
| 23 |
root |
1.8 |
ok (!Types::Serialiser::is_bool $false); |
| 24 |
root |
1.5 |
|
| 25 |
root |
1.1 |
ok (JSON::XS->new->allow_nonref (1)->decode ('5') == 5); |
| 26 |
|
|
ok (JSON::XS->new->allow_nonref (1)->decode ('-5') == -5); |
| 27 |
|
|
ok (JSON::XS->new->allow_nonref (1)->decode ('5e1') == 50); |
| 28 |
|
|
ok (JSON::XS->new->allow_nonref (1)->decode ('-333e+0') == -333); |
| 29 |
|
|
ok (JSON::XS->new->allow_nonref (1)->decode ('2.5') == 2.5); |
| 30 |
|
|
|
| 31 |
|
|
ok (JSON::XS->new->allow_nonref (1)->decode ('""') eq ""); |
| 32 |
root |
1.7 |
ok ('[1,2,3,4]' eq encode_json decode_json ('[1,2, 3,4]')); |
| 33 |
|
|
ok ('[{},[],[],{}]' eq encode_json decode_json ('[{},[], [ ] ,{ }]')); |
| 34 |
|
|
ok ('[{"1":[5]}]' eq encode_json [{1 => [5]}]); |
| 35 |
|
|
ok ('{"1":2,"3":4}' eq JSON::XS->new->canonical (1)->encode (decode_json '{ "1" : 2, "3" : 4 }')); |
| 36 |
|
|
ok ('{"1":2,"3":1.2}' eq JSON::XS->new->canonical (1)->encode (decode_json '{ "1" : 2, "3" : 1.2 }')); |
| 37 |
root |
1.3 |
|
| 38 |
root |
1.8 |
ok ('[true]' eq encode_json [Types::Serialiser::true]); |
| 39 |
|
|
ok ('[false]' eq encode_json [Types::Serialiser::false]); |
| 40 |
root |
1.7 |
ok ('[true]' eq encode_json [\1]); |
| 41 |
|
|
ok ('[false]' eq encode_json [\0]); |
| 42 |
|
|
ok ('[null]' eq encode_json [undef]); |
| 43 |
root |
1.8 |
ok ('[true]' eq encode_json [Types::Serialiser::true]); |
| 44 |
|
|
ok ('[false]' eq encode_json [Types::Serialiser::false]); |
| 45 |
root |
1.4 |
|
| 46 |
|
|
for $v (1, 2, 3, 5, -1, -2, -3, -4, 100, 1000, 10000, -999, -88, -7, 7, 88, 999, -1e5, 1e6, 1e7, 1e8) { |
| 47 |
root |
1.7 |
ok ($v == ((decode_json "[$v]")->[0])); |
| 48 |
|
|
ok ($v == ((decode_json encode_json [$v])->[0])); |
| 49 |
root |
1.4 |
} |
| 50 |
|
|
|
| 51 |
root |
1.7 |
ok (30123 == ((decode_json encode_json [30123])->[0])); |
| 52 |
|
|
ok (32123 == ((decode_json encode_json [32123])->[0])); |
| 53 |
|
|
ok (32456 == ((decode_json encode_json [32456])->[0])); |
| 54 |
|
|
ok (32789 == ((decode_json encode_json [32789])->[0])); |
| 55 |
|
|
ok (32767 == ((decode_json encode_json [32767])->[0])); |
| 56 |
|
|
ok (32768 == ((decode_json encode_json [32768])->[0])); |
| 57 |
root |
1.4 |
|
| 58 |
root |
1.6 |
my @sparse; @sparse[0,3] = (1, 4); |
| 59 |
root |
1.7 |
ok ("[1,null,null,4]" eq encode_json \@sparse); |
| 60 |
root |
1.6 |
|