summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MANIFEST1
-rw-r--r--t/12_dmul-dadd.t34
2 files changed, 35 insertions, 0 deletions
diff --git a/MANIFEST b/MANIFEST
index 2d52645..4742eab 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -8,4 +8,5 @@ lib/Math/Decimal/FastPP.pm
t/00_compile.t
t/10_dadd.t
t/11_dmul.t
+t/12_dmul-dadd.t
t/20_nj-st-75-2017.t
diff --git a/t/12_dmul-dadd.t b/t/12_dmul-dadd.t
new file mode 100644
index 0000000..b81afd4
--- /dev/null
+++ b/t/12_dmul-dadd.t
@@ -0,0 +1,34 @@
+# t/12_dmul-dadd.t - dmul and 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;
+
+plan("tests" => 2);
+
+# https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html#700
+is(dadd(dmul(3.34, 3.34), dmul(-4, dmul(1.22, 2.28))), ".0292",
+ "sum of products");
+note("Using native floating-point arithmetic, 3.34*3.34 + -4*1.22*2.28 = " .
+ (3.34*3.34 + -4*1.22*2.28) . " (should be 0.0292)");
+
+is(dadd(dmul(3.3, 3.3), dmul(-4, dmul(1.2, 2.2))), ".33", "sum of products");
+note("Using native floating-point arithmetic, 3.3*3.3 + -4*1.2*2.2 = " .
+ (3.3*3.3 + -4*1.2*2.2) . " (should be 0.33)");