From 5e2c05e6c289d2ed09f9cf5308231afddc1c2e9b Mon Sep 17 00:00:00 2001
From: P. J. McDermott <pj@pehjota.net>
Date: Thu, 05 Jan 2017 03:45:54 -0500
Subject: t/10_dadd.t: New file

---
(limited to '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)");
--
cgit v0.9.1