lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [6523] Fix a unit test that failed with gcc-4.9.1


From: Greg Chicares
Subject: [lmi-commits] [6523] Fix a unit test that failed with gcc-4.9.1
Date: Thu, 24 Mar 2016 21:20:12 +0000

Revision: 6523
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=6523
Author:   chicares
Date:     2016-03-24 21:20:11 +0000 (Thu, 24 Mar 2016)
Log Message:
-----------
Fix a unit test that failed with gcc-4.9.1

Modified Paths:
--------------
    lmi/trunk/ChangeLog
    lmi/trunk/tn_range_test.cpp

Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2016-03-22 21:13:19 UTC (rev 6522)
+++ lmi/trunk/ChangeLog 2016-03-24 21:20:11 UTC (rev 6523)
@@ -38725,3 +38725,9 @@
   product_data.cpp
 Add an extra specimen product for xsl-to-wxPdfDoc migration.
 
+20160324T2120Z <address@hidden> [454]
+
+  tn_range_test.cpp
+Fix a unit test that failed with gcc-4.9.1 . See:
+  http://lists.nongnu.org/archive/html/lmi/2016-03/msg00032.html
+

Modified: lmi/trunk/tn_range_test.cpp
===================================================================
--- lmi/trunk/tn_range_test.cpp 2016-03-22 21:13:19 UTC (rev 6522)
+++ lmi/trunk/tn_range_test.cpp 2016-03-24 21:20:11 UTC (rev 6523)
@@ -420,7 +420,15 @@
     // For IEEE 754's 64-bit double type, C99's footnote 302 seems to
     // suggest that these numbers should be neighbors. In that case,
     // they and their upper and lower neighbors should be the only
-    // four values permitted by range type 'r_surd'.
+    // four values permitted by range type 'r_surd', out of these
+    // five plausible candidates (to DECIMAL_DIG precision):
+    //      000000000011111111112
+    //      123456789012345678901
+    //   0.0699999999999999789058 = 0.07 / (1.0 + 2.0 * epsilon)
+    //   0.0699999999999999927836 = 0.07 / (1.0 + 1.0 * epsilon)
+    //   0.0700000000000000066613 = 0.07
+    //   0.0700000000000000205391 = 0.07 * (1.0 + 1.0 * epsilon)
+    //   0.0700000000000000344169 = 0.07 * (1.0 + 2.0 * epsilon)
 
     double volatile hi = 0.070000000000000001;
     double volatile lo = 0.069999999999999999;
@@ -435,14 +443,14 @@
     BOOST_TEST( surd0.is_valid( 0.070000000000000001));
     BOOST_TEST(!surd0.is_valid( 0.0700000000000001  ));
 
-    BOOST_TEST( surd0.is_valid( 0.07 * (1.0 + 1.0 * epsilon)));
-    BOOST_TEST( surd0.is_valid( 0.07 / (1.0 + 1.0 * epsilon)));
+    BOOST_TEST( surd0.is_valid( 0.0700000000000000205391)); // 0.07 * (1+ε)
+    BOOST_TEST( surd0.is_valid( 0.0699999999999999927836)); // 0.07 / (1+ε)
 
     // If exactly four values are permissible, then exactly one of
     // these is permissible.
     BOOST_TEST
-        (   surd0.is_valid( 0.07 * (1.0 + 2.0 * epsilon))
-        ^   surd0.is_valid( 0.07 / (1.0 + 2.0 * epsilon))
+        (   surd0.is_valid( 0.0700000000000000344169) // 0.07 * (1+2ε)
+        ^   surd0.is_valid( 0.0699999999999999789058) // 0.07 / (1+2ε)
         );
 
     BOOST_TEST(!surd0.is_valid( 0.07 * (1.0 + 3.0 * epsilon)));




reply via email to

[Prev in Thread] Current Thread [Next in Thread]