Generators now keep track of the index of current element

This might become potentially useful in the future, when we want
to provide the ability to forward jump generators, to be able to
simply reproduce specific input to a test.

I am not yet sure how it would work, but the basic idea is that
it could be similar to the `-c` switch for selecting specific
`SECTION` in a test case.
This commit is contained in:
Martin Hořeňovský committed 2022-05-16 11:56:21 +02:00
1 parent 07bec74096
commit af8b54ecd5
4 files changed
+43 -7

No files matched your search

@@ -413,3 +413,14 @@ TEST_CASE("GENERATE decays arrays", "[generators][compilation][approvals]") {
auto str = GENERATE("abc", "def", "gh");
STATIC_REQUIRE(std::is_same<decltype(str), const char*>::value);
}
TEST_CASE("Generators count returned elements", "[generators][approvals]") {
auto generator = Catch::Generators::FixedValuesGenerator<int>( { 1, 2, 3 } );
REQUIRE( generator.currentElementIndex() == 0 );
REQUIRE( generator.countedNext() );
REQUIRE( generator.currentElementIndex() == 1 );
REQUIRE( generator.countedNext() );
REQUIRE( generator.currentElementIndex() == 2 );
REQUIRE_FALSE( generator.countedNext() );
REQUIRE( generator.currentElementIndex() == 2 );
}