Home | History | Annotate | Download | only in 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 }
     42