[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)));
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [6523] Fix a unit test that failed with gcc-4.9.1,
Greg Chicares <=