ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/JSON-XS/t/03_types.t
(Generate patch)

Comparing JSON-XS/t/03_types.t (file contents):
Revision 1.6 by root, Mon Jul 23 22:57:40 2007 UTC vs.
Revision 1.8 by root, Mon Oct 28 23:19:54 2013 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines