1#include <Core/Containers/Iterators.hpp>
3#include <catch2/catch_test_macros.hpp>
8TEST_CASE(
"Core/Containers/Iterators",
"[unittests][Core][Core/Containers][Iterators]" ) {
9 SECTION(
"Test reversed Iterators" ) {
12 static constexpr int nbSamples = 1000;
13 static constexpr int randomMin = 1;
14 static constexpr int randomMax = 1000;
24 auto gen =
std::bind( dist, mersenne_engine );
25 Container container( nbSamples );
31 reverted1.reserve( nbSamples );
33 reverted2.reserve( nbSamples );
35 for (
auto v : Ra::Core::reversed( container ) )
36 reverted1.push_back( v );
37 for (
auto vIt = container.rbegin(); vIt != container.rend(); vIt++ )
38 reverted2.push_back( *vIt );
41 REQUIRE( reverted1 == reverted2 );
43 REQUIRE( container != reverted1 );
46 Container reverted3( nbSamples );
50 REQUIRE( reverted1 == reverted3 );
53 const Container& ccontainer = container;
55 reverted4.reserve( nbSamples );
56 for (
auto v : Ra::Core::reversed( ccontainer ) )
57 reverted4.push_back( v );
60 REQUIRE( reverted1 == reverted4 );
63 for (
auto& v : Ra::Core::reversed( reverted2 ) )
65 for (
auto& v : reverted1 )
69 REQUIRE( reverted1 == reverted2 );
70 REQUIRE( reverted1 != reverted3 );
This namespace contains everything "low level", related to data, datastuctures, and computation.
T reverse_copy(T... args)