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} = 1; }
      7 
      8 use JSON -support_by_pp;
      9 
     10 eval q| require Math::BigInt |;
     11 
     12 
     13 SKIP: {
     14     skip "can't use JSON::XS.", 6, unless( JSON->backend->is_xs );
     15     skip "Can't load Math::BigInt.", 6 if ($@);
     16 
     17 my $json = new JSON;
     18 print $json->backend, "\n";
     19 
     20 $json->allow_nonref->allow_bignum(1);
     21 $json->convert_blessed->allow_blessed;
     22 
     23 my $num  = $json->decode(q|100000000000000000000000000000000000000|);
     24 
     25 isa_ok($num, 'Math::BigInt');
     26 is($num, '100000000000000000000000000000000000000');
     27 is($json->encode($num), '100000000000000000000000000000000000000');
     28 
     29 $num  = $json->decode(q|2.0000000000000000001|);
     30 
     31 isa_ok($num, 'Math::BigFloat');
     32 is($num, '2.0000000000000000001');
     33 is($json->encode($num), '2.0000000000000000001');
     34 
     35 
     36 }
     37