#QUALITY by exept
authorClaus Gittinger <cg@exept.de>
Sun, 01 Dec 2019 05:29:01 +0100
changeset 2445 89e91f4ded0b
parent 2444 22686f6ec486
child 2446 528ee0f62aee
#QUALITY by exept class: RegressionTests::QDoubleTests added: #test_02b_addition changed: #test_04_relops
RegressionTests__QDoubleTests.st
--- a/RegressionTests__QDoubleTests.st	Sun Dec 01 05:28:52 2019 +0100
+++ b/RegressionTests__QDoubleTests.st	Sun Dec 01 05:29:01 2019 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "{ Package: 'stx:goodies/regression' }"
 
 "{ NameSpace: RegressionTests }"
@@ -164,6 +162,28 @@
     "Modified: / 05-06-2019 / 20:15:38 / Claus Gittinger"
 !
 
+test_02b_addition
+    |q1 q2 sum_q|
+
+    q1 := 1.0e20 asQDouble.
+    q2 := 1.0e-16 asQDouble.
+    sum_q := q1 + q2.
+    self assert:( sum_q - q1 = q2 ).
+    self assert:( sum_q - q2 = q1 ).
+
+    sum_q := sum_q + 1e-30.
+    self assert:( sum_q - q1 -q2 = 1e-30 ).
+
+    sum_q := sum_q + 1e10.
+    self assert:( sum_q - q1 - q2 - 1e10 = 1e-30 ).
+    self assert:( sum_q - q1 - q2 - 1e-30 = 1e10 ).
+
+    "
+     self run:#test_02b_addition
+     self new test_02b_addition
+    "
+!
+
 test_03_subtract
     |d1 d2 l1 l2 diff_l q1 q2 diff_d diff_q|
 
@@ -327,7 +347,28 @@
     self assert: (1.0 < (1.0 asQDouble + 1e-80)).
     self assert: (1.0 < (1.0 asQDouble + 1e-120)).
     self assert: (1.0 < (1.0 asQDouble + 1e-300)).
+    self assert: (1.0 < (1.0 asQDouble + 1e-308)).
+
+    self assert: (1.0 asQDouble < (1.0 asQDouble + 1e-40) ).
+    self assert: ((1.0 asQDouble + 1e-40) > 1.0 asQDouble ).
+    self assert: ((1.0 asQDouble + 1e-80) > 1.0 asQDouble ).
+    self assert: ((1.0 asQDouble + 1e-120) > 1.0 asQDouble ).
+    self assert: ((1.0 asQDouble + 1e-300) > 1.0 asQDouble ).
+    self assert: ((1.0 asQDouble + 1e-308) > 1.0 asQDouble ).
+
+    self assert: ((1.0 asQDouble + 1e-40) > 1.0).
+    self assert: (1.0 < (1.0 asQDouble + 1e-40)).
+    self assert: (1.0 < (1.0 asQDouble + 1e-80)).
+    self assert: (1.0 < (1.0 asQDouble + 1e-120)).
     self assert: (1.0 < (1.0 asQDouble + 1e-300)).
+    self assert: (1.0 < (1.0 asQDouble + 1e-300)).
+
+    self assert: (1.0  < (1.0 asQDouble + 1e-40) ).
+    self assert: ((1.0 asQDouble + 1e-40) > 1.0  ).
+    self assert: ((1.0 asQDouble + 1e-80) > 1.0  ).
+    self assert: ((1.0 asQDouble + 1e-120) > 1.0  ).
+    self assert: ((1.0 asQDouble + 1e-300) > 1.0  ).
+    self assert: ((1.0 asQDouble + 1e-308) > 1.0  ).
 
     self assert: (1e10 asQDouble + 1.0) = 10000000001.0.
     "/ that's the problem with Floats...
@@ -491,7 +532,7 @@
     "/ self assert:(q1 d0 - f1) abs < 0.00000001.
 
     "/ the first digits are (wolfram):
-    "/    2.688117141816135448412625551580013587361111877374192241519160861528028703490956491415887109721984571081167087... × 10^43
+    "/    2.688117141816135448412625551580013587361111877374192241519160861528028703490956491415887109721984571081167087... × 10^43
     "/ 100 exp
     "/    2.688117141816135448E+43
     "/ 100QD exp
@@ -886,3 +927,4 @@
 version_CVS
     ^ '$Header$'
 ! !
+