diff options
author | P. J. McDermott <pj@pehjota.net> | 2017-01-05 03:45:54 (EST) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2017-01-05 03:45:54 (EST) |
commit | 5e2c05e6c289d2ed09f9cf5308231afddc1c2e9b (patch) | |
tree | 51c20a988d7d983a2a107ed962a5da0641c6f5ff | |
parent | 96b8f4135d834585e6354d6b54a0769710aba5be (diff) | |
download | Math-Decimal-FastPP-5e2c05e6c289d2ed09f9cf5308231afddc1c2e9b.zip Math-Decimal-FastPP-5e2c05e6c289d2ed09f9cf5308231afddc1c2e9b.tar.gz Math-Decimal-FastPP-5e2c05e6c289d2ed09f9cf5308231afddc1c2e9b.tar.bz2 |
t/10_dadd.t: New file
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | t/10_dadd.t | 55 |
2 files changed, 56 insertions, 0 deletions
@@ -6,4 +6,5 @@ Makefile.PL README lib/Math/Decimal/FastPP.pm t/00_compile.t +t/10_dadd.t t/20_nj-st-75-2017.t diff --git a/t/10_dadd.t b/t/10_dadd.t new file mode 100644 index 0000000..256fc12 --- /dev/null +++ b/t/10_dadd.t @@ -0,0 +1,55 @@ +# t/10_dadd.t - dadd tests +# +# Copyright (C) 2017 Patrick McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +use strict; +use warnings; + +use Test::More; +use Math::Decimal::FastPP; + +my @tests; +my $a; +my $b; +my $c; +my $i; + +@tests = ( + # a b c + [ 1.23, 4.56, 5.79], + [-1.23, 4.56, 3.33], + [-1.23, -4.56, -5.79], + [ 9.95, 0.52, 10.47], +); + +plan("tests" => scalar(@tests) + 1); + +foreach (@tests) { + ($a, $b, $c) = @{$_}; + is(dadd($a, $b), $c, sprintf("%5.2f + %5.2f = %5.2f", $a, $b, $c)); +} + +$a = 0; +for ($i = 0; $i < 10000; ++$i) { + $a = dadd($a, 0.01); +} +is($a, "100.00", "adding 0.01 10000 times"); +$a = 0; +for ($i = 0; $i < 10000; ++$i) { + $a += 0.01; +} +note("Using native floating-point arithmetic, the result is " . $a . + " (should be 100)"); |