diff --git a/test/test_algorithm.cpp b/test/test_algorithm.cpp index a49e0011..aef1fcfd 100644 --- a/test/test_algorithm.cpp +++ b/test/test_algorithm.cpp @@ -2198,5 +2198,31 @@ namespace bool is_same = std::equal(expected.begin(), expected.end(), data.begin()); CHECK(is_same); } + + //************************************************************************* + struct generator + { + generator(int value_) + : value(value_) + { + } + + int operator()() + { + return value++; + } + + int value; + }; + + TEST(generate) + { + std::array expected = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; + std::array actual; + + etl::generate(actual.begin(), actual.end(), generator(2)); + + CHECK_ARRAY_EQUAL(expected.data(), actual.data(), expected.size()); + } }; }