mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-26 07:16:10 +01:00
Enable use of UnorderedRangeEquals with iterator+sentinel pairs
This commit is contained in:
parent
772fa3f790
commit
cefa8fcf32
@ -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,11 +75,11 @@ 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 ),
|
||||||
m_predicate );
|
m_predicate );
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string describe() const override {
|
std::string describe() const override {
|
||||||
|
@ -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 ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user