Changed Approx::toString() to be implemented in terms of toString( double ) (as proposed in #233)

This commit is contained in:
Phil Nash 2013-12-19 18:41:55 +00:00
parent fb90d38310
commit 1aa60fada9
6 changed files with 67 additions and 59 deletions

View File

@ -70,7 +70,7 @@ namespace Detail {
std::string toString() const {
std::ostringstream oss;
oss << "Approx( " << m_value << " )";
oss << "Approx( " << Catch::toString( m_value ) << " )";
return oss.str();
}

View File

@ -49,22 +49,22 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.float_nine_point_one == Approx( 9.11f ) )
with expansion:
9.1 == Approx( 9.11 )
9.1 == Approx( 9.1099996567 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.float_nine_point_one == Approx( 9.0f ) )
with expansion:
9.1 == Approx( 9 )
9.1 == Approx( 9.0 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.float_nine_point_one == Approx( 1 ) )
with expansion:
9.1 == Approx( 1 )
9.1 == Approx( 1.0 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.float_nine_point_one == Approx( 0 ) )
with expansion:
9.1 == Approx( 0 )
9.1 == Approx( 0.0 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.double_pi == Approx( 3.1415 ) )
@ -110,12 +110,12 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.float_nine_point_one != Approx( 9.1f ) )
with expansion:
9.1 != Approx( 9.1 )
9.1 != Approx( 9.1000003815 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.double_pi != Approx( 3.1415926535 ) )
with expansion:
3.1415926535 != Approx( 3.14159 )
3.1415926535 != Approx( 3.1415926535 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.str_hello != "hello" )

View File

@ -73,13 +73,13 @@ ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 1.23f == Approx( 1.23f ) )
with expansion:
1.23 == Approx( 1.23 )
1.23 == Approx( 1.2300000191 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 0.0f == Approx( 0.0f ) )
with expansion:
0 == Approx( 0 )
0 == Approx( 0.0 )
-------------------------------------------------------------------------------
Approximate comparisons with ints
@ -90,10 +90,14 @@ ApproxTests.cpp:<line number>
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 1 == Approx( 1 ) )
with expansion:
1 == Approx( 1.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 0 == Approx( 0 ) )
with expansion:
0 == Approx( 0.0 )
-------------------------------------------------------------------------------
Approximate comparisons with mixed numeric types
@ -105,19 +109,19 @@ ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 1.0f == Approx( 1 ) )
with expansion:
1 == Approx( 1 )
1 == Approx( 1.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 0 == Approx( dZero) )
with expansion:
0 == Approx( 0 )
0 == Approx( 0.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 0 == Approx( dSmall ).epsilon( 0.001 ) )
with expansion:
0 == Approx( 1e-05 )
0 == Approx( 0.00001 )
ApproxTests.cpp:<line number>:
PASSED:
@ -129,7 +133,7 @@ ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( dMedium == Approx( 1.234f ) )
with expansion:
1.234 == Approx( 1.234 )
1.234 == Approx( 1.2339999676 )
-------------------------------------------------------------------------------
Use a custom approx
@ -265,13 +269,13 @@ ConditionTests.cpp:<line number>:
PASSED:
REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
with expansion:
9.1 == Approx( 9.1 )
9.1 == Approx( 9.1000003815 )
ConditionTests.cpp:<line number>:
PASSED:
REQUIRE( data.double_pi == Approx( 3.1415926535 ) )
with expansion:
3.1415926535 == Approx( 3.14159 )
3.1415926535 == Approx( 3.1415926535 )
ConditionTests.cpp:<line number>:
PASSED:
@ -321,22 +325,22 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.float_nine_point_one == Approx( 9.11f ) )
with expansion:
9.1 == Approx( 9.11 )
9.1 == Approx( 9.1099996567 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.float_nine_point_one == Approx( 9.0f ) )
with expansion:
9.1 == Approx( 9 )
9.1 == Approx( 9.0 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.float_nine_point_one == Approx( 1 ) )
with expansion:
9.1 == Approx( 1 )
9.1 == Approx( 1.0 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.float_nine_point_one == Approx( 0 ) )
with expansion:
9.1 == Approx( 0 )
9.1 == Approx( 0.0 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.double_pi == Approx( 3.1415 ) )
@ -390,25 +394,25 @@ ConditionTests.cpp:<line number>:
PASSED:
REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
with expansion:
9.1 != Approx( 9.11 )
9.1 != Approx( 9.1099996567 )
ConditionTests.cpp:<line number>:
PASSED:
REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
with expansion:
9.1 != Approx( 9 )
9.1 != Approx( 9.0 )
ConditionTests.cpp:<line number>:
PASSED:
REQUIRE( data.float_nine_point_one != Approx( 1 ) )
with expansion:
9.1 != Approx( 1 )
9.1 != Approx( 1.0 )
ConditionTests.cpp:<line number>:
PASSED:
REQUIRE( data.float_nine_point_one != Approx( 0 ) )
with expansion:
9.1 != Approx( 0 )
9.1 != Approx( 0.0 )
ConditionTests.cpp:<line number>:
PASSED:
@ -454,12 +458,12 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.float_nine_point_one != Approx( 9.1f ) )
with expansion:
9.1 != Approx( 9.1 )
9.1 != Approx( 9.1000003815 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.double_pi != Approx( 3.1415926535 ) )
with expansion:
3.1415926535 != Approx( 3.14159 )
3.1415926535 != Approx( 3.1415926535 )
ConditionTests.cpp:<line number>: FAILED:
CHECK( data.str_hello != "hello" )

