mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Add float/int literal for Approx
This commit is contained in:
		 Henry Schreiner
					Henry Schreiner
				
			
				
					committed by
					
						 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
			
				
	
			
			
			 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
						parent
						
							d6c7392b24
						
					
				
				
					commit
					283e2e6d41
				
			| @@ -60,6 +60,12 @@ Class.tests.cpp:<line number>: failed: s == "world" for: "hello" == "world" | ||||
| Class.tests.cpp:<line number>: passed: s == "hello" for: "hello" == "hello" | ||||
| Class.tests.cpp:<line number>: failed: m_a == 2 for: 1 == 2 | ||||
| Class.tests.cpp:<line number>: passed: m_a == 1 for: 1 == 1 | ||||
| Approx.tests.cpp:<line number>: passed: d == 1.23_a for: 1.23 == Approx( 1.23 ) | ||||
| Approx.tests.cpp:<line number>: passed: d != 1.22_a for: 1.23 != Approx( 1.22 ) | ||||
| Approx.tests.cpp:<line number>: passed: -d == -1.23_a for: -1.23 == Approx( -1.23 ) | ||||
| Approx.tests.cpp:<line number>: passed: d == 1.2_a .epsilon(.1) for: 1.23 == Approx( 1.2 ) | ||||
| Approx.tests.cpp:<line number>: passed: d != 1.2_a .epsilon(.001) for: 1.23 != Approx( 1.2 ) | ||||
| Approx.tests.cpp:<line number>: passed: d == 1_a .epsilon(.3) for: 1.23 == Approx( 1.0 ) | ||||
| Misc.tests.cpp:<line number>: passed: with 1 message: 'that's not flying - that's failing in style' | ||||
| Misc.tests.cpp:<line number>: failed: explicitly with 1 message: 'to infinity and beyond' | ||||
| Tricky.tests.cpp:<line number>: failed: &o1 == &o2 for: 0x<hex digits> == 0x<hex digits> | ||||
| @@ -613,6 +619,8 @@ A string sent to stderr via clog | ||||
| Approx.tests.cpp:<line number>: passed: d == Approx( 1.23 ) for: 1.23 == Approx( 1.23 ) | ||||
| Approx.tests.cpp:<line number>: passed: d != Approx( 1.22 ) for: 1.23 != Approx( 1.22 ) | ||||
| Approx.tests.cpp:<line number>: passed: d != Approx( 1.24 ) for: 1.23 != Approx( 1.24 ) | ||||
| Approx.tests.cpp:<line number>: passed: d == 1.23_a for: 1.23 == Approx( 1.23 ) | ||||
| Approx.tests.cpp:<line number>: passed: d != 1.22_a for: 1.23 != Approx( 1.22 ) | ||||
| Approx.tests.cpp:<line number>: passed: Approx( d ) == 1.23 for: Approx( 1.23 ) == 1.23 | ||||
| Approx.tests.cpp:<line number>: passed: Approx( d ) != 1.22 for: Approx( 1.23 ) != 1.22 | ||||
| Approx.tests.cpp:<line number>: passed: Approx( d ) != 1.24 for: Approx( 1.23 ) != 1.24 | ||||
|   | ||||
| @@ -1096,6 +1096,6 @@ due to unexpected exception with message: | ||||
|   Why would you throw a std::string? | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  207 | 154 passed |  49 failed |  4 failed as expected | ||||
| assertions: 1073 | 944 passed | 108 failed | 21 failed as expected | ||||
| test cases:  208 | 155 passed |  49 failed |  4 failed as expected | ||||
| assertions: 1081 | 952 passed | 108 failed | 21 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -535,6 +535,48 @@ PASSED: | ||||
| with expansion: | ||||
|   1 == 1 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| A comparison that uses literals instead of the normal constructor | ||||
| ------------------------------------------------------------------------------- | ||||
| Approx.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| Approx.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE( d == 1.23_a ) | ||||
| with expansion: | ||||
|   1.23 == Approx( 1.23 ) | ||||
|  | ||||
| Approx.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE( d != 1.22_a ) | ||||
| with expansion: | ||||
|   1.23 != Approx( 1.22 ) | ||||
|  | ||||
| Approx.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE( -d == -1.23_a ) | ||||
| with expansion: | ||||
|   -1.23 == Approx( -1.23 ) | ||||
|  | ||||
| Approx.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE( d == 1.2_a .epsilon(.1) ) | ||||
| with expansion: | ||||
|   1.23 == Approx( 1.2 ) | ||||
|  | ||||
| Approx.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE( d != 1.2_a .epsilon(.001) ) | ||||
| with expansion: | ||||
|   1.23 != Approx( 1.2 ) | ||||
|  | ||||
| Approx.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE( d == 1_a .epsilon(.3) ) | ||||
| with expansion: | ||||
|   1.23 == Approx( 1.0 ) | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| A couple of nested sections followed by a failure | ||||
|   Outer | ||||
| @@ -4860,6 +4902,18 @@ PASSED: | ||||
| with expansion: | ||||
|   1.23 != Approx( 1.24 ) | ||||
|  | ||||
| Approx.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE( d == 1.23_a ) | ||||
| with expansion: | ||||
|   1.23 == Approx( 1.23 ) | ||||
|  | ||||
| Approx.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE( d != 1.22_a ) | ||||
| with expansion: | ||||
|   1.23 != Approx( 1.22 ) | ||||
|  | ||||
| Approx.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE( Approx( d ) == 1.23 ) | ||||
| @@ -9098,6 +9152,6 @@ Misc.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  207 | 141 passed |  62 failed |  4 failed as expected | ||||
| assertions: 1087 | 944 passed | 122 failed | 21 failed as expected | ||||
| test cases:  208 | 142 passed |  62 failed |  4 failed as expected | ||||
| assertions: 1095 | 952 passed | 122 failed | 21 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <testsuitesloose text artifact | ||||
| > | ||||
|   <testsuite name="<exe-name>" errors="17" failures="106" tests="1088" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|   <testsuite name="<exe-name>" errors="17" failures="106" tests="1096" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|     <testcase classname="<exe-name>.global" name="# A test name that starts with a #" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="#1005: Comparing pointer to int and long (NULL can be either on various systems)" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="#1027" time="{duration}"/> | ||||
| @@ -81,6 +81,7 @@ Class.tests.cpp:<line number> | ||||
|       </failure> | ||||
|     </testcase> | ||||
|     <testcase classname="<exe-name>.Fixture" name="A TEST_CASE_METHOD based test run that succeeds" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="A comparison that uses literals instead of the normal constructor" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="A couple of nested sections followed by a failure" time="{duration}"> | ||||
|       <failure type="FAIL"> | ||||
| to infinity and beyond | ||||
|   | ||||
| @@ -554,6 +554,57 @@ | ||||
|       </Expression> | ||||
|       <OverallResult success="true"/> | ||||
|     </TestCase> | ||||
|     <TestCase name="A comparison that uses literals instead of the normal constructor" tags="[Approx]" filename="projects/<exe-name>/UsageTests/Approx.tests.cpp" > | ||||
|       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Approx.tests.cpp" > | ||||
|         <Original> | ||||
|           d == 1.23_a | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           1.23 == Approx( 1.23 ) | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Approx.tests.cpp" > | ||||
|         <Original> | ||||
|           d != 1.22_a | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           1.23 != Approx( 1.22 ) | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Approx.tests.cpp" > | ||||
|         <Original> | ||||
|           -d == -1.23_a | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           -1.23 == Approx( -1.23 ) | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Approx.tests.cpp" > | ||||
|         <Original> | ||||
|           d == 1.2_a .epsilon(.1) | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           1.23 == Approx( 1.2 ) | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Approx.tests.cpp" > | ||||
|         <Original> | ||||
|           d != 1.2_a .epsilon(.001) | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           1.23 != Approx( 1.2 ) | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Approx.tests.cpp" > | ||||
|         <Original> | ||||
|           d == 1_a .epsilon(.3) | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           1.23 == Approx( 1.0 ) | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <OverallResult success="true"/> | ||||
|     </TestCase> | ||||
|     <TestCase name="A couple of nested sections followed by a failure" tags="[.][failing]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||
|       <Section name="Outer" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||
|         <Section name="Inner" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||
| @@ -5580,6 +5631,22 @@ A string sent to stderr via clog | ||||
|           1.23 != Approx( 1.24 ) | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Approx.tests.cpp" > | ||||
|         <Original> | ||||
|           d == 1.23_a | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           1.23 == Approx( 1.23 ) | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Approx.tests.cpp" > | ||||
|         <Original> | ||||
|           d != 1.22_a | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           1.23 != Approx( 1.22 ) | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Approx.tests.cpp" > | ||||
|         <Original> | ||||
|           Approx( d ) == 1.23 | ||||
| @@ -10024,7 +10091,7 @@ loose text artifact | ||||
|       </Section> | ||||
|       <OverallResult success="true"/> | ||||
|     </TestCase> | ||||
|     <OverallResults successes="944" failures="123" expectedFailures="21"/> | ||||
|     <OverallResults successes="952" failures="123" expectedFailures="21"/> | ||||
|   </Group> | ||||
|   <OverallResults successes="944" failures="122" expectedFailures="21"/> | ||||
|   <OverallResults successes="952" failures="122" expectedFailures="21"/> | ||||
| </Catch> | ||||
|   | ||||
| @@ -33,8 +33,21 @@ namespace { namespace ApproxTests { | ||||
|  | ||||
| #endif | ||||
|  | ||||
| using namespace Catch::literals; | ||||
|  | ||||
| /////////////////////////////////////////////////////////////////////////////// | ||||
| TEST_CASE( "A comparison that uses literals instead of the normal constructor", "[Approx]" ) { | ||||
|     double d = 1.23; | ||||
|  | ||||
|     REQUIRE( d == 1.23_a ); | ||||
|     REQUIRE( d != 1.22_a ); | ||||
|     REQUIRE( -d == -1.23_a ); | ||||
|  | ||||
|     REQUIRE( d == 1.2_a .epsilon(.1) ); | ||||
|     REQUIRE( d != 1.2_a .epsilon(.001) ); | ||||
|     REQUIRE( d == 1_a .epsilon(.3) ); | ||||
| } | ||||
|  | ||||
| TEST_CASE( "Some simple comparisons between doubles", "[Approx]" ) { | ||||
|     double d = 1.23; | ||||
|  | ||||
| @@ -42,6 +55,9 @@ TEST_CASE( "Some simple comparisons between doubles", "[Approx]" ) { | ||||
|     REQUIRE( d != Approx( 1.22 ) ); | ||||
|     REQUIRE( d != Approx( 1.24 ) ); | ||||
|  | ||||
|     REQUIRE( d == 1.23_a ); | ||||
|     REQUIRE( d != 1.22_a ); | ||||
|  | ||||
|     REQUIRE( Approx( d ) == 1.23 ); | ||||
|     REQUIRE( Approx( d ) != 1.22 ); | ||||
|     REQUIRE( Approx( d ) != 1.24 ); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user