mirror of
https://github.com/catchorg/Catch2.git
synced 2025-10-09 20:25:41 +02:00
Add option to skip forward to the generator interface
This commit is contained in:
@@ -85,7 +85,7 @@ TEST_CASE("Generators internals", "[generators][internals]") {
|
||||
filter([](int) { return false; }, values({ 1, 2, 3 })),
|
||||
Catch::GeneratorException);
|
||||
}
|
||||
|
||||
|
||||
// Non-trivial usage
|
||||
SECTION("Out-of-line predicates are copied into the generator") {
|
||||
auto evilNumber = Catch::Detail::make_unique<int>(2);
|
||||
@@ -586,3 +586,21 @@ TEST_CASE("from_range(container) supports ADL begin/end and arrays", "[generator
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
TEST_CASE( "Generators can be skipped forward", "[generators]" ) {
|
||||
auto generator = Catch::Generators::FixedValuesGenerator<int>( { 0, 1, 2, 3, 4, 5 } );
|
||||
REQUIRE( generator.currentElementIndex() == 0 );
|
||||
|
||||
generator.skipToNthElement( 3 );
|
||||
REQUIRE( generator.currentElementIndex() == 3 );
|
||||
REQUIRE( generator.get() == 3 );
|
||||
|
||||
generator.skipToNthElement( 5 );
|
||||
REQUIRE( generator.currentElementIndex() == 5 );
|
||||
REQUIRE( generator.get() == 5 );
|
||||
|
||||
// Backwards
|
||||
REQUIRE_THROWS( generator.skipToNthElement( 3 ) );
|
||||
// Past the end
|
||||
REQUIRE_THROWS( generator.skipToNthElement( 6 ) );
|
||||
}
|
||||
|
Reference in New Issue
Block a user