View File

@ -73,13 +73,13 @@ ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 1.23f == Approx( 1.23f ) )
with expansion:
1.23 == Approx( 1.23 )
1.23 == Approx( 1.2300000191 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 0.0f == Approx( 0.0f ) )
with expansion:
0 == Approx( 0 )
0 == Approx( 0.0 )
-------------------------------------------------------------------------------
Approximate comparisons with ints
@ -90,10 +90,14 @@ ApproxTests.cpp:<line number>
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 1 == Approx( 1 ) )
with expansion:
1 == Approx( 1.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 0 == Approx( 0 ) )
with expansion:
0 == Approx( 0.0 )
-------------------------------------------------------------------------------
Approximate comparisons with mixed numeric types
@ -105,19 +109,19 @@ ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 1.0f == Approx( 1 ) )
with expansion:
1 == Approx( 1 )
1 == Approx( 1.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 0 == Approx( dZero) )
with expansion:
0 == Approx( 0 )
0 == Approx( 0.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( 0 == Approx( dSmall ).epsilon( 0.001 ) )
with expansion:
0 == Approx( 1e-05 )
0 == Approx( 0.00001 )
ApproxTests.cpp:<line number>:
PASSED:
@ -129,7 +133,7 @@ ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( dMedium == Approx( 1.234f ) )
with expansion:
1.234 == Approx( 1.234 )
1.234 == Approx( 1.2339999676 )
-------------------------------------------------------------------------------
Use a custom approx
@ -265,13 +269,13 @@ ConditionTests.cpp:<line number>:
PASSED:
REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
with expansion:
9.1 == Approx( 9.1 )
9.1 == Approx( 9.1000003815 )
ConditionTests.cpp:<line number>:
PASSED:
REQUIRE( data.double_pi == Approx( 3.1415926535 ) )
with expansion:
3.1415926535 == Approx( 3.14159 )
3.1415926535 == Approx( 3.1415926535 )
ConditionTests.cpp:<line number>:
PASSED:

View File

@ -30,16 +30,16 @@ ConditionTests.cpp:<line number>
<failure message="7 == 0" type="CHECK">
ConditionTests.cpp:<line number>
</failure>
<failure message="9.1 == Approx( 9.11 )" type="CHECK">
<failure message="9.1 == Approx( 9.1099996567 )" type="CHECK">
ConditionTests.cpp:<line number>
</failure>
<failure message="9.1 == Approx( 9 )" type="CHECK">
<failure message="9.1 == Approx( 9.0 )" type="CHECK">
ConditionTests.cpp:<line number>
</failure>
<failure message="9.1 == Approx( 1 )" type="CHECK">
<failure message="9.1 == Approx( 1.0 )" type="CHECK">
ConditionTests.cpp:<line number>
</failure>
<failure message="9.1 == Approx( 0 )" type="CHECK">
<failure message="9.1 == Approx( 0.0 )" type="CHECK">
ConditionTests.cpp:<line number>
</failure>
<failure message="3.1415926535 == Approx( 3.1415 )" type="CHECK">
@ -66,10 +66,10 @@ ConditionTests.cpp:<line number>
<failure message="7 != 7" type="CHECK">
ConditionTests.cpp:<line number>
</failure>
<failure message="9.1 != Approx( 9.1 )" type="CHECK">
<failure message="9.1 != Approx( 9.1000003815 )" type="CHECK">
ConditionTests.cpp:<line number>
</failure>
<failure message="3.1415926535 != Approx( 3.14159 )" type="CHECK">
<failure message="3.1415926535 != Approx( 3.1415926535 )" type="CHECK">
ConditionTests.cpp:<line number>
</failure>
<failure message="&quot;hello&quot; != &quot;hello&quot;" type="CHECK">

View File

@ -76,7 +76,7 @@
1.23f == Approx( 1.23f )
</Original>
<Expanded>
1.23 == Approx( 1.23 )
1.23 == Approx( 1.2300000191 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ApproxTests.cpp" >
@ -84,7 +84,7 @@
0.0f == Approx( 0.0f )
</Original>
<Expanded>
0 == Approx( 0 )
0 == Approx( 0.0 )
</Expanded>
</Expression>
<OverallResult success="true"/>
@ -95,7 +95,7 @@
1 == Approx( 1 )
</Original>
<Expanded>
1 == Approx( 1 )
1 == Approx( 1.0 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ApproxTests.cpp" >
@ -103,7 +103,7 @@
0 == Approx( 0 )
</Original>
<Expanded>
0 == Approx( 0 )
0 == Approx( 0.0 )
</Expanded>
</Expression>
<OverallResult success="true"/>
@ -114,7 +114,7 @@
1.0f == Approx( 1 )
</Original>
<Expanded>
1 == Approx( 1 )
1 == Approx( 1.0 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ApproxTests.cpp" >
@ -122,7 +122,7 @@
0 == Approx( dZero)
</Original>
<Expanded>
0 == Approx( 0 )
0 == Approx( 0.0 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ApproxTests.cpp" >
@ -130,7 +130,7 @@
0 == Approx( dSmall ).epsilon( 0.001 )
</Original>
<Expanded>
0 == Approx( 1e-05 )
0 == Approx( 0.00001 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ApproxTests.cpp" >
@ -146,7 +146,7 @@
dMedium == Approx( 1.234f )
</Original>
<Expanded>
1.234 == Approx( 1.234 )
1.234 == Approx( 1.2339999676 )
</Expanded>
</Expression>
<OverallResult success="true"/>
@ -295,7 +295,7 @@
data.float_nine_point_one == Approx( 9.1f )
</Original>
<Expanded>
9.1 == Approx( 9.1 )
9.1 == Approx( 9.1000003815 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -303,7 +303,7 @@
data.double_pi == Approx( 3.1415926535 )
</Original>
<Expanded>
3.1415926535 == Approx( 3.14159 )
3.1415926535 == Approx( 3.1415926535 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -370,7 +370,7 @@
data.float_nine_point_one == Approx( 9.11f )
</Original>
<Expanded>
9.1 == Approx( 9.11 )
9.1 == Approx( 9.1099996567 )
</Expanded>
</Expression>
<Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -378,7 +378,7 @@
data.float_nine_point_one == Approx( 9.0f )
</Original>
<Expanded>
9.1 == Approx( 9 )
9.1 == Approx( 9.0 )
</Expanded>
</Expression>
<Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -386,7 +386,7 @@
data.float_nine_point_one == Approx( 1 )
</Original>
<Expanded>
9.1 == Approx( 1 )
9.1 == Approx( 1.0 )
</Expanded>
</Expression>
<Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -394,7 +394,7 @@
data.float_nine_point_one == Approx( 0 )
</Original>
<Expanded>
9.1 == Approx( 0 )
9.1 == Approx( 0.0 )
</Expanded>
</Expression>
<Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -469,7 +469,7 @@
data.float_nine_point_one != Approx( 9.11f )
</Original>
<Expanded>
9.1 != Approx( 9.11 )
9.1 != Approx( 9.1099996567 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -477,7 +477,7 @@
data.float_nine_point_one != Approx( 9.0f )
</Original>
<Expanded>
9.1 != Approx( 9 )
9.1 != Approx( 9.0 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -485,7 +485,7 @@
data.float_nine_point_one != Approx( 1 )
</Original>
<Expanded>
9.1 != Approx( 1 )
9.1 != Approx( 1.0 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -493,7 +493,7 @@
data.float_nine_point_one != Approx( 0 )
</Original>
<Expanded>
9.1 != Approx( 0 )
9.1 != Approx( 0.0 )
</Expanded>
</Expression>
<Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -552,7 +552,7 @@
data.float_nine_point_one != Approx( 9.1f )
</Original>
<Expanded>
9.1 != Approx( 9.1 )
9.1 != Approx( 9.1000003815 )
</Expanded>
</Expression>
<Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@ -560,7 +560,7 @@
data.double_pi != Approx( 3.1415926535 )
</Original>
<Expanded>
3.1415926535 != Approx( 3.14159 )
3.1415926535 != Approx( 3.1415926535 )
</Expanded>
</Expression>
<Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >