diff options
Diffstat (limited to 'cpan/Math-BigInt/t/bnstr-mbf.t')
-rw-r--r-- | cpan/Math-BigInt/t/bnstr-mbf.t | 278 |
1 files changed, 278 insertions, 0 deletions
diff --git a/cpan/Math-BigInt/t/bnstr-mbf.t b/cpan/Math-BigInt/t/bnstr-mbf.t new file mode 100644 index 0000000000..d21051a915 --- /dev/null +++ b/cpan/Math-BigInt/t/bnstr-mbf.t @@ -0,0 +1,278 @@ +#!perl + +use strict; +use warnings; + +use Test::More tests => 460; + +use Math::BigFloat; + +while (<DATA>) { + s/#.*$//; # remove comments + s/\s+$//; # remove trailing whitespace + next unless length; # skip empty lines + + my ($x_str, $expected) = split /:/; + my ($x, $str); + + { + my $test = qq|\$x = Math::BigFloat -> new("$x_str");| + . qq| \$str = \$x -> bnstr();|; + + note "\n$test\n\n"; + eval $test; + + is($str, $expected, qq|input value is "$x_str"|); + is($x, $x_str, "input object is unmodified"); + } + +} + +__DATA__ + +NaN:NaN + +inf:inf +-inf:-inf + +0:0e+0 + +# positive numbers + +0.000000000001:1e-12 +0.00000000001:1e-11 +0.0000000001:1e-10 +0.000000001:1e-9 +0.00000001:1e-8 +0.0000001:1e-7 +0.000001:1e-6 +0.00001:1e-5 +0.0001:1e-4 +0.001:1e-3 +0.01:1e-2 +0.1:1e-1 +1:1e+0 +10:1e+1 +100:1e+2 +1000:1e+3 +10000:1e+4 +100000:1e+5 +1000000:1e+6 +10000000:1e+7 +100000000:1e+8 +1000000000:1e+9 +10000000000:1e+10 +100000000000:1e+11 +1000000000000:1e+12 + +0.0000000000012:1.2e-12 +0.000000000012:1.2e-11 +0.00000000012:1.2e-10 +0.0000000012:1.2e-9 +0.000000012:1.2e-8 +0.00000012:1.2e-7 +0.0000012:1.2e-6 +0.000012:1.2e-5 +0.00012:1.2e-4 +0.0012:1.2e-3 +0.012:1.2e-2 +0.12:1.2e-1 +1.2:1.2e+0 +12:1.2e+1 +120:1.2e+2 +1200:1.2e+3 +12000:1.2e+4 +120000:1.2e+5 +1200000:1.2e+6 +12000000:1.2e+7 +120000000:1.2e+8 +1200000000:1.2e+9 +12000000000:1.2e+10 +120000000000:1.2e+11 +1200000000000:1.2e+12 + +0.00000000000123:1.23e-12 +0.0000000000123:1.23e-11 +0.000000000123:1.23e-10 +0.00000000123:1.23e-9 +0.0000000123:1.23e-8 +0.000000123:1.23e-7 +0.00000123:1.23e-6 +0.0000123:1.23e-5 +0.000123:1.23e-4 +0.00123:1.23e-3 +0.0123:1.23e-2 +0.123:1.23e-1 +1.23:1.23e+0 +12.3:1.23e+1 +123:1.23e+2 +1230:1.23e+3 +12300:1.23e+4 +123000:1.23e+5 +1230000:1.23e+6 +12300000:1.23e+7 +123000000:1.23e+8 +1230000000:1.23e+9 +12300000000:1.23e+10 +123000000000:1.23e+11 +1230000000000:1.23e+12 + +0.000000000001234:1.234e-12 +0.00000000001234:1.234e-11 +0.0000000001234:1.234e-10 +0.000000001234:1.234e-9 +0.00000001234:1.234e-8 +0.0000001234:1.234e-7 +0.000001234:1.234e-6 +0.00001234:1.234e-5 +0.0001234:1.234e-4 +0.001234:1.234e-3 +0.01234:1.234e-2 +0.1234:1.234e-1 +1.234:1.234e+0 +12.34:1.234e+1 +123.4:1.234e+2 +1234:1.234e+3 +12340:1.234e+4 +123400:1.234e+5 +1234000:1.234e+6 +12340000:1.234e+7 +123400000:1.234e+8 +1234000000:1.234e+9 +12340000000:1.234e+10 +123400000000:1.234e+11 +1234000000000:1.234e+12 + +0.000003141592:3.141592e-6 +0.00003141592:3.141592e-5 +0.0003141592:3.141592e-4 +0.003141592:3.141592e-3 +0.03141592:3.141592e-2 +0.3141592:3.141592e-1 +3.141592:3.141592e+0 +31.41592:3.141592e+1 +314.1592:3.141592e+2 +3141.592:3.141592e+3 +31415.92:3.141592e+4 +314159.2:3.141592e+5 +3141592:3.141592e+6 + +# negative numbers + +-0.000000000001:-1e-12 +-0.00000000001:-1e-11 +-0.0000000001:-1e-10 +-0.000000001:-1e-9 +-0.00000001:-1e-8 +-0.0000001:-1e-7 +-0.000001:-1e-6 +-0.00001:-1e-5 +-0.0001:-1e-4 +-0.001:-1e-3 +-0.01:-1e-2 +-0.1:-1e-1 +-1:-1e+0 +-10:-1e+1 +-100:-1e+2 +-1000:-1e+3 +-10000:-1e+4 +-100000:-1e+5 +-1000000:-1e+6 +-10000000:-1e+7 +-100000000:-1e+8 +-1000000000:-1e+9 +-10000000000:-1e+10 +-100000000000:-1e+11 +-1000000000000:-1e+12 + +-0.0000000000012:-1.2e-12 +-0.000000000012:-1.2e-11 +-0.00000000012:-1.2e-10 +-0.0000000012:-1.2e-9 +-0.000000012:-1.2e-8 +-0.00000012:-1.2e-7 +-0.0000012:-1.2e-6 +-0.000012:-1.2e-5 +-0.00012:-1.2e-4 +-0.0012:-1.2e-3 +-0.012:-1.2e-2 +-0.12:-1.2e-1 +-1.2:-1.2e+0 +-12:-1.2e+1 +-120:-1.2e+2 +-1200:-1.2e+3 +-12000:-1.2e+4 +-120000:-1.2e+5 +-1200000:-1.2e+6 +-12000000:-1.2e+7 +-120000000:-1.2e+8 +-1200000000:-1.2e+9 +-12000000000:-1.2e+10 +-120000000000:-1.2e+11 +-1200000000000:-1.2e+12 + +-0.00000000000123:-1.23e-12 +-0.0000000000123:-1.23e-11 +-0.000000000123:-1.23e-10 +-0.00000000123:-1.23e-9 +-0.0000000123:-1.23e-8 +-0.000000123:-1.23e-7 +-0.00000123:-1.23e-6 +-0.0000123:-1.23e-5 +-0.000123:-1.23e-4 +-0.00123:-1.23e-3 +-0.0123:-1.23e-2 +-0.123:-1.23e-1 +-1.23:-1.23e+0 +-12.3:-1.23e+1 +-123:-1.23e+2 +-1230:-1.23e+3 +-12300:-1.23e+4 +-123000:-1.23e+5 +-1230000:-1.23e+6 +-12300000:-1.23e+7 +-123000000:-1.23e+8 +-1230000000:-1.23e+9 +-12300000000:-1.23e+10 +-123000000000:-1.23e+11 +-1230000000000:-1.23e+12 + +-0.000000000001234:-1.234e-12 +-0.00000000001234:-1.234e-11 +-0.0000000001234:-1.234e-10 +-0.000000001234:-1.234e-9 +-0.00000001234:-1.234e-8 +-0.0000001234:-1.234e-7 +-0.000001234:-1.234e-6 +-0.00001234:-1.234e-5 +-0.0001234:-1.234e-4 +-0.001234:-1.234e-3 +-0.01234:-1.234e-2 +-0.1234:-1.234e-1 +-1.234:-1.234e+0 +-12.34:-1.234e+1 +-123.4:-1.234e+2 +-1234:-1.234e+3 +-12340:-1.234e+4 +-123400:-1.234e+5 +-1234000:-1.234e+6 +-12340000:-1.234e+7 +-123400000:-1.234e+8 +-1234000000:-1.234e+9 +-12340000000:-1.234e+10 +-123400000000:-1.234e+11 +-1234000000000:-1.234e+12 + +-0.000003141592:-3.141592e-6 +-0.00003141592:-3.141592e-5 +-0.0003141592:-3.141592e-4 +-0.003141592:-3.141592e-3 +-0.03141592:-3.141592e-2 +-0.3141592:-3.141592e-1 +-3.141592:-3.141592e+0 +-31.41592:-3.141592e+1 +-314.1592:-3.141592e+2 +-3141.592:-3.141592e+3 +-31415.92:-3.141592e+4 +-314159.2:-3.141592e+5 +-3141592:-3.141592e+6 |