ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/JSON-XS/t/03_types.t
Revision: 1.8
Committed: Mon Oct 28 23:19:54 2013 UTC (10 years, 8 months ago) by root
Content type: application/x-troff
Branch: MAIN
CVS Tags: rel-4_0, rel-3_0, rel-4_01, rel-4_03, rel-4_02, rel-4_0_00, rel-3_01, rel-3_02, rel-3_03, rel-3_04, HEAD
Changes since 1.7: +8 -7 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
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