mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-03 21:49:32 +01:00 
			
		
		
		
	add support for inequalities
This commit is contained in:
		
				
					committed by
					
						
						Martin Hořeňovský
					
				
			
			
				
	
			
			
			
						parent
						
							5a4dde4b5d
						
					
				
				
					commit
					37e1e24309
				
			@@ -58,6 +58,26 @@ namespace Detail {
 | 
				
			|||||||
            return !operator==( rhs, lhs );
 | 
					            return !operator==( rhs, lhs );
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        friend bool operator <= ( double lhs, Approx const& rhs )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          return lhs < rhs.m_value || lhs == rhs;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        friend bool operator <= ( Approx const& lhs, double rhs )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          return lhs.m_value < rhs || lhs == rhs;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        friend bool operator >= ( double lhs, Approx const& rhs )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          return lhs > rhs.m_value || lhs == rhs;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        friend bool operator >= ( Approx const& lhs, double rhs )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          return lhs.m_value > rhs || lhs == rhs;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Approx& epsilon( double newEpsilon ) {
 | 
					        Approx& epsilon( double newEpsilon ) {
 | 
				
			||||||
            m_epsilon = newEpsilon;
 | 
					            m_epsilon = newEpsilon;
 | 
				
			||||||
            return *this;
 | 
					            return *this;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,6 +39,36 @@ TEST_CASE
 | 
				
			|||||||
    REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) );
 | 
					    REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					TEST_CASE
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					 "Less-than inequalities with different epsilons",
 | 
				
			||||||
 | 
					 "[Approx]"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  double d = 1.23;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  REQUIRE( d <= Approx( 1.24 ) );
 | 
				
			||||||
 | 
					  REQUIRE( d <= Approx( 1.23 ) );
 | 
				
			||||||
 | 
					  REQUIRE_FALSE( d <= Approx( 1.22 ) );
 | 
				
			||||||
 | 
					  REQUIRE( d <= Approx( 1.22 ).epsilon(0.1) );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					TEST_CASE
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					 "Greater-than inequalities with different epsilons",
 | 
				
			||||||
 | 
					 "[Approx]"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  double d = 1.23;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  REQUIRE( d >= Approx( 1.22 ) );
 | 
				
			||||||
 | 
					  REQUIRE( d >= Approx( 1.23 ) );
 | 
				
			||||||
 | 
					  REQUIRE_FALSE( d >= Approx( 1.24 ) );
 | 
				
			||||||
 | 
					  REQUIRE( d >= Approx( 1.24 ).epsilon(0.1) );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
///////////////////////////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
TEST_CASE
 | 
					TEST_CASE
 | 
				
			||||||
(
 | 
					(
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user