1#include <Core/Containers/VectorArray.hpp>
3#include <Core/Utils/Color.hpp>
4#include <Core/Utils/TypesUtils.hpp>
5#include <catch2/catch_test_macros.hpp>
8struct TypeName_struct {};
10TEST_CASE(
"Core/Utils/TypesUtils",
"[unittests][Core][Utils][TypesUtils]" ) {
11 SECTION(
"Demangle from typename" ) {
12 using Ra::Core::Utils::demangleType;
14 REQUIRE( demangleType<int>() ==
"int" );
15 REQUIRE( demangleType<float>() ==
"float" );
16 REQUIRE( demangleType<uint>() ==
"unsigned int" );
17 REQUIRE( demangleType<size_t>() ==
"unsigned long" );
19 auto demangledName = demangleType<std::vector<int>>();
20 REQUIRE( demangledName ==
"std::vector<int, std::allocator<int>>" );
22 demangledName = demangleType<TypeTests::TypeName_struct>();
23 REQUIRE( demangledName ==
"TypeTests::TypeName_struct" );
26 REQUIRE( demangledName ==
"std::vector<float, std::allocator<float>>" );
29 SECTION(
"Demangle from instance" ) {
30 using Ra::Core::Utils::demangleType;
37 REQUIRE( demangleType( i ) ==
"int" );
38 REQUIRE( demangleType( f ) ==
"float" );
39 REQUIRE( demangleType( u ) ==
"unsigned int" );
40 REQUIRE( demangleType( s ) ==
"unsigned long" );
45 auto demangledName = demangleType( v );
46 REQUIRE( demangledName ==
"std::vector<int, std::allocator<int>>" );
48 TypeTests::TypeName_struct tns;
49 auto demangledNameFromStruct = demangleType( tns );
50 REQUIRE( demangledNameFromStruct ==
"TypeTests::TypeName_struct" );
53 SECTION(
"Type traits" ) {
54 using namespace Ra::Core::Utils;
55 REQUIRE( is_container<Scalar>::value ==
false );
56 REQUIRE( is_container<Ra::Core::Vector3>::value ==
false );
57 REQUIRE( is_container<Ra::Core::Utils::Color>::value ==
false );
This class implements ContainerIntrospectionInterface for AlignedStdVector.