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ý
2022-05-16 11:56:11 +02:00
parent 07bec74096
commit af8b54ecd5
4 changed files with 43 additions and 7 deletions

View File

@@ -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 );
}