aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/SelfTest/Baselines/console.sw.approved.txt
diff options
context:
space:
mode:
authorMerry <[email protected]>2022-12-31 17:28:39 +0000
committerMerry <[email protected]>2022-12-31 17:28:39 +0000
commit6879e5bb1c598a9a517d7bdec8ba1a0bace3ef10 (patch)
tree93366e12251f5e25017fa5dc2050d423cdf3a30b /tests/SelfTest/Baselines/console.sw.approved.txt
downloaddynarmic-6879e5bb1c598a9a517d7bdec8ba1a0bace3ef10.tar.gz
dynarmic-6879e5bb1c598a9a517d7bdec8ba1a0bace3ef10.zip
Squashed 'externals/catch/' content from commit ab6c7375b
git-subtree-dir: externals/catch git-subtree-split: ab6c7375be9a8e71ee84c6f8537113f9f47daf99
Diffstat (limited to 'tests/SelfTest/Baselines/console.sw.approved.txt')
-rw-r--r--tests/SelfTest/Baselines/console.sw.approved.txt17523
1 files changed, 17523 insertions, 0 deletions
diff --git a/tests/SelfTest/Baselines/console.sw.approved.txt b/tests/SelfTest/Baselines/console.sw.approved.txt
new file mode 100644
index 00000000..1ef94ee5
--- /dev/null
+++ b/tests/SelfTest/Baselines/console.sw.approved.txt
@@ -0,0 +1,17523 @@
+Filters: "*" ~[!nonportable] ~[!benchmark] ~[approvals]
+Randomness seeded to: 1
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<exe-name> is a Catch2 v<version> host application.
+Run with -? for options
+
+-------------------------------------------------------------------------------
+# A test name that starts with a #
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+with message:
+ yay
+
+-------------------------------------------------------------------------------
+#1027: Bitfields can be captured
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( y.v == 0 )
+with expansion:
+ 0 == 0
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( 0 == y.v )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+#1147
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( t1 == t2 )
+with expansion:
+ {?} == {?}
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( t1 != t2 )
+with expansion:
+ {?} != {?}
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( t1 < t2 )
+with expansion:
+ {?} < {?}
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( t1 > t2 )
+with expansion:
+ {?} > {?}
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( t1 <= t2 )
+with expansion:
+ {?} <= {?}
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( t1 >= t2 )
+with expansion:
+ {?} >= {?}
+
+-------------------------------------------------------------------------------
+#1175 - Hidden Test
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+#1238
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::memcmp(uarr, "123", sizeof(uarr)) == 0 )
+with expansion:
+ 0 == 0
+with messages:
+ uarr := "123"
+ sarr := "456"
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::memcmp(sarr, "456", sizeof(sarr)) == 0 )
+with expansion:
+ 0 == 0
+with messages:
+ uarr := "123"
+ sarr := "456"
+
+-------------------------------------------------------------------------------
+#1245
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+#1319: Sections can have description (even if it is not saved
+ SectionName
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+#1403
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( h1 == h2 )
+with expansion:
+ [1403 helper] == [1403 helper]
+
+-------------------------------------------------------------------------------
+#1455 - INFO and WARN can start with a linebreak
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: warning:
+
+This info message starts with a linebreak
+
+This warning message starts with a linebreak
+
+
+No assertions in test case '#1455 - INFO and WARN can start with a linebreak'
+
+This would not be caught previously
+Nor would this
+-------------------------------------------------------------------------------
+#1514: stderr/stdout is not captured in tests aborted by an exception
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: FAILED:
+explicitly with message:
+ 1514
+
+-------------------------------------------------------------------------------
+#1548
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::is_same<TypeList<int>, TypeList<int>>::value )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+#1905 -- test spec parser properly clears internal state between compound tests
+-------------------------------------------------------------------------------
+TestSpec.tests.cpp:<line number>
+...............................................................................
+
+TestSpec.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.matches(*fakeTestCase("spec . char")) )
+with expansion:
+ true
+
+TestSpec.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.matches(*fakeTestCase("spec , char")) )
+with expansion:
+ true
+
+TestSpec.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( spec.matches(*fakeTestCase(R"(spec \, char)")) )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+#1912 -- test spec parser handles escaping
+ Various parentheses
+-------------------------------------------------------------------------------
+TestSpec.tests.cpp:<line number>
+...............................................................................
+
+TestSpec.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.matches(*fakeTestCase(R"(spec {a} char)")) )
+with expansion:
+ true
+
+TestSpec.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.matches(*fakeTestCase(R"(spec [a] char)")) )
+with expansion:
+ true
+
+TestSpec.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( spec.matches(*fakeTestCase("differs but has similar tag", "[a]")) )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+#1912 -- test spec parser handles escaping
+ backslash in test name
+-------------------------------------------------------------------------------
+TestSpec.tests.cpp:<line number>
+...............................................................................
+
+TestSpec.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.matches(*fakeTestCase(R"(spec \ char)")) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+#1913 - GENERATE inside a for loop should not keep recreating the generator
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( counter < 7 )
+with expansion:
+ 3 < 7
+
+-------------------------------------------------------------------------------
+#1913 - GENERATE inside a for loop should not keep recreating the generator
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( counter < 7 )
+with expansion:
+ 6 < 7
+
+-------------------------------------------------------------------------------
+#1913 - GENERATEs can share a line
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i != j )
+with expansion:
+ 1 != 3
+
+-------------------------------------------------------------------------------
+#1913 - GENERATEs can share a line
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i != j )
+with expansion:
+ 1 != 4
+
+-------------------------------------------------------------------------------
+#1913 - GENERATEs can share a line
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i != j )
+with expansion:
+ 2 != 3
+
+-------------------------------------------------------------------------------
+#1913 - GENERATEs can share a line
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i != j )
+with expansion:
+ 2 != 4
+
+-------------------------------------------------------------------------------
+#1938 - GENERATE after a section
+ A
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with message:
+ A
+
+-------------------------------------------------------------------------------
+#1938 - GENERATE after a section
+ B
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 1
+
+-------------------------------------------------------------------------------
+#1938 - GENERATE after a section
+ B
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 2
+
+-------------------------------------------------------------------------------
+#1938 - GENERATE after a section
+ B
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 3
+
+-------------------------------------------------------------------------------
+#1938 - Section followed by flat generate
+ A
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( 1 )
+
+-------------------------------------------------------------------------------
+#1938 - Section followed by flat generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 2
+
+-------------------------------------------------------------------------------
+#1938 - Section followed by flat generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 3
+
+-------------------------------------------------------------------------------
+#1938 - flat generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 1
+
+-------------------------------------------------------------------------------
+#1938 - flat generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 2
+
+-------------------------------------------------------------------------------
+#1938 - flat generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 3
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+ A
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with message:
+ A
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with messages:
+ i := 1
+ j := 3
+ k := 5
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+ B
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with message:
+ B
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with messages:
+ i := 1
+ j := 3
+ k := 6
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+ B
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with message:
+ B
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with messages:
+ i := 1
+ j := 4
+ k := 5
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with messages:
+ i := 1
+ j := 4
+ k := 6
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+ A
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with message:
+ A
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with messages:
+ i := 2
+ j := 3
+ k := 5
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+ B
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with message:
+ B
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with messages:
+ i := 2
+ j := 3
+ k := 6
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+ B
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with message:
+ B
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with messages:
+ i := 2
+ j := 4
+ k := 5
+
+-------------------------------------------------------------------------------
+#1938 - mixed sections and generates
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+with messages:
+ i := 2
+ j := 4
+ k := 6
+
+-------------------------------------------------------------------------------
+#1938 - nested generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 1
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( n )
+with expansion:
+ 1
+
+-------------------------------------------------------------------------------
+#1938 - nested generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 1
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( n )
+with expansion:
+ 2
+
+-------------------------------------------------------------------------------
+#1938 - nested generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 1
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( n )
+with expansion:
+ 3
+
+-------------------------------------------------------------------------------
+#1938 - nested generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 2
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( n )
+with expansion:
+ 1
+
+-------------------------------------------------------------------------------
+#1938 - nested generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 2
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( n )
+with expansion:
+ 2
+
+-------------------------------------------------------------------------------
+#1938 - nested generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 2
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( n )
+with expansion:
+ 3
+
+-------------------------------------------------------------------------------
+#1938 - nested generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 3
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( n )
+with expansion:
+ 1
+
+-------------------------------------------------------------------------------
+#1938 - nested generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 3
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( n )
+with expansion:
+ 2
+
+-------------------------------------------------------------------------------
+#1938 - nested generate
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( m )
+with expansion:
+ 3
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( n )
+with expansion:
+ 3
+
+-------------------------------------------------------------------------------
+#1954 - 7 arg template test case sig compiles - 1, 1, 1, 1, 1, 0, 0
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+#1954 - 7 arg template test case sig compiles - 5, 1, 1, 1, 1, 0, 0
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+#1954 - 7 arg template test case sig compiles - 5, 3, 1, 1, 1, 0, 0
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+#2152 - ULP checks between differently signed values were wrong - double
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( smallest_non_zero, WithinULP( -smallest_non_zero, 2 ) )
+with expansion:
+ 0.0 is within 2 ULPs of -4.9406564584124654e-324 ([-1.4821969375237396e-323,
+ 4.9406564584124654e-324])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( smallest_non_zero, !WithinULP( -smallest_non_zero, 1 ) )
+with expansion:
+ 0.0 not is within 1 ULPs of -4.9406564584124654e-324 ([-9.8813129168249309e-
+ 324, -0.0000000000000000e+00])
+
+-------------------------------------------------------------------------------
+#2152 - ULP checks between differently signed values were wrong - float
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( smallest_non_zero, WithinULP( -smallest_non_zero, 2 ) )
+with expansion:
+ 0.0f is within 2 ULPs of -1.40129846e-45f ([-4.20389539e-45, 1.40129846e-45])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( smallest_non_zero, !WithinULP( -smallest_non_zero, 1 ) )
+with expansion:
+ 0.0f not is within 1 ULPs of -1.40129846e-45f ([-2.80259693e-45, -0.
+ 00000000e+00])
+
+-------------------------------------------------------------------------------
+#748 - captures with unexpected exceptions
+ outside assertions
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+due to unexpected exception with messages:
+ answer := 42
+ expected exception
+
+-------------------------------------------------------------------------------
+#748 - captures with unexpected exceptions
+ inside REQUIRE_NOTHROW
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+ REQUIRE_NOTHROW( thisThrows() )
+due to unexpected exception with messages:
+ answer := 42
+ expected exception
+
+-------------------------------------------------------------------------------
+#748 - captures with unexpected exceptions
+ inside REQUIRE_THROWS
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS( thisThrows() )
+with message:
+ answer := 42
+
+-------------------------------------------------------------------------------
+#809
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( 42 == f )
+with expansion:
+ 42 == {?}
+
+-------------------------------------------------------------------------------
+#833
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( a == t )
+with expansion:
+ 3 == 3
+
+Compilation.tests.cpp:<line number>: PASSED:
+ CHECK( a == t )
+with expansion:
+ 3 == 3
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS( throws_int(true) )
+
+Compilation.tests.cpp:<line number>: PASSED:
+ CHECK_THROWS_AS( throws_int(true), int )
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( throws_int(false) )
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( "aaa", Catch::Matchers::EndsWith("aaa") )
+with expansion:
+ "aaa" ends with: "aaa"
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( templated_tests<int>(3) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+#835 -- errno should not be touched by Catch2
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED:
+ CHECK( f() == 0 )
+with expansion:
+ 1 == 0
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( errno_after == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+#872
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( x == 4 )
+with expansion:
+ {?} == 4
+with message:
+ dummy := 0
+
+-------------------------------------------------------------------------------
+#961 -- Dynamically created sections should all be reported
+ Looped section 0
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+with message:
+ Everything is OK
+
+-------------------------------------------------------------------------------
+#961 -- Dynamically created sections should all be reported
+ Looped section 1
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+with message:
+ Everything is OK
+
+-------------------------------------------------------------------------------
+#961 -- Dynamically created sections should all be reported
+ Looped section 2
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+with message:
+ Everything is OK
+
+-------------------------------------------------------------------------------
+#961 -- Dynamically created sections should all be reported
+ Looped section 3
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+with message:
+ Everything is OK
+
+-------------------------------------------------------------------------------
+#961 -- Dynamically created sections should all be reported
+ Looped section 4
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+with message:
+ Everything is OK
+
+-------------------------------------------------------------------------------
+'Not' checks that should fail
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( false != false )
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( true != true )
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( !true )
+with expansion:
+ false
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK_FALSE( true )
+with expansion:
+ !true
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( !trueValue )
+with expansion:
+ false
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK_FALSE( trueValue )
+with expansion:
+ !true
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( !(1 == 1) )
+with expansion:
+ false
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK_FALSE( 1 == 1 )
+
+-------------------------------------------------------------------------------
+'Not' checks that should succeed
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( false == false )
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( true == true )
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( !false )
+with expansion:
+ true
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( false )
+with expansion:
+ !false
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( !falseValue )
+with expansion:
+ true
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( falseValue )
+with expansion:
+ !false
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( !(1 == 2) )
+with expansion:
+ true
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( 1 == 2 )
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ compare to true
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( is_true<true>::value == true )
+with expansion:
+ true == true
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( true == is_true<true>::value )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ compare to false
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( is_true<false>::value == false )
+with expansion:
+ false == false
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( false == is_true<false>::value )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ negation
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( !is_true<false>::value )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ double negation
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( !!is_true<true>::value )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ direct
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( is_true<true>::value )
+with expansion:
+ true
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( is_true<false>::value )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 1 < 4
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 4 < 7
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 1 < 7
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 1 < 4
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 4 < 8
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 1 < 8
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 1 < 4
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 4 < 9
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 1 < 9
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 1 < 5
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 5 < 7
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 1 < 7
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 1 < 5
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 5 < 8
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 1 < 8
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 1 < 5
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 5 < 9
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 1 < 9
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 1 < 6
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 6 < 7
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 1 < 7
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 1 < 6
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 6 < 8
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 1 < 8
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 1 < 6
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 6 < 9
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 1 < 9
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 2 < 4
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 4 < 7
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 2 < 7
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 2 < 4
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 4 < 8
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 2 < 8
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 2 < 4
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 4 < 9
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 2 < 9
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 2 < 5
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 5 < 7
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 2 < 7
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 2 < 5
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 5 < 8
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 2 < 8
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 2 < 5
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 5 < 9
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 2 < 9
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 2 < 6
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 6 < 7
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 2 < 7
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 2 < 6
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 6 < 8
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 2 < 8
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 2 < 6
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 6 < 9
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 2 < 9
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 3 < 4
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 4 < 7
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 3 < 7
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 3 < 4
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 4 < 8
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 3 < 8
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 3 < 4
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 4 < 9
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 3 < 9
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 3 < 5
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 5 < 7
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 3 < 7
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 3 < 5
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 5 < 8
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 3 < 8
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 3 < 5
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 5 < 9
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 3 < 9
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 3 < 6
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 6 < 7
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 3 < 7
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 3 < 6
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 6 < 8
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 3 < 8
+
+-------------------------------------------------------------------------------
+3x3x3 ints
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( x < y )
+with expansion:
+ 3 < 6
+
+Generators.tests.cpp:<line number>: PASSED:
+ CHECK( y < z )
+with expansion:
+ 6 < 9
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( x < z )
+with expansion:
+ 3 < 9
+
+-------------------------------------------------------------------------------
+A METHOD_AS_TEST_CASE based test run that fails
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( s == "world" )
+with expansion:
+ "hello" == "world"
+
+-------------------------------------------------------------------------------
+A METHOD_AS_TEST_CASE based test run that succeeds
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( s == "hello" )
+with expansion:
+ "hello" == "hello"
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo
+<float>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture_2<TestType>::m_a.size() == 1 )
+with expansion:
+ 0 == 1
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo
+<int>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture_2<TestType>::m_a.size() == 1 )
+with expansion:
+ 0 == 1
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector
+<float>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture_2<TestType>::m_a.size() == 1 )
+with expansion:
+ 0 == 1
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector
+<int>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture_2<TestType>::m_a.size() == 1 )
+with expansion:
+ 0 == 1
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - Template_Foo
+<float>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture_2<TestType>::m_a.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - Template_Foo
+<int>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture_2<TestType>::m_a.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - std::vector
+<float>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture_2<TestType>::m_a.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - std::vector
+<int>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture_2<TestType>::m_a.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails -
+Template_Foo_2<float, 6>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture_2<TestType>{}.m_a.size() < 2 )
+with expansion:
+ 6 < 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails -
+Template_Foo_2<int, 2>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture_2<TestType>{}.m_a.size() < 2 )
+with expansion:
+ 2 < 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails - std::array
+<float, 6>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture_2<TestType>{}.m_a.size() < 2 )
+with expansion:
+ 6 < 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails - std::array
+<int, 2>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture_2<TestType>{}.m_a.size() < 2 )
+with expansion:
+ 2 < 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that succeeds -
+Template_Foo_2<float,6>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture_2<TestType>{}.m_a.size() >= 2 )
+with expansion:
+ 6 >= 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that succeeds -
+Template_Foo_2<int,2>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture_2<TestType>{}.m_a.size() >= 2 )
+with expansion:
+ 2 >= 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that succeeds - std::
+array<float,6>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture_2<TestType>{}.m_a.size() >= 2 )
+with expansion:
+ 6 >= 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that succeeds - std::
+array<int,2>
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture_2<TestType>{}.m_a.size() >= 2 )
+with expansion:
+ 2 >= 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD based test run that fails - double
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture<TestType>::m_a == 2 )
+with expansion:
+ 1.0 == 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD based test run that fails - float
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture<TestType>::m_a == 2 )
+with expansion:
+ 1.0f == 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD based test run that fails - int
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Template_Fixture<TestType>::m_a == 2 )
+with expansion:
+ 1 == 2
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD based test run that succeeds - double
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture<TestType>::m_a == 1 )
+with expansion:
+ 1.0 == 1
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD based test run that succeeds - float
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture<TestType>::m_a == 1 )
+with expansion:
+ 1.0f == 1
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD based test run that succeeds - int
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture<TestType>::m_a == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD_SIG based test run that fails - 1
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Nttp_Fixture<V>::value == 0 )
+with expansion:
+ 1 == 0
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD_SIG based test run that fails - 3
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Nttp_Fixture<V>::value == 0 )
+with expansion:
+ 3 == 0
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD_SIG based test run that fails - 6
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( Nttp_Fixture<V>::value == 0 )
+with expansion:
+ 6 == 0
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD_SIG based test run that succeeds - 1
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Nttp_Fixture<V>::value > 0 )
+with expansion:
+ 1 > 0
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD_SIG based test run that succeeds - 3
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Nttp_Fixture<V>::value > 0 )
+with expansion:
+ 3 > 0
+
+-------------------------------------------------------------------------------
+A TEMPLATE_TEST_CASE_METHOD_SIG based test run that succeeds - 6
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Nttp_Fixture<V>::value > 0 )
+with expansion:
+ 6 > 0
+
+-------------------------------------------------------------------------------
+A TEST_CASE_METHOD based test run that fails
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: FAILED:
+ REQUIRE( m_a == 2 )
+with expansion:
+ 1 == 2
+
+-------------------------------------------------------------------------------
+A TEST_CASE_METHOD based test run that succeeds
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( m_a == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+A Template product test case - Foo<float>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( x.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+A Template product test case - Foo<int>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( x.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+A Template product test case - std::vector<float>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( x.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+A Template product test case - std::vector<int>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( x.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+A Template product test case with array signature - Bar<float, 42>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( x.size() > 0 )
+with expansion:
+ 42 > 0
+
+-------------------------------------------------------------------------------
+A Template product test case with array signature - Bar<int, 9>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( x.size() > 0 )
+with expansion:
+ 9 > 0
+
+-------------------------------------------------------------------------------
+A Template product test case with array signature - std::array<float, 42>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( x.size() > 0 )
+with expansion:
+ 42 > 0
+
+-------------------------------------------------------------------------------
+A Template product test case with array signature - std::array<int, 9>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( x.size() > 0 )
+with expansion:
+ 9 > 0
+
+-------------------------------------------------------------------------------
+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
+ Inner
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+with message:
+ that's not flying - that's failing in style
+
+-------------------------------------------------------------------------------
+A couple of nested sections followed by a failure
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED:
+explicitly with message:
+ to infinity and beyond
+
+-------------------------------------------------------------------------------
+A failing expression with a non streamable type is still captured
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: FAILED:
+ CHECK( &o1 == &o2 )
+with expansion:
+ 0x<hex digits> == 0x<hex digits>
+
+Tricky.tests.cpp:<line number>: FAILED:
+ CHECK( o1 == o2 )
+with expansion:
+ {?} == {?}
+
+-------------------------------------------------------------------------------
+Absolute margin
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 104.0 != Approx(100.0) )
+with expansion:
+ 104.0 != Approx( 100.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 104.0 == Approx(100.0).margin(5) )
+with expansion:
+ 104.0 == Approx( 100.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 104.0 == Approx(100.0).margin(4) )
+with expansion:
+ 104.0 == Approx( 100.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 104.0 != Approx(100.0).margin(3) )
+with expansion:
+ 104.0 != Approx( 100.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 100.3 != Approx(100.0) )
+with expansion:
+ 100.3 != Approx( 100.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 100.3 == Approx(100.0).margin(0.5) )
+with expansion:
+ 100.3 == Approx( 100.0 )
+
+-------------------------------------------------------------------------------
+An empty test with no assertions
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+
+No assertions in test case 'An empty test with no assertions'
+
+-------------------------------------------------------------------------------
+An expression with side-effects should only be evaluated once
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( i++ == 7 )
+with expansion:
+ 7 == 7
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( i++ == 8 )
+with expansion:
+ 8 == 8
+
+-------------------------------------------------------------------------------
+An unchecked exception reports the line of the last assertion
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: PASSED:
+ CHECK( 1 == 1 )
+
+Exception.tests.cpp:<line number>: FAILED:
+ {Unknown expression after the reported line}
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+Anonymous test case 1
+-------------------------------------------------------------------------------
+VariadicMacros.tests.cpp:<line number>
+...............................................................................
+
+VariadicMacros.tests.cpp:<line number>: PASSED:
+with message:
+ anonymous test case
+
+-------------------------------------------------------------------------------
+Approx setters validate their arguments
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( Approx(0).margin(0) )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( Approx(0).margin(1234656) )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( Approx(0).margin(-2), std::domain_error )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( Approx(0).epsilon(0) )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( Approx(0).epsilon(1) )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( Approx(0).epsilon(-0.001), std::domain_error )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( Approx(0).epsilon(1.0001), std::domain_error )
+
+-------------------------------------------------------------------------------
+Approx with exactly-representable margin
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ CHECK( 0.25f == Approx(0.0f).margin(0.25f) )
+with expansion:
+ 0.25f == Approx( 0.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ CHECK( 0.0f == Approx(0.25f).margin(0.25f) )
+with expansion:
+ 0.0f == Approx( 0.25 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ CHECK( 0.5f == Approx(0.25f).margin(0.25f) )
+with expansion:
+ 0.5f == Approx( 0.25 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ CHECK( 245.0f == Approx(245.25f).margin(0.25f) )
+with expansion:
+ 245.0f == Approx( 245.25 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ CHECK( 245.5f == Approx(245.25f).margin(0.25f) )
+with expansion:
+ 245.5f == Approx( 245.25 )
+
+-------------------------------------------------------------------------------
+Approximate PI
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) )
+with expansion:
+ 3.1428571429 == Approx( 3.141 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) )
+with expansion:
+ 3.1428571429 != Approx( 3.141 )
+
+-------------------------------------------------------------------------------
+Approximate comparisons with different epsilons
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d != Approx( 1.231 ) )
+with expansion:
+ 1.23 != Approx( 1.231 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) )
+with expansion:
+ 1.23 == Approx( 1.231 )
+
+-------------------------------------------------------------------------------
+Approximate comparisons with floats
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 1.23f == Approx( 1.23f ) )
+with expansion:
+ 1.23f == Approx( 1.2300000191 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 0.0f == Approx( 0.0f ) )
+with expansion:
+ 0.0f == Approx( 0.0 )
+
+-------------------------------------------------------------------------------
+Approximate comparisons with ints
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 1 == Approx( 1 ) )
+with expansion:
+ 1 == Approx( 1.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 0 == Approx( 0 ) )
+with expansion:
+ 0 == Approx( 0.0 )
+
+-------------------------------------------------------------------------------
+Approximate comparisons with mixed numeric types
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 1.0f == Approx( 1 ) )
+with expansion:
+ 1.0f == Approx( 1.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 0 == Approx( dZero) )
+with expansion:
+ 0 == Approx( 0.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 0 == Approx( dSmall ).margin( 0.001 ) )
+with expansion:
+ 0 == Approx( 0.00001 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 1.234f == Approx( dMedium ) )
+with expansion:
+ 1.234f == Approx( 1.234 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( dMedium == Approx( 1.234f ) )
+with expansion:
+ 1.234 == Approx( 1.2339999676 )
+
+-------------------------------------------------------------------------------
+Arbitrary predicate matcher
+ Function pointer
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, Predicate<int>( alwaysTrue, "always true" ) )
+with expansion:
+ 1 matches predicate: "always true"
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, !Predicate<int>( alwaysFalse, "always false" ) )
+with expansion:
+ 1 not matches predicate: "always false"
+
+-------------------------------------------------------------------------------
+Arbitrary predicate matcher
+ Lambdas + different type
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( "Hello olleH", Predicate<std::string>( []( std::string const& str ) -> bool { return str.front() == str.back(); }, "First and last character should be equal" ) )
+with expansion:
+ "Hello olleH" matches predicate: "First and last character should be equal"
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( "This wouldn't pass", !Predicate<std::string>( []( std::string const& str ) -> bool { return str.front() == str.back(); } ) )
+with expansion:
+ "This wouldn't pass" not matches undescribed predicate
+
+-------------------------------------------------------------------------------
+Assertion macros support bit operators and bool conversions
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( lhs | rhs )
+with expansion:
+ Val: 1 | Val: 2
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( lhs & rhs )
+with expansion:
+ !(Val: 1 & Val: 2)
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( HasBitOperators{ 1 } & HasBitOperators{ 1 } )
+with expansion:
+ Val: 1 & Val: 1
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( lhs ^ rhs )
+with expansion:
+ Val: 1 ^ Val: 2
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( lhs ^ lhs )
+with expansion:
+ !(Val: 1 ^ Val: 1)
+
+-------------------------------------------------------------------------------
+Assertions then sections
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+
+-------------------------------------------------------------------------------
+Assertions then sections
+ A section
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+
+-------------------------------------------------------------------------------
+Assertions then sections
+ A section
+ Another section
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+
+-------------------------------------------------------------------------------
+Assertions then sections
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+
+-------------------------------------------------------------------------------
+Assertions then sections
+ A section
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+
+-------------------------------------------------------------------------------
+Assertions then sections
+ A section
+ Another other section
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+
+-------------------------------------------------------------------------------
+Basic use of the Contains range matcher
+ Different argument ranges, same element type, default comparison
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( a, Contains(1) )
+with expansion:
+ { 1, 2, 3 } contains element 1
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( b, Contains(1) )
+with expansion:
+ { 0, 1, 2 } contains element 1
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( c, !Contains(1) )
+with expansion:
+ { 4, 5, 6 } not contains element 1
+
+-------------------------------------------------------------------------------
+Basic use of the Contains range matcher
+ Different argument ranges, same element type, custom comparison
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( a, Contains(0, close_enough) )
+with expansion:
+ { 1, 2, 3 } contains element 0
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( b, Contains(0, close_enough) )
+with expansion:
+ { 0, 1, 2 } contains element 0
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( c, !Contains(0, close_enough) )
+with expansion:
+ { 4, 5, 6 } not contains element 0
+
+-------------------------------------------------------------------------------
+Basic use of the Contains range matcher
+ Different element type, custom comparisons
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( a, Contains(4, [](auto&& lhs, size_t sz) { return lhs.size() == sz; }) )
+with expansion:
+ { "abc", "abcd", "abcde" } contains element 4
+
+-------------------------------------------------------------------------------
+Basic use of the Contains range matcher
+ Can handle type that requires ADL-found free function begin and end
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( in, Contains(1) )
+with expansion:
+ { 1, 2, 3, 4, 5 } contains element 1
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( in, !Contains(8) )
+with expansion:
+ { 1, 2, 3, 4, 5 } not contains element 8
+
+-------------------------------------------------------------------------------
+Basic use of the Contains range matcher
+ Initialization with move only types
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( in, Contains(MoveOnlyTestElement{ 2 }) )
+with expansion:
+ { 1, 2, 3 } contains element 2
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( in, !Contains(MoveOnlyTestElement{ 9 }) )
+with expansion:
+ { 1, 2, 3 } not contains element 9
+
+-------------------------------------------------------------------------------
+Basic use of the Contains range matcher
+ Matching using matcher
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( in, Contains(Catch::Matchers::WithinAbs(0.5, 0.5)) )
+with expansion:
+ { 1.0, 2.0, 3.0, 0.0 } contains element matching is within 0.5 of 0.5
+
+-------------------------------------------------------------------------------
+Basic use of the Empty range matcher
+ Simple, std-provided containers
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( empty_array, IsEmpty() )
+with expansion:
+ { } is empty
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( non_empty_array, !IsEmpty() )
+with expansion:
+ { 0.0 } not is empty
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( empty_vec, IsEmpty() )
+with expansion:
+ { } is empty
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( non_empty_vec, !IsEmpty() )
+with expansion:
+ { 'a', 'b', 'c' } not is empty
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( inner_lists_are_empty, !IsEmpty() )
+with expansion:
+ { { } } not is empty
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( inner_lists_are_empty.front(), IsEmpty() )
+with expansion:
+ { } is empty
+
+-------------------------------------------------------------------------------
+Basic use of the Empty range matcher
+ Type with empty
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( has_empty{}, !IsEmpty() )
+with expansion:
+ {?} not is empty
+
+-------------------------------------------------------------------------------
+Basic use of the Empty range matcher
+ Type requires ADL found empty free function
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( unrelated::ADL_empty{}, IsEmpty() )
+with expansion:
+ {?} is empty
+
+-------------------------------------------------------------------------------
+CAPTURE can deal with complex expressions
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: PASSED:
+with messages:
+ a := 1
+ b := 2
+ c := 3
+ a + b := 3
+ a+b := 3
+ c > b := true
+ a == 1 := true
+
+-------------------------------------------------------------------------------
+CAPTURE can deal with complex expressions involving commas
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: PASSED:
+with messages:
+ std::vector<int>{1, 2, 3}[0, 1, 2] := 3
+ std::vector<int>{1, 2, 3}[(0, 1)] := 2
+ std::vector<int>{1, 2, 3}[0] := 1
+ (helper_1436<int, int>{12, -12}) := { 12, -12 }
+ (helper_1436<int, int>(-12, 12)) := { -12, 12 }
+ (1, 2) := 2
+ (2, 3) := 3
+
+-------------------------------------------------------------------------------
+CAPTURE parses string and character constants
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: PASSED:
+with messages:
+ ("comma, in string", "escaped, \", ") := "escaped, ", "
+ "single quote in string,'," := "single quote in string,',"
+ "some escapes, \\,\\\\" := "some escapes, \,\\"
+ "some, ), unmatched, } prenheses {[<" := "some, ), unmatched, } prenheses {[
+ <"
+ '"' := '"'
+ '\'' := '''
+ ',' := ','
+ '}' := '}'
+ ')' := ')'
+ '(' := '('
+ '{' := '{'
+
+-------------------------------------------------------------------------------
+Capture and info messages
+ Capture should stringify like assertions
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+with message:
+ i := 2
+
+-------------------------------------------------------------------------------
+Capture and info messages
+ Info should NOT stringify the way assertions do
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+with message:
+ 3
+
+-------------------------------------------------------------------------------
+CaseInsensitiveEqualsTo is case insensitive
+ Degenerate cases
+-------------------------------------------------------------------------------
+Details.tests.cpp:<line number>
+...............................................................................
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE( eq( "", "" ) )
+with expansion:
+ true
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( eq( "", "a" ) )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+CaseInsensitiveEqualsTo is case insensitive
+ Plain comparisons
+-------------------------------------------------------------------------------
+Details.tests.cpp:<line number>
+...............................................................................
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE( eq( "a", "a" ) )
+with expansion:
+ true
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE( eq( "a", "A" ) )
+with expansion:
+ true
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE( eq( "A", "a" ) )
+with expansion:
+ true
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE( eq( "A", "A" ) )
+with expansion:
+ true
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( eq( "a", "b" ) )
+with expansion:
+ !false
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( eq( "a", "B" ) )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+CaseInsensitiveLess is case insensitive
+ Degenerate cases
+-------------------------------------------------------------------------------
+Details.tests.cpp:<line number>
+...............................................................................
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE( lt( "", "a" ) )
+with expansion:
+ true
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( lt( "a", "a" ) )
+with expansion:
+ !false
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( lt( "", "" ) )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+CaseInsensitiveLess is case insensitive
+ Plain comparisons
+-------------------------------------------------------------------------------
+Details.tests.cpp:<line number>
+...............................................................................
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE( lt( "a", "b" ) )
+with expansion:
+ true
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE( lt( "a", "B" ) )
+with expansion:
+ true
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE( lt( "A", "b" ) )
+with expansion:
+ true
+
+Details.tests.cpp:<line number>: PASSED:
+ REQUIRE( lt( "A", "B" ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Character pretty printing
+ Specifically escaped
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ CHECK( tab == '\t' )
+with expansion:
+ '\t' == '\t'
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ CHECK( newline == '\n' )
+with expansion:
+ '\n' == '\n'
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ CHECK( carr_return == '\r' )
+with expansion:
+ '\r' == '\r'
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ CHECK( form_feed == '\f' )
+with expansion:
+ '\f' == '\f'
+
+-------------------------------------------------------------------------------
+Character pretty printing
+ General chars
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ CHECK( space == ' ' )
+with expansion:
+ ' ' == ' '
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( c == chars[i] )
+with expansion:
+ 'a' == 'a'
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( c == chars[i] )
+with expansion:
+ 'z' == 'z'
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( c == chars[i] )
+with expansion:
+ 'A' == 'A'
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( c == chars[i] )
+with expansion:
+ 'Z' == 'Z'
+
+-------------------------------------------------------------------------------
+Character pretty printing
+ Low ASCII
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ CHECK( null_terminator == '\0' )
+with expansion:
+ 0 == 0
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( c == i )
+with expansion:
+ 2 == 2
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( c == i )
+with expansion:
+ 3 == 3
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( c == i )
+with expansion:
+ 4 == 4
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( c == i )
+with expansion:
+ 5 == 5
+
+-------------------------------------------------------------------------------
+Clara::Arg supports single-arg parse the way Opt does
+-------------------------------------------------------------------------------
+Clara.tests.cpp:<line number>
+...............................................................................
+
+Clara.tests.cpp:<line number>: PASSED:
+ CHECK( name.empty() )
+with expansion:
+ true
+
+Clara.tests.cpp:<line number>: PASSED:
+ REQUIRE( name == "foo" )
+with expansion:
+ "foo" == "foo"
+
+-------------------------------------------------------------------------------
+Clara::Opt supports accept-many lambdas
+ Parsing fails on multiple options without accept_many
+-------------------------------------------------------------------------------
+Clara.tests.cpp:<line number>
+...............................................................................
+
+Clara.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( parse_result )
+with expansion:
+ !{?}
+
+-------------------------------------------------------------------------------
+Clara::Opt supports accept-many lambdas
+ Parsing succeeds on multiple options with accept_many
+-------------------------------------------------------------------------------
+Clara.tests.cpp:<line number>
+...............................................................................
+
+Clara.tests.cpp:<line number>: PASSED:
+ CHECK( parse_result )
+with expansion:
+ {?}
+
+Clara.tests.cpp:<line number>: PASSED:
+ CHECK( res == std::vector<std::string>{ "aaa", "bbb" } )
+with expansion:
+ { "aaa", "bbb" } == { "aaa", "bbb" }
+
+-------------------------------------------------------------------------------
+ColourGuard behaviour
+ ColourGuard is disengaged by default
+-------------------------------------------------------------------------------
+ColourImpl.tests.cpp:<line number>
+...............................................................................
+
+ColourImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( streamWrapper.str().empty() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+ColourGuard behaviour
+ ColourGuard is engaged by op<<
+-------------------------------------------------------------------------------
+ColourImpl.tests.cpp:<line number>
+...............................................................................
+
+ColourImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( streamWrapper.str() == "1\nUsing code: 2\n2\nUsing code: 0\n3\n" )
+with expansion:
+ "1
+ Using code: 2
+ 2
+ Using code: 0
+ 3
+ "
+ ==
+ "1
+ Using code: 2
+ 2
+ Using code: 0
+ 3
+ "
+
+-------------------------------------------------------------------------------
+ColourGuard behaviour
+ ColourGuard can be engaged explicitly
+-------------------------------------------------------------------------------
+ColourImpl.tests.cpp:<line number>
+...............................................................................
+
+ColourImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( streamWrapper.str() == "Using code: 2\nA\nB\nUsing code: 0\nC\n" )
+with expansion:
+ "Using code: 2
+ A
+ B
+ Using code: 0
+ C
+ "
+ ==
+ "Using code: 2
+ A
+ B
+ Using code: 0
+ C
+ "
+
+-------------------------------------------------------------------------------
+Combining MatchAllOfGeneric does not nest
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same< decltype( ( MatcherA() && MatcherB() ) && MatcherC() ), Catch::
+ Matchers::Detail:: MatchAllOfGeneric<MatcherA, MatcherB, MatcherC>>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, ( MatcherA() && MatcherB() ) && MatcherC() )
+with expansion:
+ 1 ( equals: (int) 1 or (string) "1" and equals: (long long) 1 and equals: (T)
+ 1 )
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same< decltype( MatcherA() && ( MatcherB() && MatcherC() ) ), Catch::
+ Matchers::Detail:: MatchAllOfGeneric<MatcherA, MatcherB, MatcherC>>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, MatcherA() && ( MatcherB() && MatcherC() ) )
+with expansion:
+ 1 ( equals: (int) 1 or (string) "1" and equals: (long long) 1 and equals: (T)
+ 1 )
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same< decltype( ( MatcherA() && MatcherB() ) && ( MatcherC() &&
+ MatcherD() ) ), Catch::Matchers::Detail:: MatchAllOfGeneric<MatcherA,
+ MatcherB, MatcherC, MatcherD>>:: value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, ( MatcherA() && MatcherB() ) && ( MatcherC() && MatcherD() ) )
+with expansion:
+ 1 ( equals: (int) 1 or (string) "1" and equals: (long long) 1 and equals: (T)
+ 1 and equals: true )
+
+-------------------------------------------------------------------------------
+Combining MatchAnyOfGeneric does not nest
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same< decltype( ( MatcherA() || MatcherB() ) || MatcherC() ), Catch::
+ Matchers::Detail:: MatchAnyOfGeneric<MatcherA, MatcherB, MatcherC>>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, ( MatcherA() || MatcherB() ) || MatcherC() )
+with expansion:
+ 1 ( equals: (int) 1 or (string) "1" or equals: (long long) 1 or equals: (T) 1
+ )
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same< decltype( MatcherA() || ( MatcherB() || MatcherC() ) ), Catch::
+ Matchers::Detail:: MatchAnyOfGeneric<MatcherA, MatcherB, MatcherC>>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, MatcherA() || ( MatcherB() || MatcherC() ) )
+with expansion:
+ 1 ( equals: (int) 1 or (string) "1" or equals: (long long) 1 or equals: (T) 1
+ )
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same< decltype( ( MatcherA() || MatcherB() ) || ( MatcherC() ||
+ MatcherD() ) ), Catch::Matchers::Detail:: MatchAnyOfGeneric<MatcherA,
+ MatcherB, MatcherC, MatcherD>>:: value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, ( MatcherA() || MatcherB() ) || ( MatcherC() || MatcherD() ) )
+with expansion:
+ 1 ( equals: (int) 1 or (string) "1" or equals: (long long) 1 or equals: (T) 1
+ or equals: true )
+
+-------------------------------------------------------------------------------
+Combining MatchNotOfGeneric does not nest
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same< decltype( !MatcherA() ), Catch::Matchers::Detail::
+ MatchNotOfGeneric<MatcherA>>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0, !MatcherA() )
+with expansion:
+ 0 not equals: (int) 1 or (string) "1"
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same<decltype( !!MatcherA() ), MatcherA const&>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, !!MatcherA() )
+with expansion:
+ 1 equals: (int) 1 or (string) "1"
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same< decltype( !!!MatcherA() ), Catch::Matchers::Detail::
+ MatchNotOfGeneric<MatcherA>>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0, !!!MatcherA() )
+with expansion:
+ 0 not equals: (int) 1 or (string) "1"
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same<decltype( !!!!MatcherA() ), MatcherA const&>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, !!!!MatcherA() )
+with expansion:
+ 1 equals: (int) 1 or (string) "1"
+
+-------------------------------------------------------------------------------
+Combining concrete matchers does not use templated matchers
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same<decltype( StartsWith( "foo" ) || ( StartsWith( "bar" ) &&
+ EndsWith( "bar" ) && !EndsWith( "foo" ) ) ), Catch::Matchers::Detail::
+ MatchAnyOf<std::string>>::value
+
+-------------------------------------------------------------------------------
+Combining only templated matchers
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same<decltype( MatcherA() || MatcherB() ), Catch::Matchers::Detail::
+ MatchAnyOfGeneric<MatcherA, MatcherB>>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, MatcherA() || MatcherB() )
+with expansion:
+ 1 ( equals: (int) 1 or (string) "1" or equals: (long long) 1 )
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same<decltype( MatcherA() && MatcherB() ), Catch::Matchers::Detail::
+ MatchAllOfGeneric<MatcherA, MatcherB>>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, MatcherA() && MatcherB() )
+with expansion:
+ 1 ( equals: (int) 1 or (string) "1" and equals: (long long) 1 )
+
+Matchers.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_same< decltype( MatcherA() || !MatcherB() ), Catch::Matchers::Detail:
+ :MatchAnyOfGeneric< MatcherA, Catch::Matchers::Detail::MatchNotOfGeneric
+ <MatcherB>>>::value
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1, MatcherA() || !MatcherB() )
+with expansion:
+ 1 ( equals: (int) 1 or (string) "1" or not equals: (long long) 1 )
+
+-------------------------------------------------------------------------------
+Combining templated and concrete matchers
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( vec, Predicate<std::vector<int>>( []( auto const& v ) { return std::all_of( v.begin(), v.end(), []( int elem ) { return elem % 2 == 1; } ); }, "All elements are odd" ) && !EqualsRange( a ) )
+with expansion:
+ { 1, 3, 5 } ( matches predicate: "All elements are odd" and not Equals: { 5,
+ 3, 1 } )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( str, StartsWith( "foo" ) && EqualsRange( arr ) && EndsWith( "bar" ) )
+with expansion:
+ "foobar" ( starts with: "foo" and Equals: { 'f', 'o', 'o', 'b', 'a', 'r' }
+ and ends with: "bar" )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( str, StartsWith( "foo" ) && !EqualsRange( bad_arr ) && EndsWith( "bar" ) )
+with expansion:
+ "foobar" ( starts with: "foo" and not Equals: { 'o', 'o', 'f', 'b', 'a', 'r'
+ } and ends with: "bar" )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( str, EqualsRange( arr ) && StartsWith( "foo" ) && EndsWith( "bar" ) )
+with expansion:
+ "foobar" ( Equals: { 'f', 'o', 'o', 'b', 'a', 'r' } and starts with: "foo"
+ and ends with: "bar" )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( str, !EqualsRange( bad_arr ) && StartsWith( "foo" ) && EndsWith( "bar" ) )
+with expansion:
+ "foobar" ( not Equals: { 'o', 'o', 'f', 'b', 'a', 'r' } and starts with:
+ "foo" and ends with: "bar" )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( str, EqualsRange( bad_arr ) || ( StartsWith( "foo" ) && EndsWith( "bar" ) ) )
+with expansion:
+ "foobar" ( Equals: { 'o', 'o', 'f', 'b', 'a', 'r' } or ( starts with: "foo"
+ and ends with: "bar" ) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( str, ( StartsWith( "foo" ) && EndsWith( "bar" ) ) || EqualsRange( bad_arr ) )
+with expansion:
+ "foobar" ( ( starts with: "foo" and ends with: "bar" ) or Equals: { 'o', 'o',
+ 'f', 'b', 'a', 'r' } )
+
+-------------------------------------------------------------------------------
+Combining templated matchers
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( container, EqualsRange( a ) || EqualsRange( b ) || EqualsRange( c ) )
+with expansion:
+ { 1, 2, 3 } ( Equals: { 1, 2, 3 } or Equals: { 0, 1, 2 } or Equals: { 4, 5, 6
+ } )
+
+-------------------------------------------------------------------------------
+Commas in various macros are allowed
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS( std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}} )
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECK_THROWS( std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}} )
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3} )
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECK_NOTHROW( std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3} )
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
+with expansion:
+ { 1, 2 } == { 1, 2 }
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECK( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
+with expansion:
+ { 1, 2 } == { 1, 2 }
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( std::vector<int>{1, 2} == std::vector<int>{1, 2, 3} )
+with expansion:
+ !({ 1, 2 } == { 1, 2, 3 })
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( std::vector<int>{1, 2} == std::vector<int>{1, 2, 3} )
+with expansion:
+ !({ 1, 2 } == { 1, 2, 3 })
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECK_NOFAIL( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
+with expansion:
+ { 1, 2 } == { 1, 2 }
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECKED_IF( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
+with expansion:
+ { 1, 2 } == { 1, 2 }
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECKED_ELSE( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
+with expansion:
+ { 1, 2 } == { 1, 2 }
+
+-------------------------------------------------------------------------------
+Comparing function pointers
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( a )
+with expansion:
+ 0x<hex digits>
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( a == &foo )
+with expansion:
+ 0x<hex digits> == 0x<hex digits>
+
+-------------------------------------------------------------------------------
+Comparison ops
+-------------------------------------------------------------------------------
+RandomNumberGeneration.tests.cpp:<line number>
+...............................................................................
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( SimplePcg32{} == SimplePcg32{} )
+with expansion:
+ {?} == {?}
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( SimplePcg32{ 0 } != SimplePcg32{} )
+with expansion:
+ {?} != {?}
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( SimplePcg32{ 1 } == SimplePcg32{ 2 } )
+with expansion:
+ !({?} == {?})
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( SimplePcg32{ 1 } != SimplePcg32{ 1 } )
+with expansion:
+ !({?} != {?})
+
+-------------------------------------------------------------------------------
+Comparison with explicitly convertible types
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( td == Approx(10.0) )
+with expansion:
+ StrongDoubleTypedef(10) == Approx( 10.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( Approx(10.0) == td )
+with expansion:
+ Approx( 10.0 ) == StrongDoubleTypedef(10)
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( td != Approx(11.0) )
+with expansion:
+ StrongDoubleTypedef(10) != Approx( 11.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( Approx(11.0) != td )
+with expansion:
+ Approx( 11.0 ) != StrongDoubleTypedef(10)
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( td <= Approx(10.0) )
+with expansion:
+ StrongDoubleTypedef(10) <= Approx( 10.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( td <= Approx(11.0) )
+with expansion:
+ StrongDoubleTypedef(10) <= Approx( 11.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( Approx(10.0) <= td )
+with expansion:
+ Approx( 10.0 ) <= StrongDoubleTypedef(10)
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( Approx(9.0) <= td )
+with expansion:
+ Approx( 9.0 ) <= StrongDoubleTypedef(10)
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( td >= Approx(9.0) )
+with expansion:
+ StrongDoubleTypedef(10) >= Approx( 9.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( td >= Approx(td) )
+with expansion:
+ StrongDoubleTypedef(10) >= Approx( 10.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( Approx(td) >= td )
+with expansion:
+ Approx( 10.0 ) >= StrongDoubleTypedef(10)
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( Approx(11.0) >= td )
+with expansion:
+ Approx( 11.0 ) >= StrongDoubleTypedef(10)
+
+-------------------------------------------------------------------------------
+Comparisons between ints where one side is computed
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: PASSED:
+ CHECK( 54 == 6*9 )
+with expansion:
+ 54 == 54
+
+-------------------------------------------------------------------------------
+Comparisons between unsigned ints and negative signed ints match c++ standard
+behaviour
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: PASSED:
+ CHECK( ( -1 > 2u ) )
+with expansion:
+ true
+
+Condition.tests.cpp:<line number>: PASSED:
+ CHECK( -1 > 2u )
+with expansion:
+ -1 > 2
+
+Condition.tests.cpp:<line number>: PASSED:
+ CHECK( ( 2u < -1 ) )
+with expansion:
+ true
+
+Condition.tests.cpp:<line number>: PASSED:
+ CHECK( 2u < -1 )
+with expansion:
+ 2 < -1
+
+Condition.tests.cpp:<line number>: PASSED:
+ CHECK( ( minInt > 2u ) )
+with expansion:
+ true
+
+Condition.tests.cpp:<line number>: PASSED:
+ CHECK( minInt > 2u )
+with expansion:
+ -2147483648 > 2
+
+-------------------------------------------------------------------------------
+Comparisons with int literals don't warn when mixing signed/ unsigned
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( i == 1 )
+with expansion:
+ 1 == 1
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( ui == 2 )
+with expansion:
+ 2 == 2
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( l == 3 )
+with expansion:
+ 3 == 3
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( ul == 4 )
+with expansion:
+ 4 == 4
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( c == 5 )
+with expansion:
+ 5 == 5
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( uc == 6 )
+with expansion:
+ 6 == 6
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( 1 == i )
+with expansion:
+ 1 == 1
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( 2 == ui )
+with expansion:
+ 2 == 2
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( 3 == l )
+with expansion:
+ 3 == 3
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( 4 == ul )
+with expansion:
+ 4 == 4
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( 5 == c )
+with expansion:
+ 5 == 5
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( 6 == uc )
+with expansion:
+ 6 == 6
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( (std::numeric_limits<uint32_t>::max)() > ul )
+with expansion:
+ 4294967295 (0x<hex digits>) > 4
+
+-------------------------------------------------------------------------------
+Composed generic matchers shortcircuit
+ MatchAllOf
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( matcher.match( 1 ) )
+with expansion:
+ !false
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE( first.matchCalled )
+with expansion:
+ true
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE( !second.matchCalled )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Composed generic matchers shortcircuit
+ MatchAnyOf
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK( matcher.match( 1 ) )
+with expansion:
+ true
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE( first.matchCalled )
+with expansion:
+ true
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE( !second.matchCalled )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Composed matchers shortcircuit
+ MatchAllOf
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( matcher.match( 1 ) )
+with expansion:
+ !false
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE( first.matchCalled )
+with expansion:
+ true
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE( !second.matchCalled )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Composed matchers shortcircuit
+ MatchAnyOf
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK( matcher.match( 1 ) )
+with expansion:
+ true
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE( first.matchCalled )
+with expansion:
+ true
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE( !second.matchCalled )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Contains string matcher
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "not there" (case
+ insensitive)
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), ContainsSubstring( "STRING" ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "STRING"
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ from var and iterators
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ from var and iterators
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ from var and iterators
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ from var and iterators
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ from var and iterators
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ from var and iterators
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ From a temporary container
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ From a temporary container
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ From a temporary container
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ From a temporary container
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ From a temporary container
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ From a temporary container
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( elem % 2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Copy and then generate a range
+ Final validation
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( call_count == 1 )
+with expansion:
+ 1 == 1
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( make_data().size() == test_count )
+with expansion:
+ 6 == 6
+
+-------------------------------------------------------------------------------
+Cout stream properly declares it writes to stdout
+-------------------------------------------------------------------------------
+Stream.tests.cpp:<line number>
+...............................................................................
+
+Stream.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::makeStream( "-" )->isConsole() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Custom exceptions can be translated when testing for nothrow
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+ REQUIRE_NOTHROW( throwCustom() )
+due to unexpected exception with message:
+ custom exception - not std
+
+-------------------------------------------------------------------------------
+Custom exceptions can be translated when testing for throwing as something else
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_AS( throwCustom(), std::exception )
+due to unexpected exception with message:
+ custom exception - not std
+
+-------------------------------------------------------------------------------
+Custom std-exceptions can be custom translated
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ custom std exception
+
+-------------------------------------------------------------------------------
+Default scale is invisible to comparison
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 101.000001 != Approx(100).epsilon(0.01) )
+with expansion:
+ 101.000001 != Approx( 100.0 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::pow(10, -5) != Approx(std::pow(10, -7)) )
+with expansion:
+ 0.00001 != Approx( 0.0000001 )
+
+-------------------------------------------------------------------------------
+Directly creating an EnumInfo
+-------------------------------------------------------------------------------
+ToString.tests.cpp:<line number>
+...............................................................................
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK( enumInfo->lookup(0) == "Value1" )
+with expansion:
+ Value1 == "Value1"
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK( enumInfo->lookup(1) == "Value2" )
+with expansion:
+ Value2 == "Value2"
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK( enumInfo->lookup(3) == "{** unexpected enum value **}" )
+with expansion:
+ {** unexpected enum value **}
+ ==
+ "{** unexpected enum value **}"
+
+-------------------------------------------------------------------------------
+Empty stream name opens cout stream
+-------------------------------------------------------------------------------
+Stream.tests.cpp:<line number>
+...............................................................................
+
+Stream.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::makeStream( "" )->isConsole() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Empty tag is not allowed
+-------------------------------------------------------------------------------
+Tag.tests.cpp:<line number>
+...............................................................................
+
+Tag.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS( Catch::TestCaseInfo( "", { "fake test name", "[]" }, dummySourceLineInfo ) )
+
+-------------------------------------------------------------------------------
+EndsWith string matcher
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), EndsWith( "Substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ends with: "Substring"
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), EndsWith( "this", Catch::CaseSensitive::No ) )
+with expansion:
+ "this string contains 'abc' as a substring" ends with: "this" (case
+ insensitive)
+
+-------------------------------------------------------------------------------
+Enums can quickly have stringification enabled using REGISTER_ENUM
+-------------------------------------------------------------------------------
+EnumToString.tests.cpp:<line number>
+...............................................................................
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ REQUIRE( stringify( EnumClass3::Value1 ) == "Value1" )
+with expansion:
+ "Value1" == "Value1"
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ REQUIRE( stringify( EnumClass3::Value2 ) == "Value2" )
+with expansion:
+ "Value2" == "Value2"
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ REQUIRE( stringify( EnumClass3::Value3 ) == "Value3" )
+with expansion:
+ "Value3" == "Value3"
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ REQUIRE( stringify( EnumClass3::Value4 ) == "{** unexpected enum value **}" )
+with expansion:
+ "{** unexpected enum value **}"
+ ==
+ "{** unexpected enum value **}"
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ REQUIRE( stringify( ec3 ) == "Value2" )
+with expansion:
+ "Value2" == "Value2"
+
+-------------------------------------------------------------------------------
+Enums in namespaces can quickly have stringification enabled using
+REGISTER_ENUM
+-------------------------------------------------------------------------------
+EnumToString.tests.cpp:<line number>
+...............................................................................
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ REQUIRE( stringify( Bikeshed::Colours::Red ) == "Red" )
+with expansion:
+ "Red" == "Red"
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ REQUIRE( stringify( Bikeshed::Colours::Blue ) == "Blue" )
+with expansion:
+ "Blue" == "Blue"
+
+-------------------------------------------------------------------------------
+Epsilon only applies to Approx's value
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( 101.01 != Approx(100).epsilon(0.01) )
+with expansion:
+ 101.01 != Approx( 100.0 )
+
+-------------------------------------------------------------------------------
+Equality checks that should fail
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 6 )
+with expansion:
+ 7 == 6
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 8 )
+with expansion:
+ 7 == 8
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 0 )
+with expansion:
+ 7 == 0
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 9.11f ) )
+with expansion:
+ 9.1f == Approx( 9.1099996567 )
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 9.0f ) )
+with expansion:
+ 9.1f == Approx( 9.0 )
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 1 ) )
+with expansion:
+ 9.1f == Approx( 1.0 )
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 0 ) )
+with expansion:
+ 9.1f == Approx( 0.0 )
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.double_pi == Approx( 3.1415 ) )
+with expansion:
+ 3.1415926535 == Approx( 3.1415 )
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "goodbye" )
+with expansion:
+ "hello" == "goodbye"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "hell" )
+with expansion:
+ "hello" == "hell"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "hello1" )
+with expansion:
+ "hello" == "hello1"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello.size() == 6 )
+with expansion:
+ 5 == 6
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( x == Approx( 1.301 ) )
+with expansion:
+ 1.3 == Approx( 1.301 )
+
+-------------------------------------------------------------------------------
+Equality checks that should succeed
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven == 7 )
+with expansion:
+ 7 == 7
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
+with expansion:
+ 9.1f == Approx( 9.1000003815 )
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.double_pi == Approx( 3.1415926535 ) )
+with expansion:
+ 3.1415926535 == Approx( 3.1415926535 )
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello == "hello" )
+with expansion:
+ "hello" == "hello"
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( "hello" == data.str_hello )
+with expansion:
+ "hello" == "hello"
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello.size() == 5 )
+with expansion:
+ 5 == 5
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( x == Approx( 1.3 ) )
+with expansion:
+ 1.3 == Approx( 1.3 )
+
+-------------------------------------------------------------------------------
+Equals
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), Equals( "this string contains 'abc' as a substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" equals: "this string contains
+ 'abc' as a substring"
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), Equals( "this string contains 'ABC' as a substring", Catch::CaseSensitive::No ) )
+with expansion:
+ "this string contains 'abc' as a substring" equals: "this string contains
+ 'abc' as a substring" (case insensitive)
+
+-------------------------------------------------------------------------------
+Equals string matcher
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Equals( "this string contains 'ABC' as a substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" equals: "this string contains
+ 'ABC' as a substring"
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Equals( "something else", Catch::CaseSensitive::No ) )
+with expansion:
+ "this string contains 'abc' as a substring" equals: "something else" (case
+ insensitive)
+
+-------------------------------------------------------------------------------
+Exception as a value (e.g. in REQUIRE_THROWS_MATCHES) can be stringified
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(WhatException{}) == "This exception has overridden what() method" )
+with expansion:
+ "This exception has overridden what() method"
+ ==
+ "This exception has overridden what() method"
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(OperatorException{}) == "OperatorException" )
+with expansion:
+ "OperatorException" == "OperatorException"
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(StringMakerException{}) == "StringMakerException" )
+with expansion:
+ "StringMakerException"
+ ==
+ "StringMakerException"
+
+-------------------------------------------------------------------------------
+Exception matchers that fail
+ No exception
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THROWS_MATCHES( doesNotThrow(), SpecialException, ExceptionMatcher{ 1 } )
+because no exception was thrown where one was expected:
+
+Matchers.tests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_MATCHES( doesNotThrow(), SpecialException, ExceptionMatcher{ 1 } )
+because no exception was thrown where one was expected:
+
+-------------------------------------------------------------------------------
+Exception matchers that fail
+ Type mismatch
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THROWS_MATCHES( throwsAsInt( 1 ), SpecialException, ExceptionMatcher{ 1 } )
+due to unexpected exception with message:
+ Unknown exception
+
+Matchers.tests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_MATCHES( throwsAsInt( 1 ), SpecialException, ExceptionMatcher{ 1 } )
+due to unexpected exception with message:
+ Unknown exception
+
+-------------------------------------------------------------------------------
+Exception matchers that fail
+ Contents are wrong
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THROWS_MATCHES( throwsSpecialException( 3 ), SpecialException, ExceptionMatcher{ 1 } )
+with expansion:
+ SpecialException::what special exception has value of 1
+
+Matchers.tests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_MATCHES( throwsSpecialException( 4 ), SpecialException, ExceptionMatcher{ 1 } )
+with expansion:
+ SpecialException::what special exception has value of 1
+
+-------------------------------------------------------------------------------
+Exception matchers that succeed
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THROWS_MATCHES( throwsSpecialException( 1 ), SpecialException, ExceptionMatcher{ 1 } )
+with expansion:
+ SpecialException::what special exception has value of 1
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_MATCHES( throwsSpecialException( 2 ), SpecialException, ExceptionMatcher{ 2 } )
+with expansion:
+ SpecialException::what special exception has value of 2
+
+-------------------------------------------------------------------------------
+Exception messages can be tested for
+ exact match
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), "expected exception" )
+with expansion:
+ "expected exception" equals: "expected exception"
+
+-------------------------------------------------------------------------------
+Exception messages can be tested for
+ different case
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) )
+with expansion:
+ "expected exception" equals: "expected exception" (case insensitive)
+
+-------------------------------------------------------------------------------
+Exception messages can be tested for
+ wildcarded
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), StartsWith( "expected" ) )
+with expansion:
+ "expected exception" starts with: "expected"
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), EndsWith( "exception" ) )
+with expansion:
+ "expected exception" ends with: "exception"
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), ContainsSubstring( "except" ) )
+with expansion:
+ "expected exception" contains: "except"
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), ContainsSubstring( "exCept", Catch::CaseSensitive::No ) )
+with expansion:
+ "expected exception" contains: "except" (case insensitive)
+
+-------------------------------------------------------------------------------
+Exceptions matchers
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_MATCHES( throwsDerivedException(), DerivedException, Message( "DerivedException::what" ) )
+with expansion:
+ DerivedException::what exception message matches "DerivedException::what"
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_MATCHES( throwsDerivedException(), DerivedException, !Message( "derivedexception::what" ) )
+with expansion:
+ DerivedException::what not exception message matches "derivedexception::what"
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_MATCHES( throwsSpecialException( 2 ), SpecialException, !Message( "DerivedException::what" ) )
+with expansion:
+ SpecialException::what not exception message matches "DerivedException::what"
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_MATCHES( throwsSpecialException( 2 ), SpecialException, Message( "SpecialException::what" ) )
+with expansion:
+ SpecialException::what exception message matches "SpecialException::what"
+
+-------------------------------------------------------------------------------
+Expected exceptions that don't throw or unexpected exceptions fail the test
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+ CHECK_THROWS_AS( thisThrows(), std::string )
+due to unexpected exception with message:
+ expected exception
+
+Exception.tests.cpp:<line number>: FAILED:
+ CHECK_THROWS_AS( thisDoesntThrow(), std::domain_error )
+because no exception was thrown where one was expected:
+
+Exception.tests.cpp:<line number>: FAILED:
+ CHECK_NOTHROW( thisThrows() )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+FAIL aborts the test
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+explicitly with message:
+ This is a failure
+
+-------------------------------------------------------------------------------
+FAIL does not require an argument
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+FAIL_CHECK does not abort the test
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+explicitly with message:
+ This is a failure
+
+Message.tests.cpp:<line number>: warning:
+ This message appears in the output
+
+-------------------------------------------------------------------------------
+Factorials are computed
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( Factorial(0) == 1 )
+with expansion:
+ 1 == 1
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( Factorial(1) == 1 )
+with expansion:
+ 1 == 1
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( Factorial(2) == 2 )
+with expansion:
+ 2 == 2
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( Factorial(3) == 6 )
+with expansion:
+ 6 == 6
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( Factorial(10) == 3628800 )
+with expansion:
+ 3628800 (0x<hex digits>) == 3628800 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Floating point matchers: double
+ Relative
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 10., WithinRel( 11.1, 0.1 ) )
+with expansion:
+ 10.0 and 11.1 are within 10% of each other
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 10., !WithinRel( 11.2, 0.1 ) )
+with expansion:
+ 10.0 not and 11.2 are within 10% of each other
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1., !WithinRel( 0., 0.99 ) )
+with expansion:
+ 1.0 not and 0 are within 99% of each other
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( -0., WithinRel( 0. ) )
+with expansion:
+ -0.0 and 0 are within 2.22045e-12% of each other
+
+-------------------------------------------------------------------------------
+Floating point matchers: double
+ Relative
+ Some subnormal values
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( v1, WithinRel( v2 ) )
+with expansion:
+ 0.0 and 2.22507e-308 are within 2.22045e-12% of each other
+
+-------------------------------------------------------------------------------
+Floating point matchers: double
+ Margin
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1., WithinAbs( 1., 0 ) )
+with expansion:
+ 1.0 is within 0.0 of 1.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0., WithinAbs( 1., 1 ) )
+with expansion:
+ 0.0 is within 1.0 of 1.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0., !WithinAbs( 1., 0.99 ) )
+with expansion:
+ 0.0 not is within 0.99 of 1.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0., !WithinAbs( 1., 0.99 ) )
+with expansion:
+ 0.0 not is within 0.99 of 1.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 11., !WithinAbs( 10., 0.5 ) )
+with expansion:
+ 11.0 not is within 0.5 of 10.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 10., !WithinAbs( 11., 0.5 ) )
+with expansion:
+ 10.0 not is within 0.5 of 11.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( -10., WithinAbs( -10., 0.5 ) )
+with expansion:
+ -10.0 is within 0.5 of -10.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( -10., WithinAbs( -9.6, 0.5 ) )
+with expansion:
+ -10.0 is within 0.5 of -9.6
+
+-------------------------------------------------------------------------------
+Floating point matchers: double
+ ULPs
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1., WithinULP( 1., 0 ) )
+with expansion:
+ 1.0 is within 0 ULPs of 1.0000000000000000e+00 ([1.0000000000000000e+00, 1.
+ 0000000000000000e+00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( nextafter( 1., 2. ), WithinULP( 1., 1 ) )
+with expansion:
+ 1.0 is within 1 ULPs of 1.0000000000000000e+00 ([9.9999999999999989e-01, 1.
+ 0000000000000002e+00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0., WithinULP( nextafter( 0., 1. ), 1 ) )
+with expansion:
+ 0.0 is within 1 ULPs of 4.9406564584124654e-324 ([0.0000000000000000e+00, 9.
+ 8813129168249309e-324])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1., WithinULP( nextafter( 1., 0. ), 1 ) )
+with expansion:
+ 1.0 is within 1 ULPs of 9.9999999999999989e-01 ([9.9999999999999978e-01, 1.
+ 0000000000000000e+00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1., !WithinULP( nextafter( 1., 2. ), 0 ) )
+with expansion:
+ 1.0 not is within 0 ULPs of 1.0000000000000002e+00 ([1.0000000000000002e+00,
+ 1.0000000000000002e+00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1., WithinULP( 1., 0 ) )
+with expansion:
+ 1.0 is within 0 ULPs of 1.0000000000000000e+00 ([1.0000000000000000e+00, 1.
+ 0000000000000000e+00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( -0., WithinULP( 0., 0 ) )
+with expansion:
+ -0.0 is within 0 ULPs of 0.0000000000000000e+00 ([0.0000000000000000e+00, 0.
+ 0000000000000000e+00])
+
+-------------------------------------------------------------------------------
+Floating point matchers: double
+ Composed
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1., WithinAbs( 1., 0.5 ) || WithinULP( 2., 1 ) )
+with expansion:
+ 1.0 ( is within 0.5 of 1.0 or is within 1 ULPs of 2.0000000000000000e+00 ([1.
+ 9999999999999998e+00, 2.0000000000000004e+00]) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1., WithinAbs( 2., 0.5 ) || WithinULP( 1., 0 ) )
+with expansion:
+ 1.0 ( is within 0.5 of 2.0 or is within 0 ULPs of 1.0000000000000000e+00 ([1.
+ 0000000000000000e+00, 1.0000000000000000e+00]) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0.0001, WithinAbs( 0., 0.001 ) || WithinRel( 0., 0.1 ) )
+with expansion:
+ 0.0001 ( is within 0.001 of 0.0 or and 0 are within 10% of each other )
+
+-------------------------------------------------------------------------------
+Floating point matchers: double
+ Constructor validation
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( WithinAbs( 1., 0. ) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( WithinAbs( 1., -1. ), std::domain_error )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( WithinULP( 1., 0 ) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( WithinRel( 1., 0. ) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( WithinRel( 1., -0.2 ), std::domain_error )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( WithinRel( 1., 1. ), std::domain_error )
+
+-------------------------------------------------------------------------------
+Floating point matchers: float
+ Relative
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 10.f, WithinRel( 11.1f, 0.1f ) )
+with expansion:
+ 10.0f and 11.1 are within 10% of each other
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 10.f, !WithinRel( 11.2f, 0.1f ) )
+with expansion:
+ 10.0f not and 11.2 are within 10% of each other
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1.f, !WithinRel( 0.f, 0.99f ) )
+with expansion:
+ 1.0f not and 0 are within 99% of each other
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( -0.f, WithinRel( 0.f ) )
+with expansion:
+ -0.0f and 0 are within 0.00119209% of each other
+
+-------------------------------------------------------------------------------
+Floating point matchers: float
+ Relative
+ Some subnormal values
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( v1, WithinRel( v2 ) )
+with expansion:
+ 0.0f and 1.17549e-38 are within 0.00119209% of each other
+
+-------------------------------------------------------------------------------
+Floating point matchers: float
+ Margin
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1.f, WithinAbs( 1.f, 0 ) )
+with expansion:
+ 1.0f is within 0.0 of 1.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0.f, WithinAbs( 1.f, 1 ) )
+with expansion:
+ 0.0f is within 1.0 of 1.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0.f, !WithinAbs( 1.f, 0.99f ) )
+with expansion:
+ 0.0f not is within 0.9900000095 of 1.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0.f, !WithinAbs( 1.f, 0.99f ) )
+with expansion:
+ 0.0f not is within 0.9900000095 of 1.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0.f, WithinAbs( -0.f, 0 ) )
+with expansion:
+ 0.0f is within 0.0 of -0.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 11.f, !WithinAbs( 10.f, 0.5f ) )
+with expansion:
+ 11.0f not is within 0.5 of 10.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 10.f, !WithinAbs( 11.f, 0.5f ) )
+with expansion:
+ 10.0f not is within 0.5 of 11.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( -10.f, WithinAbs( -10.f, 0.5f ) )
+with expansion:
+ -10.0f is within 0.5 of -10.0
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( -10.f, WithinAbs( -9.6f, 0.5f ) )
+with expansion:
+ -10.0f is within 0.5 of -9.6000003815
+
+-------------------------------------------------------------------------------
+Floating point matchers: float
+ ULPs
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1.f, WithinULP( 1.f, 0 ) )
+with expansion:
+ 1.0f is within 0 ULPs of 1.00000000e+00f ([1.00000000e+00, 1.00000000e+00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( -1.f, WithinULP( -1.f, 0 ) )
+with expansion:
+ -1.0f is within 0 ULPs of -1.00000000e+00f ([-1.00000000e+00, -1.00000000e+
+ 00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( nextafter( 1.f, 2.f ), WithinULP( 1.f, 1 ) )
+with expansion:
+ 1.0f is within 1 ULPs of 1.00000000e+00f ([9.99999940e-01, 1.00000012e+00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0.f, WithinULP( nextafter( 0.f, 1.f ), 1 ) )
+with expansion:
+ 0.0f is within 1 ULPs of 1.40129846e-45f ([0.00000000e+00, 2.80259693e-45])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1.f, WithinULP( nextafter( 1.f, 0.f ), 1 ) )
+with expansion:
+ 1.0f is within 1 ULPs of 9.99999940e-01f ([9.99999881e-01, 1.00000000e+00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1.f, !WithinULP( nextafter( 1.f, 2.f ), 0 ) )
+with expansion:
+ 1.0f not is within 0 ULPs of 1.00000012e+00f ([1.00000012e+00, 1.00000012e+
+ 00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1.f, WithinULP( 1.f, 0 ) )
+with expansion:
+ 1.0f is within 0 ULPs of 1.00000000e+00f ([1.00000000e+00, 1.00000000e+00])
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( -0.f, WithinULP( 0.f, 0 ) )
+with expansion:
+ -0.0f is within 0 ULPs of 0.00000000e+00f ([0.00000000e+00, 0.00000000e+00])
+
+-------------------------------------------------------------------------------
+Floating point matchers: float
+ Composed
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1.f, WithinAbs( 1.f, 0.5 ) || WithinULP( 1.f, 1 ) )
+with expansion:
+ 1.0f ( is within 0.5 of 1.0 or is within 1 ULPs of 1.00000000e+00f ([9.
+ 99999940e-01, 1.00000012e+00]) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 1.f, WithinAbs( 2.f, 0.5 ) || WithinULP( 1.f, 0 ) )
+with expansion:
+ 1.0f ( is within 0.5 of 2.0 or is within 0 ULPs of 1.00000000e+00f ([1.
+ 00000000e+00, 1.00000000e+00]) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( 0.0001f, WithinAbs( 0.f, 0.001f ) || WithinRel( 0.f, 0.1f ) )
+with expansion:
+ 0.0001f ( is within 0.001 of 0.0 or and 0 are within 10% of each other )
+
+-------------------------------------------------------------------------------
+Floating point matchers: float
+ Constructor validation
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( WithinAbs( 1.f, 0.f ) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( WithinAbs( 1.f, -1.f ), std::domain_error )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( WithinULP( 1.f, 0 ) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( WithinULP( 1.f, static_cast<uint64_t>( -1 ) ), std::domain_error )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( WithinRel( 1.f, 0.f ) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( WithinRel( 1.f, -0.2f ), std::domain_error )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( WithinRel( 1.f, 1.f ), std::domain_error )
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Filtering by predicate
+ Basic usage
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Filtering by predicate
+ Basic usage
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Filtering by predicate
+ Basic usage
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Filtering by predicate
+ Throws if there are no matching values
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( filter([] (int) {return false; }, value(1)), Catch::GeneratorException )
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Shortening a range
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 4 )
+with expansion:
+ 1 < 4
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Shortening a range
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 4 )
+with expansion:
+ 2 < 4
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Shortening a range
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 4 )
+with expansion:
+ 3 < 4
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Transforming elements
+ Same type
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Transforming elements
+ Same type
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Transforming elements
+ Same type
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Transforming elements
+ Different type
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i.size() == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Transforming elements
+ Different type
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i.size() == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Transforming elements
+ Different type
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i.size() == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Transforming elements
+ Different deduced type
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i.size() == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Transforming elements
+ Different deduced type
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i.size() == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Transforming elements
+ Different deduced type
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( i.size() == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Repeating a generator
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j > 0 )
+with expansion:
+ 1 > 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Repeating a generator
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j > 0 )
+with expansion:
+ 2 > 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Repeating a generator
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j > 0 )
+with expansion:
+ 3 > 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Repeating a generator
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j > 0 )
+with expansion:
+ 1 > 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Repeating a generator
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j > 0 )
+with expansion:
+ 2 > 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Repeating a generator
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j > 0 )
+with expansion:
+ 3 > 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Chunking a generator into sized pieces
+ Number of elements in source is divisible by chunk size
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.size() == 2 )
+with expansion:
+ 2 == 2
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.front() == chunk2.back() )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Chunking a generator into sized pieces
+ Number of elements in source is divisible by chunk size
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.size() == 2 )
+with expansion:
+ 2 == 2
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.front() == chunk2.back() )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Chunking a generator into sized pieces
+ Number of elements in source is divisible by chunk size
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.size() == 2 )
+with expansion:
+ 2 == 2
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.front() == chunk2.back() )
+with expansion:
+ 3 == 3
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Chunking a generator into sized pieces
+ Number of elements in source is not divisible by chunk size
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.size() == 2 )
+with expansion:
+ 2 == 2
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.front() == chunk2.back() )
+with expansion:
+ 1 == 1
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.front() < 3 )
+with expansion:
+ 1 < 3
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Chunking a generator into sized pieces
+ Number of elements in source is not divisible by chunk size
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.size() == 2 )
+with expansion:
+ 2 == 2
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.front() == chunk2.back() )
+with expansion:
+ 2 == 2
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.front() < 3 )
+with expansion:
+ 2 < 3
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Chunking a generator into sized pieces
+ Chunk size of zero
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Chunking a generator into sized pieces
+ Chunk size of zero
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Chunking a generator into sized pieces
+ Chunk size of zero
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( chunk2.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Generators -- adapters
+ Chunking a generator into sized pieces
+ Throws on too small generators
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( chunk(2, value(1)), Catch::GeneratorException )
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ one
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j < i )
+with expansion:
+ -3 < 1
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ one
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j < i )
+with expansion:
+ -2 < 1
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ one
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j < i )
+with expansion:
+ -1 < 1
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ two
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( 4u * i > str.size() )
+with expansion:
+ 4 > 1
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ two
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( 4u * i > str.size() )
+with expansion:
+ 4 > 2
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ two
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( 4u * i > str.size() )
+with expansion:
+ 4 > 3
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ one
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j < i )
+with expansion:
+ -3 < 2
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ one
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j < i )
+with expansion:
+ -2 < 2
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ one
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j < i )
+with expansion:
+ -1 < 2
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ two
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( 4u * i > str.size() )
+with expansion:
+ 8 > 1
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ two
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( 4u * i > str.size() )
+with expansion:
+ 8 > 2
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ two
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( 4u * i > str.size() )
+with expansion:
+ 8 > 3
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ one
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j < i )
+with expansion:
+ -3 < 3
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ one
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j < i )
+with expansion:
+ -2 < 3
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ one
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( j < i )
+with expansion:
+ -1 < 3
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ two
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( 4u * i > str.size() )
+with expansion:
+ 12 > 1
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ two
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( 4u * i > str.size() )
+with expansion:
+ 12 > 2
+
+-------------------------------------------------------------------------------
+Generators -- simple
+ two
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( 4u * i > str.size() )
+with expansion:
+ 12 > 3
+
+-------------------------------------------------------------------------------
+Generators internals
+ Single value
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 123 )
+with expansion:
+ 123 == 123
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Preset values
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 3 )
+with expansion:
+ 3 == 3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 5 )
+with expansion:
+ 5 == 5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Generator combinator
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 5 )
+with expansion:
+ 5 == 5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 4 )
+with expansion:
+ 4 == 4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 0 )
+with expansion:
+ 0 == 0
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Explicitly typed generator sequence
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get().size() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == "aa" )
+with expansion:
+ "aa" == "aa"
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == "bb" )
+with expansion:
+ "bb" == "bb"
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == "cc" )
+with expansion:
+ "cc" == "cc"
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Filter generator
+ Simple filtering
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 3 )
+with expansion:
+ 3 == 3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Filter generator
+ Filter out multiple elements at the start and end
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 3 )
+with expansion:
+ 3 == 3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Filter generator
+ Throws on construction if it can't get initial element
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( filter([](int) { return false; }, value(1)), Catch::GeneratorException )
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( filter([](int) { return false; }, values({ 1, 2, 3 })), Catch::GeneratorException )
+
+-------------------------------------------------------------------------------
+Generators internals
+ Take generator
+ Take less
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Take generator
+ Take more
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Map with explicit return type
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2.0 )
+with expansion:
+ 2.0 == 2.0
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 4.0 )
+with expansion:
+ 4.0 == 4.0
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 6.0 )
+with expansion:
+ 6.0 == 6.0
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Map with deduced return type
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2.0 )
+with expansion:
+ 2.0 == 2.0
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 4.0 )
+with expansion:
+ 4.0 == 4.0
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 6.0 )
+with expansion:
+ 6.0 == 6.0
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Repeat
+ Singular repeat
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 3 )
+with expansion:
+ 3 == 3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Repeat
+ Actual repeat
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 3 )
+with expansion:
+ 3 == 3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 3 )
+with expansion:
+ 3 == 3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Positive auto step
+ Integer
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -2 )
+with expansion:
+ -2 == -2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -1 )
+with expansion:
+ -1 == -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 0 )
+with expansion:
+ 0 == 0
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Negative auto step
+ Integer
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 0 )
+with expansion:
+ 0 == 0
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -1 )
+with expansion:
+ -1 == -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Positive manual step
+ Integer
+ Exact
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -7 )
+with expansion:
+ -7 == -7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -4 )
+with expansion:
+ -4 == -4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -1 )
+with expansion:
+ -1 == -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Positive manual step
+ Integer
+ Slightly over end
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -7 )
+with expansion:
+ -7 == -7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -4 )
+with expansion:
+ -4 == -4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -1 )
+with expansion:
+ -1 == -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Positive manual step
+ Integer
+ Slightly under end
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -7 )
+with expansion:
+ -7 == -7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -4 )
+with expansion:
+ -4 == -4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -1 )
+with expansion:
+ -1 == -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 5 )
+with expansion:
+ 5 == 5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Positive manual step
+ Floating Point
+ Exact
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -1.0 == Approx( -1.0 )
+with message:
+ Current expected value is -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.9 == Approx( -0.9 )
+with message:
+ Current expected value is -0.9
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.9
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.8 == Approx( -0.8 )
+with message:
+ Current expected value is -0.8
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.8
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.7 == Approx( -0.7 )
+with message:
+ Current expected value is -0.7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.6 == Approx( -0.6 )
+with message:
+ Current expected value is -0.6
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.6
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.5 == Approx( -0.5 )
+with message:
+ Current expected value is -0.5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.4 == Approx( -0.4 )
+with message:
+ Current expected value is -0.4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.3 == Approx( -0.3 )
+with message:
+ Current expected value is -0.3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.2 == Approx( -0.2 )
+with message:
+ Current expected value is -0.2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.1 == Approx( -0.1 )
+with message:
+ Current expected value is -0.1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.0 == Approx( -0.0 )
+with message:
+ Current expected value is -1.38778e-16
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -1.38778e-16
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.1 == Approx( 0.1 )
+with message:
+ Current expected value is 0.1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.2 == Approx( 0.2 )
+with message:
+ Current expected value is 0.2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.3 == Approx( 0.3 )
+with message:
+ Current expected value is 0.3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.4 == Approx( 0.4 )
+with message:
+ Current expected value is 0.4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.5 == Approx( 0.5 )
+with message:
+ Current expected value is 0.5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.6 == Approx( 0.6 )
+with message:
+ Current expected value is 0.6
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.6
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.7 == Approx( 0.7 )
+with message:
+ Current expected value is 0.7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.8 == Approx( 0.8 )
+with message:
+ Current expected value is 0.8
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.8
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.9 == Approx( 0.9 )
+with message:
+ Current expected value is 0.9
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.9
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx( rangeEnd ) )
+with expansion:
+ 1.0 == Approx( 1.0 )
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Positive manual step
+ Floating Point
+ Slightly over end
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -1.0 == Approx( -1.0 )
+with message:
+ Current expected value is -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.7 == Approx( -0.7 )
+with message:
+ Current expected value is -0.7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.4 == Approx( -0.4 )
+with message:
+ Current expected value is -0.4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.1 == Approx( -0.1 )
+with message:
+ Current expected value is -0.1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.2 == Approx( 0.2 )
+with message:
+ Current expected value is 0.2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.5 == Approx( 0.5 )
+with message:
+ Current expected value is 0.5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Positive manual step
+ Floating Point
+ Slightly under end
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -1.0 == Approx( -1.0 )
+with message:
+ Current expected value is -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.7 == Approx( -0.7 )
+with message:
+ Current expected value is -0.7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.4 == Approx( -0.4 )
+with message:
+ Current expected value is -0.4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ -0.1 == Approx( -0.1 )
+with message:
+ Current expected value is -0.1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is -0.1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.2 == Approx( 0.2 )
+with message:
+ Current expected value is 0.2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == Approx(expected) )
+with expansion:
+ 0.5 == Approx( 0.5 )
+with message:
+ Current expected value is 0.5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+with message:
+ Current expected value is 0.5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Negative manual step
+ Integer
+ Exact
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 5 )
+with expansion:
+ 5 == 5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -1 )
+with expansion:
+ -1 == -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -4 )
+with expansion:
+ -4 == -4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Negative manual step
+ Integer
+ Slightly over end
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 5 )
+with expansion:
+ 5 == 5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -1 )
+with expansion:
+ -1 == -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -4 )
+with expansion:
+ -4 == -4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Generators internals
+ Range
+ Negative manual step
+ Integer
+ Slightly under end
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 5 )
+with expansion:
+ 5 == 5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == 2 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -1 )
+with expansion:
+ -1 == -1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -4 )
+with expansion:
+ -4 == -4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( gen.get() == -7 )
+with expansion:
+ -7 == -7
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( gen.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Greater-than inequalities with different epsilons
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d >= Approx( 1.22 ) )
+with expansion:
+ 1.23 >= Approx( 1.22 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d >= Approx( 1.23 ) )
+with expansion:
+ 1.23 >= Approx( 1.23 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( d >= Approx( 1.24 ) )
+with expansion:
+ !(1.23 >= Approx( 1.24 ))
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d >= Approx( 1.24 ).epsilon(0.1) )
+with expansion:
+ 1.23 >= Approx( 1.24 )
+
+-------------------------------------------------------------------------------
+Hashers with different seed produce different hash with same test case
+-------------------------------------------------------------------------------
+TestCaseInfoHasher.tests.cpp:<line number>
+...............................................................................
+
+TestCaseInfoHasher.tests.cpp:<line number>: PASSED:
+ REQUIRE( h1( dummy ) != h2( dummy ) )
+with expansion:
+ 3422778688 (0x<hex digits>)
+ !=
+ 130711275 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Hashers with same seed produce same hash
+-------------------------------------------------------------------------------
+TestCaseInfoHasher.tests.cpp:<line number>
+...............................................................................
+
+TestCaseInfoHasher.tests.cpp:<line number>: PASSED:
+ REQUIRE( h1( dummy ) == h2( dummy ) )
+with expansion:
+ 3422778688 (0x<hex digits>)
+ ==
+ 3422778688 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Hashing different test cases produces different result
+ Different test name
+-------------------------------------------------------------------------------
+TestCaseInfoHasher.tests.cpp:<line number>
+...............................................................................
+
+TestCaseInfoHasher.tests.cpp:<line number>: PASSED:
+ REQUIRE( h( dummy1 ) != h( dummy2 ) )
+with expansion:
+ 2903002874 (0x<hex digits>)
+ !=
+ 2668622104 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Hashing different test cases produces different result
+ Different classname
+-------------------------------------------------------------------------------
+TestCaseInfoHasher.tests.cpp:<line number>
+...............................................................................
+
+TestCaseInfoHasher.tests.cpp:<line number>: PASSED:
+ REQUIRE( h( dummy1 ) != h( dummy2 ) )
+with expansion:
+ 2673152918 (0x<hex digits>)
+ !=
+ 3916075712 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Hashing different test cases produces different result
+ Different tags
+-------------------------------------------------------------------------------
+TestCaseInfoHasher.tests.cpp:<line number>
+...............................................................................
+
+TestCaseInfoHasher.tests.cpp:<line number>: PASSED:
+ REQUIRE( h( dummy1 ) != h( dummy2 ) )
+with expansion:
+ 2074929312 (0x<hex digits>)
+ !=
+ 3429949824 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Hashing test case produces same hash across multiple calls
+-------------------------------------------------------------------------------
+TestCaseInfoHasher.tests.cpp:<line number>
+...............................................................................
+
+TestCaseInfoHasher.tests.cpp:<line number>: PASSED:
+ REQUIRE( h( dummy ) == h( dummy ) )
+with expansion:
+ 3422778688 (0x<hex digits>)
+ ==
+ 3422778688 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+INFO and WARN do not abort tests
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: warning:
+ this is a message
+ this is a warning
+
+
+No assertions in test case 'INFO and WARN do not abort tests'
+
+-------------------------------------------------------------------------------
+INFO gets logged on failure
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+ REQUIRE( a == 1 )
+with expansion:
+ 2 == 1
+with messages:
+ this message should be logged
+ so should this
+
+-------------------------------------------------------------------------------
+INFO gets logged on failure, even if captured before successful assertions
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: PASSED:
+ CHECK( a == 2 )
+with expansion:
+ 2 == 2
+with message:
+ this message may be logged later
+
+Message.tests.cpp:<line number>: FAILED:
+ CHECK( a == 1 )
+with expansion:
+ 2 == 1
+with messages:
+ this message may be logged later
+ this message should be logged
+
+Message.tests.cpp:<line number>: FAILED:
+ CHECK( a == 0 )
+with expansion:
+ 2 == 0
+with messages:
+ this message may be logged later
+ this message should be logged
+ and this, but later
+
+Message.tests.cpp:<line number>: PASSED:
+ CHECK( a == 2 )
+with expansion:
+ 2 == 2
+with messages:
+ this message may be logged later
+ this message should be logged
+ and this, but later
+ but not this
+
+-------------------------------------------------------------------------------
+INFO is reset for each loop
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 0 < 10
+with messages:
+ current counter 0
+ i := 0
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 1 < 10
+with messages:
+ current counter 1
+ i := 1
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 2 < 10
+with messages:
+ current counter 2
+ i := 2
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 3 < 10
+with messages:
+ current counter 3
+ i := 3
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 4 < 10
+with messages:
+ current counter 4
+ i := 4
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 5 < 10
+with messages:
+ current counter 5
+ i := 5
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 6 < 10
+with messages:
+ current counter 6
+ i := 6
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 7 < 10
+with messages:
+ current counter 7
+ i := 7
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 8 < 10
+with messages:
+ current counter 8
+ i := 8
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 9 < 10
+with messages:
+ current counter 9
+ i := 9
+
+Message.tests.cpp:<line number>: FAILED:
+ REQUIRE( i < 10 )
+with expansion:
+ 10 < 10
+with messages:
+ current counter 10
+ i := 10
+
+-------------------------------------------------------------------------------
+Inequality checks that should fail
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven != 7 )
+with expansion:
+ 7 != 7
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one != Approx( 9.1f ) )
+with expansion:
+ 9.1f != Approx( 9.1000003815 )
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.double_pi != Approx( 3.1415926535 ) )
+with expansion:
+ 3.1415926535 != Approx( 3.1415926535 )
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello != "hello" )
+with expansion:
+ "hello" != "hello"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello.size() != 5 )
+with expansion:
+ 5 != 5
+
+-------------------------------------------------------------------------------
+Inequality checks that should succeed
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven != 6 )
+with expansion:
+ 7 != 6
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven != 8 )
+with expansion:
+ 7 != 8
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
+with expansion:
+ 9.1f != Approx( 9.1099996567 )
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
+with expansion:
+ 9.1f != Approx( 9.0 )
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 1 ) )
+with expansion:
+ 9.1f != Approx( 1.0 )
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 0 ) )
+with expansion:
+ 9.1f != Approx( 0.0 )
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.double_pi != Approx( 3.1415 ) )
+with expansion:
+ 3.1415926535 != Approx( 3.1415 )
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello != "goodbye" )
+with expansion:
+ "hello" != "goodbye"
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello != "hell" )
+with expansion:
+ "hello" != "hell"
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello != "hello1" )
+with expansion:
+ "hello" != "hello1"
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello.size() != 6 )
+with expansion:
+ 5 != 6
+
+-------------------------------------------------------------------------------
+Lambdas in assertions
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+ REQUIRE( []() { return true; }() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Less-than inequalities with different epsilons
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d <= Approx( 1.24 ) )
+with expansion:
+ 1.23 <= Approx( 1.24 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d <= Approx( 1.23 ) )
+with expansion:
+ 1.23 <= Approx( 1.23 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( d <= Approx( 1.22 ) )
+with expansion:
+ !(1.23 <= Approx( 1.22 ))
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d <= Approx( 1.22 ).epsilon(0.1) )
+with expansion:
+ 1.23 <= Approx( 1.22 )
+
+-------------------------------------------------------------------------------
+ManuallyRegistered
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+with message:
+ was called
+
+-------------------------------------------------------------------------------
+Matchers can be (AllOf) composed with the && operator
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), ContainsSubstring( "string" ) && ContainsSubstring( "abc" ) && ContainsSubstring( "substring" ) && ContainsSubstring( "contains" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( contains: "string" and
+ contains: "abc" and contains: "substring" and contains: "contains" )
+
+-------------------------------------------------------------------------------
+Matchers can be (AnyOf) composed with the || operator
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( contains: "string" or contains:
+ "different" or contains: "random" )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching2(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" ) )
+with expansion:
+ "some completely different text that contains one common word" ( contains:
+ "string" or contains: "different" or contains: "random" )
+
+-------------------------------------------------------------------------------
+Matchers can be composed with both && and ||
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( ( contains: "string" or
+ contains: "different" ) and contains: "substring" )
+
+-------------------------------------------------------------------------------
+Matchers can be composed with both && and || - failing
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( ( contains: "string" or
+ contains: "different" ) and contains: "random" )
+
+-------------------------------------------------------------------------------
+Matchers can be negated (Not) with the ! operator
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), !ContainsSubstring( "different" ) )
+with expansion:
+ "this string contains 'abc' as a substring" not contains: "different"
+
+-------------------------------------------------------------------------------
+Matchers can be negated (Not) with the ! operator - failing
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), !ContainsSubstring( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" not contains: "substring"
+
+-------------------------------------------------------------------------------
+Mayfail test case with nested sections
+ A
+ 1
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+Mayfail test case with nested sections
+ A
+ 2
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+Mayfail test case with nested sections
+ B
+ 1
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+Mayfail test case with nested sections
+ B
+ 2
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+Mismatching exception messages failing the test
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), "expected exception" )
+with expansion:
+ "expected exception" equals: "expected exception"
+
+Exception.tests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_WITH( thisThrows(), "should fail" )
+with expansion:
+ "expected exception" equals: "should fail"
+
+-------------------------------------------------------------------------------
+Multireporter calls reporters and listeners in correct order
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( records == expected )
+with expansion:
+ { "Hello", "world", "Goodbye", "world" }
+ ==
+ { "Hello", "world", "Goodbye", "world" }
+
+-------------------------------------------------------------------------------
+Multireporter updates ReporterPreferences properly
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldRedirectStdOut == false )
+with expansion:
+ false == false
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldReportAllAssertions == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Multireporter updates ReporterPreferences properly
+ Adding listeners
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldRedirectStdOut == true )
+with expansion:
+ true == true
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldReportAllAssertions == false )
+with expansion:
+ false == false
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldRedirectStdOut == true )
+with expansion:
+ true == true
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldReportAllAssertions == true )
+with expansion:
+ true == true
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldRedirectStdOut == true )
+with expansion:
+ true == true
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldReportAllAssertions == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Multireporter updates ReporterPreferences properly
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldRedirectStdOut == false )
+with expansion:
+ false == false
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldReportAllAssertions == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Multireporter updates ReporterPreferences properly
+ Adding reporters
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldRedirectStdOut == true )
+with expansion:
+ true == true
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldReportAllAssertions == false )
+with expansion:
+ false == false
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldRedirectStdOut == true )
+with expansion:
+ true == true
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldReportAllAssertions == true )
+with expansion:
+ true == true
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldRedirectStdOut == true )
+with expansion:
+ true == true
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE( multiReporter.getPreferences().shouldReportAllAssertions == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 3 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 4 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 5 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 6 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ -5 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ -4 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 90 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 91 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 92 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 93 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 94 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 95 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 96 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 97 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 98 > -6
+
+-------------------------------------------------------------------------------
+Nested generators and captured variables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( values > -6 )
+with expansion:
+ 99 > -6
+
+-------------------------------------------------------------------------------
+Nice descriptive name
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: warning:
+ This one ran
+
+
+No assertions in test case 'Nice descriptive name'
+
+-------------------------------------------------------------------------------
+Non-std exceptions can be translated
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ custom exception
+
+-------------------------------------------------------------------------------
+Objects that evaluated in boolean contexts can be checked
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECK( True )
+with expansion:
+ {?}
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECK( !False )
+with expansion:
+ true
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( False )
+with expansion:
+ !{?}
+
+-------------------------------------------------------------------------------
+Optionally static assertions
+-------------------------------------------------------------------------------
+Compilation.tests.cpp:<line number>
+...............................................................................
+
+Compilation.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_void<void>::value
+
+Compilation.tests.cpp:<line number>: PASSED:
+with message:
+ !(std::is_void<int>::value)
+
+Compilation.tests.cpp:<line number>: PASSED:
+with message:
+ std::is_void<void>::value
+
+Compilation.tests.cpp:<line number>: PASSED:
+with message:
+ !(std::is_void<int>::value)
+
+-------------------------------------------------------------------------------
+Ordering comparison checks that should fail
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven > 7 )
+with expansion:
+ 7 > 7
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 7 )
+with expansion:
+ 7 < 7
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven > 8 )
+with expansion:
+ 7 > 8
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 6 )
+with expansion:
+ 7 < 6
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 0 )
+with expansion:
+ 7 < 0
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < -1 )
+with expansion:
+ 7 < -1
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven >= 8 )
+with expansion:
+ 7 >= 8
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven <= 6 )
+with expansion:
+ 7 <= 6
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one < 9 )
+with expansion:
+ 9.1f < 9
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one > 10 )
+with expansion:
+ 9.1f > 10
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one > 9.2 )
+with expansion:
+ 9.1f > 9.2
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "hello" )
+with expansion:
+ "hello" > "hello"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "hello" )
+with expansion:
+ "hello" < "hello"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "hellp" )
+with expansion:
+ "hello" > "hellp"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "z" )
+with expansion:
+ "hello" > "z"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "hellm" )
+with expansion:
+ "hello" < "hellm"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "a" )
+with expansion:
+ "hello" < "a"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello >= "z" )
+with expansion:
+ "hello" >= "z"
+
+Condition.tests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello <= "a" )
+with expansion:
+ "hello" <= "a"
+
+-------------------------------------------------------------------------------
+Ordering comparison checks that should succeed
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven < 8 )
+with expansion:
+ 7 < 8
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven > 6 )
+with expansion:
+ 7 > 6
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven > 0 )
+with expansion:
+ 7 > 0
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven > -1 )
+with expansion:
+ 7 > -1
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven >= 7 )
+with expansion:
+ 7 >= 7
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven >= 6 )
+with expansion:
+ 7 >= 6
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven <= 7 )
+with expansion:
+ 7 <= 7
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.int_seven <= 8 )
+with expansion:
+ 7 <= 8
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.float_nine_point_one > 9 )
+with expansion:
+ 9.1f > 9
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.float_nine_point_one < 10 )
+with expansion:
+ 9.1f < 10
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.float_nine_point_one < 9.2 )
+with expansion:
+ 9.1f < 9.2
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello <= "hello" )
+with expansion:
+ "hello" <= "hello"
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello >= "hello" )
+with expansion:
+ "hello" >= "hello"
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello < "hellp" )
+with expansion:
+ "hello" < "hellp"
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello < "zebra" )
+with expansion:
+ "hello" < "zebra"
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello > "hellm" )
+with expansion:
+ "hello" > "hellm"
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str_hello > "a" )
+with expansion:
+ "hello" > "a"
+
+-------------------------------------------------------------------------------
+Our PCG implementation provides expected results for known seeds
+ Default seeded
+-------------------------------------------------------------------------------
+RandomNumberGeneration.tests.cpp:<line number>
+...............................................................................
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 4242248763 (0x<hex digits>)
+ ==
+ 4242248763 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 1867888929 (0x<hex digits>)
+ ==
+ 1867888929 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 1276619030 (0x<hex digits>)
+ ==
+ 1276619030 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 1911218783 (0x<hex digits>)
+ ==
+ 1911218783 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 1827115164 (0x<hex digits>)
+ ==
+ 1827115164 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Our PCG implementation provides expected results for known seeds
+ Specific seed
+-------------------------------------------------------------------------------
+RandomNumberGeneration.tests.cpp:<line number>
+...............................................................................
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 1472234645 (0x<hex digits>)
+ ==
+ 1472234645 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 868832940 (0x<hex digits>)
+ ==
+ 868832940 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 570883446 (0x<hex digits>)
+ ==
+ 570883446 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 889299803 (0x<hex digits>)
+ ==
+ 889299803 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 4261393167 (0x<hex digits>)
+ ==
+ 4261393167 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 1472234645 (0x<hex digits>)
+ ==
+ 1472234645 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 868832940 (0x<hex digits>)
+ ==
+ 868832940 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 570883446 (0x<hex digits>)
+ ==
+ 570883446 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 889299803 (0x<hex digits>)
+ ==
+ 889299803 (0x<hex digits>)
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE( rng() == 0x<hex digits> )
+with expansion:
+ 4261393167 (0x<hex digits>)
+ ==
+ 4261393167 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Output from all sections is reported
+ one
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+explicitly with message:
+ Message from section one
+
+-------------------------------------------------------------------------------
+Output from all sections is reported
+ two
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+explicitly with message:
+ Message from section two
+
+-------------------------------------------------------------------------------
+Overloaded comma or address-of operators are not used
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( ( EvilMatcher(), EvilMatcher() ), EvilCommaOperatorUsed )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( &EvilMatcher(), EvilAddressOfOperatorUsed )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( EvilMatcher() || ( EvilMatcher() && !EvilMatcher() ) )
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( ( EvilMatcher() && EvilMatcher() ) || !EvilMatcher() )
+
+-------------------------------------------------------------------------------
+Parse uints
+ proper inputs
+-------------------------------------------------------------------------------
+Parse.tests.cpp:<line number>
+...............................................................................
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE( parseUInt( "0" ) == Optional<unsigned int>{ 0 } )
+with expansion:
+ {?} == {?}
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE( parseUInt( "100" ) == Optional<unsigned int>{ 100 } )
+with expansion:
+ {?} == {?}
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE( parseUInt( "4294967295" ) == Optional<unsigned int>{ 4294967295 } )
+with expansion:
+ {?} == {?}
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE( parseUInt( "0x<hex digits>", 16 ) == Optional<unsigned int>{ 255 } )
+with expansion:
+ {?} == {?}
+
+-------------------------------------------------------------------------------
+Parse uints
+ Bad inputs
+-------------------------------------------------------------------------------
+Parse.tests.cpp:<line number>
+...............................................................................
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( parseUInt( "" ) )
+with expansion:
+ !{?}
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( parseUInt( "!!KJHF*#" ) )
+with expansion:
+ !{?}
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( parseUInt( "-1" ) )
+with expansion:
+ !{?}
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( parseUInt( "4294967296" ) )
+with expansion:
+ !{?}
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( parseUInt( "42949672964294967296429496729642949672964294967296" ) )
+with expansion:
+ !{?}
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( parseUInt( "2 4" ) )
+with expansion:
+ !{?}
+
+Parse.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( parseUInt( "0x<hex digits>", 10 ) )
+with expansion:
+ !{?}
+
+-------------------------------------------------------------------------------
+Parsed tags are matched case insensitive
+-------------------------------------------------------------------------------
+TestSpecParser.tests.cpp:<line number>
+...............................................................................
+
+TestSpecParser.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.hasFilters() )
+with expansion:
+ true
+
+TestSpecParser.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.getInvalidSpecs().empty() )
+with expansion:
+ true
+
+TestSpecParser.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.matches( testCase ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Parsing sharding-related cli flags
+ shard-count
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({ "test", "--shard-count=8" }) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.shardCount == 8 )
+with expansion:
+ 8 == 8
+
+-------------------------------------------------------------------------------
+Parsing sharding-related cli flags
+ Negative shard count reports error
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( result )
+with expansion:
+ !{?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( result.errorMessage(), ContainsSubstring( "Could not parse '-1' as shard count" ) )
+with expansion:
+ "Could not parse '-1' as shard count" contains: "Could not parse '-1' as
+ shard count"
+
+-------------------------------------------------------------------------------
+Parsing sharding-related cli flags
+ Zero shard count reports error
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( result )
+with expansion:
+ !{?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( result.errorMessage(), ContainsSubstring( "Shard count must be positive" ) )
+with expansion:
+ "Shard count must be positive" contains: "Shard count must be positive"
+
+-------------------------------------------------------------------------------
+Parsing sharding-related cli flags
+ shard-index
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({ "test", "--shard-index=2" }) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.shardIndex == 2 )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+Parsing sharding-related cli flags
+ Negative shard index reports error
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( result )
+with expansion:
+ !{?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( result.errorMessage(), ContainsSubstring( "Could not parse '-12' as shard index" ) )
+with expansion:
+ "Could not parse '-12' as shard index" contains: "Could not parse '-12' as
+ shard index"
+
+-------------------------------------------------------------------------------
+Parsing sharding-related cli flags
+ Shard index 0 is accepted
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({ "test", "--shard-index=0" }) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.shardIndex == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Parsing tags with non-alphabetical characters is pass-through
+-------------------------------------------------------------------------------
+TestSpecParser.tests.cpp:<line number>
+...............................................................................
+
+TestSpecParser.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.hasFilters() )
+with expansion:
+ true
+with message:
+ tagString := "[tag with spaces]"
+
+TestSpecParser.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.getInvalidSpecs().empty() )
+with expansion:
+ true
+with message:
+ tagString := "[tag with spaces]"
+
+TestSpecParser.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.matches( testCase ) )
+with expansion:
+ true
+with message:
+ tagString := "[tag with spaces]"
+
+-------------------------------------------------------------------------------
+Parsing tags with non-alphabetical characters is pass-through
+-------------------------------------------------------------------------------
+TestSpecParser.tests.cpp:<line number>
+...............................................................................
+
+TestSpecParser.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.hasFilters() )
+with expansion:
+ true
+with message:
+ tagString := "[I said "good day" sir!]"
+
+TestSpecParser.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.getInvalidSpecs().empty() )
+with expansion:
+ true
+with message:
+ tagString := "[I said "good day" sir!]"
+
+TestSpecParser.tests.cpp:<line number>: PASSED:
+ REQUIRE( spec.matches( testCase ) )
+with expansion:
+ true
+with message:
+ tagString := "[I said "good day" sir!]"
+
+-------------------------------------------------------------------------------
+Parsing warnings
+ NoAssertions
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cli.parse( { "test", "-w", "NoAssertions" } ) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.warnings == WarnAbout::NoAssertions )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Parsing warnings
+ NoTests is no longer supported
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( cli.parse( { "test", "-w", "NoTests" } ) )
+with expansion:
+ !{?}
+
+-------------------------------------------------------------------------------
+Parsing warnings
+ Combining multiple warnings
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cli.parse( { "test", "--warn", "NoAssertions", "--warn", "UnmatchedTestSpec" } ) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.warnings == ( WarnAbout::NoAssertions | WarnAbout::UnmatchedTestSpec ) )
+with expansion:
+ 3 == 3
+
+-------------------------------------------------------------------------------
+Pointers can be compared to null
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( p == 0 )
+with expansion:
+ 0 == 0
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( p == pNULL )
+with expansion:
+ 0 == 0
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( p != 0 )
+with expansion:
+ 0x<hex digits> != 0
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( cp != 0 )
+with expansion:
+ 0x<hex digits> != 0
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( cpc != 0 )
+with expansion:
+ 0x<hex digits> != 0
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( returnsNull() == 0 )
+with expansion:
+ {null string} == 0
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( returnsConstNull() == 0 )
+with expansion:
+ {null string} == 0
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( 0 != p )
+with expansion:
+ 0 != 0x<hex digits>
+
+-------------------------------------------------------------------------------
+Precision of floating point stringification can be set
+ Floats
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ CHECK( str1.size() == 3 + 5 )
+with expansion:
+ 8 == 8
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( str2.size() == 3 + 10 )
+with expansion:
+ 13 == 13
+
+-------------------------------------------------------------------------------
+Precision of floating point stringification can be set
+ Double
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ CHECK( str1.size() == 2 + 5 )
+with expansion:
+ 7 == 7
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( str2.size() == 2 + 15 )
+with expansion:
+ 17 == 17
+
+-------------------------------------------------------------------------------
+Predicate matcher can accept const char*
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( "foo", Predicate<const char*>( []( const char* const& ) { return true; } ) )
+with expansion:
+ "foo" matches undescribed predicate
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ empty args don't cause a crash
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( result )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( config.processName == "" )
+with expansion:
+ "" == ""
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ default - no arguments
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( result )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( config.processName == "test" )
+with expansion:
+ "test" == "test"
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( config.shouldDebugBreak == false )
+with expansion:
+ false == false
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( config.abortAfter == -1 )
+with expansion:
+ -1 == -1
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( config.noThrow == false )
+with expansion:
+ false == false
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( config.reporterSpecifications.empty() )
+with expansion:
+ true
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( cfg.hasTestFilters() )
+with expansion:
+ !false
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cfg.getReporterSpecs().size() == 1 )
+with expansion:
+ 1 == 1
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cfg.getReporterSpecs()[0] == Catch::ReporterSpec{ expectedReporter, {}, {}, {} } )
+with expansion:
+ {?} == {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cfg.getProcessedReporterSpecs().size() == 1 )
+with expansion:
+ 1 == 1
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cfg.getProcessedReporterSpecs()[0] == Catch::ProcessedReporterSpec{ expectedReporter, std::string{}, Catch::ColourMode::PlatformDefault, {} } )
+with expansion:
+ {?} == {?}
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ test lists
+ Specify one test case using
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( result )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cfg.hasTestFilters() )
+with expansion:
+ true
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cfg.testSpec().matches(*fakeTestCase("notIncluded")) == false )
+with expansion:
+ false == false
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cfg.testSpec().matches(*fakeTestCase("test1")) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ test lists
+ Specify one test case exclusion using exclude:
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( result )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cfg.hasTestFilters() )
+with expansion:
+ true
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cfg.testSpec().matches(*fakeTestCase("test1")) == false )
+with expansion:
+ false == false
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cfg.testSpec().matches(*fakeTestCase("alwaysIncluded")) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ test lists
+ Specify one test case exclusion using ~
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( result )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cfg.hasTestFilters() )
+with expansion:
+ true
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cfg.testSpec().matches(*fakeTestCase("test1")) == false )
+with expansion:
+ false == false
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( cfg.testSpec().matches(*fakeTestCase("alwaysIncluded")) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ -r/console
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( result )
+with expansion:
+ {?}
+with message:
+ result.errorMessage() := ""
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.reporterSpecifications == vec_Specs{ { "console", {}, {}, {} } } )
+with expansion:
+ { {?} } == { {?} }
+with message:
+ result.errorMessage() := ""
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ -r/xml
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( result )
+with expansion:
+ {?}
+with message:
+ result.errorMessage() := ""
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.reporterSpecifications == vec_Specs{ { "xml", {}, {}, {} } } )
+with expansion:
+ { {?} } == { {?} }
+with message:
+ result.errorMessage() := ""
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ --reporter/junit
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( result )
+with expansion:
+ {?}
+with message:
+ result.errorMessage() := ""
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.reporterSpecifications == vec_Specs{ { "junit", {}, {}, {} } } )
+with expansion:
+ { {?} } == { {?} }
+with message:
+ result.errorMessage() := ""
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ must match one of the available ones
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( !result )
+with expansion:
+ true
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( result.errorMessage(), ContainsSubstring("Unrecognized reporter") )
+with expansion:
+ "Unrecognized reporter, 'unsupported'. Check available with --list-reporters"
+ contains: "Unrecognized reporter"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ With output file
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( result )
+with expansion:
+ {?}
+with message:
+ result.errorMessage() := ""
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.reporterSpecifications == vec_Specs{ { "console", "out.txt"s, {}, {} } } )
+with expansion:
+ { {?} } == { {?} }
+with message:
+ result.errorMessage() := ""
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ With Windows-like absolute path as output file
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( result )
+with expansion:
+ {?}
+with message:
+ result.errorMessage() := ""
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.reporterSpecifications == vec_Specs{ { "console", "C:\\Temp\\out.txt"s, {}, {} } } )
+with expansion:
+ { {?} } == { {?} }
+with message:
+ result.errorMessage() := ""
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ Multiple reporters
+ All with output files
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({ "test", "-r", "xml::out=output.xml", "-r", "junit::out=output-junit.xml" }) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.reporterSpecifications == vec_Specs{ { "xml", "output.xml"s, {}, {} }, { "junit", "output-junit.xml"s, {}, {} } } )
+with expansion:
+ { {?}, {?} } == { {?}, {?} }
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ Multiple reporters
+ Mixed output files and default output
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({ "test", "-r", "xml::out=output.xml", "-r", "console" }) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.reporterSpecifications == vec_Specs{ { "xml", "output.xml"s, {}, {} }, { "console", {}, {}, {} } } )
+with expansion:
+ { {?}, {?} } == { {?}, {?} }
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ Multiple reporters
+ cannot have multiple reporters with default output
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( !result )
+with expansion:
+ true
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( result.errorMessage(), ContainsSubstring("Only one reporter may have unspecified output file.") )
+with expansion:
+ "Only one reporter may have unspecified output file." contains: "Only one
+ reporter may have unspecified output file."
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ debugger
+ -b
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "-b"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.shouldDebugBreak == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ debugger
+ --break
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "--break"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.shouldDebugBreak )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -a aborts after first failure
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "-a"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.abortAfter == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -x 2 aborts after two failures
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "-x", "2"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.abortAfter == 2 )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -x must be numeric
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( !result )
+with expansion:
+ true
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( result.errorMessage(), ContainsSubstring("convert") && ContainsSubstring("oops") )
+with expansion:
+ "Unable to convert 'oops' to destination type" ( contains: "convert" and
+ contains: "oops" )
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ wait-for-keypress
+ Accepted options
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.waitForKeypress == std::get<1>(input) )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ wait-for-keypress
+ Accepted options
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.waitForKeypress == std::get<1>(input) )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ wait-for-keypress
+ Accepted options
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.waitForKeypress == std::get<1>(input) )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ wait-for-keypress
+ Accepted options
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.waitForKeypress == std::get<1>(input) )
+with expansion:
+ 3 == 3
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ wait-for-keypress
+ invalid options are reported
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( !result )
+with expansion:
+ true
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( result.errorMessage(), ContainsSubstring("never") && ContainsSubstring("both") )
+with expansion:
+ "keypress argument must be one of: never, start, exit or both. 'sometimes'
+ not recognised" ( contains: "never" and contains: "both" )
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ nothrow
+ -e
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "-e"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.noThrow )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ nothrow
+ --nothrow
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "--nothrow"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.noThrow )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ output filename
+ -o filename
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "-o", "filename.ext"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.defaultOutputFilename == "filename.ext" )
+with expansion:
+ "filename.ext" == "filename.ext"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ output filename
+ --out
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "--out", "filename.ext"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.defaultOutputFilename == "filename.ext" )
+with expansion:
+ "filename.ext" == "filename.ext"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ combinations
+ Single character flags can be combined
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "-abe"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( config.abortAfter == 1 )
+with expansion:
+ 1 == 1
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( config.shouldDebugBreak )
+with expansion:
+ true
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( config.noThrow == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ without option
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.defaultColourMode == ColourMode::PlatformDefault )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ auto
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse( { "test", "--colour-mode", "default" } ) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.defaultColourMode == ColourMode::PlatformDefault )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ yes
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "--colour-mode", "ansi"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.defaultColourMode == ColourMode::ANSI )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ no
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({"test", "--colour-mode", "none"}) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.defaultColourMode == ColourMode::None )
+with expansion:
+ 3 == 3
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ error
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( !result )
+with expansion:
+ true
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) )
+with expansion:
+ "colour mode must be one of: default, ansi, win32, or none. 'wrong' is not
+ recognised" contains: "colour mode must be one of"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ Benchmark options
+ samples
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({ "test", "--benchmark-samples=200" }) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.benchmarkSamples == 200 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ Benchmark options
+ resamples
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({ "test", "--benchmark-resamples=20000" }) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.benchmarkResamples == 20000 )
+with expansion:
+ 20000 (0x<hex digits>) == 20000 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ Benchmark options
+ confidence-interval
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({ "test", "--benchmark-confidence-interval=0.99" }) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.benchmarkConfidenceInterval == Catch::Approx(0.99) )
+with expansion:
+ 0.99 == Approx( 0.99 )
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ Benchmark options
+ no-analysis
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({ "test", "--benchmark-no-analysis" }) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.benchmarkNoAnalysis )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ Benchmark options
+ warmup-time
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ CHECK( cli.parse({ "test", "--benchmark-warmup-time=10" }) )
+with expansion:
+ {?}
+
+CmdLine.tests.cpp:<line number>: PASSED:
+ REQUIRE( config.benchmarkWarmupTime == 10 )
+with expansion:
+ 10 == 10
+
+-------------------------------------------------------------------------------
+Product with differing arities - std::tuple<int, double, float>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::tuple_size<TestType>::value >= 1 )
+with expansion:
+ 3 >= 1
+
+-------------------------------------------------------------------------------
+Product with differing arities - std::tuple<int, double>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::tuple_size<TestType>::value >= 1 )
+with expansion:
+ 2 >= 1
+
+-------------------------------------------------------------------------------
+Product with differing arities - std::tuple<int>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::tuple_size<TestType>::value >= 1 )
+with expansion:
+ 1 >= 1
+
+-------------------------------------------------------------------------------
+Random seed generation accepts known methods
+-------------------------------------------------------------------------------
+RandomNumberGeneration.tests.cpp:<line number>
+...............................................................................
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( Catch::generateRandomSeed(method) )
+
+-------------------------------------------------------------------------------
+Random seed generation accepts known methods
+-------------------------------------------------------------------------------
+RandomNumberGeneration.tests.cpp:<line number>
+...............................................................................
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( Catch::generateRandomSeed(method) )
+
+-------------------------------------------------------------------------------
+Random seed generation accepts known methods
+-------------------------------------------------------------------------------
+RandomNumberGeneration.tests.cpp:<line number>
+...............................................................................
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( Catch::generateRandomSeed(method) )
+
+-------------------------------------------------------------------------------
+Random seed generation reports unknown methods
+-------------------------------------------------------------------------------
+RandomNumberGeneration.tests.cpp:<line number>
+...............................................................................
+
+RandomNumberGeneration.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS( Catch::generateRandomSeed(static_cast<Catch::GenerateFrom>(77)) )
+
+-------------------------------------------------------------------------------
+Range type with sentinel
+-------------------------------------------------------------------------------
+ToString.tests.cpp:<line number>
+...............................................................................
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK( Catch::Detail::stringify(UsesSentinel{}) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+-------------------------------------------------------------------------------
+Reconstruction should be based on stringification: #914
+-------------------------------------------------------------------------------
+Decomposition.tests.cpp:<line number>
+...............................................................................
+
+Decomposition.tests.cpp:<line number>: FAILED:
+ CHECK( truthy(false) )
+with expansion:
+ Hey, its truthy!
+
+-------------------------------------------------------------------------------
+Regex string matcher
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Matches( "this STRING contains 'abc' as a substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" matches "this STRING contains
+ 'abc' as a substring" case sensitively
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Matches( "contains 'abc' as a substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" matches "contains 'abc' as a
+ substring" case sensitively
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Matches( "this string contains 'abc' as a" ) )
+with expansion:
+ "this string contains 'abc' as a substring" matches "this string contains
+ 'abc' as a" case sensitively
+
+-------------------------------------------------------------------------------
+Registering reporter with '::' in name fails
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_WITH( registry.registerReporter( "with::doublecolons", Catch::Detail::make_unique<TestReporterFactory>() ), "'::' is not allowed in reporter name: 'with::doublecolons'" )
+with expansion:
+ "'::' is not allowed in reporter name: 'with::doublecolons'" equals: "'::' is
+ not allowed in reporter name: 'with::doublecolons'"
+
+-------------------------------------------------------------------------------
+Regression test #1
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( actual, !UnorderedEquals( expected ) )
+with expansion:
+ { 'a', 'b' } not UnorderedEquals: { 'c', 'b' }
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ Automake reporter lists tags
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
+with expansion:
+ "All available tags:
+ 1 [fakeTag]
+ 1 tag
+
+" contains: "fakeTag"
+with message:
+ Tested reporter: Automake
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ Automake reporter lists reporters
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
+with expansion:
+ "Available reporters:
+ fake reporter: fake description
+
+" contains: "fake reporter"
+with message:
+ Tested reporter: Automake
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ Automake reporter lists tests
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
+with expansion:
+ "All available test cases:
+ fake test name
+ [fakeTestTag]
+ 1 test case
+
+" ( contains: "fake test name" and contains: "fakeTestTag" )
+with message:
+ Tested reporter: Automake
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ compact reporter lists tags
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
+with expansion:
+ "All available tags:
+ 1 [fakeTag]
+ 1 tag
+
+" contains: "fakeTag"
+with message:
+ Tested reporter: compact
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ compact reporter lists reporters
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
+with expansion:
+ "Available reporters:
+ fake reporter: fake description
+
+" contains: "fake reporter"
+with message:
+ Tested reporter: compact
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ compact reporter lists tests
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
+with expansion:
+ "All available test cases:
+ fake test name
+ [fakeTestTag]
+ 1 test case
+
+" ( contains: "fake test name" and contains: "fakeTestTag" )
+with message:
+ Tested reporter: compact
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ console reporter lists tags
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
+with expansion:
+ "All available tags:
+ 1 [fakeTag]
+ 1 tag
+
+" contains: "fakeTag"
+with message:
+ Tested reporter: console
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ console reporter lists reporters
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
+with expansion:
+ "Available reporters:
+ fake reporter: fake description
+
+" contains: "fake reporter"
+with message:
+ Tested reporter: console
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ console reporter lists tests
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
+with expansion:
+ "All available test cases:
+ fake test name
+ [fakeTestTag]
+ 1 test case
+
+" ( contains: "fake test name" and contains: "fakeTestTag" )
+with message:
+ Tested reporter: console
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ JUnit reporter lists tags
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
+with expansion:
+ "<?xml version="1.0" encoding="UTF-8"?>
+ All available tags:
+ 1 [fakeTag]
+ 1 tag
+
+" contains: "fakeTag"
+with message:
+ Tested reporter: JUnit
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ JUnit reporter lists reporters
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
+with expansion:
+ "<?xml version="1.0" encoding="UTF-8"?>
+ Available reporters:
+ fake reporter: fake description
+
+" contains: "fake reporter"
+with message:
+ Tested reporter: JUnit
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ JUnit reporter lists tests
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
+with expansion:
+ "<?xml version="1.0" encoding="UTF-8"?>
+ All available test cases:
+ fake test name
+ [fakeTestTag]
+ 1 test case
+
+" ( contains: "fake test name" and contains: "fakeTestTag" )
+with message:
+ Tested reporter: JUnit
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ SonarQube reporter lists tags
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
+with expansion:
+ "<?xml version="1.0" encoding="UTF-8"?>
+ All available tags:
+ 1 [fakeTag]
+ 1 tag
+
+" contains: "fakeTag"
+with message:
+ Tested reporter: SonarQube
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ SonarQube reporter lists reporters
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
+with expansion:
+ "<?xml version="1.0" encoding="UTF-8"?>
+ Available reporters:
+ fake reporter: fake description
+
+" contains: "fake reporter"
+with message:
+ Tested reporter: SonarQube
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ SonarQube reporter lists tests
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
+with expansion:
+ "<?xml version="1.0" encoding="UTF-8"?>
+ All available test cases:
+ fake test name
+ [fakeTestTag]
+ 1 test case
+
+" ( contains: "fake test name" and contains: "fakeTestTag" )
+with message:
+ Tested reporter: SonarQube
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ TAP reporter lists tags
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
+with expansion:
+ "All available tags:
+ 1 [fakeTag]
+ 1 tag
+
+" contains: "fakeTag"
+with message:
+ Tested reporter: TAP
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ TAP reporter lists reporters
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
+with expansion:
+ "Available reporters:
+ fake reporter: fake description
+
+" contains: "fake reporter"
+with message:
+ Tested reporter: TAP
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ TAP reporter lists tests
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
+with expansion:
+ "All available test cases:
+ fake test name
+ [fakeTestTag]
+ 1 test case
+
+" ( contains: "fake test name" and contains: "fakeTestTag" )
+with message:
+ Tested reporter: TAP
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ TeamCity reporter lists tags
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
+with expansion:
+ "All available tags:
+ 1 [fakeTag]
+ 1 tag
+
+" contains: "fakeTag"
+with message:
+ Tested reporter: TeamCity
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ TeamCity reporter lists reporters
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
+with expansion:
+ "Available reporters:
+ fake reporter: fake description
+
+" contains: "fake reporter"
+with message:
+ Tested reporter: TeamCity
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ TeamCity reporter lists tests
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
+with expansion:
+ "All available test cases:
+ fake test name
+ [fakeTestTag]
+ 1 test case
+
+" ( contains: "fake test name" and contains: "fakeTestTag" )
+with message:
+ Tested reporter: TeamCity
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ XML reporter lists tags
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
+with expansion:
+ "<?xml version="1.0" encoding="UTF-8"?>
+ <TagsFromMatchingTests>
+ <Tag>
+ <Count>1</Count>
+ <Aliases>
+ <Alias>fakeTag</Alias>
+ </Aliases>
+ </Tag>
+ </TagsFromMatchingTests>" contains: "fakeTag"
+with message:
+ Tested reporter: XML
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ XML reporter lists reporters
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
+with expansion:
+ "<?xml version="1.0" encoding="UTF-8"?>
+ <AvailableReporters>
+ <Reporter>
+ <Name>fake reporter</Name>
+ <Description>fake description</Description>
+ </Reporter>
+ </AvailableReporters>" contains: "fake reporter"
+with message:
+ Tested reporter: XML
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( factories.empty() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Reporter's write listings to provided stream
+ XML reporter lists tests
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
+with expansion:
+ "<?xml version="1.0" encoding="UTF-8"?>
+ <MatchingTests>
+ <TestCase>
+ <Name>fake test name</Name>
+ <ClassName/>
+ <Tags>[fakeTestTag]</Tags>
+ <SourceInfo>
+ <File>fake-file.cpp</File>
+ <Line>123456789</Line>
+ </SourceInfo>
+ </TestCase>
+ </MatchingTests>" ( contains: "fake test name" and contains: "fakeTestTag" )
+with message:
+ Tested reporter: XML
+
+-------------------------------------------------------------------------------
+Reproducer for #2309 - a very long description past 80 chars (default console
+width) with a late colon : blablabla
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+SUCCEED counts as a test pass
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: PASSED:
+with message:
+ this is a success
+
+-------------------------------------------------------------------------------
+SUCCEED does not require an argument
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or
+ methods
+ Given: No operations precede me
+-------------------------------------------------------------------------------
+BDD.tests.cpp:<line number>
+...............................................................................
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( before == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or
+ methods
+ Given: No operations precede me
+ When: We get the count
+ Then: Subsequently values are higher
+-------------------------------------------------------------------------------
+BDD.tests.cpp:<line number>
+...............................................................................
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( after > before )
+with expansion:
+ 1 > 0
+
+-------------------------------------------------------------------------------
+Scenario: Do that thing with the thing
+ Given: This stuff exists
+ And given: And some assumption
+ When: I do this
+ Then: it should do this
+-------------------------------------------------------------------------------
+BDD.tests.cpp:<line number>
+...............................................................................
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( itDoesThis() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Scenario: Do that thing with the thing
+ Given: This stuff exists
+ And given: And some assumption
+ When: I do this
+ Then: it should do this
+ And: do that
+-------------------------------------------------------------------------------
+BDD.tests.cpp:<line number>
+...............................................................................
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( itDoesThat() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Scenario: This is a really long scenario name to see how the list command deals
+ with wrapping
+ Given: A section name that is so long that it cannot fit in a single
+ console width
+ When: The test headers are printed as part of the normal running of the
+ scenario
+ Then: The, deliberately very long and overly verbose (you see what I did
+ there?) section names must wrap, along with an indent
+-------------------------------------------------------------------------------
+BDD.tests.cpp:<line number>
+...............................................................................
+
+BDD.tests.cpp:<line number>: PASSED:
+with message:
+ boo!
+
+-------------------------------------------------------------------------------
+Scenario: Vector resizing affects size and capacity
+ Given: an empty vector
+-------------------------------------------------------------------------------
+BDD.tests.cpp:<line number>
+...............................................................................
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Scenario: Vector resizing affects size and capacity
+ Given: an empty vector
+ When: it is made larger
+ Then: the size and capacity go up
+-------------------------------------------------------------------------------
+BDD.tests.cpp:<line number>
+...............................................................................
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 10 )
+with expansion:
+ 10 == 10
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+Scenario: Vector resizing affects size and capacity
+ Given: an empty vector
+ When: it is made larger
+ Then: the size and capacity go up
+ And when: it is made smaller again
+ Then: the size goes down but the capacity stays the same
+-------------------------------------------------------------------------------
+BDD.tests.cpp:<line number>
+...............................................................................
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+Scenario: Vector resizing affects size and capacity
+ Given: an empty vector
+-------------------------------------------------------------------------------
+BDD.tests.cpp:<line number>
+...............................................................................
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Scenario: Vector resizing affects size and capacity
+ Given: an empty vector
+ When: we reserve more space
+ Then: The capacity is increased but the size remains the same
+-------------------------------------------------------------------------------
+BDD.tests.cpp:<line number>
+...............................................................................
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+BDD.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+A string sent directly to stdout
+A string sent directly to stderr
+A string sent to stderr via clog
+-------------------------------------------------------------------------------
+Sends stuff to stdout and stderr
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+
+No assertions in test case 'Sends stuff to stdout and stderr'
+
+-------------------------------------------------------------------------------
+Some simple comparisons between doubles
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d == Approx( 1.23 ) )
+with expansion:
+ 1.23 == Approx( 1.23 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d != Approx( 1.22 ) )
+with expansion:
+ 1.23 != Approx( 1.22 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d != Approx( 1.24 ) )
+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 )
+with expansion:
+ Approx( 1.23 ) == 1.23
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( Approx( d ) != 1.22 )
+with expansion:
+ Approx( 1.23 ) != 1.22
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( Approx( d ) != 1.24 )
+with expansion:
+ Approx( 1.23 ) != 1.24
+
+Message from section one
+-------------------------------------------------------------------------------
+Standard output from all sections is reported
+ one
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+
+No assertions in section 'one'
+
+Message from section two
+-------------------------------------------------------------------------------
+Standard output from all sections is reported
+ two
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+
+No assertions in section 'two'
+
+-------------------------------------------------------------------------------
+StartsWith string matcher
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), StartsWith( "This String" ) )
+with expansion:
+ "this string contains 'abc' as a substring" starts with: "This String"
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), StartsWith( "string", Catch::CaseSensitive::No ) )
+with expansion:
+ "this string contains 'abc' as a substring" starts with: "string" (case
+ insensitive)
+
+-------------------------------------------------------------------------------
+Static arrays are convertible to string
+ Single item
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify(singular) == "{ 1 }" )
+with expansion:
+ "{ 1 }" == "{ 1 }"
+
+-------------------------------------------------------------------------------
+Static arrays are convertible to string
+ Multiple
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify(arr) == "{ 3, 2, 1 }" )
+with expansion:
+ "{ 3, 2, 1 }" == "{ 3, 2, 1 }"
+
+-------------------------------------------------------------------------------
+Static arrays are convertible to string
+ Non-trivial inner items
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify(arr) == R"({ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } })" )
+with expansion:
+ "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
+ ==
+ "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
+
+-------------------------------------------------------------------------------
+String matchers
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( testStringForMatching(), ContainsSubstring( "string" ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "string"
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( testStringForMatching(), ContainsSubstring( "string", Catch::CaseSensitive::No ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "string" (case
+ insensitive)
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), ContainsSubstring( "abc" ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "abc"
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), ContainsSubstring( "aBC", Catch::CaseSensitive::No ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "abc" (case
+ insensitive)
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), StartsWith( "this" ) )
+with expansion:
+ "this string contains 'abc' as a substring" starts with: "this"
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), StartsWith( "THIS", Catch::CaseSensitive::No ) )
+with expansion:
+ "this string contains 'abc' as a substring" starts with: "this" (case
+ insensitive)
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), EndsWith( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ends with: "substring"
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( testStringForMatching(), EndsWith( " SuBsTrInG", Catch::CaseSensitive::No ) )
+with expansion:
+ "this string contains 'abc' as a substring" ends with: " substring" (case
+ insensitive)
+
+-------------------------------------------------------------------------------
+StringRef
+ Empty string
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( empty.empty() )
+with expansion:
+ true
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( empty.size() == 0 )
+with expansion:
+ 0 == 0
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::strcmp( empty.data(), "" ) == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+StringRef
+ From string literal
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( s.empty() == false )
+with expansion:
+ false == false
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( s.size() == 5 )
+with expansion:
+ 5 == 5
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::strcmp( rawChars, "hello" ) == 0 )
+with expansion:
+ 0 == 0
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( s.data() == rawChars )
+with expansion:
+ "hello" == "hello"
+
+-------------------------------------------------------------------------------
+StringRef
+ From sub-string
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( original == "original" )
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( original.data() )
+
+-------------------------------------------------------------------------------
+StringRef
+ Copy construction is shallow
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( original.begin() == copy.begin() )
+with expansion:
+ "original string" == "original string"
+
+-------------------------------------------------------------------------------
+StringRef
+ Copy assignment is shallow
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( original.begin() == copy.begin() )
+with expansion:
+ "original string" == "original string"
+
+-------------------------------------------------------------------------------
+StringRef
+ Substrings
+ zero-based substring
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( ss.empty() == false )
+with expansion:
+ false == false
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( ss.size() == 5 )
+with expansion:
+ 5 == 5
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::strncmp( ss.data(), "hello", 5 ) == 0 )
+with expansion:
+ 0 == 0
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( ss == "hello" )
+with expansion:
+ hello == "hello"
+
+-------------------------------------------------------------------------------
+StringRef
+ Substrings
+ non-zero-based substring
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( ss.size() == 6 )
+with expansion:
+ 6 == 6
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::strcmp( ss.data(), "world!" ) == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+StringRef
+ Substrings
+ Pointer values of full refs should match
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( s.data() == s2.data() )
+with expansion:
+ "hello world!" == "hello world!"
+
+-------------------------------------------------------------------------------
+StringRef
+ Substrings
+ Pointer values of substring refs should also match
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( s.data() == ss.data() )
+with expansion:
+ "hello world!" == "hello world!"
+
+-------------------------------------------------------------------------------
+StringRef
+ Substrings
+ Past the end substring
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( s.substr(s.size() + 1, 123).empty() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+StringRef
+ Substrings
+ Substring off the end are trimmed
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( std::strcmp(ss.data(), "world!") == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+StringRef
+ Substrings
+ substring start after the end is empty
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( s.substr(1'000'000, 1).empty() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+StringRef
+ Comparisons are deep
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ CHECK( reinterpret_cast<char*>(buffer1) != reinterpret_cast<char*>(buffer2) )
+with expansion:
+ "Hello" != "Hello"
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( left == right )
+with expansion:
+ Hello == Hello
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( left != left.substr(0, 3) )
+with expansion:
+ Hello != Hel
+
+-------------------------------------------------------------------------------
+StringRef
+ from std::string
+ implicitly constructed
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( sr == "a standard string" )
+with expansion:
+ a standard string == "a standard string"
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( sr.size() == stdStr.size() )
+with expansion:
+ 17 == 17
+
+-------------------------------------------------------------------------------
+StringRef
+ from std::string
+ explicitly constructed
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( sr == "a standard string" )
+with expansion:
+ a standard string == "a standard string"
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( sr.size() == stdStr.size() )
+with expansion:
+ 17 == 17
+
+-------------------------------------------------------------------------------
+StringRef
+ from std::string
+ assigned
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( sr == "a standard string" )
+with expansion:
+ a standard string == "a standard string"
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( sr.size() == stdStr.size() )
+with expansion:
+ 17 == 17
+
+-------------------------------------------------------------------------------
+StringRef
+ to std::string
+ explicitly constructed
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( stdStr == "a stringref" )
+with expansion:
+ "a stringref" == "a stringref"
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( stdStr.size() == sr.size() )
+with expansion:
+ 11 == 11
+
+-------------------------------------------------------------------------------
+StringRef
+ to std::string
+ assigned
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( stdStr == "a stringref" )
+with expansion:
+ "a stringref" == "a stringref"
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( stdStr.size() == sr.size() )
+with expansion:
+ 11 == 11
+
+-------------------------------------------------------------------------------
+StringRef
+ std::string += StringRef
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( lhs == "some string += the stringref contents" )
+with expansion:
+ "some string += the stringref contents"
+ ==
+ "some string += the stringref contents"
+
+-------------------------------------------------------------------------------
+StringRef
+ StringRef + StringRef
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+ REQUIRE( together == "abrakadabra" )
+with expansion:
+ "abrakadabra" == "abrakadabra"
+
+-------------------------------------------------------------------------------
+StringRef at compilation time
+ Simple constructors
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ empty.size() == 0
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ empty.begin() == empty.end()
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ stringref.size() == 3
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ stringref.data() == abc
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ stringref.begin() == abc
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ stringref.begin() != stringref.end()
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ stringref.substr(10, 0).empty()
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ stringref.substr(2, 1).data() == abc + 2
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ stringref[1] == 'b'
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ shortened.size() == 2
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ shortened.data() == abc
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ shortened.begin() != shortened.end()
+
+-------------------------------------------------------------------------------
+StringRef at compilation time
+ UDL construction
+-------------------------------------------------------------------------------
+String.tests.cpp:<line number>
+...............................................................................
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ !(sr1.empty())
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ sr1.size() == 3
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ sr2.empty()
+
+String.tests.cpp:<line number>: PASSED:
+with message:
+ sr2.size() == 0
+
+-------------------------------------------------------------------------------
+Stringifying char arrays with statically known sizes - char
+-------------------------------------------------------------------------------
+ToString.tests.cpp:<line number>
+...............................................................................
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify( with_null_terminator ) == R"("abc")"s )
+with expansion:
+ ""abc"" == ""abc""
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify( no_null_terminator ) == R"("abc")"s )
+with expansion:
+ ""abc"" == ""abc""
+
+-------------------------------------------------------------------------------
+Stringifying char arrays with statically known sizes - signed char
+-------------------------------------------------------------------------------
+ToString.tests.cpp:<line number>
+...............................................................................
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify( with_null_terminator ) == R"("abc")"s )
+with expansion:
+ ""abc"" == ""abc""
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify( no_null_terminator ) == R"("abc")"s )
+with expansion:
+ ""abc"" == ""abc""
+
+-------------------------------------------------------------------------------
+Stringifying char arrays with statically known sizes - unsigned char
+-------------------------------------------------------------------------------
+ToString.tests.cpp:<line number>
+...............................................................................
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify( with_null_terminator ) == R"("abc")"s )
+with expansion:
+ ""abc"" == ""abc""
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify( no_null_terminator ) == R"("abc")"s )
+with expansion:
+ ""abc"" == ""abc""
+
+-------------------------------------------------------------------------------
+Stringifying std::chrono::duration helpers
+-------------------------------------------------------------------------------
+ToStringChrono.tests.cpp:<line number>
+...............................................................................
+
+ToStringChrono.tests.cpp:<line number>: PASSED:
+ REQUIRE( minute == seconds )
+with expansion:
+ 1 m == 60 s
+
+ToStringChrono.tests.cpp:<line number>: PASSED:
+ REQUIRE( hour != seconds )
+with expansion:
+ 1 h != 60 s
+
+ToStringChrono.tests.cpp:<line number>: PASSED:
+ REQUIRE( micro != milli )
+with expansion:
+ 1 us != 1 ms
+
+ToStringChrono.tests.cpp:<line number>: PASSED:
+ REQUIRE( nano != micro )
+with expansion:
+ 1 ns != 1 us
+
+-------------------------------------------------------------------------------
+Stringifying std::chrono::duration with weird ratios
+-------------------------------------------------------------------------------
+ToStringChrono.tests.cpp:<line number>
+...............................................................................
+
+ToStringChrono.tests.cpp:<line number>: PASSED:
+ REQUIRE( half_minute != femto_second )
+with expansion:
+ 1 [30/1]s != 1 fs
+
+ToStringChrono.tests.cpp:<line number>: PASSED:
+ REQUIRE( pico_second != atto_second )
+with expansion:
+ 1 ps != 1 as
+
+-------------------------------------------------------------------------------
+Stringifying std::chrono::time_point<system_clock>
+-------------------------------------------------------------------------------
+ToStringChrono.tests.cpp:<line number>
+...............................................................................
+
+ToStringChrono.tests.cpp:<line number>: PASSED:
+ REQUIRE( now != later )
+with expansion:
+ {iso8601-timestamp}
+ !=
+ {iso8601-timestamp}
+
+-------------------------------------------------------------------------------
+Tabs and newlines show in output
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED:
+ CHECK( s1 == s2 )
+with expansion:
+ "if ($b == 10) {
+ $a = 20;
+ }"
+ ==
+ "if ($b == 10) {
+ $a = 20;
+ }
+ "
+
+-------------------------------------------------------------------------------
+Tag alias can be registered against tag patterns
+ The same tag alias can only be registered once
+-------------------------------------------------------------------------------
+Tag.tests.cpp:<line number>
+...............................................................................
+
+Tag.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( what, ContainsSubstring( "[@zzz]" ) )
+with expansion:
+ "error: tag alias, '[@zzz]' already registered.
+ First seen at: file:2
+ Redefined at: file:10" contains: "[@zzz]"
+
+Tag.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( what, ContainsSubstring( "file" ) )
+with expansion:
+ "error: tag alias, '[@zzz]' already registered.
+ First seen at: file:2
+ Redefined at: file:10" contains: "file"
+
+Tag.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( what, ContainsSubstring( "2" ) )
+with expansion:
+ "error: tag alias, '[@zzz]' already registered.
+ First seen at: file:2
+ Redefined at: file:10" contains: "2"
+
+Tag.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( what, ContainsSubstring( "10" ) )
+with expansion:
+ "error: tag alias, '[@zzz]' already registered.
+ First seen at: file:2
+ Redefined at: file:10" contains: "10"
+
+-------------------------------------------------------------------------------
+Tag alias can be registered against tag patterns
+ Tag aliases must be of the form [@name]
+-------------------------------------------------------------------------------
+Tag.tests.cpp:<line number>
+...............................................................................
+
+Tag.tests.cpp:<line number>: PASSED:
+ CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+Tag.tests.cpp:<line number>: PASSED:
+ CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+Tag.tests.cpp:<line number>: PASSED:
+ CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+Tag.tests.cpp:<line number>: PASSED:
+ CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+-------------------------------------------------------------------------------
+Tags with spaces and non-alphanumerical characters are accepted
+-------------------------------------------------------------------------------
+Tag.tests.cpp:<line number>
+...............................................................................
+
+Tag.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.tags.size() == 2 )
+with expansion:
+ 2 == 2
+
+Tag.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( testCase.tags, VectorContains( Tag( "tag with spaces" ) ) && VectorContains( Tag( "I said \"good day\" sir!"_catch_sr ) ) )
+with expansion:
+ { {?}, {?} } ( Contains: {?} and Contains: {?} )
+
+-------------------------------------------------------------------------------
+Template test case method with test types specified inside std::tuple - MyTypes
+- 0
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture<TestType>::m_a == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Template test case method with test types specified inside std::tuple - MyTypes
+- 1
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture<TestType>::m_a == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Template test case method with test types specified inside std::tuple - MyTypes
+- 2
+-------------------------------------------------------------------------------
+Class.tests.cpp:<line number>
+...............................................................................
+
+Class.tests.cpp:<line number>: PASSED:
+ REQUIRE( Template_Fixture<TestType>::m_a == 1 )
+with expansion:
+ 1.0 == 1
+
+-------------------------------------------------------------------------------
+Template test case with test types specified inside non-copyable and non-
+movable std::tuple - NonCopyableAndNonMovableTypes - 0
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( sizeof(TestType) > 0 )
+with expansion:
+ 1 > 0
+
+-------------------------------------------------------------------------------
+Template test case with test types specified inside non-copyable and non-
+movable std::tuple - NonCopyableAndNonMovableTypes - 1
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( sizeof(TestType) > 0 )
+with expansion:
+ 4 > 0
+
+-------------------------------------------------------------------------------
+Template test case with test types specified inside non-default-constructible
+std::tuple - MyNonDefaultConstructibleTypes - 0
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( sizeof(TestType) > 0 )
+with expansion:
+ 1 > 0
+
+-------------------------------------------------------------------------------
+Template test case with test types specified inside non-default-constructible
+std::tuple - MyNonDefaultConstructibleTypes - 1
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( sizeof(TestType) > 0 )
+with expansion:
+ 4 > 0
+
+-------------------------------------------------------------------------------
+Template test case with test types specified inside std::tuple - MyTypes - 0
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( sizeof(TestType) > 0 )
+with expansion:
+ 4 > 0
+
+-------------------------------------------------------------------------------
+Template test case with test types specified inside std::tuple - MyTypes - 1
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( sizeof(TestType) > 0 )
+with expansion:
+ 1 > 0
+
+-------------------------------------------------------------------------------
+Template test case with test types specified inside std::tuple - MyTypes - 2
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( sizeof(TestType) > 0 )
+with expansion:
+ 4 > 0
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - float
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - float
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 10 )
+with expansion:
+ 10 == 10
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - float
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - float
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - float
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - float
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - float
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - float
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - float
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - int
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - int
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 10 )
+with expansion:
+ 10 == 10
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - int
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - int
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - int
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - int
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - int
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - int
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - int
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::string
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::string
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 10 )
+with expansion:
+ 10 == 10
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::string
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::string
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::string
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::string
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::string
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::string
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::string
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::tuple<int,float>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::tuple<int,float>
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 10 )
+with expansion:
+ 10 == 10
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::tuple<int,float>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::tuple<int,float>
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::tuple<int,float>
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::tuple<int,float>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::tuple<int,float>
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::tuple<int,float>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTest: vectors can be sized and resized - std::tuple<int,float>
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - (std::tuple<int, float>), 6
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 6 == 6
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 6 >= 6
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - (std::tuple<int, float>), 6
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 2 * V )
+with expansion:
+ 12 == 12
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 2 * V )
+with expansion:
+ 12 >= 12
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - (std::tuple<int, float>), 6
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 6 == 6
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 6 >= 6
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - (std::tuple<int, float>), 6
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 6 >= 6
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - (std::tuple<int, float>), 6
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - (std::tuple<int, float>), 6
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 6 == 6
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 6 >= 6
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - (std::tuple<int, float>), 6
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 6 == 6
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 2 * V )
+with expansion:
+ 12 >= 12
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - (std::tuple<int, float>), 6
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 6 == 6
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 6 >= 6
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - (std::tuple<int, float>), 6
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 6 == 6
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 6 >= 6
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - float,4
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 4 == 4
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 4 >= 4
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - float,4
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 2 * V )
+with expansion:
+ 8 == 8
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 2 * V )
+with expansion:
+ 8 >= 8
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - float,4
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 4 == 4
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 4 >= 4
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - float,4
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 4 >= 4
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - float,4
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - float,4
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 4 == 4
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 4 >= 4
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - float,4
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 4 == 4
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 2 * V )
+with expansion:
+ 8 >= 8
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - float,4
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 4 == 4
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 4 >= 4
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - float,4
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 4 == 4
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 4 >= 4
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - int,5
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - int,5
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 2 * V )
+with expansion:
+ 10 == 10
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 2 * V )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - int,5
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - int,5
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - int,5
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - int,5
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - int,5
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 2 * V )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - int,5
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - int,5
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - std::string,15
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 15 == 15
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 15 >= 15
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - std::string,15
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 2 * V )
+with expansion:
+ 30 == 30
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 2 * V )
+with expansion:
+ 30 >= 30
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - std::string,15
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 15 == 15
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 15 >= 15
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - std::string,15
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 15 >= 15
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - std::string,15
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - std::string,15
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 15 == 15
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 15 >= 15
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - std::string,15
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 15 == 15
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 2 * V )
+with expansion:
+ 30 >= 30
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - std::string,15
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 15 == 15
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 15 >= 15
+
+-------------------------------------------------------------------------------
+TemplateTestSig: vectors can be sized and resized - std::string,15
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == V )
+with expansion:
+ 15 == 15
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= V )
+with expansion:
+ 15 >= 15
+
+-------------------------------------------------------------------------------
+Test case with identical tags keeps just one
+-------------------------------------------------------------------------------
+Tag.tests.cpp:<line number>
+...............................................................................
+
+Tag.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.tags.size() == 1 )
+with expansion:
+ 1 == 1
+
+Tag.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.tags[0] == Tag( "tag1" ) )
+with expansion:
+ {?} == {?}
+
+-------------------------------------------------------------------------------
+Test case with one argument
+-------------------------------------------------------------------------------
+VariadicMacros.tests.cpp:<line number>
+...............................................................................
+
+VariadicMacros.tests.cpp:<line number>: PASSED:
+with message:
+ no assertions
+
+-------------------------------------------------------------------------------
+Test enum bit values
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( 0x<hex digits> == bit30and31 )
+with expansion:
+ 3221225472 (0x<hex digits>) == 3221225472
+
+-------------------------------------------------------------------------------
+Test with special, characters "in name
+-------------------------------------------------------------------------------
+CmdLine.tests.cpp:<line number>
+...............................................................................
+
+CmdLine.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+Testing checked-if
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECKED_IF( true )
+
+Misc.tests.cpp:<line number>: PASSED:
+
+Misc.tests.cpp:<line number>: FAILED - but was ok:
+ CHECKED_IF( false )
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECKED_ELSE( true )
+
+Misc.tests.cpp:<line number>: FAILED - but was ok:
+ CHECKED_ELSE( false )
+
+Misc.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+Testing checked-if 2
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECKED_IF( true )
+
+Misc.tests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+Testing checked-if 3
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED - but was ok:
+ CHECKED_ELSE( false )
+
+Misc.tests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+The NO_FAIL macro reports a failure but does not fail the test
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED - but was ok:
+ CHECK_NOFAIL( 1 == 2 )
+
+
+No assertions in test case 'The NO_FAIL macro reports a failure but does not fail the test'
+
+-------------------------------------------------------------------------------
+The default listing implementation write to provided stream
+ Listing tags
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring("[fakeTag]"s) )
+with expansion:
+ "All available tags:
+ 1 [fakeTag]
+ 1 tag
+
+" contains: "[fakeTag]"
+
+-------------------------------------------------------------------------------
+The default listing implementation write to provided stream
+ Listing reporters
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fake reporter"s ) && ContainsSubstring( "fake description"s ) )
+with expansion:
+ "Available reporters:
+ fake reporter: fake description
+
+" ( contains: "fake reporter" and contains: "fake description" )
+
+-------------------------------------------------------------------------------
+The default listing implementation write to provided stream
+ Listing tests
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
+with expansion:
+ "All available test cases:
+ fake test name
+ [fakeTestTag]
+ 1 test case
+
+" ( contains: "fake test name" and contains: "fakeTestTag" )
+
+-------------------------------------------------------------------------------
+The default listing implementation write to provided stream
+ Listing listeners
+-------------------------------------------------------------------------------
+Reporters.tests.cpp:<line number>
+...............................................................................
+
+Reporters.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( listingString, ContainsSubstring( "fakeListener"s ) && ContainsSubstring( "fake description"s ) )
+with expansion:
+ "Registered listeners:
+ fakeListener: fake description
+
+" ( contains: "fakeListener" and contains: "fake description" )
+
+-------------------------------------------------------------------------------
+This test 'should' fail but doesn't
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+with message:
+ oops!
+
+-------------------------------------------------------------------------------
+Thrown string literals are translated
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ For some reason someone is throwing a string literal!
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isComplete() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+ re-enter after failed section
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isComplete() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isComplete() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+ re-enter after failed section and find next section
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isComplete() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2.isOpen() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2b.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( ctx.completedCycle() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+ Successfully close S2
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2b.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase2.isComplete() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase2.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2.isOpen() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2b.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( ctx.completedCycle() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+ fail S2
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2b.isComplete() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2b.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase2.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase3.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1c.isOpen() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2c.isOpen() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase3.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ open a nested section
+-------------------------------------------------------------------------------
+PartTracker.tests.cpp:<line number>
+...............................................................................
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2.isOpen() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s2.isComplete() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( s1.isComplete() )
+with expansion:
+ true
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTracker.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCase.isComplete() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Trim strings
+-------------------------------------------------------------------------------
+StringManip.tests.cpp:<line number>
+...............................................................................
+
+StringManip.tests.cpp:<line number>: PASSED:
+ REQUIRE( trim(std::string(no_whitespace)) == no_whitespace )
+with expansion:
+ "There is no extra whitespace here"
+ ==
+ "There is no extra whitespace here"
+
+StringManip.tests.cpp:<line number>: PASSED:
+ REQUIRE( trim(std::string(leading_whitespace)) == no_whitespace )
+with expansion:
+ "There is no extra whitespace here"
+ ==
+ "There is no extra whitespace here"
+
+StringManip.tests.cpp:<line number>: PASSED:
+ REQUIRE( trim(std::string(trailing_whitespace)) == no_whitespace )
+with expansion:
+ "There is no extra whitespace here"
+ ==
+ "There is no extra whitespace here"
+
+StringManip.tests.cpp:<line number>: PASSED:
+ REQUIRE( trim(std::string(whitespace_at_both_ends)) == no_whitespace )
+with expansion:
+ "There is no extra whitespace here"
+ ==
+ "There is no extra whitespace here"
+
+StringManip.tests.cpp:<line number>: PASSED:
+ REQUIRE( trim(StringRef(no_whitespace)) == StringRef(no_whitespace) )
+with expansion:
+ There is no extra whitespace here
+ ==
+ There is no extra whitespace here
+
+StringManip.tests.cpp:<line number>: PASSED:
+ REQUIRE( trim(StringRef(leading_whitespace)) == StringRef(no_whitespace) )
+with expansion:
+ There is no extra whitespace here
+ ==
+ There is no extra whitespace here
+
+StringManip.tests.cpp:<line number>: PASSED:
+ REQUIRE( trim(StringRef(trailing_whitespace)) == StringRef(no_whitespace) )
+with expansion:
+ There is no extra whitespace here
+ ==
+ There is no extra whitespace here
+
+StringManip.tests.cpp:<line number>: PASSED:
+ REQUIRE( trim(StringRef(whitespace_at_both_ends)) == StringRef(no_whitespace) )
+with expansion:
+ There is no extra whitespace here
+ ==
+ There is no extra whitespace here
+
+-------------------------------------------------------------------------------
+Unexpected exceptions can be translated
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ 3.14
+
+-------------------------------------------------------------------------------
+Upcasting special member functions
+ Move constructor
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( bptr->i == 3 )
+with expansion:
+ 3 == 3
+
+-------------------------------------------------------------------------------
+Upcasting special member functions
+ move assignment
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( bptr->i == 3 )
+with expansion:
+ 3 == 3
+
+-------------------------------------------------------------------------------
+Usage of AllMatch range matcher
+ Basic usage
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, AllMatch(SizeIs(5)) )
+with expansion:
+ { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0
+ }, { 1, 0, 0, -1, 5 } } all match has size == 5
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !AllMatch(Contains(0) && Contains(1)) )
+with expansion:
+ { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0
+ }, { 1, 0, 0, -1, 5 } } not all match ( contains element 0 and contains
+ element 1 )
+
+-------------------------------------------------------------------------------
+Usage of AllMatch range matcher
+ Type requires ADL found begin and end
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( needs_adl, AllMatch( Predicate<int>( []( int elem ) { return elem < 6; } ) ) )
+with expansion:
+ { 1, 2, 3, 4, 5 } all match matches undescribed predicate
+
+-------------------------------------------------------------------------------
+Usage of AllMatch range matcher
+ Shortcircuiting
+ All are read
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, allMatch )
+with expansion:
+ { 1, 2, 3, 4, 5 } all match matches undescribed predicate
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[1] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[2] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[3] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[4] )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Usage of AllMatch range matcher
+ Shortcircuiting
+ Short-circuited
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, !allMatch )
+with expansion:
+ { 1, 2, 3, 4, 5 } not all match matches undescribed predicate
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[1] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[2] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[3] )
+with expansion:
+ !false
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[4] )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Usage of AllTrue range matcher
+ Basic usage
+ All true evaluates to true
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, AllTrue() )
+with expansion:
+ { true, true, true, true, true } contains only true
+
+-------------------------------------------------------------------------------
+Usage of AllTrue range matcher
+ Basic usage
+ Empty evaluates to true
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, AllTrue() )
+with expansion:
+ { } contains only true
+
+-------------------------------------------------------------------------------
+Usage of AllTrue range matcher
+ Basic usage
+ One false evalutes to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !AllTrue() )
+with expansion:
+ { true, true, false, true, true } not contains only true
+
+-------------------------------------------------------------------------------
+Usage of AllTrue range matcher
+ Basic usage
+ All false evaluates to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !AllTrue() )
+with expansion:
+ { false, false, false, false, false } not contains only true
+
+-------------------------------------------------------------------------------
+Usage of AllTrue range matcher
+ Contained type is convertible to bool
+ All true evaluates to true
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, AllTrue() )
+with expansion:
+ { true, true, true, true, true } contains only true
+
+-------------------------------------------------------------------------------
+Usage of AllTrue range matcher
+ Contained type is convertible to bool
+ One false evalutes to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !AllTrue() )
+with expansion:
+ { true, true, false, true, true } not contains only true
+
+-------------------------------------------------------------------------------
+Usage of AllTrue range matcher
+ Contained type is convertible to bool
+ All false evaluates to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !AllTrue() )
+with expansion:
+ { false, false, false, false, false } not contains only true
+
+-------------------------------------------------------------------------------
+Usage of AllTrue range matcher
+ Shortcircuiting
+ All are read
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, AllTrue() )
+with expansion:
+ { true, true, true, true, true } contains only true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[1] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[2] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[3] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[4] )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Usage of AllTrue range matcher
+ Shortcircuiting
+ Short-circuited
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, !AllTrue() )
+with expansion:
+ { true, true, false, true, true } not contains only true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[1] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[2] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[3] )
+with expansion:
+ !false
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[4] )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Usage of AnyMatch range matcher
+ Basic usage
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, AnyMatch(SizeIs(5)) )
+with expansion:
+ { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0
+ }, { 1, 0, 0, -1, 5 } } any match has size == 5
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !AnyMatch(Contains(0) && Contains(10)) )
+with expansion:
+ { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0
+ }, { 1, 0, 0, -1, 5 } } not any match ( contains element 0 and contains
+ element 10 )
+
+-------------------------------------------------------------------------------
+Usage of AnyMatch range matcher
+ Type requires ADL found begin and end
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( needs_adl, AnyMatch( Predicate<int>( []( int elem ) { return elem < 3; } ) ) )
+with expansion:
+ { 1, 2, 3, 4, 5 } any match matches undescribed predicate
+
+-------------------------------------------------------------------------------
+Usage of AnyMatch range matcher
+ Shortcircuiting
+ All are read
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, !anyMatch )
+with expansion:
+ { 1, 2, 3, 4, 5 } not any match matches undescribed predicate
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[1] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[2] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[3] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[4] )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Usage of AnyMatch range matcher
+ Shortcircuiting
+ Short-circuited
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, anyMatch )
+with expansion:
+ { 1, 2, 3, 4, 5 } any match matches undescribed predicate
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[1] )
+with expansion:
+ !false
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[2] )
+with expansion:
+ !false
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[3] )
+with expansion:
+ !false
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[4] )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Usage of AnyTrue range matcher
+ Basic usage
+ All true evaluates to true
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, AnyTrue() )
+with expansion:
+ { true, true, true, true, true } contains at least one true
+
+-------------------------------------------------------------------------------
+Usage of AnyTrue range matcher
+ Basic usage
+ Empty evaluates to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !AnyTrue() )
+with expansion:
+ { } not contains at least one true
+
+-------------------------------------------------------------------------------
+Usage of AnyTrue range matcher
+ Basic usage
+ One true evalutes to true
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, AnyTrue() )
+with expansion:
+ { false, false, true, false, false } contains at least one true
+
+-------------------------------------------------------------------------------
+Usage of AnyTrue range matcher
+ Basic usage
+ All false evaluates to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !AnyTrue() )
+with expansion:
+ { false, false, false, false, false } not contains at least one true
+
+-------------------------------------------------------------------------------
+Usage of AnyTrue range matcher
+ Contained type is convertible to bool
+ All true evaluates to true
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, AnyTrue() )
+with expansion:
+ { true, true, true, true, true } contains at least one true
+
+-------------------------------------------------------------------------------
+Usage of AnyTrue range matcher
+ Contained type is convertible to bool
+ One true evalutes to true
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, AnyTrue() )
+with expansion:
+ { false, false, true, false, false } contains at least one true
+
+-------------------------------------------------------------------------------
+Usage of AnyTrue range matcher
+ Contained type is convertible to bool
+ All false evaluates to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !AnyTrue() )
+with expansion:
+ { false, false, false, false, false } not contains at least one true
+
+-------------------------------------------------------------------------------
+Usage of AnyTrue range matcher
+ Shortcircuiting
+ All are read
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, AnyTrue() )
+with expansion:
+ { false, false, false, false, true } contains at least one true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[1] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[2] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[3] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[4] )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Usage of AnyTrue range matcher
+ Shortcircuiting
+ Short-circuited
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, AnyTrue() )
+with expansion:
+ { false, false, true, true, true } contains at least one true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[1] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[2] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[3] )
+with expansion:
+ !false
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[4] )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Usage of NoneMatch range matcher
+ Basic usage
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, NoneMatch(SizeIs(6)) )
+with expansion:
+ { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0
+ }, { 1, 0, 0, -1, 5 } } none match has size == 6
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !NoneMatch(Contains(0) && Contains(1)) )
+with expansion:
+ { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0
+ }, { 1, 0, 0, -1, 5 } } not none match ( contains element 0 and contains
+ element 1 )
+
+-------------------------------------------------------------------------------
+Usage of NoneMatch range matcher
+ Type requires ADL found begin and end
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( needs_adl, NoneMatch( Predicate<int>( []( int elem ) { return elem > 6; } ) ) )
+with expansion:
+ { 1, 2, 3, 4, 5 } none match matches undescribed predicate
+
+-------------------------------------------------------------------------------
+Usage of NoneMatch range matcher
+ Shortcircuiting
+ All are read
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, noneMatch )
+with expansion:
+ { 1, 2, 3, 4, 5 } none match matches undescribed predicate
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[1] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[2] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[3] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[4] )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Usage of NoneMatch range matcher
+ Shortcircuiting
+ Short-circuited
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, !noneMatch )
+with expansion:
+ { 1, 2, 3, 4, 5 } not none match matches undescribed predicate
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[1] )
+with expansion:
+ !false
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[2] )
+with expansion:
+ !false
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[3] )
+with expansion:
+ !false
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[4] )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Usage of NoneTrue range matcher
+ Basic usage
+ All true evaluates to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !NoneTrue() )
+with expansion:
+ { true, true, true, true, true } not contains no true
+
+-------------------------------------------------------------------------------
+Usage of NoneTrue range matcher
+ Basic usage
+ Empty evaluates to true
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, NoneTrue() )
+with expansion:
+ { } contains no true
+
+-------------------------------------------------------------------------------
+Usage of NoneTrue range matcher
+ Basic usage
+ One true evalutes to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !NoneTrue() )
+with expansion:
+ { false, false, true, false, false } not contains no true
+
+-------------------------------------------------------------------------------
+Usage of NoneTrue range matcher
+ Basic usage
+ All false evaluates to true
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, NoneTrue() )
+with expansion:
+ { false, false, false, false, false } contains no true
+
+-------------------------------------------------------------------------------
+Usage of NoneTrue range matcher
+ Contained type is convertible to bool
+ All true evaluates to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !NoneTrue() )
+with expansion:
+ { true, true, true, true, true } not contains no true
+
+-------------------------------------------------------------------------------
+Usage of NoneTrue range matcher
+ Contained type is convertible to bool
+ One true evalutes to false
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, !NoneTrue() )
+with expansion:
+ { false, false, true, false, false } not contains no true
+
+-------------------------------------------------------------------------------
+Usage of NoneTrue range matcher
+ Contained type is convertible to bool
+ All false evaluates to true
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( data, NoneTrue() )
+with expansion:
+ { false, false, false, false, false } contains no true
+
+-------------------------------------------------------------------------------
+Usage of NoneTrue range matcher
+ Shortcircuiting
+ All are read
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, NoneTrue() )
+with expansion:
+ { false, false, false, false, false } contains no true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[1] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[2] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[3] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[4] )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Usage of NoneTrue range matcher
+ Shortcircuiting
+ Short-circuited
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( mocked, !NoneTrue() )
+with expansion:
+ { false, false, true, true, true } not contains no true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[0] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[1] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE( mocked.m_derefed[2] )
+with expansion:
+ true
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[3] )
+with expansion:
+ !false
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( mocked.m_derefed[4] )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Usage of the SizeIs range matcher
+ Some with stdlib containers
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( empty_vec, SizeIs(0) )
+with expansion:
+ { } has size == 0
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( empty_vec, !SizeIs(2) )
+with expansion:
+ { } not has size == 2
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( empty_vec, SizeIs(Lt(2)) )
+with expansion:
+ { } size matches is less than 2
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( arr, SizeIs(2) )
+with expansion:
+ { 0, 0 } has size == 2
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( arr, SizeIs( Lt(3)) )
+with expansion:
+ { 0, 0 } size matches is less than 3
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( arr, !SizeIs(!Lt(3)) )
+with expansion:
+ { 0, 0 } not size matches not is less than 3
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( map, SizeIs(3) )
+with expansion:
+ { {?}, {?}, {?} } has size == 3
+
+-------------------------------------------------------------------------------
+Usage of the SizeIs range matcher
+ Type requires ADL found size free function
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( unrelated::ADL_size{}, SizeIs(12) )
+with expansion:
+ {?} has size == 12
+
+-------------------------------------------------------------------------------
+Usage of the SizeIs range matcher
+ Type has size member
+-------------------------------------------------------------------------------
+MatchersRanges.tests.cpp:<line number>
+...............................................................................
+
+MatchersRanges.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( has_size{}, SizeIs(13) )
+with expansion:
+ {?} has size == 13
+
+-------------------------------------------------------------------------------
+Use a custom approx
+-------------------------------------------------------------------------------
+Approx.tests.cpp:<line number>
+...............................................................................
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d == approx( 1.23 ) )
+with expansion:
+ 1.23 == Approx( 1.23 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d == approx( 1.22 ) )
+with expansion:
+ 1.23 == Approx( 1.22 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d == approx( 1.24 ) )
+with expansion:
+ 1.23 == Approx( 1.24 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( d != approx( 1.25 ) )
+with expansion:
+ 1.23 != Approx( 1.25 )
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( approx( d ) == 1.23 )
+with expansion:
+ Approx( 1.23 ) == 1.23
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( approx( d ) == 1.22 )
+with expansion:
+ Approx( 1.23 ) == 1.22
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( approx( d ) == 1.24 )
+with expansion:
+ Approx( 1.23 ) == 1.24
+
+Approx.tests.cpp:<line number>: PASSED:
+ REQUIRE( approx( d ) != 1.25 )
+with expansion:
+ Approx( 1.23 ) != 1.25
+
+-------------------------------------------------------------------------------
+Variadic macros
+ Section with one argument
+-------------------------------------------------------------------------------
+VariadicMacros.tests.cpp:<line number>
+...............................................................................
+
+VariadicMacros.tests.cpp:<line number>: PASSED:
+with message:
+ no assertions
+
+-------------------------------------------------------------------------------
+Vector Approx matcher
+ Empty vector is roughly equal to an empty vector
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( empty, Approx( empty ) )
+with expansion:
+ { } is approx: { }
+
+-------------------------------------------------------------------------------
+Vector Approx matcher
+ Vectors with elements
+ A vector is approx equal to itself
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( v1, Approx( v1 ) )
+with expansion:
+ { 1.0, 2.0, 3.0 } is approx: { 1.0, 2.0, 3.0 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( v1, Approx<double>( { 1., 2., 3. } ) )
+with expansion:
+ { 1.0, 2.0, 3.0 } is approx: { 1.0, 2.0, 3.0 }
+
+-------------------------------------------------------------------------------
+Vector Approx matcher
+ Vectors with elements
+ Different length
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( v1, !Approx( temp ) )
+with expansion:
+ { 1.0, 2.0, 3.0 } not is approx: { 1.0, 2.0, 3.0, 4.0 }
+
+-------------------------------------------------------------------------------
+Vector Approx matcher
+ Vectors with elements
+ Same length, different elements
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( v1, !Approx( v2 ) )
+with expansion:
+ { 1.0, 2.0, 3.0 } not is approx: { 1.5, 2.5, 3.5 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( v1, Approx( v2 ).margin( 0.5 ) )
+with expansion:
+ { 1.0, 2.0, 3.0 } is approx: { 1.5, 2.5, 3.5 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( v1, Approx( v2 ).epsilon( 0.5 ) )
+with expansion:
+ { 1.0, 2.0, 3.0 } is approx: { 1.5, 2.5, 3.5 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( v1, Approx( v2 ).epsilon( 0.1 ).scale( 500 ) )
+with expansion:
+ { 1.0, 2.0, 3.0 } is approx: { 1.5, 2.5, 3.5 }
+
+-------------------------------------------------------------------------------
+Vector Approx matcher -- failing
+ Empty and non empty vectors are not approx equal
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( empty, Approx( t1 ) )
+with expansion:
+ { } is approx: { 1.0, 2.0 }
+
+-------------------------------------------------------------------------------
+Vector Approx matcher -- failing
+ Just different vectors
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( v1, Approx( v2 ) )
+with expansion:
+ { 2.0, 4.0, 6.0 } is approx: { 1.0, 3.0, 5.0 }
+
+-------------------------------------------------------------------------------
+Vector matchers
+ Contains (element)
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, VectorContains( 1 ) )
+with expansion:
+ { 1, 2, 3 } Contains: 1
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, VectorContains( 2 ) )
+with expansion:
+ { 1, 2, 3 } Contains: 2
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v5, ( VectorContains<int, CustomAllocator<int>>( 2 ) ) )
+with expansion:
+ { 1, 2, 3 } Contains: 2
+
+-------------------------------------------------------------------------------
+Vector matchers
+ Contains (vector)
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, Contains( v2 ) )
+with expansion:
+ { 1, 2, 3 } Contains: { 1, 2 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, Contains<int>( { 1, 2 } ) )
+with expansion:
+ { 1, 2, 3 } Contains: { 1, 2 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v5, ( Contains<int, std::allocator<int>, CustomAllocator<int>>( v2 ) ) )
+with expansion:
+ { 1, 2, 3 } Contains: { 1, 2 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, Contains( v2 ) )
+with expansion:
+ { 1, 2, 3 } Contains: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, Contains( empty ) )
+with expansion:
+ { 1, 2, 3 } Contains: { }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( empty, Contains( empty ) )
+with expansion:
+ { } Contains: { }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v5, ( Contains<int, std::allocator<int>, CustomAllocator<int>>( v2 ) ) )
+with expansion:
+ { 1, 2, 3 } Contains: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v5, Contains( v6 ) )
+with expansion:
+ { 1, 2, 3 } Contains: { 1, 2 }
+
+-------------------------------------------------------------------------------
+Vector matchers
+ Contains (element), composed
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, VectorContains( 1 ) && VectorContains( 2 ) )
+with expansion:
+ { 1, 2, 3 } ( Contains: 1 and Contains: 2 )
+
+-------------------------------------------------------------------------------
+Vector matchers
+ Equals
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, Equals( v ) )
+with expansion:
+ { 1, 2, 3 } Equals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( empty, Equals( empty ) )
+with expansion:
+ { } Equals: { }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, Equals<int>( { 1, 2, 3 } ) )
+with expansion:
+ { 1, 2, 3 } Equals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, Equals( v2 ) )
+with expansion:
+ { 1, 2, 3 } Equals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v5, ( Equals<int, std::allocator<int>, CustomAllocator<int>>( v2 ) ) )
+with expansion:
+ { 1, 2, 3 } Equals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v5, Equals( v6 ) )
+with expansion:
+ { 1, 2, 3 } Equals: { 1, 2, 3 }
+
+-------------------------------------------------------------------------------
+Vector matchers
+ UnorderedEquals
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, UnorderedEquals( v ) )
+with expansion:
+ { 1, 2, 3 } UnorderedEquals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v, UnorderedEquals<int>( { 3, 2, 1 } ) )
+with expansion:
+ { 1, 2, 3 } UnorderedEquals: { 3, 2, 1 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( empty, UnorderedEquals( empty ) )
+with expansion:
+ { } UnorderedEquals: { }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( permuted, UnorderedEquals( v ) )
+with expansion:
+ { 1, 3, 2 } UnorderedEquals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( permuted, UnorderedEquals( v ) )
+with expansion:
+ { 2, 3, 1 } UnorderedEquals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v5, ( UnorderedEquals<int, std::allocator<int>, CustomAllocator<int>>( permuted ) ) )
+with expansion:
+ { 1, 2, 3 } UnorderedEquals: { 2, 3, 1 }
+
+Matchers.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( v5_permuted, UnorderedEquals( v5 ) )
+with expansion:
+ { 1, 3, 2 } UnorderedEquals: { 1, 2, 3 }
+
+-------------------------------------------------------------------------------
+Vector matchers that fail
+ Contains (element)
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( v, VectorContains( -1 ) )
+with expansion:
+ { 1, 2, 3 } Contains: -1
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( empty, VectorContains( 1 ) )
+with expansion:
+ { } Contains: 1
+
+-------------------------------------------------------------------------------
+Vector matchers that fail
+ Contains (vector)
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( empty, Contains( v ) )
+with expansion:
+ { } Contains: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( v, Contains( v2 ) )
+with expansion:
+ { 1, 2, 3 } Contains: { 1, 2, 4 }
+
+-------------------------------------------------------------------------------
+Vector matchers that fail
+ Equals
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( v, Equals( v2 ) )
+with expansion:
+ { 1, 2, 3 } Equals: { 1, 2 }
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( v2, Equals( v ) )
+with expansion:
+ { 1, 2 } Equals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( empty, Equals( v ) )
+with expansion:
+ { } Equals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( v, Equals( empty ) )
+with expansion:
+ { 1, 2, 3 } Equals: { }
+
+-------------------------------------------------------------------------------
+Vector matchers that fail
+ UnorderedEquals
+-------------------------------------------------------------------------------
+Matchers.tests.cpp:<line number>
+...............................................................................
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( v, UnorderedEquals( empty ) )
+with expansion:
+ { 1, 2, 3 } UnorderedEquals: { }
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( empty, UnorderedEquals( v ) )
+with expansion:
+ { } UnorderedEquals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( permuted, UnorderedEquals( v ) )
+with expansion:
+ { 1, 3 } UnorderedEquals: { 1, 2, 3 }
+
+Matchers.tests.cpp:<line number>: FAILED:
+ CHECK_THAT( permuted, UnorderedEquals( v ) )
+with expansion:
+ { 3, 1 } UnorderedEquals: { 1, 2, 3 }
+
+-------------------------------------------------------------------------------
+When checked exceptions are thrown they can be expected or unexpected
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS_AS( thisThrows(), std::domain_error )
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( thisDoesntThrow() )
+
+Exception.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS( thisThrows() )
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown directly they are always failures
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown during a CHECK the test should continue
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+ CHECK( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown during a REQUIRE the test should abort
+fail
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+ REQUIRE( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown from functions they are always failures
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+ CHECK( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown from sections they are always failures
+ section name
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown, but caught, they do not affect the test
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+
+No assertions in test case 'When unchecked exceptions are thrown, but caught, they do not affect the test'
+
+-------------------------------------------------------------------------------
+X/level/0/a
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+X/level/0/b
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+X/level/1/a
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+X/level/1/b
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+XmlEncode
+ normal string
+-------------------------------------------------------------------------------
+Xml.tests.cpp:<line number>
+...............................................................................
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE( encode( "normal string" ) == "normal string" )
+with expansion:
+ "normal string" == "normal string"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ empty string
+-------------------------------------------------------------------------------
+Xml.tests.cpp:<line number>
+...............................................................................
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE( encode( "" ) == "" )
+with expansion:
+ "" == ""
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with ampersand
+-------------------------------------------------------------------------------
+Xml.tests.cpp:<line number>
+...............................................................................
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE( encode( "smith & jones" ) == "smith &amp; jones" )
+with expansion:
+ "smith &amp; jones" == "smith &amp; jones"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with less-than
+-------------------------------------------------------------------------------
+Xml.tests.cpp:<line number>
+...............................................................................
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE( encode( "smith < jones" ) == "smith &lt; jones" )
+with expansion:
+ "smith &lt; jones" == "smith &lt; jones"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with greater-than
+-------------------------------------------------------------------------------
+Xml.tests.cpp:<line number>
+...............................................................................
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE( encode( "smith > jones" ) == "smith > jones" )
+with expansion:
+ "smith > jones" == "smith > jones"
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE( encode( "smith ]]> jones" ) == "smith ]]&gt; jones" )
+with expansion:
+ "smith ]]&gt; jones"
+ ==
+ "smith ]]&gt; jones"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with quotes
+-------------------------------------------------------------------------------
+Xml.tests.cpp:<line number>
+...............................................................................
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE( encode( stringWithQuotes ) == stringWithQuotes )
+with expansion:
+ "don't "quote" me on that"
+ ==
+ "don't "quote" me on that"
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE( encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't &quot;quote&quot; me on that" )
+with expansion:
+ "don't &quot;quote&quot; me on that"
+ ==
+ "don't &quot;quote&quot; me on that"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with control char (1)
+-------------------------------------------------------------------------------
+Xml.tests.cpp:<line number>
+...............................................................................
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE( encode( "[\x01]" ) == "[\\x01]" )
+with expansion:
+ "[\x01]" == "[\x01]"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with control char (x7F)
+-------------------------------------------------------------------------------
+Xml.tests.cpp:<line number>
+...............................................................................
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE( encode( "[\x7F]" ) == "[\\x7F]" )
+with expansion:
+ "[\x7F]" == "[\x7F]"
+
+-------------------------------------------------------------------------------
+XmlWriter writes boolean attributes as true/false
+-------------------------------------------------------------------------------
+Xml.tests.cpp:<line number>
+...............................................................................
+
+Xml.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( stream.str(), ContainsSubstring(R"(attr1="true")") && ContainsSubstring(R"(attr2="false")") )
+with expansion:
+ "<?xml version="1.0" encoding="UTF-8"?>
+ <Element1 attr1="true" attr2="false"/>
+ " ( contains: "attr1="true"" and contains: "attr2="false"" )
+
+-------------------------------------------------------------------------------
+analyse no analysis
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.mean.point.count() == 23 )
+with expansion:
+ 23.0 == 23
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.mean.lower_bound.count() == 23 )
+with expansion:
+ 23.0 == 23
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.mean.upper_bound.count() == 23 )
+with expansion:
+ 23.0 == 23
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.standard_deviation.point.count() == 0 )
+with expansion:
+ 0.0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.standard_deviation.lower_bound.count() == 0 )
+with expansion:
+ 0.0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.standard_deviation.upper_bound.count() == 0 )
+with expansion:
+ 0.0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.outliers.total() == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.outliers.low_mild == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.outliers.low_severe == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.outliers.high_mild == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.outliers.high_severe == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.outliers.samples_seen == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( analysis.outlier_variance == 0 )
+with expansion:
+ 0.0 == 0
+
+-------------------------------------------------------------------------------
+array<int, N> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.tests.cpp:<line number>
+...............................................................................
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify( empty ) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify( oneValue ) == "{ 42 }" )
+with expansion:
+ "{ 42 }" == "{ 42 }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify( twoValues ) == "{ 42, 250 }" )
+with expansion:
+ "{ 42, 250 }" == "{ 42, 250 }"
+
+-------------------------------------------------------------------------------
+benchmark function call
+ without chronometer
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( model.started == 1 )
+with expansion:
+ 1 == 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( model.finished == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( model.started == 1 )
+with expansion:
+ 1 == 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( model.finished == 1 )
+with expansion:
+ 1 == 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( called == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+benchmark function call
+ with chronometer
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( model.started == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( model.finished == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( model.started == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( model.finished == 0 )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( called == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+boolean member
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( obj.prop != 0 )
+with expansion:
+ 0x<hex digits> != 0
+
+-------------------------------------------------------------------------------
+checkedElse
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECKED_ELSE( flag )
+with expansion:
+ true
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCheckedElse( true ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+checkedElse, failing
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED - but was ok:
+ CHECKED_ELSE( flag )
+with expansion:
+ false
+
+Misc.tests.cpp:<line number>: FAILED:
+ REQUIRE( testCheckedElse( false ) )
+with expansion:
+ false
+
+-------------------------------------------------------------------------------
+checkedIf
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECKED_IF( flag )
+with expansion:
+ true
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( testCheckedIf( true ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+checkedIf, failing
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED - but was ok:
+ CHECKED_IF( flag )
+with expansion:
+ false
+
+Misc.tests.cpp:<line number>: FAILED:
+ REQUIRE( testCheckedIf( false ) )
+with expansion:
+ false
+
+-------------------------------------------------------------------------------
+classify_outliers
+ none
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.samples_seen == static_cast<int>(x.size()) )
+with expansion:
+ 6 == 6
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_severe == los )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_mild == lom )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_mild == him )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_severe == his )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.total() == los + lom + him + his )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+classify_outliers
+ low severe
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.samples_seen == static_cast<int>(x.size()) )
+with expansion:
+ 6 == 6
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_severe == los )
+with expansion:
+ 1 == 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_mild == lom )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_mild == him )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_severe == his )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.total() == los + lom + him + his )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+classify_outliers
+ low mild
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.samples_seen == static_cast<int>(x.size()) )
+with expansion:
+ 6 == 6
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_severe == los )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_mild == lom )
+with expansion:
+ 1 == 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_mild == him )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_severe == his )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.total() == los + lom + him + his )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+classify_outliers
+ high mild
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.samples_seen == static_cast<int>(x.size()) )
+with expansion:
+ 6 == 6
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_severe == los )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_mild == lom )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_mild == him )
+with expansion:
+ 1 == 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_severe == his )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.total() == los + lom + him + his )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+classify_outliers
+ high severe
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.samples_seen == static_cast<int>(x.size()) )
+with expansion:
+ 6 == 6
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_severe == los )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_mild == lom )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_mild == him )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_severe == his )
+with expansion:
+ 1 == 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.total() == los + lom + him + his )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+classify_outliers
+ mixed
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.samples_seen == static_cast<int>(x.size()) )
+with expansion:
+ 6 == 6
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_severe == los )
+with expansion:
+ 1 == 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.low_mild == lom )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_mild == him )
+with expansion:
+ 1 == 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.high_severe == his )
+with expansion:
+ 0 == 0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( o.total() == los + lom + him + his )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+comparisons between const int variables
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( unsigned_char_var == 1 )
+with expansion:
+ 1 == 1
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( unsigned_short_var == 1 )
+with expansion:
+ 1 == 1
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( unsigned_int_var == 1 )
+with expansion:
+ 1 == 1
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( unsigned_long_var == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+comparisons between int variables
+-------------------------------------------------------------------------------
+Condition.tests.cpp:<line number>
+...............................................................................
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( long_var == unsigned_char_var )
+with expansion:
+ 1 == 1
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( long_var == unsigned_short_var )
+with expansion:
+ 1 == 1
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( long_var == unsigned_int_var )
+with expansion:
+ 1 == 1
+
+Condition.tests.cpp:<line number>: PASSED:
+ REQUIRE( long_var == unsigned_long_var )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+convertToBits
+-------------------------------------------------------------------------------
+FloatingPoint.tests.cpp:<line number>
+...............................................................................
+
+FloatingPoint.tests.cpp:<line number>: PASSED:
+ CHECK( convertToBits( 0.f ) == 0 )
+with expansion:
+ 0 == 0
+
+FloatingPoint.tests.cpp:<line number>: PASSED:
+ CHECK( convertToBits( -0.f ) == ( 1ULL << 31 ) )
+with expansion:
+ 2147483648 (0x<hex digits>)
+ ==
+ 2147483648 (0x<hex digits>)
+
+FloatingPoint.tests.cpp:<line number>: PASSED:
+ CHECK( convertToBits( 0. ) == 0 )
+with expansion:
+ 0 == 0
+
+FloatingPoint.tests.cpp:<line number>: PASSED:
+ CHECK( convertToBits( -0. ) == ( 1ULL << 63 ) )
+with expansion:
+ 9223372036854775808 (0x<hex digits>)
+ ==
+ 9223372036854775808 (0x<hex digits>)
+
+FloatingPoint.tests.cpp:<line number>: PASSED:
+ CHECK( convertToBits( std::numeric_limits<float>::denorm_min() ) == 1 )
+with expansion:
+ 1 == 1
+
+FloatingPoint.tests.cpp:<line number>: PASSED:
+ CHECK( convertToBits( std::numeric_limits<double>::denorm_min() ) == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+empty tags are not allowed
+-------------------------------------------------------------------------------
+Tag.tests.cpp:<line number>
+...............................................................................
+
+Tag.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS( Catch::TestCaseInfo("", { "test with an empty tag", "[]" }, dummySourceLineInfo) )
+
+-------------------------------------------------------------------------------
+erfc_inv
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( erfc_inv(1.103560) == Approx(-0.09203687623843015) )
+with expansion:
+ -0.0920368762 == Approx( -0.0920368762 )
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( erfc_inv(1.067400) == Approx(-0.05980291115763361) )
+with expansion:
+ -0.0598029112 == Approx( -0.0598029112 )
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( erfc_inv(0.050000) == Approx(1.38590382434967796) )
+with expansion:
+ 1.3859038243 == Approx( 1.3859038243 )
+
+-------------------------------------------------------------------------------
+estimate_clock_resolution
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res.mean.count() == rate )
+with expansion:
+ 2000.0 == 2000 (0x<hex digits>)
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res.outliers.total() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+even more nested SECTION tests
+ c
+ d (leaf)
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+even more nested SECTION tests
+ c
+ e (leaf)
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+even more nested SECTION tests
+ f (leaf)
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+first tag
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+
+No assertions in test case 'first tag'
+
+loose text artifact
+-------------------------------------------------------------------------------
+has printf
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+
+No assertions in test case 'has printf'
+
+-------------------------------------------------------------------------------
+is_unary_function
+-------------------------------------------------------------------------------
+Clara.tests.cpp:<line number>
+...............................................................................
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ Catch::Clara::Detail::is_unary_function<decltype(unary1)>::value
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ Catch::Clara::Detail::is_unary_function<decltype(unary2)>::value
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ Catch::Clara::Detail::is_unary_function<decltype(unary3)>::value
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ Catch::Clara::Detail::is_unary_function<decltype(unary4)>::value
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ Catch::Clara::Detail::is_unary_function<decltype(unary5)>::value
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ Catch::Clara::Detail::is_unary_function<decltype(unary6)>::value
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ !(Catch::Clara::Detail::is_unary_function<decltype(binary1)>::value)
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ !(Catch::Clara::Detail::is_unary_function<decltype(binary2)>::value)
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ !(Catch::Clara::Detail::is_unary_function<decltype(nullary1)>::value)
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ !(Catch::Clara::Detail::is_unary_function<decltype(nullary2)>::value)
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ !(Catch::Clara::Detail::is_unary_function<int>::value)
+
+Clara.tests.cpp:<line number>: PASSED:
+with message:
+ !(Catch::Clara::Detail::is_unary_function<std::string const&>::value)
+
+-------------------------------------------------------------------------------
+just failure
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+explicitly with message:
+ Previous info should not be seen
+
+-------------------------------------------------------------------------------
+just failure after unscoped info
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+explicitly with message:
+ previous unscoped info SHOULD not be seen
+
+-------------------------------------------------------------------------------
+just info
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+
+No assertions in test case 'just info'
+
+-------------------------------------------------------------------------------
+just unscoped info
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+
+No assertions in test case 'just unscoped info'
+
+-------------------------------------------------------------------------------
+long long
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( l == std::numeric_limits<long long>::max() )
+with expansion:
+ 9223372036854775807 (0x<hex digits>)
+ ==
+ 9223372036854775807 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ b is currently: 0
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED:
+ CHECK( b > a )
+with expansion:
+ 0 > 1
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ b is currently: 1
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED:
+ CHECK( b > a )
+with expansion:
+ 1 > 1
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ b is currently: 2
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( b > a )
+with expansion:
+ 2 > 1
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ b is currently: 3
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( b > a )
+with expansion:
+ 3 > 1
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ b is currently: 4
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( b > a )
+with expansion:
+ 4 > 1
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ b is currently: 5
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( b > a )
+with expansion:
+ 5 > 1
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ b is currently: 6
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( b > a )
+with expansion:
+ 6 > 1
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ b is currently: 7
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( b > a )
+with expansion:
+ 7 > 1
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ b is currently: 8
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( b > a )
+with expansion:
+ 8 > 1
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ b is currently: 9
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( b > a )
+with expansion:
+ 9 > 1
+
+-------------------------------------------------------------------------------
+looped tests
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[0] (1) is even
+
+Misc.tests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[1] (1) is even
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 0 == 0
+with message:
+ Testing if fib[2] (2) is even
+
+Misc.tests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[3] (3) is even
+
+Misc.tests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[4] (5) is even
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 0 == 0
+with message:
+ Testing if fib[5] (8) is even
+
+Misc.tests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[6] (13) is even
+
+Misc.tests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[7] (21) is even
+
+-------------------------------------------------------------------------------
+makeStream recognizes %debug stream name
+-------------------------------------------------------------------------------
+Stream.tests.cpp:<line number>
+...............................................................................
+
+Stream.tests.cpp:<line number>: PASSED:
+ REQUIRE_NOTHROW( Catch::makeStream( "%debug" ) )
+
+-------------------------------------------------------------------------------
+make_unique reimplementation
+ From lvalue copies
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( lval.has_moved )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+make_unique reimplementation
+ From rvalue moves
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( rval.has_moved )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+make_unique reimplementation
+ Variadic constructor
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( *ptr == std::tuple<int, double, int>{1, 2., 3} )
+with expansion:
+ {?} == {?}
+
+-------------------------------------------------------------------------------
+mean
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( m == 19. )
+with expansion:
+ 19.0 == 19.0
+
+-------------------------------------------------------------------------------
+measure
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( x == 17 )
+with expansion:
+ 17 == 17
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( x == 23 )
+with expansion:
+ 23 == 23
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( r.elapsed.count() == 42 )
+with expansion:
+ 42 == 42
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( r.result == 23 )
+with expansion:
+ 23 == 23
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( r.iterations == 1 )
+with expansion:
+ 1 == 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( s.elapsed.count() == 69 )
+with expansion:
+ 69 == 69
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( s.result == 17 )
+with expansion:
+ 17 == 17
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( s.iterations == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+mix info, unscoped info and warning
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: warning:
+ info
+ unscoped info
+ and warn may mix
+
+Message.tests.cpp:<line number>: warning:
+ info
+ unscoped info
+ they are not cleared after warnings
+
+
+No assertions in test case 'mix info, unscoped info and warning'
+
+-------------------------------------------------------------------------------
+more nested SECTION tests
+ doesn't equal
+ equal
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED:
+ REQUIRE( a == b )
+with expansion:
+ 1 == 2
+
+-------------------------------------------------------------------------------
+more nested SECTION tests
+ doesn't equal
+ not equal
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+-------------------------------------------------------------------------------
+more nested SECTION tests
+ doesn't equal
+ less than
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( a < b )
+with expansion:
+ 1 < 2
+
+-------------------------------------------------------------------------------
+nested SECTION tests
+ doesn't equal
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( b != a )
+with expansion:
+ 2 != 1
+
+-------------------------------------------------------------------------------
+nested SECTION tests
+ doesn't equal
+ not equal
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+-------------------------------------------------------------------------------
+non streamable - with conv. op
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( s == "7" )
+with expansion:
+ "7" == "7"
+
+-------------------------------------------------------------------------------
+non-copyable objects
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ CHECK( ti == typeid(int) )
+with expansion:
+ {?} == {?}
+
+-------------------------------------------------------------------------------
+normal_cdf
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( normal_cdf(0.000000) == Approx(0.50000000000000000) )
+with expansion:
+ 0.5 == Approx( 0.5 )
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( normal_cdf(1.000000) == Approx(0.84134474606854293) )
+with expansion:
+ 0.8413447461 == Approx( 0.8413447461 )
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( normal_cdf(-1.000000) == Approx(0.15865525393145705) )
+with expansion:
+ 0.1586552539 == Approx( 0.1586552539 )
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( normal_cdf(2.809729) == Approx(0.99752083845315409) )
+with expansion:
+ 0.9975208385 == Approx( 0.9975208385 )
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( normal_cdf(-1.352570) == Approx(0.08809652095066035) )
+with expansion:
+ 0.088096521 == Approx( 0.088096521 )
+
+-------------------------------------------------------------------------------
+normal_quantile
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( normal_quantile(0.551780) == Approx(0.13015979861484198) )
+with expansion:
+ 0.1301597986 == Approx( 0.1301597986 )
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( normal_quantile(0.533700) == Approx(0.08457408802851875) )
+with expansion:
+ 0.084574088 == Approx( 0.084574088 )
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( normal_quantile(0.025000) == Approx(-1.95996398454005449) )
+with expansion:
+ -1.9599639845 == Approx( -1.9599639845 )
+
+-------------------------------------------------------------------------------
+not allowed
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+not prints unscoped info from previous failures
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+with message:
+ this MAY be seen only for the FIRST assertion IF info is printed for passing
+ assertions
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+with message:
+ this MAY be seen only for the SECOND assertion IF info is printed for passing
+ assertions
+
+Message.tests.cpp:<line number>: FAILED:
+ REQUIRE( false )
+with message:
+ this SHOULD be seen
+
+-------------------------------------------------------------------------------
+null strings
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( makeString( false ) != static_cast<char*>(0) )
+with expansion:
+ "valid string" != {null string}
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( makeString( true ) == static_cast<char*>(0) )
+with expansion:
+ {null string} == {null string}
+
+-------------------------------------------------------------------------------
+null_ptr
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr.get() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+pair<pair<int,const char *,pair<std::string,int> > -> toString
+-------------------------------------------------------------------------------
+ToStringPair.tests.cpp:<line number>
+...............................................................................
+
+ToStringPair.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" )
+with expansion:
+ "{ { 42, "Arthur" }, { "Ford", 24 } }"
+ ==
+ "{ { 42, "Arthur" }, { "Ford", 24 } }"
+
+-------------------------------------------------------------------------------
+parseEnums
+ No enums
+-------------------------------------------------------------------------------
+ToString.tests.cpp:<line number>
+...............................................................................
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( parseEnums( "" ), Equals( std::vector<Catch::StringRef>{} ) )
+with expansion:
+ { } Equals: { }
+
+-------------------------------------------------------------------------------
+parseEnums
+ One enum value
+-------------------------------------------------------------------------------
+ToString.tests.cpp:<line number>
+...............................................................................
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( parseEnums( "ClassName::EnumName::Value1" ), Equals(std::vector<Catch::StringRef>{"Value1"} ) )
+with expansion:
+ { Value1 } Equals: { Value1 }
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( parseEnums( "Value1" ), Equals( std::vector<Catch::StringRef>{"Value1"} ) )
+with expansion:
+ { Value1 } Equals: { Value1 }
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( parseEnums( "EnumName::Value1" ), Equals(std::vector<Catch::StringRef>{"Value1"} ) )
+with expansion:
+ { Value1 } Equals: { Value1 }
+
+-------------------------------------------------------------------------------
+parseEnums
+ Multiple enum values
+-------------------------------------------------------------------------------
+ToString.tests.cpp:<line number>
+...............................................................................
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( parseEnums( "ClassName::EnumName::Value1, ClassName::EnumName::Value2" ), Equals( std::vector<Catch::StringRef>{"Value1", "Value2"} ) )
+with expansion:
+ { Value1, Value2 } Equals: { Value1, Value2 }
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( parseEnums( "ClassName::EnumName::Value1, ClassName::EnumName::Value2, ClassName::EnumName::Value3" ), Equals( std::vector<Catch::StringRef>{"Value1", "Value2", "Value3"} ) )
+with expansion:
+ { Value1, Value2, Value3 } Equals: { Value1, Value2, Value3 }
+
+ToString.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( parseEnums( "ClassName::EnumName::Value1,ClassName::EnumName::Value2 , ClassName::EnumName::Value3" ), Equals( std::vector<Catch::StringRef>{"Value1", "Value2", "Value3"} ) )
+with expansion:
+ { Value1, Value2, Value3 } Equals: { Value1, Value2, Value3 }
+
+-------------------------------------------------------------------------------
+pointer to class
+-------------------------------------------------------------------------------
+Tricky.tests.cpp:<line number>
+...............................................................................
+
+Tricky.tests.cpp:<line number>: PASSED:
+ REQUIRE( p == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+print unscoped info if passing unscoped info is printed
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: PASSED:
+ REQUIRE( true )
+with message:
+ this MAY be seen IF info is printed for passing assertions
+
+-------------------------------------------------------------------------------
+prints unscoped info on failure
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+ REQUIRE( false )
+with messages:
+ this SHOULD be seen
+ this SHOULD also be seen
+
+-------------------------------------------------------------------------------
+prints unscoped info only for the first assertion
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+ CHECK( false )
+with message:
+ this SHOULD be seen only ONCE
+
+Message.tests.cpp:<line number>: PASSED:
+ CHECK( true )
+
+Message.tests.cpp:<line number>: PASSED:
+ CHECK( true )
+with message:
+ this MAY also be seen only ONCE IF info is printed for passing assertions
+
+Message.tests.cpp:<line number>: PASSED:
+ CHECK( true )
+
+-------------------------------------------------------------------------------
+random SECTION tests
+ doesn't equal
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( b != a )
+with expansion:
+ 2 != 1
+
+-------------------------------------------------------------------------------
+random SECTION tests
+ not equal
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace single char
+-------------------------------------------------------------------------------
+StringManip.tests.cpp:<line number>
+...............................................................................
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( Catch::replaceInPlace(letters, "b", "z") )
+with expansion:
+ true
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( letters == "azcdefcg" )
+with expansion:
+ "azcdefcg" == "azcdefcg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace two chars
+-------------------------------------------------------------------------------
+StringManip.tests.cpp:<line number>
+...............................................................................
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( Catch::replaceInPlace(letters, "c", "z") )
+with expansion:
+ true
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( letters == "abzdefzg" )
+with expansion:
+ "abzdefzg" == "abzdefzg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace first char
+-------------------------------------------------------------------------------
+StringManip.tests.cpp:<line number>
+...............................................................................
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( Catch::replaceInPlace(letters, "a", "z") )
+with expansion:
+ true
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( letters == "zbcdefcg" )
+with expansion:
+ "zbcdefcg" == "zbcdefcg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace last char
+-------------------------------------------------------------------------------
+StringManip.tests.cpp:<line number>
+...............................................................................
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( Catch::replaceInPlace(letters, "g", "z") )
+with expansion:
+ true
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( letters == "abcdefcz" )
+with expansion:
+ "abcdefcz" == "abcdefcz"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace all chars
+-------------------------------------------------------------------------------
+StringManip.tests.cpp:<line number>
+...............................................................................
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( Catch::replaceInPlace(letters, letters, "replaced") )
+with expansion:
+ true
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( letters == "replaced" )
+with expansion:
+ "replaced" == "replaced"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace no chars
+-------------------------------------------------------------------------------
+StringManip.tests.cpp:<line number>
+...............................................................................
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( Catch::replaceInPlace(letters, "x", "z") )
+with expansion:
+ !false
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( letters == letters )
+with expansion:
+ "abcdefcg" == "abcdefcg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ escape '
+-------------------------------------------------------------------------------
+StringManip.tests.cpp:<line number>
+...............................................................................
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( Catch::replaceInPlace(s, "'", "|'") )
+with expansion:
+ true
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( s == "didn|'t" )
+with expansion:
+ "didn|'t" == "didn|'t"
+
+-------------------------------------------------------------------------------
+request an unknown %-starting stream fails
+-------------------------------------------------------------------------------
+Stream.tests.cpp:<line number>
+...............................................................................
+
+Stream.tests.cpp:<line number>: PASSED:
+ REQUIRE_THROWS( Catch::makeStream( "%somestream" ) )
+
+-------------------------------------------------------------------------------
+resolution
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res.size() == count )
+with expansion:
+ 10 == 10
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res[i] == rate )
+with expansion:
+ 1000.0 == 1000 (0x<hex digits>)
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res[i] == rate )
+with expansion:
+ 1000.0 == 1000 (0x<hex digits>)
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res[i] == rate )
+with expansion:
+ 1000.0 == 1000 (0x<hex digits>)
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res[i] == rate )
+with expansion:
+ 1000.0 == 1000 (0x<hex digits>)
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res[i] == rate )
+with expansion:
+ 1000.0 == 1000 (0x<hex digits>)
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res[i] == rate )
+with expansion:
+ 1000.0 == 1000 (0x<hex digits>)
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res[i] == rate )
+with expansion:
+ 1000.0 == 1000 (0x<hex digits>)
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res[i] == rate )
+with expansion:
+ 1000.0 == 1000 (0x<hex digits>)
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( res[i] == rate )
+with expansion:
+ 1000.0 == 1000 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+run_for_at_least, chronometer
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( meter.runs() >= old_runs )
+with expansion:
+ 1 >= 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( meter.runs() >= old_runs )
+with expansion:
+ 2 >= 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( meter.runs() >= old_runs )
+with expansion:
+ 4 >= 2
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( meter.runs() >= old_runs )
+with expansion:
+ 8 >= 4
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( meter.runs() >= old_runs )
+with expansion:
+ 16 >= 8
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( meter.runs() >= old_runs )
+with expansion:
+ 32 >= 16
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( meter.runs() >= old_runs )
+with expansion:
+ 64 >= 32
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( meter.runs() >= old_runs )
+with expansion:
+ 128 >= 64
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( Timing.elapsed >= time )
+with expansion:
+ 128 ns >= 100 ns
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( Timing.result == Timing.iterations + 17 )
+with expansion:
+ 145 == 145
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( Timing.iterations >= time.count() )
+with expansion:
+ 128 >= 100
+
+-------------------------------------------------------------------------------
+run_for_at_least, int
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( x >= old_x )
+with expansion:
+ 1 >= 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( x >= old_x )
+with expansion:
+ 2 >= 1
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( x >= old_x )
+with expansion:
+ 4 >= 2
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( x >= old_x )
+with expansion:
+ 8 >= 4
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( x >= old_x )
+with expansion:
+ 16 >= 8
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( x >= old_x )
+with expansion:
+ 32 >= 16
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( x >= old_x )
+with expansion:
+ 64 >= 32
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( x >= old_x )
+with expansion:
+ 128 >= 64
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( Timing.elapsed >= time )
+with expansion:
+ 128 ns >= 100 ns
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( Timing.result == Timing.iterations + 17 )
+with expansion:
+ 145 == 145
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( Timing.iterations >= time.count() )
+with expansion:
+ 128 >= 100
+
+-------------------------------------------------------------------------------
+second tag
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+
+No assertions in test case 'second tag'
+
+-------------------------------------------------------------------------------
+send a single char to INFO
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED:
+ REQUIRE( false )
+with message:
+ 3
+
+-------------------------------------------------------------------------------
+sends information to INFO
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+ REQUIRE( false )
+with messages:
+ hi
+ i := 7
+
+-------------------------------------------------------------------------------
+shortened hide tags are split apart
+-------------------------------------------------------------------------------
+Tag.tests.cpp:<line number>
+...............................................................................
+
+Tag.tests.cpp:<line number>: PASSED:
+ REQUIRE_THAT( testcase.tags, VectorContains( Tag( "magic-tag" ) ) && VectorContains( Tag( "."_catch_sr ) ) )
+with expansion:
+ { {?}, {?} } ( Contains: {?} and Contains: {?} )
+
+-------------------------------------------------------------------------------
+splitString
+-------------------------------------------------------------------------------
+StringManip.tests.cpp:<line number>
+...............................................................................
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( splitStringRef("", ','), Equals(std::vector<StringRef>()) )
+with expansion:
+ { } Equals: { }
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( splitStringRef("abc", ','), Equals(std::vector<StringRef>{"abc"}) )
+with expansion:
+ { abc } Equals: { abc }
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK_THAT( splitStringRef("abc,def", ','), Equals(std::vector<StringRef>{"abc", "def"}) )
+with expansion:
+ { abc, def } Equals: { abc, def }
+
+-------------------------------------------------------------------------------
+stacks unscoped info in loops
+-------------------------------------------------------------------------------
+Message.tests.cpp:<line number>
+...............................................................................
+
+Message.tests.cpp:<line number>: FAILED:
+ CHECK( false )
+with messages:
+ Count 1 to 3...
+ 1
+ 2
+ 3
+
+Message.tests.cpp:<line number>: FAILED:
+ CHECK( false )
+with messages:
+ Count 4 to 6...
+ 4
+ 5
+ 6
+
+-------------------------------------------------------------------------------
+startsWith
+-------------------------------------------------------------------------------
+StringManip.tests.cpp:<line number>
+...............................................................................
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( startsWith("", 'c') )
+with expansion:
+ !false
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( startsWith(std::string("abc"), 'a') )
+with expansion:
+ true
+
+StringManip.tests.cpp:<line number>: PASSED:
+ CHECK( startsWith("def"_catch_sr, 'd') )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+std::map is convertible string
+ empty
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify( emptyMap ) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+-------------------------------------------------------------------------------
+std::map is convertible string
+ single item
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify( map ) == "{ { \"one\", 1 } }" )
+with expansion:
+ "{ { "one", 1 } }" == "{ { "one", 1 } }"
+
+-------------------------------------------------------------------------------
+std::map is convertible string
+ several items
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify( map ) == "{ { \"abc\", 1 }, { \"def\", 2 }, { \"ghi\", 3 } }" )
+with expansion:
+ "{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }"
+ ==
+ "{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }"
+
+-------------------------------------------------------------------------------
+std::pair<int,const std::string> -> toString
+-------------------------------------------------------------------------------
+ToStringPair.tests.cpp:<line number>
+...............................................................................
+
+ToStringPair.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(value) == "{ 34, \"xyzzy\" }" )
+with expansion:
+ "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
+
+-------------------------------------------------------------------------------
+std::pair<int,std::string> -> toString
+-------------------------------------------------------------------------------
+ToStringPair.tests.cpp:<line number>
+...............................................................................
+
+ToStringPair.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify( value ) == "{ 34, \"xyzzy\" }" )
+with expansion:
+ "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
+
+-------------------------------------------------------------------------------
+std::set is convertible string
+ empty
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify( emptySet ) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+-------------------------------------------------------------------------------
+std::set is convertible string
+ single item
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify( set ) == "{ \"one\" }" )
+with expansion:
+ "{ "one" }" == "{ "one" }"
+
+-------------------------------------------------------------------------------
+std::set is convertible string
+ several items
+-------------------------------------------------------------------------------
+ToStringGeneral.tests.cpp:<line number>
+...............................................................................
+
+ToStringGeneral.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::Detail::stringify( set ) == "{ \"abc\", \"def\", \"ghi\" }" )
+with expansion:
+ "{ "abc", "def", "ghi" }"
+ ==
+ "{ "abc", "def", "ghi" }"
+
+-------------------------------------------------------------------------------
+std::vector<std::pair<std::string,int> > -> toString
+-------------------------------------------------------------------------------
+ToStringPair.tests.cpp:<line number>
+...............................................................................
+
+ToStringPair.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify( pr ) == "{ { \"green\", 55 } }" )
+with expansion:
+ "{ { "green", 55 } }"
+ ==
+ "{ { "green", 55 } }"
+
+-------------------------------------------------------------------------------
+stdout and stderr streams have %-starting name
+-------------------------------------------------------------------------------
+Stream.tests.cpp:<line number>
+...............................................................................
+
+Stream.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::makeStream( "%stderr" )->isConsole() )
+with expansion:
+ true
+
+Stream.tests.cpp:<line number>: PASSED:
+ REQUIRE( Catch::makeStream( "%stdout" )->isConsole() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+stringify ranges
+-------------------------------------------------------------------------------
+ToStringWhich.tests.cpp:<line number>
+...............................................................................
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(streamable_range{}) == "op<<(streamable_range)" )
+with expansion:
+ "op<<(streamable_range)"
+ ==
+ "op<<(streamable_range)"
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(stringmaker_range{}) == "stringmaker(streamable_range)" )
+with expansion:
+ "stringmaker(streamable_range)"
+ ==
+ "stringmaker(streamable_range)"
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(just_range{}) == "{ 1, 2, 3, 4 }" )
+with expansion:
+ "{ 1, 2, 3, 4 }" == "{ 1, 2, 3, 4 }"
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(disabled_range{}) == "{?}" )
+with expansion:
+ "{?}" == "{?}"
+
+-------------------------------------------------------------------------------
+stringify( has_maker )
+-------------------------------------------------------------------------------
+ToStringWhich.tests.cpp:<line number>
+...............................................................................
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify( item ) == "StringMaker<has_maker>" )
+with expansion:
+ "StringMaker<has_maker>"
+ ==
+ "StringMaker<has_maker>"
+
+-------------------------------------------------------------------------------
+stringify( has_maker_and_operator )
+-------------------------------------------------------------------------------
+ToStringWhich.tests.cpp:<line number>
+...............................................................................
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify( item ) == "StringMaker<has_maker_and_operator>" )
+with expansion:
+ "StringMaker<has_maker_and_operator>"
+ ==
+ "StringMaker<has_maker_and_operator>"
+
+-------------------------------------------------------------------------------
+stringify( has_neither )
+-------------------------------------------------------------------------------
+ToStringWhich.tests.cpp:<line number>
+...............................................................................
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(item) == "{?}" )
+with expansion:
+ "{?}" == "{?}"
+
+-------------------------------------------------------------------------------
+stringify( has_operator )
+-------------------------------------------------------------------------------
+ToStringWhich.tests.cpp:<line number>
+...............................................................................
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify( item ) == "operator<<( has_operator )" )
+with expansion:
+ "operator<<( has_operator )"
+ ==
+ "operator<<( has_operator )"
+
+-------------------------------------------------------------------------------
+stringify( has_template_operator )
+-------------------------------------------------------------------------------
+ToStringWhich.tests.cpp:<line number>
+...............................................................................
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify( item ) == "operator<<( has_template_operator )" )
+with expansion:
+ "operator<<( has_template_operator )"
+ ==
+ "operator<<( has_template_operator )"
+
+-------------------------------------------------------------------------------
+stringify( vectors<has_maker> )
+-------------------------------------------------------------------------------
+ToStringWhich.tests.cpp:<line number>
+...............................................................................
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify( v ) == "{ StringMaker<has_maker> }" )
+with expansion:
+ "{ StringMaker<has_maker> }"
+ ==
+ "{ StringMaker<has_maker> }"
+
+-------------------------------------------------------------------------------
+stringify( vectors<has_maker_and_operator> )
+-------------------------------------------------------------------------------
+ToStringWhich.tests.cpp:<line number>
+...............................................................................
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify( v ) == "{ StringMaker<has_maker_and_operator> }" )
+with expansion:
+ "{ StringMaker<has_maker_and_operator> }"
+ ==
+ "{ StringMaker<has_maker_and_operator> }"
+
+-------------------------------------------------------------------------------
+stringify( vectors<has_operator> )
+-------------------------------------------------------------------------------
+ToStringWhich.tests.cpp:<line number>
+...............................................................................
+
+ToStringWhich.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify( v ) == "{ operator<<( has_operator ) }" )
+with expansion:
+ "{ operator<<( has_operator ) }"
+ ==
+ "{ operator<<( has_operator ) }"
+
+-------------------------------------------------------------------------------
+strlen3
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str.size() == data.len )
+with expansion:
+ 3 == 3
+
+-------------------------------------------------------------------------------
+strlen3
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str.size() == data.len )
+with expansion:
+ 3 == 3
+
+-------------------------------------------------------------------------------
+strlen3
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str.size() == data.len )
+with expansion:
+ 5 == 5
+
+-------------------------------------------------------------------------------
+strlen3
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( data.str.size() == data.len )
+with expansion:
+ 4 == 4
+
+-------------------------------------------------------------------------------
+tables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( strlen(std::get<0>(data)) == static_cast<size_t>(std::get<1>(data)) )
+with expansion:
+ 5 == 5
+
+-------------------------------------------------------------------------------
+tables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( strlen(std::get<0>(data)) == static_cast<size_t>(std::get<1>(data)) )
+with expansion:
+ 6 == 6
+
+-------------------------------------------------------------------------------
+tables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( strlen(std::get<0>(data)) == static_cast<size_t>(std::get<1>(data)) )
+with expansion:
+ 5 == 5
+
+-------------------------------------------------------------------------------
+tables
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( strlen(std::get<0>(data)) == static_cast<size_t>(std::get<1>(data)) )
+with expansion:
+ 6 == 6
+
+-------------------------------------------------------------------------------
+tags with dots in later positions are not parsed as hidden
+-------------------------------------------------------------------------------
+Tag.tests.cpp:<line number>
+...............................................................................
+
+Tag.tests.cpp:<line number>: PASSED:
+ REQUIRE( testcase.tags.size() == 1 )
+with expansion:
+ 1 == 1
+
+Tag.tests.cpp:<line number>: PASSED:
+ REQUIRE( testcase.tags[0].original == "magic.tag"_catch_sr )
+with expansion:
+ magic.tag == magic.tag
+
+-------------------------------------------------------------------------------
+thrown std::strings are translated
+-------------------------------------------------------------------------------
+Exception.tests.cpp:<line number>
+...............................................................................
+
+Exception.tests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ Why would you throw a std::string?
+
+-------------------------------------------------------------------------------
+toString on const wchar_t const pointer returns the string contents
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString on const wchar_t pointer returns the string contents
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString on wchar_t const pointer returns the string contents
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString on wchar_t returns the string contents
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString(enum class w/operator<<)
+-------------------------------------------------------------------------------
+EnumToString.tests.cpp:<line number>
+...............................................................................
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify(e0) == "E2/V0" )
+with expansion:
+ "E2/V0" == "E2/V0"
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify(e1) == "E2/V1" )
+with expansion:
+ "E2/V1" == "E2/V1"
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify(e3) == "Unknown enum value 10" )
+with expansion:
+ "Unknown enum value 10"
+ ==
+ "Unknown enum value 10"
+
+-------------------------------------------------------------------------------
+toString(enum class)
+-------------------------------------------------------------------------------
+EnumToString.tests.cpp:<line number>
+...............................................................................
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify(e0) == "0" )
+with expansion:
+ "0" == "0"
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify(e1) == "1" )
+with expansion:
+ "1" == "1"
+
+-------------------------------------------------------------------------------
+toString(enum w/operator<<)
+-------------------------------------------------------------------------------
+EnumToString.tests.cpp:<line number>
+...............................................................................
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify(e0) == "E2{0}" )
+with expansion:
+ "E2{0}" == "E2{0}"
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify(e1) == "E2{1}" )
+with expansion:
+ "E2{1}" == "E2{1}"
+
+-------------------------------------------------------------------------------
+toString(enum)
+-------------------------------------------------------------------------------
+EnumToString.tests.cpp:<line number>
+...............................................................................
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify(e0) == "0" )
+with expansion:
+ "0" == "0"
+
+EnumToString.tests.cpp:<line number>: PASSED:
+ CHECK( ::Catch::Detail::stringify(e1) == "1" )
+with expansion:
+ "1" == "1"
+
+-------------------------------------------------------------------------------
+tuple<>
+-------------------------------------------------------------------------------
+ToStringTuple.tests.cpp:<line number>
+...............................................................................
+
+ToStringTuple.tests.cpp:<line number>: PASSED:
+ CHECK( "{ }" == ::Catch::Detail::stringify(type{}) )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringTuple.tests.cpp:<line number>: PASSED:
+ CHECK( "{ }" == ::Catch::Detail::stringify(value) )
+with expansion:
+ "{ }" == "{ }"
+
+-------------------------------------------------------------------------------
+tuple<float,int>
+-------------------------------------------------------------------------------
+ToStringTuple.tests.cpp:<line number>
+...............................................................................
+
+ToStringTuple.tests.cpp:<line number>: PASSED:
+ CHECK( "1.2f" == ::Catch::Detail::stringify(float(1.2)) )
+with expansion:
+ "1.2f" == "1.2f"
+
+ToStringTuple.tests.cpp:<line number>: PASSED:
+ CHECK( "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0}) )
+with expansion:
+ "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
+
+-------------------------------------------------------------------------------
+tuple<int>
+-------------------------------------------------------------------------------
+ToStringTuple.tests.cpp:<line number>
+...............................................................................
+
+ToStringTuple.tests.cpp:<line number>: PASSED:
+ CHECK( "{ 0 }" == ::Catch::Detail::stringify(type{0}) )
+with expansion:
+ "{ 0 }" == "{ 0 }"
+
+-------------------------------------------------------------------------------
+tuple<string,string>
+-------------------------------------------------------------------------------
+ToStringTuple.tests.cpp:<line number>
+...............................................................................
+
+ToStringTuple.tests.cpp:<line number>: PASSED:
+ CHECK( "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"}) )
+with expansion:
+ "{ "hello", "world" }"
+ ==
+ "{ "hello", "world" }"
+
+-------------------------------------------------------------------------------
+tuple<tuple<int>,tuple<>,float>
+-------------------------------------------------------------------------------
+ToStringTuple.tests.cpp:<line number>
+...............................................................................
+
+ToStringTuple.tests.cpp:<line number>: PASSED:
+ CHECK( "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value) )
+with expansion:
+ "{ { 42 }, { }, 1.2f }"
+ ==
+ "{ { 42 }, { }, 1.2f }"
+
+-------------------------------------------------------------------------------
+uniform samples
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( e.point == 23 )
+with expansion:
+ 23.0 == 23
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( e.upper_bound == 23 )
+with expansion:
+ 23.0 == 23
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( e.lower_bound == 23 )
+with expansion:
+ 23.0 == 23
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ CHECK( e.confidence_interval == 0.95 )
+with expansion:
+ 0.95 == 0.95
+
+-------------------------------------------------------------------------------
+unique_ptr reimplementation: basic functionality
+ Default constructed unique_ptr is empty
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( ptr )
+with expansion:
+ !{?}
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr.get() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+unique_ptr reimplementation: basic functionality
+ Take ownership of allocation
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr )
+with expansion:
+ {?}
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( *ptr == 0 )
+with expansion:
+ 0 == 0
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr.get() == naked_ptr )
+with expansion:
+ 0x<hex digits> == 0x<hex digits>
+
+-------------------------------------------------------------------------------
+unique_ptr reimplementation: basic functionality
+ Take ownership of allocation
+ Plain reset deallocates
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( ptr )
+with expansion:
+ !{?}
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr.get() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+unique_ptr reimplementation: basic functionality
+ Take ownership of allocation
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr )
+with expansion:
+ {?}
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( *ptr == 0 )
+with expansion:
+ 0 == 0
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr.get() == naked_ptr )
+with expansion:
+ 0x<hex digits> == 0x<hex digits>
+
+-------------------------------------------------------------------------------
+unique_ptr reimplementation: basic functionality
+ Take ownership of allocation
+ Reset replaces ownership
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr )
+with expansion:
+ {?}
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr.get() != 0 )
+with expansion:
+ 0x<hex digits> != 0
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( *ptr == 2 )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+unique_ptr reimplementation: basic functionality
+ Release releases ownership
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ CHECK_FALSE( ptr )
+with expansion:
+ !{?}
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ CHECK( ptr.get() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+unique_ptr reimplementation: basic functionality
+ Move constructor
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( ptr1 )
+with expansion:
+ !{?}
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr2 )
+with expansion:
+ {?}
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( *ptr2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+unique_ptr reimplementation: basic functionality
+ Move assignment
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( ptr2 )
+with expansion:
+ !{?}
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( ptr1 )
+with expansion:
+ {?}
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( *ptr1 == 2 )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+unique_ptr reimplementation: basic functionality
+ free swap
+-------------------------------------------------------------------------------
+UniquePtr.tests.cpp:<line number>
+...............................................................................
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( *ptr1 == 2 )
+with expansion:
+ 2 == 2
+
+UniquePtr.tests.cpp:<line number>: PASSED:
+ REQUIRE( *ptr2 == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+vec<vec<string,alloc>> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.tests.cpp:<line number>
+...............................................................................
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(v) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(v) == "{ { \"hello\" }, { \"world\" } }" )
+with expansion:
+ "{ { "hello" }, { "world" } }"
+ ==
+ "{ { "hello" }, { "world" } }"
+
+-------------------------------------------------------------------------------
+vector<bool> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.tests.cpp:<line number>
+...............................................................................
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(bools) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(bools) == "{ true }" )
+with expansion:
+ "{ true }" == "{ true }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(bools) == "{ true, false }" )
+with expansion:
+ "{ true, false }" == "{ true, false }"
+
+-------------------------------------------------------------------------------
+vector<int,allocator> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.tests.cpp:<line number>
+...............................................................................
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42 }" )
+with expansion:
+ "{ 42 }" == "{ 42 }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" )
+with expansion:
+ "{ 42, 250 }" == "{ 42, 250 }"
+
+-------------------------------------------------------------------------------
+vector<int> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.tests.cpp:<line number>
+...............................................................................
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42 }" )
+with expansion:
+ "{ 42 }" == "{ 42 }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" )
+with expansion:
+ "{ 42, 250 }" == "{ 42, 250 }"
+
+-------------------------------------------------------------------------------
+vector<string> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.tests.cpp:<line number>
+...............................................................................
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(vv) == "{ \"hello\" }" )
+with expansion:
+ "{ "hello" }" == "{ "hello" }"
+
+ToStringVector.tests.cpp:<line number>: PASSED:
+ REQUIRE( ::Catch::Detail::stringify(vv) == "{ \"hello\", \"world\" }" )
+with expansion:
+ "{ "hello", "world" }"
+ ==
+ "{ "hello", "world" }"
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 10 )
+with expansion:
+ 10 == 10
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+Misc.tests.cpp:<line number>: PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+warmup
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( (iterations * rate) > Catch::Benchmark::Detail::warmup_time.count() )
+with expansion:
+ 160000000 (0x<hex digits>) > 100
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( (end - start) > Catch::Benchmark::Detail::warmup_time )
+with expansion:
+ 310016000 ns > 100 ms
+
+-------------------------------------------------------------------------------
+weighted_average_quantile
+-------------------------------------------------------------------------------
+InternalBenchmark.tests.cpp:<line number>
+...............................................................................
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( q1 == 14.5 )
+with expansion:
+ 14.5 == 14.5
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( med == 18. )
+with expansion:
+ 18.0 == 18.0
+
+InternalBenchmark.tests.cpp:<line number>: PASSED:
+ REQUIRE( q3 == 23. )
+with expansion:
+ 23.0 == 23.0
+
+-------------------------------------------------------------------------------
+xmlentitycheck
+ embedded xml: <test>it should be possible to embed xml characters, such as <,
+ " or &, or even whole <xml>documents</xml> within an attribute
+ </test>
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+
+-------------------------------------------------------------------------------
+xmlentitycheck
+ encoded chars: these should all be encoded: &&&"""<<<&"<<&"
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+
+===============================================================================
+test cases: 394 | 304 passed | 83 failed | 7 failed as expected
+assertions: 2159 | 1989 passed | 143 failed | 27 failed as expected
+