- add sources.
[platform/framework/web/crosswalk.git] / src / third_party / JSON / JSON-2.59 / t / e10_bignum.t
1
2 use strict;
3 use Test::More;
4 BEGIN { plan tests => 6 };
5
6 BEGIN { $ENV{PERL_JSON_BACKEND} = "JSON::backportPP"; }
7
8 use JSON -support_by_pp;
9
10 eval q| require Math::BigInt |;
11
12 SKIP: {
13     skip "Can't load Math::BigInt.", 6 if ($@);
14
15     my $v = Math::BigInt->VERSION;
16     $v =~ s/_.+$// if $v;
17
18 my $fix =  !$v       ? '+'
19           : $v < 1.6 ? '+'
20           : '';
21
22
23 my $json = new JSON;
24
25 $json->allow_nonref->allow_bignum(1);
26 $json->convert_blessed->allow_blessed;
27
28 my $num  = $json->decode(q|100000000000000000000000000000000000000|);
29
30 isa_ok($num, 'Math::BigInt');
31 is("$num", $fix . '100000000000000000000000000000000000000');
32 is($json->encode($num), $fix . '100000000000000000000000000000000000000');
33
34 $num  = $json->decode(q|2.0000000000000000001|);
35
36 isa_ok($num, 'Math::BigFloat');
37 is("$num", '2.0000000000000000001');
38 is($json->encode($num), '2.0000000000000000001');
39
40
41 }