mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-03 21:49:32 +01:00 
			
		
		
		
	Enable use of UnorderedRangeEquals with iterator+sentinel pairs
This commit is contained in:
		@@ -8,8 +8,10 @@
 | 
				
			|||||||
#ifndef CATCH_MATCHERS_RANGE_EQUALS_HPP_INCLUDED
 | 
					#ifndef CATCH_MATCHERS_RANGE_EQUALS_HPP_INCLUDED
 | 
				
			||||||
#define CATCH_MATCHERS_RANGE_EQUALS_HPP_INCLUDED
 | 
					#define CATCH_MATCHERS_RANGE_EQUALS_HPP_INCLUDED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <algorithm>
 | 
					#include <catch2/internal/catch_is_permutation.hpp>
 | 
				
			||||||
#include <catch2/matchers/catch_matchers_templated.hpp>
 | 
					#include <catch2/matchers/catch_matchers_templated.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <algorithm>
 | 
				
			||||||
#include <utility>
 | 
					#include <utility>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Catch {
 | 
					namespace Catch {
 | 
				
			||||||
@@ -73,7 +75,7 @@ namespace Catch {
 | 
				
			|||||||
            bool match( RangeLike&& rng ) const {
 | 
					            bool match( RangeLike&& rng ) const {
 | 
				
			||||||
                using std::begin;
 | 
					                using std::begin;
 | 
				
			||||||
                using std::end;
 | 
					                using std::end;
 | 
				
			||||||
                return std::is_permutation( begin( m_desired ),
 | 
					                return Catch::Detail::is_permutation( begin( m_desired ),
 | 
				
			||||||
                                                      end( m_desired ),
 | 
					                                                      end( m_desired ),
 | 
				
			||||||
                                                      begin( rng ),
 | 
					                                                      begin( rng ),
 | 
				
			||||||
                                                      end( rng ),
 | 
					                                                      end( rng ),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2014,6 +2014,7 @@ MatchersRanges.tests.cpp:<line number>: passed: array_a, !UnorderedRangeEquals(
 | 
				
			|||||||
MatchersRanges.tests.cpp:<line number>: passed: vector_a, !UnorderedRangeEquals( vector_b ) for: { 1, 2, 3 } not unordered elements are { 1, 2, 3, 4 }
 | 
					MatchersRanges.tests.cpp:<line number>: passed: vector_a, !UnorderedRangeEquals( vector_b ) for: { 1, 2, 3 } not unordered elements are { 1, 2, 3, 4 }
 | 
				
			||||||
MatchersRanges.tests.cpp:<line number>: passed: vector_a, UnorderedRangeEquals( vector_a_plus_1, close_enough ) for: { 1, 10, 20 } unordered elements are { 11, 21, 2 }
 | 
					MatchersRanges.tests.cpp:<line number>: passed: vector_a, UnorderedRangeEquals( vector_a_plus_1, close_enough ) for: { 1, 10, 20 } unordered elements are { 11, 21, 2 }
 | 
				
			||||||
MatchersRanges.tests.cpp:<line number>: passed: vector_a, !UnorderedRangeEquals( vector_b, close_enough ) for: { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
					MatchersRanges.tests.cpp:<line number>: passed: vector_a, !UnorderedRangeEquals( vector_b, close_enough ) for: { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
				
			||||||
 | 
					MatchersRanges.tests.cpp:<line number>: passed: needs_adl1, UnorderedRangeEquals( needs_adl2 ) for: { 1, 2, 3, 4, 5 } unordered elements are { 1, 2, 3, 4, 5 }
 | 
				
			||||||
MatchersRanges.tests.cpp:<line number>: passed: empty_vec, SizeIs(0) for: {  } has size == 0
 | 
					MatchersRanges.tests.cpp:<line number>: passed: empty_vec, SizeIs(0) for: {  } has size == 0
 | 
				
			||||||
MatchersRanges.tests.cpp:<line number>: passed: empty_vec, !SizeIs(2) for: {  } not has size == 2
 | 
					MatchersRanges.tests.cpp:<line number>: passed: empty_vec, !SizeIs(2) for: {  } not has size == 2
 | 
				
			||||||
MatchersRanges.tests.cpp:<line number>: passed: empty_vec, SizeIs(Lt(2)) for: {  } size matches is less than 2
 | 
					MatchersRanges.tests.cpp:<line number>: passed: empty_vec, SizeIs(Lt(2)) for: {  } size matches is less than 2
 | 
				
			||||||
@@ -2536,6 +2537,6 @@ InternalBenchmark.tests.cpp:<line number>: passed: q3 == 23. for: 23.0 == 23.0
 | 
				
			|||||||
Misc.tests.cpp:<line number>: passed:
 | 
					Misc.tests.cpp:<line number>: passed:
 | 
				
			||||||
Misc.tests.cpp:<line number>: passed:
 | 
					Misc.tests.cpp:<line number>: passed:
 | 
				
			||||||
test cases:  409 |  309 passed |  84 failed | 5 skipped | 11 failed as expected
 | 
					test cases:  409 |  309 passed |  84 failed | 5 skipped | 11 failed as expected
 | 
				
			||||||
assertions: 2223 | 2046 passed | 145 failed | 32 failed as expected
 | 
					assertions: 2224 | 2047 passed | 145 failed | 32 failed as expected
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2007,6 +2007,7 @@ MatchersRanges.tests.cpp:<line number>: passed: array_a, !UnorderedRangeEquals(
 | 
				
			|||||||
MatchersRanges.tests.cpp:<line number>: passed: vector_a, !UnorderedRangeEquals( vector_b ) for: { 1, 2, 3 } not unordered elements are { 1, 2, 3, 4 }
 | 
					MatchersRanges.tests.cpp:<line number>: passed: vector_a, !UnorderedRangeEquals( vector_b ) for: { 1, 2, 3 } not unordered elements are { 1, 2, 3, 4 }
 | 
				
			||||||
MatchersRanges.tests.cpp:<line number>: passed: vector_a, UnorderedRangeEquals( vector_a_plus_1, close_enough ) for: { 1, 10, 20 } unordered elements are { 11, 21, 2 }
 | 
					MatchersRanges.tests.cpp:<line number>: passed: vector_a, UnorderedRangeEquals( vector_a_plus_1, close_enough ) for: { 1, 10, 20 } unordered elements are { 11, 21, 2 }
 | 
				
			||||||
MatchersRanges.tests.cpp:<line number>: passed: vector_a, !UnorderedRangeEquals( vector_b, close_enough ) for: { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
					MatchersRanges.tests.cpp:<line number>: passed: vector_a, !UnorderedRangeEquals( vector_b, close_enough ) for: { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
				
			||||||
 | 
					MatchersRanges.tests.cpp:<line number>: passed: needs_adl1, UnorderedRangeEquals( needs_adl2 ) for: { 1, 2, 3, 4, 5 } unordered elements are { 1, 2, 3, 4, 5 }
 | 
				
			||||||
MatchersRanges.tests.cpp:<line number>: passed: empty_vec, SizeIs(0) for: {  } has size == 0
 | 
					MatchersRanges.tests.cpp:<line number>: passed: empty_vec, SizeIs(0) for: {  } has size == 0
 | 
				
			||||||
MatchersRanges.tests.cpp:<line number>: passed: empty_vec, !SizeIs(2) for: {  } not has size == 2
 | 
					MatchersRanges.tests.cpp:<line number>: passed: empty_vec, !SizeIs(2) for: {  } not has size == 2
 | 
				
			||||||
MatchersRanges.tests.cpp:<line number>: passed: empty_vec, SizeIs(Lt(2)) for: {  } size matches is less than 2
 | 
					MatchersRanges.tests.cpp:<line number>: passed: empty_vec, SizeIs(Lt(2)) for: {  } size matches is less than 2
 | 
				
			||||||
@@ -2525,6 +2526,6 @@ InternalBenchmark.tests.cpp:<line number>: passed: q3 == 23. for: 23.0 == 23.0
 | 
				
			|||||||
Misc.tests.cpp:<line number>: passed:
 | 
					Misc.tests.cpp:<line number>: passed:
 | 
				
			||||||
Misc.tests.cpp:<line number>: passed:
 | 
					Misc.tests.cpp:<line number>: passed:
 | 
				
			||||||
test cases:  409 |  309 passed |  84 failed | 5 skipped | 11 failed as expected
 | 
					test cases:  409 |  309 passed |  84 failed | 5 skipped | 11 failed as expected
 | 
				
			||||||
assertions: 2223 | 2046 passed | 145 failed | 32 failed as expected
 | 
					assertions: 2224 | 2047 passed | 145 failed | 32 failed as expected
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1534,5 +1534,5 @@ due to unexpected exception with message:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
===============================================================================
 | 
					===============================================================================
 | 
				
			||||||
test cases:  409 |  323 passed |  69 failed | 6 skipped | 11 failed as expected
 | 
					test cases:  409 |  323 passed |  69 failed | 6 skipped | 11 failed as expected
 | 
				
			||||||
assertions: 2206 | 2046 passed | 128 failed | 32 failed as expected
 | 
					assertions: 2207 | 2047 passed | 128 failed | 32 failed as expected
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14430,6 +14430,18 @@ MatchersRanges.tests.cpp:<line number>: PASSED:
 | 
				
			|||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
					  { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					Usage of UnorderedRangeEquals range matcher
 | 
				
			||||||
 | 
					  Ranges that need ADL begin/end
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					MatchersRanges.tests.cpp:<line number>
 | 
				
			||||||
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MatchersRanges.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
 | 
					  REQUIRE_THAT( needs_adl1, UnorderedRangeEquals( needs_adl2 ) )
 | 
				
			||||||
 | 
					with expansion:
 | 
				
			||||||
 | 
					  { 1, 2, 3, 4, 5 } unordered elements are { 1, 2, 3, 4, 5 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-------------------------------------------------------------------------------
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
Usage of the SizeIs range matcher
 | 
					Usage of the SizeIs range matcher
 | 
				
			||||||
  Some with stdlib containers
 | 
					  Some with stdlib containers
 | 
				
			||||||
@@ -18196,5 +18208,5 @@ Misc.tests.cpp:<line number>: PASSED:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
===============================================================================
 | 
					===============================================================================
 | 
				
			||||||
test cases:  409 |  309 passed |  84 failed | 5 skipped | 11 failed as expected
 | 
					test cases:  409 |  309 passed |  84 failed | 5 skipped | 11 failed as expected
 | 
				
			||||||
assertions: 2223 | 2046 passed | 145 failed | 32 failed as expected
 | 
					assertions: 2224 | 2047 passed | 145 failed | 32 failed as expected
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14423,6 +14423,18 @@ MatchersRanges.tests.cpp:<line number>: PASSED:
 | 
				
			|||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
					  { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					Usage of UnorderedRangeEquals range matcher
 | 
				
			||||||
 | 
					  Ranges that need ADL begin/end
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					MatchersRanges.tests.cpp:<line number>
 | 
				
			||||||
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MatchersRanges.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
 | 
					  REQUIRE_THAT( needs_adl1, UnorderedRangeEquals( needs_adl2 ) )
 | 
				
			||||||
 | 
					with expansion:
 | 
				
			||||||
 | 
					  { 1, 2, 3, 4, 5 } unordered elements are { 1, 2, 3, 4, 5 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-------------------------------------------------------------------------------
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
Usage of the SizeIs range matcher
 | 
					Usage of the SizeIs range matcher
 | 
				
			||||||
  Some with stdlib containers
 | 
					  Some with stdlib containers
 | 
				
			||||||
@@ -18185,5 +18197,5 @@ Misc.tests.cpp:<line number>: PASSED:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
===============================================================================
 | 
					===============================================================================
 | 
				
			||||||
test cases:  409 |  309 passed |  84 failed | 5 skipped | 11 failed as expected
 | 
					test cases:  409 |  309 passed |  84 failed | 5 skipped | 11 failed as expected
 | 
				
			||||||
assertions: 2223 | 2046 passed | 145 failed | 32 failed as expected
 | 
					assertions: 2224 | 2047 passed | 145 failed | 32 failed as expected
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
<testsuitesloose text artifact
 | 
					<testsuitesloose text artifact
 | 
				
			||||||
>
 | 
					>
 | 
				
			||||||
  <testsuite name="<exe-name>" errors="17" failures="128" skipped="11" tests="2234" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
 | 
					  <testsuite name="<exe-name>" errors="17" failures="128" skipped="11" tests="2235" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
 | 
				
			||||||
    <properties>
 | 
					    <properties>
 | 
				
			||||||
      <property name="random-seed" value="1"/>
 | 
					      <property name="random-seed" value="1"/>
 | 
				
			||||||
      <property name="filters" value=""*" ~[!nonportable] ~[!benchmark] ~[approvals]"/>
 | 
					      <property name="filters" value=""*" ~[!nonportable] ~[!benchmark] ~[approvals]"/>
 | 
				
			||||||
@@ -1451,6 +1451,7 @@ at Exception.tests.cpp:<line number>
 | 
				
			|||||||
    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Basic usage/Two non-equal-sized, non-empty containers" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Basic usage/Two non-equal-sized, non-empty containers" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two equal non-empty containers (close enough)" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two equal non-empty containers (close enough)" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two non-equal non-empty containers (close enough)" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two non-equal non-empty containers (close enough)" time="{duration}" status="run"/>
 | 
				
			||||||
 | 
					    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Ranges that need ADL begin/end" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Some with stdlib containers" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Some with stdlib containers" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Type requires ADL found size free function" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Type requires ADL found size free function" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Type has size member" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Type has size member" time="{duration}" status="run"/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
<testsuites>
 | 
					<testsuites>
 | 
				
			||||||
  <testsuite name="<exe-name>" errors="17" failures="128" skipped="11" tests="2234" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
 | 
					  <testsuite name="<exe-name>" errors="17" failures="128" skipped="11" tests="2235" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
 | 
				
			||||||
    <properties>
 | 
					    <properties>
 | 
				
			||||||
      <property name="random-seed" value="1"/>
 | 
					      <property name="random-seed" value="1"/>
 | 
				
			||||||
      <property name="filters" value=""*" ~[!nonportable] ~[!benchmark] ~[approvals]"/>
 | 
					      <property name="filters" value=""*" ~[!nonportable] ~[!benchmark] ~[approvals]"/>
 | 
				
			||||||
@@ -1450,6 +1450,7 @@ at Exception.tests.cpp:<line number>
 | 
				
			|||||||
    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Basic usage/Two non-equal-sized, non-empty containers" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Basic usage/Two non-equal-sized, non-empty containers" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two equal non-empty containers (close enough)" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two equal non-empty containers (close enough)" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two non-equal non-empty containers (close enough)" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two non-equal non-empty containers (close enough)" time="{duration}" status="run"/>
 | 
				
			||||||
 | 
					    <testcase classname="<exe-name>.global" name="Usage of UnorderedRangeEquals range matcher/Ranges that need ADL begin/end" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Some with stdlib containers" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Some with stdlib containers" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Type requires ADL found size free function" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Type requires ADL found size free function" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Type has size member" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Usage of the SizeIs range matcher/Type has size member" time="{duration}" status="run"/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1439,6 +1439,7 @@ at Matchers.tests.cpp:<line number>
 | 
				
			|||||||
    <testCase name="Usage of UnorderedRangeEquals range matcher/Basic usage/Two non-equal-sized, non-empty containers" duration="{duration}"/>
 | 
					    <testCase name="Usage of UnorderedRangeEquals range matcher/Basic usage/Two non-equal-sized, non-empty containers" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two equal non-empty containers (close enough)" duration="{duration}"/>
 | 
					    <testCase name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two equal non-empty containers (close enough)" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two non-equal non-empty containers (close enough)" duration="{duration}"/>
 | 
					    <testCase name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two non-equal non-empty containers (close enough)" duration="{duration}"/>
 | 
				
			||||||
 | 
					    <testCase name="Usage of UnorderedRangeEquals range matcher/Ranges that need ADL begin/end" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Usage of the SizeIs range matcher/Some with stdlib containers" duration="{duration}"/>
 | 
					    <testCase name="Usage of the SizeIs range matcher/Some with stdlib containers" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Usage of the SizeIs range matcher/Type requires ADL found size free function" duration="{duration}"/>
 | 
					    <testCase name="Usage of the SizeIs range matcher/Type requires ADL found size free function" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Usage of the SizeIs range matcher/Type has size member" duration="{duration}"/>
 | 
					    <testCase name="Usage of the SizeIs range matcher/Type has size member" duration="{duration}"/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1438,6 +1438,7 @@ at Matchers.tests.cpp:<line number>
 | 
				
			|||||||
    <testCase name="Usage of UnorderedRangeEquals range matcher/Basic usage/Two non-equal-sized, non-empty containers" duration="{duration}"/>
 | 
					    <testCase name="Usage of UnorderedRangeEquals range matcher/Basic usage/Two non-equal-sized, non-empty containers" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two equal non-empty containers (close enough)" duration="{duration}"/>
 | 
					    <testCase name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two equal non-empty containers (close enough)" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two non-equal non-empty containers (close enough)" duration="{duration}"/>
 | 
					    <testCase name="Usage of UnorderedRangeEquals range matcher/Custom predicate/Two non-equal non-empty containers (close enough)" duration="{duration}"/>
 | 
				
			||||||
 | 
					    <testCase name="Usage of UnorderedRangeEquals range matcher/Ranges that need ADL begin/end" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Usage of the SizeIs range matcher/Some with stdlib containers" duration="{duration}"/>
 | 
					    <testCase name="Usage of the SizeIs range matcher/Some with stdlib containers" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Usage of the SizeIs range matcher/Type requires ADL found size free function" duration="{duration}"/>
 | 
					    <testCase name="Usage of the SizeIs range matcher/Type requires ADL found size free function" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Usage of the SizeIs range matcher/Type has size member" duration="{duration}"/>
 | 
					    <testCase name="Usage of the SizeIs range matcher/Type has size member" duration="{duration}"/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3533,6 +3533,8 @@ ok {test-number} - vector_a, !UnorderedRangeEquals( vector_b ) for: { 1, 2, 3 }
 | 
				
			|||||||
ok {test-number} - vector_a, UnorderedRangeEquals( vector_a_plus_1, close_enough ) for: { 1, 10, 20 } unordered elements are { 11, 21, 2 }
 | 
					ok {test-number} - vector_a, UnorderedRangeEquals( vector_a_plus_1, close_enough ) for: { 1, 10, 20 } unordered elements are { 11, 21, 2 }
 | 
				
			||||||
# Usage of UnorderedRangeEquals range matcher
 | 
					# Usage of UnorderedRangeEquals range matcher
 | 
				
			||||||
ok {test-number} - vector_a, !UnorderedRangeEquals( vector_b, close_enough ) for: { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
					ok {test-number} - vector_a, !UnorderedRangeEquals( vector_b, close_enough ) for: { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
				
			||||||
 | 
					# Usage of UnorderedRangeEquals range matcher
 | 
				
			||||||
 | 
					ok {test-number} - needs_adl1, UnorderedRangeEquals( needs_adl2 ) for: { 1, 2, 3, 4, 5 } unordered elements are { 1, 2, 3, 4, 5 }
 | 
				
			||||||
# Usage of the SizeIs range matcher
 | 
					# Usage of the SizeIs range matcher
 | 
				
			||||||
ok {test-number} - empty_vec, SizeIs(0) for: {  } has size == 0
 | 
					ok {test-number} - empty_vec, SizeIs(0) for: {  } has size == 0
 | 
				
			||||||
# Usage of the SizeIs range matcher
 | 
					# Usage of the SizeIs range matcher
 | 
				
			||||||
@@ -4471,5 +4473,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0
 | 
				
			|||||||
ok {test-number} -
 | 
					ok {test-number} -
 | 
				
			||||||
# xmlentitycheck
 | 
					# xmlentitycheck
 | 
				
			||||||
ok {test-number} -
 | 
					ok {test-number} -
 | 
				
			||||||
1..2234
 | 
					1..2235
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3526,6 +3526,8 @@ ok {test-number} - vector_a, !UnorderedRangeEquals( vector_b ) for: { 1, 2, 3 }
 | 
				
			|||||||
ok {test-number} - vector_a, UnorderedRangeEquals( vector_a_plus_1, close_enough ) for: { 1, 10, 20 } unordered elements are { 11, 21, 2 }
 | 
					ok {test-number} - vector_a, UnorderedRangeEquals( vector_a_plus_1, close_enough ) for: { 1, 10, 20 } unordered elements are { 11, 21, 2 }
 | 
				
			||||||
# Usage of UnorderedRangeEquals range matcher
 | 
					# Usage of UnorderedRangeEquals range matcher
 | 
				
			||||||
ok {test-number} - vector_a, !UnorderedRangeEquals( vector_b, close_enough ) for: { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
					ok {test-number} - vector_a, !UnorderedRangeEquals( vector_b, close_enough ) for: { 1, 10, 21 } not unordered elements are { 11, 21, 3 }
 | 
				
			||||||
 | 
					# Usage of UnorderedRangeEquals range matcher
 | 
				
			||||||
 | 
					ok {test-number} - needs_adl1, UnorderedRangeEquals( needs_adl2 ) for: { 1, 2, 3, 4, 5 } unordered elements are { 1, 2, 3, 4, 5 }
 | 
				
			||||||
# Usage of the SizeIs range matcher
 | 
					# Usage of the SizeIs range matcher
 | 
				
			||||||
ok {test-number} - empty_vec, SizeIs(0) for: {  } has size == 0
 | 
					ok {test-number} - empty_vec, SizeIs(0) for: {  } has size == 0
 | 
				
			||||||
# Usage of the SizeIs range matcher
 | 
					# Usage of the SizeIs range matcher
 | 
				
			||||||
@@ -4460,5 +4462,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0
 | 
				
			|||||||
ok {test-number} -
 | 
					ok {test-number} -
 | 
				
			||||||
# xmlentitycheck
 | 
					# xmlentitycheck
 | 
				
			||||||
ok {test-number} -
 | 
					ok {test-number} -
 | 
				
			||||||
1..2234
 | 
					1..2235
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16890,6 +16890,17 @@ There is no extra whitespace here
 | 
				
			|||||||
      </Section>
 | 
					      </Section>
 | 
				
			||||||
      <OverallResults successes="1" failures="0" expectedFailures="0" skipped="false"/>
 | 
					      <OverallResults successes="1" failures="0" expectedFailures="0" skipped="false"/>
 | 
				
			||||||
    </Section>
 | 
					    </Section>
 | 
				
			||||||
 | 
					    <Section name="Ranges that need ADL begin/end" filename="tests/<exe-name>/UsageTests/MatchersRanges.tests.cpp" >
 | 
				
			||||||
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/UsageTests/MatchersRanges.tests.cpp" >
 | 
				
			||||||
 | 
					        <Original>
 | 
				
			||||||
 | 
					          needs_adl1, UnorderedRangeEquals( needs_adl2 )
 | 
				
			||||||
 | 
					        </Original>
 | 
				
			||||||
 | 
					        <Expanded>
 | 
				
			||||||
 | 
					          { 1, 2, 3, 4, 5 } unordered elements are { 1, 2, 3, 4, 5 }
 | 
				
			||||||
 | 
					        </Expanded>
 | 
				
			||||||
 | 
					      </Expression>
 | 
				
			||||||
 | 
					      <OverallResults successes="1" failures="0" expectedFailures="0" skipped="false"/>
 | 
				
			||||||
 | 
					    </Section>
 | 
				
			||||||
    <OverallResult success="true" skips="0"/>
 | 
					    <OverallResult success="true" skips="0"/>
 | 
				
			||||||
  </TestCase>
 | 
					  </TestCase>
 | 
				
			||||||
  <TestCase name="Usage of the SizeIs range matcher" tags="[matchers][size][templated]" filename="tests/<exe-name>/UsageTests/MatchersRanges.tests.cpp" >
 | 
					  <TestCase name="Usage of the SizeIs range matcher" tags="[matchers][size][templated]" filename="tests/<exe-name>/UsageTests/MatchersRanges.tests.cpp" >
 | 
				
			||||||
@@ -21170,6 +21181,6 @@ b1!
 | 
				
			|||||||
    </Section>
 | 
					    </Section>
 | 
				
			||||||
    <OverallResult success="true" skips="0"/>
 | 
					    <OverallResult success="true" skips="0"/>
 | 
				
			||||||
  </TestCase>
 | 
					  </TestCase>
 | 
				
			||||||
  <OverallResults successes="2046" failures="145" expectedFailures="32" skips="11"/>
 | 
					  <OverallResults successes="2047" failures="145" expectedFailures="32" skips="11"/>
 | 
				
			||||||
  <OverallResultsCases successes="309" failures="84" expectedFailures="11" skips="5"/>
 | 
					  <OverallResultsCases successes="309" failures="84" expectedFailures="11" skips="5"/>
 | 
				
			||||||
</Catch2TestRun>
 | 
					</Catch2TestRun>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16890,6 +16890,17 @@ There is no extra whitespace here
 | 
				
			|||||||
      </Section>
 | 
					      </Section>
 | 
				
			||||||
      <OverallResults successes="1" failures="0" expectedFailures="0" skipped="false"/>
 | 
					      <OverallResults successes="1" failures="0" expectedFailures="0" skipped="false"/>
 | 
				
			||||||
    </Section>
 | 
					    </Section>
 | 
				
			||||||
 | 
					    <Section name="Ranges that need ADL begin/end" filename="tests/<exe-name>/UsageTests/MatchersRanges.tests.cpp" >
 | 
				
			||||||
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/UsageTests/MatchersRanges.tests.cpp" >
 | 
				
			||||||
 | 
					        <Original>
 | 
				
			||||||
 | 
					          needs_adl1, UnorderedRangeEquals( needs_adl2 )
 | 
				
			||||||
 | 
					        </Original>
 | 
				
			||||||
 | 
					        <Expanded>
 | 
				
			||||||
 | 
					          { 1, 2, 3, 4, 5 } unordered elements are { 1, 2, 3, 4, 5 }
 | 
				
			||||||
 | 
					        </Expanded>
 | 
				
			||||||
 | 
					      </Expression>
 | 
				
			||||||
 | 
					      <OverallResults successes="1" failures="0" expectedFailures="0" skipped="false"/>
 | 
				
			||||||
 | 
					    </Section>
 | 
				
			||||||
    <OverallResult success="true" skips="0"/>
 | 
					    <OverallResult success="true" skips="0"/>
 | 
				
			||||||
  </TestCase>
 | 
					  </TestCase>
 | 
				
			||||||
  <TestCase name="Usage of the SizeIs range matcher" tags="[matchers][size][templated]" filename="tests/<exe-name>/UsageTests/MatchersRanges.tests.cpp" >
 | 
					  <TestCase name="Usage of the SizeIs range matcher" tags="[matchers][size][templated]" filename="tests/<exe-name>/UsageTests/MatchersRanges.tests.cpp" >
 | 
				
			||||||
@@ -21169,6 +21180,6 @@ b1!
 | 
				
			|||||||
    </Section>
 | 
					    </Section>
 | 
				
			||||||
    <OverallResult success="true" skips="0"/>
 | 
					    <OverallResult success="true" skips="0"/>
 | 
				
			||||||
  </TestCase>
 | 
					  </TestCase>
 | 
				
			||||||
  <OverallResults successes="2046" failures="145" expectedFailures="32" skips="11"/>
 | 
					  <OverallResults successes="2047" failures="145" expectedFailures="32" skips="11"/>
 | 
				
			||||||
  <OverallResultsCases successes="309" failures="84" expectedFailures="11" skips="5"/>
 | 
					  <OverallResultsCases successes="309" failures="84" expectedFailures="11" skips="5"/>
 | 
				
			||||||
</Catch2TestRun>
 | 
					</Catch2TestRun>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -634,6 +634,7 @@ TEST_CASE( "The quantifier range matchers support types with different types ret
 | 
				
			|||||||
TEST_CASE( "RangeEquals supports ranges with different types returned from begin and end",
 | 
					TEST_CASE( "RangeEquals supports ranges with different types returned from begin and end",
 | 
				
			||||||
           "[matchers][templated][range][approvals] ") {
 | 
					           "[matchers][templated][range][approvals] ") {
 | 
				
			||||||
    using Catch::Matchers::RangeEquals;
 | 
					    using Catch::Matchers::RangeEquals;
 | 
				
			||||||
 | 
					    using Catch::Matchers::UnorderedRangeEquals;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    has_different_begin_end_types<int> diff_types{ 1, 2, 3, 4, 5 };
 | 
					    has_different_begin_end_types<int> diff_types{ 1, 2, 3, 4, 5 };
 | 
				
			||||||
    std::array<int, 5> arr1{ { 1, 2, 3, 4, 5 } }, arr2{ { 2, 3, 4, 5, 6 } };
 | 
					    std::array<int, 5> arr1{ { 1, 2, 3, 4, 5 } }, arr2{ { 2, 3, 4, 5, 6 } };
 | 
				
			||||||
@@ -642,6 +643,7 @@ TEST_CASE( "RangeEquals supports ranges with different types returned from begin
 | 
				
			|||||||
    REQUIRE_THAT( diff_types, RangeEquals( arr2, []( int l, int r ) {
 | 
					    REQUIRE_THAT( diff_types, RangeEquals( arr2, []( int l, int r ) {
 | 
				
			||||||
                      return l + 1 == r;
 | 
					                      return l + 1 == r;
 | 
				
			||||||
                  } ) );
 | 
					                  } ) );
 | 
				
			||||||
 | 
					    REQUIRE_THAT( diff_types, UnorderedRangeEquals( diff_types ) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
@@ -800,8 +802,14 @@ TEST_CASE( "Usage of UnorderedRangeEquals range matcher",
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // As above with RangeEquals, short cicuiting and other optimisations
 | 
					
 | 
				
			||||||
    // are left to the STL implementation
 | 
					    SECTION( "Ranges that need ADL begin/end" ) {
 | 
				
			||||||
 | 
					        unrelated::needs_ADL_begin<int> const
 | 
				
			||||||
 | 
					            needs_adl1{ 1, 2, 3, 4, 5 },
 | 
				
			||||||
 | 
					            needs_adl2{ 1, 2, 3, 4, 5 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        REQUIRE_THAT( needs_adl1, UnorderedRangeEquals( needs_adl2 ) );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user