1#include <Core/Containers/VectorArray.hpp>
4#include <catch2/catch_test_macros.hpp>
10TEST_CASE(
"Core/Container/VectorArray",
"[unittests][Core][Container][VectorArray]" ) {
11 enum class MyEnum :
int { A, B, C };
40 REQUIRE( floatArray.
getSize() == 0 );
41 REQUIRE( scalarArray.
getSize() == 0 );
42 REQUIRE( vec3Array.
getSize() == 0 );
43 REQUIRE( enumArray.
getSize() == 0 );
44 REQUIRE( stringArray.
getSize() == 0 );
45 REQUIRE( vecDynArray.
getSize() == 0 );
46 REQUIRE( intPtrArray.
getSize() == 0 );
47 REQUIRE( funArray.getSize() == 0 );
56 REQUIRE( funArray.getBufferSize() == 0 );
65 funArray.push_back( [](
float a,
float b ) ->
int {
return a + b; } );
67 REQUIRE( floatArray.
getSize() == 1 );
68 REQUIRE( scalarArray.
getSize() == 1 );
69 REQUIRE( vec3Array.
getSize() == 1 );
70 REQUIRE( enumArray.
getSize() == 1 );
71 REQUIRE( stringArray.
getSize() == 1 );
72 REQUIRE( vecDynArray.
getSize() == 1 );
73 REQUIRE( intPtrArray.
getSize() == 1 );
74 REQUIRE( funArray.getSize() == 1 );
76 auto floatMap = floatArray.
getMap();
77 auto scalarMap = scalarArray.
getMap();
78 auto vec3Map = vec3Array.
getMap();
79 auto enumMap = enumArray.
getMap();
80 REQUIRE( floatMap( 0 ) == 1.f );
81 REQUIRE( scalarMap( 0 ) == 1_ra );
82 REQUIRE( vec3Map.col( 0 ) == Vector3 { 1_ra, 2_ra, 3_ra } );
83 REQUIRE( enumMap( 0 ) == MyEnum::B );
85 const auto& floatConstArray = floatArray;
86 const auto& scalarConstArray = scalarArray;
87 const auto& vec3ConstArray = vec3Array;
88 const auto& enumConstArray = enumArray;
90 const auto floatConstMap = floatConstArray.
getMap();
91 const auto scalarConstMap = scalarConstArray.getMap();
92 const auto vec3ConstMap = vec3ConstArray.getMap();
93 const auto enumConstMap = enumConstArray.getMap();
94 REQUIRE( floatConstMap( 0 ) == 1.f );
95 REQUIRE( scalarConstMap( 0 ) == 1_ra );
96 REQUIRE( vec3ConstMap.col( 0 ) == Vector3 { 1_ra, 2_ra, 3_ra } );
97 REQUIRE( enumConstMap( 0 ) == MyEnum::B );
This class implements ContainerIntrospectionInterface for AlignedStdVector.
std::enable_if_t<(N > 0), MatrixMap > getMap()
typename TypeHelper::component_type component_type
size_t getSize() const override
size_t getBufferSize() const override
T emplace_back(T... args)
This namespace contains everything "low level", related to data, datastuctures, and computation.