$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r83518 - sandbox/rational/Test_Rationals
From: dansearles_at_[hidden]
Date: 2013-03-22 10:08:37
Author: mrdans
Date: 2013-03-22 10:08:36 EDT (Fri, 22 Mar 2013)
New Revision: 83518
URL: http://svn.boost.org/trac/boost/changeset/83518
Log:
Fixed 128 bit conditional code, added unary '-' test, added conversion test.
Text files modified: 
   sandbox/rational/Test_Rationals/RationalTestDriver.cpp |    36 ++++++++++++++++++++++++++----------    
   1 files changed, 26 insertions(+), 10 deletions(-)
Modified: sandbox/rational/Test_Rationals/RationalTestDriver.cpp
==============================================================================
--- sandbox/rational/Test_Rationals/RationalTestDriver.cpp	(original)
+++ sandbox/rational/Test_Rationals/RationalTestDriver.cpp	2013-03-22 10:08:36 EDT (Fri, 22 Mar 2013)
@@ -6,7 +6,7 @@
 //#include "boost/test/included/unit_test.hpp"
 
 #include <set>
-#include <boost/rational.hpp>
+#include <boost/rational.hpp>  // The new version
 
 #define TEST_LL_RATIONAL  1  // Need an 128bit int to test long long rational
 #if TEST_LL_RATIONAL
@@ -85,24 +85,24 @@
     unsigned long long FailCount(0);
 
     {  // No parameter constructor
-        RatS8wCK  ratValA;     VERIFY_RAT_VAL(ratValA, 0, 1);
+        RatS8wCK  ratValA;  VERIFY_RAT_VAL(ratValA, 0, 1);
         RatS8ref  ratValB;  VERIFY_RAT_VAL(ratValB, 0, 1);
-        RatS16wCK ratValC;     VERIFY_RAT_VAL(ratValC, 0, 1);
+        RatS16wCK ratValC;  VERIFY_RAT_VAL(ratValC, 0, 1);
         RatRefS16 ratValD;  VERIFY_RAT_VAL(ratValD, 0, 1);
-        RatS32wCK ratValE;     VERIFY_RAT_VAL(ratValE, 0, 1);
+        RatS32wCK ratValE;  VERIFY_RAT_VAL(ratValE, 0, 1);
         RatS32ref ratValF;  VERIFY_RAT_VAL(ratValF, 0, 1);
-        RatSLLwCK ratValG;     VERIFY_RAT_VAL(ratValG, 0, 1);
+        RatSLLwCK ratValG;  VERIFY_RAT_VAL(ratValG, 0, 1);
         RatSLLref ratValH;  VERIFY_RAT_VAL(ratValH, 0, 1);
     }
 
     {  // One parameter constructor
-        RatS8wCK  ratValA(57);     VERIFY_RAT_VAL(ratValA, 57, 1);
+        RatS8wCK  ratValA(57);  VERIFY_RAT_VAL(ratValA, 57, 1);
         RatS8ref  ratValB(57);  VERIFY_RAT_VAL(ratValB, 57, 1);
-        RatS16wCK ratValC(57);     VERIFY_RAT_VAL(ratValC, 57, 1);
+        RatS16wCK ratValC(57);  VERIFY_RAT_VAL(ratValC, 57, 1);
         RatRefS16 ratValD(57);  VERIFY_RAT_VAL(ratValD, 57, 1);
-        RatS32wCK ratValE(57);     VERIFY_RAT_VAL(ratValE, 57, 1);
+        RatS32wCK ratValE(57);  VERIFY_RAT_VAL(ratValE, 57, 1);
         RatS32ref ratValF(57);  VERIFY_RAT_VAL(ratValF, 57, 1);
-        RatSLLwCK ratValG(57);     VERIFY_RAT_VAL(ratValG, 57, 1);
+        RatSLLwCK ratValG(57);  VERIFY_RAT_VAL(ratValG, 57, 1);
         RatSLLref ratValH(57);  VERIFY_RAT_VAL(ratValH, 57, 1);
     }
 
@@ -770,6 +770,7 @@
     return FailCount;
 }
 
+#if TEST_LL_RATIONAL
 unsigned long long testRationalS64selected(void)  // Uses 128 bit reference 'int'
 {
     COUT << ENDL << "Starting 64 bit selected values rational operator tests" << ENDL; 
@@ -842,7 +843,7 @@
         {         
             if(*y != 0)        
             {
-                COUT << DEC << *x << "   " << *y << ENDL;
+                //COUT << DEC << *x << "   " << *y << ENDL;
                 try { valSet.insert( RatSLLwCK( *x, *y )); } catch (boost::rational_overflow Exception) { bool ovfl = true; }
                 try { valSet.insert( RatSLLwCK(-*x, *y )); } catch (boost::rational_overflow Exception) { bool ovfl = true; }
             }
@@ -1000,6 +1001,7 @@
 
     return FailCount;
 }
+#endif
 
 unsigned long long testSimpleAndQuick(void)
 {
@@ -1012,6 +1014,12 @@
         RatS32wCK ratValA(11*3,9*3), ratValB;
         ratValB = +ratValA;   VERIFY_RAT_VAL(ratValB,  11, 9);
     }
+    {  // Unary -
+        RatS32ref ratVala(11*3,9*3), ratValb;
+        ratValb = -ratVala;   VERIFY_RAT_VAL(ratValb, -11, 9);
+        RatS32wCK ratValA(11*3,9*3), ratValB;
+        ratValB = -ratValA;   VERIFY_RAT_VAL(ratValB, -11, 9);
+    }
     {  // Integer assignment
         RatS32ref ratVala(11*3,9*3);
         ratVala = 19;   VERIFY_RAT_VAL(ratVala,  19, 1);
@@ -1209,6 +1217,14 @@
         SHOULD_OVERFLOW_EXCEPTION( RatS32wCK ratValA(-2147483647 - 1,1); abs(ratValA) );
     }
 
+    {  // Type conversion template
+        RatS32ref A(19,4);
+        double fA = boost::rational_cast<double>(A);
+        RatS32wCK B(19,4);
+        double fB = boost::rational_cast<double>(B);
+        COUT << fA << "  " << fB << ENDL;
+    }
+
     COUT << ENDL;
     if(FailCount) COUT << "Fail count " << DEC << FailCount << "  " << ENDL;
     else          COUT << "All Passed" << ENDL;