|
|
|
|
@ -2,32 +2,591 @@
|
|
|
|
|
|
|
|
|
|
#include "test.hpp"
|
|
|
|
|
|
|
|
|
|
constexpr test_suite tests = define_tests("Tests")
|
|
|
|
|
("Test Runtime", [](int = 1) constexpr{
|
|
|
|
|
#include "test_args.h"
|
|
|
|
|
|
|
|
|
|
#define ASSERT_ALL_VEC_EQ(vec, eq) ASSERT_ALL_EQ((vec).begin(), (vec).end(), eq)
|
|
|
|
|
#define ASSERT_RANGE_VEC_EQ(vec, startI, endI, eq) ASSERT_ALL_EQ(((vec).data() + startI), ((vec).data() + endI), eq)
|
|
|
|
|
#define ASSERT_VEC_ARR_EQ(vec, eq) ASSERT_C_ARR_EQ((vec).data(), (vec).data() + (vec).size(), eq)
|
|
|
|
|
#define ASSERT_VEC_EQ(vec1, vec2) ASSERT_C_ARR_EQ((vec1).data(), (vec1).data() + (vec1).size(), (vec2).data())
|
|
|
|
|
#define ASSERT_RANGE_VEC_ARR_EQ(vec, startI, endI, eq) ASSERT_C_ARR_EQ(((vec).begin() + startI), ((vec).begin() + endI), (eq))
|
|
|
|
|
|
|
|
|
|
constexpr test_suite tests = define_tests("Tests")
|
|
|
|
|
("const_vector()", []() constexpr {
|
|
|
|
|
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<1>()> vi1;
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<2>()> vi2;
|
|
|
|
|
|
|
|
|
|
ASSERT(vi1.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vi2.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vi1.size() == 0);
|
|
|
|
|
ASSERT(vi2.size() == 0);
|
|
|
|
|
ASSERT(vi1.empty());
|
|
|
|
|
ASSERT(vi2.empty());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vi1, int());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vi2, int());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<char, test_defs::get<char>::capacity<1>()> vc1;
|
|
|
|
|
cc::const_vector<char, test_defs::get<char>::capacity<2>()> vc2;
|
|
|
|
|
|
|
|
|
|
ASSERT(vc1.capacity() == test_defs::get<char>::capacity<1>());
|
|
|
|
|
ASSERT(vc2.capacity() == test_defs::get<char>::capacity<2>());
|
|
|
|
|
ASSERT(vc1.size() == 0);
|
|
|
|
|
ASSERT(vc2.size() == 0);
|
|
|
|
|
ASSERT(vc1.empty());
|
|
|
|
|
ASSERT(vc2.empty());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vc1, char());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vc2, char());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<const char*>::capacity<1>()> vs1;
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<const char*>::capacity<2>()> vs2;
|
|
|
|
|
|
|
|
|
|
ASSERT(vs1.capacity() == test_defs::get<const char*>::capacity<1>());
|
|
|
|
|
ASSERT(vs2.capacity() == test_defs::get<const char*>::capacity<2>());
|
|
|
|
|
ASSERT(vs1.size() == 0);
|
|
|
|
|
ASSERT(vs2.size() == 0);
|
|
|
|
|
ASSERT(vs1.empty());
|
|
|
|
|
ASSERT(vs2.empty());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<TestStruct>::capacity<1>()> vo1;
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<TestStruct>::capacity<2>()> vo2;
|
|
|
|
|
|
|
|
|
|
ASSERT(vo1.capacity() == test_defs::get<TestStruct>::capacity<1>());
|
|
|
|
|
ASSERT(vo2.capacity() == test_defs::get<TestStruct>::capacity<2>());
|
|
|
|
|
ASSERT(vo1.size() == 0);
|
|
|
|
|
ASSERT(vo2.size() == 0);
|
|
|
|
|
ASSERT(vo1.empty());
|
|
|
|
|
ASSERT(vo2.empty());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vo1, TestStruct{});
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vo2, TestStruct{});
|
|
|
|
|
|
|
|
|
|
return TEST_PASS();
|
|
|
|
|
}, EvalFlag::RUNTIME)
|
|
|
|
|
("Test Consteval 1", [](char = 2) constexpr {
|
|
|
|
|
if (std::is_constant_evaluated()) {
|
|
|
|
|
return TEST_PASS();
|
|
|
|
|
} else {
|
|
|
|
|
return TEST_FAIL("FAIL");
|
|
|
|
|
}
|
|
|
|
|
}, EvalFlag::CONSTEVAL)
|
|
|
|
|
("Test Consteval", [](char = 2) constexpr {
|
|
|
|
|
if (std::is_constant_evaluated()) {
|
|
|
|
|
return TEST_SKIP();
|
|
|
|
|
} else {
|
|
|
|
|
return TEST_FAIL("FAIL");
|
|
|
|
|
}
|
|
|
|
|
}, EvalFlag::CONSTEVAL)
|
|
|
|
|
("Test Runtime Consteval", [](short = 3) constexpr{
|
|
|
|
|
if (std::is_constant_evaluated()) {
|
|
|
|
|
return TEST_SKIP();
|
|
|
|
|
} else {
|
|
|
|
|
return TEST_PASS();
|
|
|
|
|
}
|
|
|
|
|
}, EvalFlag::RUNTIME_CONSTEVAL);
|
|
|
|
|
}, EvalFlag::RUNTIME_CONSTEVAL)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
("const_vector(T &value)", []() constexpr {
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<1>()> vi1(test_defs::get<int>::value<1>());
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<2>()> vi2(test_defs::get<int>::value<2>());
|
|
|
|
|
|
|
|
|
|
ASSERT(vi1.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vi2.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vi1.size() == test_defs::get<char>::capacity<1>());
|
|
|
|
|
ASSERT(vi2.size() == test_defs::get<char>::capacity<2>());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vi1, test_defs::get<int>::value<1>());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vi2, test_defs::get<int>::value<2>());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<char, test_defs::get<char>::capacity<1>()> vc1(test_defs::get<char>::value<1>());
|
|
|
|
|
cc::const_vector<char, test_defs::get<char>::capacity<2>()> vc2(test_defs::get<char>::value<2>());
|
|
|
|
|
|
|
|
|
|
ASSERT(vc1.capacity() == test_defs::get<char>::capacity<1>());
|
|
|
|
|
ASSERT(vc2.capacity() == test_defs::get<char>::capacity<2>());
|
|
|
|
|
ASSERT(vc1.size() == test_defs::get<char>::capacity<1>());
|
|
|
|
|
ASSERT(vc2.size() == test_defs::get<char>::capacity<2>());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vc1, test_defs::get<char>::value<1>());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vc2, test_defs::get<char>::value<2>());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<const char *>::capacity<1>()> vs1(test_defs::get<const char *>::value<1>());
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<const char *>::capacity<2>()> vs2(test_defs::get<const char *>::value<2>());
|
|
|
|
|
|
|
|
|
|
ASSERT(vs1.capacity() == test_defs::get<const char *>::capacity<1>());
|
|
|
|
|
ASSERT(vs2.capacity() == test_defs::get<const char *>::capacity<2>());
|
|
|
|
|
ASSERT(vs1.size() == test_defs::get<const char *>::capacity<1>());
|
|
|
|
|
ASSERT(vs2.size() == test_defs::get<const char *>::capacity<2>());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vs1, test_defs::get<const char *>::value<1>());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vs2, test_defs::get<const char *>::value<2>());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<TestStruct>::capacity<1>()> vo1(test_defs::get<TestStruct>::value<1>());
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<TestStruct>::capacity<2>()> vo2(test_defs::get<TestStruct>::value<2>());
|
|
|
|
|
|
|
|
|
|
ASSERT(vo1.capacity() == test_defs::get<TestStruct>::capacity<1>());
|
|
|
|
|
ASSERT(vo2.capacity() == test_defs::get<TestStruct>::capacity<2>());
|
|
|
|
|
ASSERT(vo1.size() == test_defs::get<TestStruct>::capacity<1>());
|
|
|
|
|
ASSERT(vo2.size() == test_defs::get<TestStruct>::capacity<2>());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vo1, test_defs::get<TestStruct>::value<1>());
|
|
|
|
|
ASSERT_ALL_VEC_EQ(vo2, test_defs::get<TestStruct>::value<2>());
|
|
|
|
|
|
|
|
|
|
return TEST_PASS();
|
|
|
|
|
}, EvalFlag::RUNTIME_CONSTEVAL)
|
|
|
|
|
("const_vector(size_type size, T &value)", []() constexpr {
|
|
|
|
|
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<1>()> vi1(test_defs::get<int>::size<1>(), test_defs::get<int>::value<1>());
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<2>()> vi2(test_defs::get<int>::size<2>(), test_defs::get<int>::value<2>());
|
|
|
|
|
|
|
|
|
|
ASSERT(vi1.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vi2.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vi1.size() == test_defs::get<int>::size<1>());
|
|
|
|
|
ASSERT(vi2.size() == test_defs::get<int>::size<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi1, 0, test_defs::get<int>::size<1>(), test_defs::get<int>::value<1>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi1, test_defs::get<int>::size<1>(), test_defs::get<int>::capacity<1>(), int());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi2, 0, test_defs::get<int>::size<2>(), test_defs::get<int>::value<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi2, test_defs::get<int>::size<2>(), test_defs::get<int>::capacity<2>(), int());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<1>()> vc1(test_defs::get<int>::size<1>(), test_defs::get<char>::value<1>());
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<2>()> vc2(test_defs::get<int>::size<2>(), test_defs::get<char>::value<2>());
|
|
|
|
|
|
|
|
|
|
ASSERT(vc1.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vc2.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vc1.size() == test_defs::get<int>::size<1>());
|
|
|
|
|
ASSERT(vc2.size() == test_defs::get<int>::size<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc1, 0, test_defs::get<int>::size<1>(), test_defs::get<char>::value<1>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc1, test_defs::get<int>::size<1>(), test_defs::get<int>::capacity<1>(), char());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc2, 0, test_defs::get<int>::size<2>(), test_defs::get<char>::value<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc2, test_defs::get<int>::size<2>(), test_defs::get<int>::capacity<2>(), char());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<1>()> vs1(test_defs::get<int>::size<1>(), test_defs::get<const char *>::value<1>());
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<2>()> vs2(test_defs::get<int>::size<2>(), test_defs::get<const char *>::value<2>());
|
|
|
|
|
|
|
|
|
|
ASSERT(vs1.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vs2.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vs1.size() == test_defs::get<int>::size<1>());
|
|
|
|
|
ASSERT(vs2.size() == test_defs::get<int>::size<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vs1, 0, test_defs::get<int>::size<1>(), test_defs::get<const char *>::value<1>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vs2, 0, test_defs::get<int>::size<2>(), test_defs::get<const char *>::value<2>());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<int>::capacity<1>()> vo1(test_defs::get<int>::size<1>(), test_defs::get<TestStruct>::value<1>());
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<int>::capacity<2>()> vo2(test_defs::get<int>::size<2>(), test_defs::get<TestStruct>::value<2>());
|
|
|
|
|
|
|
|
|
|
ASSERT(vo1.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vo2.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vo1.size() == test_defs::get<int>::size<1>());
|
|
|
|
|
ASSERT(vo2.size() == test_defs::get<int>::size<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo1, 0, test_defs::get<int>::size<1>(), test_defs::get<TestStruct>::value<1>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo1, test_defs::get<int>::size<1>(), test_defs::get<int>::capacity<1>(), TestStruct {});
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo2, 0, test_defs::get<int>::size<2>(), test_defs::get<TestStruct>::value<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo2, test_defs::get<int>::size<2>(), test_defs::get<int>::capacity<2>(), TestStruct {});
|
|
|
|
|
|
|
|
|
|
return TEST_PASS();
|
|
|
|
|
}, EvalFlag::RUNTIME_CONSTEVAL)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
("const_vector(const value_type (&array)[N])", []() constexpr{
|
|
|
|
|
|
|
|
|
|
cc::const_vector vi1(test_defs::get<int>::arr<1>);
|
|
|
|
|
cc::const_vector vi2(test_defs::get<int>::arr<2>);
|
|
|
|
|
/*cc::const_vector<int, test_defs::get<int>::capacity<1>()> vi3(test_defs::get<int>::arr<1>);
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<2>()> vi4(test_defs::get<int>::arr<2>);*/
|
|
|
|
|
|
|
|
|
|
ASSERT(vi1.capacity() == test_defs::get<int>::arr_len<1>());
|
|
|
|
|
ASSERT(vi2.capacity() == test_defs::get<int>::arr_len<2>());
|
|
|
|
|
ASSERT(vi1.size() == test_defs::get<int>::arr_len<1>());
|
|
|
|
|
ASSERT(vi2.size() == test_defs::get<int>::arr_len<2>());
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vi1, test_defs::get<int>::arr<1>);
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vi2, test_defs::get<int>::arr<2>);
|
|
|
|
|
/*ASSERT(vi3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vi4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vi3.size() == test_defs::get<int>::arr_len<1>());
|
|
|
|
|
ASSERT(vi4.size() == test_defs::get<int>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vi3, 0, test_defs::get<int>::arr_len<1>(), test_defs::get<int>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi3, test_defs::get<int>::arr_len<1>(), test_defs::get<int>::capacity<1>(), int());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vi4, 0, test_defs::get<int>::arr_len<2>(), test_defs::get<int>::arr<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi4, test_defs::get<int>::arr_len<2>(), test_defs::get<int>::capacity<2>(), int());*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vc1(test_defs::get<char>::arr<1>);
|
|
|
|
|
cc::const_vector vc2(test_defs::get<char>::arr<2>);
|
|
|
|
|
/*cc::const_vector<char, test_defs::get<int>::capacity<1>()> vc3(test_defs::get<char>::arr<1>);
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<2>()> vc4(test_defs::get<char>::arr<2>);*/
|
|
|
|
|
|
|
|
|
|
ASSERT(vc1.capacity() == test_defs::get<char>::arr_len<1>());
|
|
|
|
|
ASSERT(vc2.capacity() == test_defs::get<char>::arr_len<2>());
|
|
|
|
|
ASSERT(vc1.size() == test_defs::get<char>::arr_len<1>());
|
|
|
|
|
ASSERT(vc2.size() == test_defs::get<char>::arr_len<2>());
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vc1, test_defs::get<char>::arr<1>);
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vc2, test_defs::get<char>::arr<2>);
|
|
|
|
|
/*ASSERT(vc3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vc4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vc3.size() == test_defs::get<char>::arr_len<1>());
|
|
|
|
|
ASSERT(vc4.size() == test_defs::get<char>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vc3, 0, test_defs::get<char>::arr_len<1>(), test_defs::get<char>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc3, test_defs::get<char>::arr_len<1>(), test_defs::get<int>::capacity<1>(), char());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vc4, 0, test_defs::get<char>::arr_len<2>(), test_defs::get<char>::arr<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc4, test_defs::get<char>::arr_len<2>(), test_defs::get<int>::capacity<2>(), char());*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vs1(test_defs::get<const char *>::arr<1>);
|
|
|
|
|
cc::const_vector vs2(test_defs::get<const char *>::arr<2>);
|
|
|
|
|
/*cc::const_vector<const char *, test_defs::get<int>::capacity<1>()> vs3(test_defs::get<const char *>::arr<1>);
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<2>()> vs4(test_defs::get<const char *>::arr<2>);*/
|
|
|
|
|
|
|
|
|
|
ASSERT(vs1.capacity() == test_defs::get<const char *>::arr_len<1>());
|
|
|
|
|
ASSERT(vs2.capacity() == test_defs::get<const char *>::arr_len<2>());
|
|
|
|
|
ASSERT(vs1.size() == test_defs::get<const char *>::arr_len<1>());
|
|
|
|
|
ASSERT(vs2.size() == test_defs::get<const char *>::arr_len<2>());
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vs1, test_defs::get<const char *>::arr<1>);
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vs2, test_defs::get<const char *>::arr<2>);
|
|
|
|
|
/*ASSERT(vs3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vs4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vs3.size() == test_defs::get<const char *>::arr_len<1>());
|
|
|
|
|
ASSERT(vs4.size() == test_defs::get<const char *>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vs3, 0, test_defs::get<const char *>::arr_len<1>(), test_defs::get<const char *>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vs4, 0, test_defs::get<const char *>::arr_len<2>(), test_defs::get<const char *>::arr<2>);*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vo1(test_defs::get<TestStruct>::arr<1>);
|
|
|
|
|
cc::const_vector vo2(test_defs::get<TestStruct>::arr<2>);
|
|
|
|
|
/*cc::const_vector<TestStruct, test_defs::get<int>::capacity<1>()> vo3(test_defs::get<TestStruct>::arr<1>);
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<int>::capacity<2>()> vo4(test_defs::get<TestStruct>::arr<2>);*/
|
|
|
|
|
|
|
|
|
|
ASSERT(vo1.capacity() == test_defs::get<TestStruct>::arr_len<1>());
|
|
|
|
|
ASSERT(vo2.capacity() == test_defs::get<TestStruct>::arr_len<2>());
|
|
|
|
|
ASSERT(vo1.size() == test_defs::get<TestStruct>::arr_len<1>());
|
|
|
|
|
ASSERT(vo2.size() == test_defs::get<TestStruct>::arr_len<2>());
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vo1, test_defs::get<TestStruct>::arr<1>);
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vo2, test_defs::get<TestStruct>::arr<2>);
|
|
|
|
|
/*ASSERT(vo3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vo4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vo3.size() == test_defs::get<TestStruct>::arr_len<1>());
|
|
|
|
|
ASSERT(vo4.size() == test_defs::get<TestStruct>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vo3, 0, test_defs::get<TestStruct>::arr_len<1>(), test_defs::get<TestStruct>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo3, test_defs::get<TestStruct>::arr_len<1>(), test_defs::get<int>::capacity<1>(), TestStruct {});
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vo4, 0, test_defs::get<TestStruct>::arr_len<2>(), test_defs::get<TestStruct>::arr<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo4, test_defs::get<TestStruct>::arr_len<2>(), test_defs::get<int>::capacity<2>(), TestStruct {});*/
|
|
|
|
|
|
|
|
|
|
}, EvalFlag::RUNTIME_CONSTEVAL)
|
|
|
|
|
|
|
|
|
|
("const_vector(std::initializer_list<value_type> list)", []() constexpr{
|
|
|
|
|
|
|
|
|
|
cc::const_vector vi1(test_defs::get<int>::i_list<1>);
|
|
|
|
|
cc::const_vector vi2(test_defs::get<int>::i_list<2>);
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<1>()> vi3(test_defs::get<int>::i_list<1>);
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<2>()> vi4(test_defs::get<int>::i_list<2>);
|
|
|
|
|
|
|
|
|
|
ASSERT(vi1.capacity() == test_defs::get<int>::arr_len<1>());
|
|
|
|
|
ASSERT(vi2.capacity() == test_defs::get<int>::arr_len<2>());
|
|
|
|
|
ASSERT(vi1.size() == test_defs::get<int>::arr_len<1>());
|
|
|
|
|
ASSERT(vi2.size() == test_defs::get<int>::arr_len<2>());
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vi1, test_defs::get<int>::i_list<1>);
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vi2, test_defs::get<int>::i_list<2>);
|
|
|
|
|
ASSERT(vi3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vi4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vi3.size() == test_defs::get<int>::arr_len<1>());
|
|
|
|
|
ASSERT(vi4.size() == test_defs::get<int>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vi3, 0, test_defs::get<int>::arr_len<1>(), test_defs::get<int>::i_list<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi3, test_defs::get<int>::arr_len<1>(), test_defs::get<int>::capacity<1>(), int());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vi4, 0, test_defs::get<int>::arr_len<2>(), test_defs::get<int>::i_list<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi4, test_defs::get<int>::arr_len<2>(), test_defs::get<int>::capacity<2>(), int());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vc1(test_defs::get<char>::i_list<1>);
|
|
|
|
|
cc::const_vector vc2(test_defs::get<char>::i_list<2>);
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<1>()> vc3(test_defs::get<char>::i_list<1>);
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<2>()> vc4(test_defs::get<char>::i_list<2>);
|
|
|
|
|
|
|
|
|
|
ASSERT(vc1.capacity() == test_defs::get<char>::arr_len<1>());
|
|
|
|
|
ASSERT(vc2.capacity() == test_defs::get<char>::arr_len<2>());
|
|
|
|
|
ASSERT(vc1.size() == test_defs::get<char>::arr_len<1>());
|
|
|
|
|
ASSERT(vc2.size() == test_defs::get<char>::arr_len<2>());
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vc1, test_defs::get<char>::i_list<1>);
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vc2, test_defs::get<char>::i_list<2>);
|
|
|
|
|
ASSERT(vc3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vc4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vc3.size() == test_defs::get<char>::arr_len<1>());
|
|
|
|
|
ASSERT(vc4.size() == test_defs::get<char>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vc3, 0, test_defs::get<char>::arr_len<1>(), test_defs::get<char>::i_list<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc3, test_defs::get<char>::arr_len<1>(), test_defs::get<int>::capacity<1>(), char());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vc4, 0, test_defs::get<char>::arr_len<2>(), test_defs::get<char>::i_list<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc4, test_defs::get<char>::arr_len<2>(), test_defs::get<int>::capacity<2>(), char());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vs1(test_defs::get<const char *>::i_list<1>);
|
|
|
|
|
cc::const_vector vs2(test_defs::get<const char *>::i_list<2>);
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<1>()> vs3(test_defs::get<const char *>::i_list<1>);
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<2>()> vs4(test_defs::get<const char *>::i_list<2>);
|
|
|
|
|
|
|
|
|
|
ASSERT(vs1.capacity() == test_defs::get<const char *>::arr_len<1>());
|
|
|
|
|
ASSERT(vs2.capacity() == test_defs::get<const char *>::arr_len<2>());
|
|
|
|
|
ASSERT(vs1.size() == test_defs::get<const char *>::arr_len<1>());
|
|
|
|
|
ASSERT(vs2.size() == test_defs::get<const char *>::arr_len<2>());
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vs1, test_defs::get<const char *>::i_list<1>);
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vs2, test_defs::get<const char *>::i_list<2>);
|
|
|
|
|
ASSERT(vs3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vs4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vs3.size() == test_defs::get<const char *>::arr_len<1>());
|
|
|
|
|
ASSERT(vs4.size() == test_defs::get<const char *>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vs3, 0, test_defs::get<const char *>::arr_len<1>(), test_defs::get<const char *>::i_list<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vs4, 0, test_defs::get<const char *>::arr_len<2>(), test_defs::get<const char *>::i_list<2>);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vo1(test_defs::get<TestStruct>::i_list<1>);
|
|
|
|
|
cc::const_vector vo2(test_defs::get<TestStruct>::i_list<2>);
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<int>::capacity<1>()> vo3(test_defs::get<TestStruct>::i_list<1>);
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<int>::capacity<2>()> vo4(test_defs::get<TestStruct>::i_list<2>);
|
|
|
|
|
|
|
|
|
|
ASSERT(vo1.capacity() == test_defs::get<TestStruct>::arr_len<1>());
|
|
|
|
|
ASSERT(vo2.capacity() == test_defs::get<TestStruct>::arr_len<2>());
|
|
|
|
|
ASSERT(vo1.size() == test_defs::get<TestStruct>::arr_len<1>());
|
|
|
|
|
ASSERT(vo2.size() == test_defs::get<TestStruct>::arr_len<2>());
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vo1, test_defs::get<TestStruct>::i_list<1>);
|
|
|
|
|
ASSERT_VEC_ARR_EQ(vo2, test_defs::get<TestStruct>::i_list<2>);
|
|
|
|
|
ASSERT(vo3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vo4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vo3.size() == test_defs::get<TestStruct>::arr_len<1>());
|
|
|
|
|
ASSERT(vo4.size() == test_defs::get<TestStruct>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vo3, 0, test_defs::get<TestStruct>::arr_len<1>(), test_defs::get<TestStruct>::i_list<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo3, test_defs::get<TestStruct>::arr_len<1>(), test_defs::get<int>::capacity<1>(), TestStruct {});
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vo4, 0, test_defs::get<TestStruct>::arr_len<2>(), test_defs::get<TestStruct>::i_list<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo4, test_defs::get<TestStruct>::arr_len<2>(), test_defs::get<int>::capacity<2>(), TestStruct {});
|
|
|
|
|
|
|
|
|
|
return TEST_PASS();
|
|
|
|
|
}, EvalFlag::RUNTIME_CONSTEVAL)
|
|
|
|
|
|
|
|
|
|
("const_vector(InputIt first, InputIt last)", []() constexpr{
|
|
|
|
|
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<1>()> vi1(std::begin(test_defs::get<int>::arr<1>), std::end(test_defs::get<int>::arr<1>));
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<2>()> vi2(std::begin(test_defs::get<int>::arr<2>), std::end(test_defs::get<int>::arr<2>));
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<1>()> vi3(std::begin(test_defs::get<int>::arr<1>), std::end(test_defs::get<int>::arr<1>));
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<2>()> vi4(std::begin(test_defs::get<int>::arr<2>), std::end(test_defs::get<int>::arr<2>));
|
|
|
|
|
|
|
|
|
|
ASSERT(vi1.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vi2.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vi1.size() == test_defs::get<int>::arr_len<1>());
|
|
|
|
|
ASSERT(vi2.size() == test_defs::get<int>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vi1, 0, test_defs::get<int>::arr_len<1>(), test_defs::get<int>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi1, test_defs::get<int>::arr_len<1>(), test_defs::get<int>::capacity<1>(), int());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vi2, 0, test_defs::get<int>::arr_len<2>(), test_defs::get<int>::arr<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi2, test_defs::get<int>::arr_len<2>(), test_defs::get<int>::capacity<2>(), int());
|
|
|
|
|
ASSERT(vi3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vi4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vi3.size() == test_defs::get<int>::arr_len<1>());
|
|
|
|
|
ASSERT(vi4.size() == test_defs::get<int>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vi3, 0, test_defs::get<int>::arr_len<1>(), test_defs::get<int>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi3, test_defs::get<int>::arr_len<1>(), test_defs::get<int>::capacity<1>(), int());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vi4, 0, test_defs::get<int>::arr_len<2>(), test_defs::get<int>::arr<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vi4, test_defs::get<int>::arr_len<2>(), test_defs::get<int>::capacity<2>(), int());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<1>()> vc1(std::begin(test_defs::get<char>::arr<1>), std::end(test_defs::get<char>::arr<1>));
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<2>()> vc2(std::begin(test_defs::get<char>::arr<2>), std::end(test_defs::get<char>::arr<2>));
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<1>()> vc3(std::begin(test_defs::get<char>::arr<1>), std::end(test_defs::get<char>::arr<1>));
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<2>()> vc4(std::begin(test_defs::get<char>::arr<2>), std::end(test_defs::get<char>::arr<2>));
|
|
|
|
|
|
|
|
|
|
ASSERT(vc1.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vc2.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vc1.size() == test_defs::get<char>::arr_len<1>());
|
|
|
|
|
ASSERT(vc2.size() == test_defs::get<char>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vc1, 0, test_defs::get<char>::arr_len<1>(), test_defs::get<char>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc1, test_defs::get<char>::arr_len<1>(), test_defs::get<int>::capacity<1>(), char());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vc2, 0, test_defs::get<char>::arr_len<2>(), test_defs::get<char>::arr<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc2, test_defs::get<char>::arr_len<2>(), test_defs::get<int>::capacity<2>(), char());
|
|
|
|
|
ASSERT(vc3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vc4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vc3.size() == test_defs::get<char>::arr_len<1>());
|
|
|
|
|
ASSERT(vc4.size() == test_defs::get<char>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vc3, 0, test_defs::get<char>::arr_len<1>(), test_defs::get<char>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc3, test_defs::get<char>::arr_len<1>(), test_defs::get<int>::capacity<1>(), char());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vc4, 0, test_defs::get<char>::arr_len<2>(), test_defs::get<char>::arr<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vc4, test_defs::get<char>::arr_len<2>(), test_defs::get<int>::capacity<2>(), char());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<1>()> vs1(std::begin(test_defs::get<const char *>::arr<1>), std::end(test_defs::get<const char *>::arr<1>));
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<2>()> vs2(std::begin(test_defs::get<const char *>::arr<2>), std::end(test_defs::get<const char *>::arr<2>));
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<1>()> vs3(std::begin(test_defs::get<const char *>::arr<1>), std::end(test_defs::get<const char *>::arr<1>));
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<2>()> vs4(std::begin(test_defs::get<const char *>::arr<2>), std::end(test_defs::get<const char *>::arr<2>));
|
|
|
|
|
|
|
|
|
|
ASSERT(vs1.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vs2.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vs1.size() == test_defs::get<const char *>::arr_len<1>());
|
|
|
|
|
ASSERT(vs2.size() == test_defs::get<const char *>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vs1, 0, test_defs::get<const char *>::arr_len<1>(), test_defs::get<const char *>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vs2, 0, test_defs::get<const char *>::arr_len<2>(), test_defs::get<const char *>::arr<2>);
|
|
|
|
|
ASSERT(vs3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vs4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vs3.size() == test_defs::get<const char *>::arr_len<1>());
|
|
|
|
|
ASSERT(vs4.size() == test_defs::get<const char *>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vs3, 0, test_defs::get<const char *>::arr_len<1>(), test_defs::get<const char *>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vs4, 0, test_defs::get<const char *>::arr_len<2>(), test_defs::get<const char *>::arr<2>);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<int>::capacity<1>()> vo1(std::begin(test_defs::get<TestStruct>::arr<1>), std::end(test_defs::get<TestStruct>::arr<1>));
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<int>::capacity<2>()> vo2(std::begin(test_defs::get<TestStruct>::arr<2>), std::end(test_defs::get<TestStruct>::arr<2>));
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<int>::capacity<1>()> vo3(std::begin(test_defs::get<TestStruct>::arr<1>), std::end(test_defs::get<TestStruct>::arr<1>));
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<int>::capacity<2>()> vo4(std::begin(test_defs::get<TestStruct>::arr<2>), std::end(test_defs::get<TestStruct>::arr<2>));
|
|
|
|
|
|
|
|
|
|
ASSERT(vo1.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vo2.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vo1.size() == test_defs::get<TestStruct>::arr_len<1>());
|
|
|
|
|
ASSERT(vo2.size() == test_defs::get<TestStruct>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vo1, 0, test_defs::get<TestStruct>::arr_len<1>(), test_defs::get<TestStruct>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo1, test_defs::get<TestStruct>::arr_len<1>(), test_defs::get<int>::capacity<1>(), TestStruct {});
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vo2, 0, test_defs::get<TestStruct>::arr_len<2>(), test_defs::get<TestStruct>::arr<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo2, test_defs::get<TestStruct>::arr_len<2>(), test_defs::get<int>::capacity<2>(), TestStruct {});
|
|
|
|
|
ASSERT(vo3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vo4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vo3.size() == test_defs::get<TestStruct>::arr_len<1>());
|
|
|
|
|
ASSERT(vo4.size() == test_defs::get<TestStruct>::arr_len<2>());
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vo3, 0, test_defs::get<TestStruct>::arr_len<1>(), test_defs::get<TestStruct>::arr<1>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo3, test_defs::get<TestStruct>::arr_len<1>(), test_defs::get<int>::capacity<1>(), TestStruct {});
|
|
|
|
|
ASSERT_RANGE_VEC_ARR_EQ(vo4, 0, test_defs::get<TestStruct>::arr_len<2>(), test_defs::get<TestStruct>::arr<2>);
|
|
|
|
|
ASSERT_RANGE_VEC_EQ(vo4, test_defs::get<TestStruct>::arr_len<2>(), test_defs::get<int>::capacity<2>(), TestStruct {});
|
|
|
|
|
|
|
|
|
|
return TEST_PASS();
|
|
|
|
|
}, EvalFlag::RUNTIME_CONSTEVAL)
|
|
|
|
|
|
|
|
|
|
("const_vector(const const_vector& other)", []() constexpr{
|
|
|
|
|
|
|
|
|
|
cc::const_vector vi1(test_defs::get<int>::arr<1>);
|
|
|
|
|
cc::const_vector vi2(test_defs::get<int>::arr<2>);
|
|
|
|
|
cc::const_vector vi1c(vi1);
|
|
|
|
|
cc::const_vector vi2c(vi2);
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<1>()> vi3(vi1);
|
|
|
|
|
cc::const_vector<int, test_defs::get<int>::capacity<2>()> vi4(vi2);
|
|
|
|
|
|
|
|
|
|
ASSERT(vi1c.capacity() == vi1.capacity());
|
|
|
|
|
ASSERT(vi2c.capacity() == vi2.capacity());
|
|
|
|
|
ASSERT(vi1c.size() == vi1.size());
|
|
|
|
|
ASSERT(vi2c.size() == vi2.size());
|
|
|
|
|
ASSERT_VEC_EQ(vi1c, vi1);
|
|
|
|
|
ASSERT_VEC_EQ(vi2c, vi2);
|
|
|
|
|
ASSERT(vi3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vi4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vi3.size() == vi1.size());
|
|
|
|
|
ASSERT(vi4.size() == vi2.size());
|
|
|
|
|
ASSERT_VEC_EQ(vi3, vi1);
|
|
|
|
|
ASSERT_VEC_EQ(vi4, vi2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vc1(test_defs::get<char>::arr<1>);
|
|
|
|
|
cc::const_vector vc2(test_defs::get<char>::arr<2>);
|
|
|
|
|
cc::const_vector vc1c(vc1);
|
|
|
|
|
cc::const_vector vc2c(vc2);
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<1>()> vc3(vc1);
|
|
|
|
|
cc::const_vector<char, test_defs::get<int>::capacity<2>()> vc4(vc2);
|
|
|
|
|
|
|
|
|
|
ASSERT(vc1c.capacity() == vc1.capacity());
|
|
|
|
|
ASSERT(vc2c.capacity() == vc2.capacity());
|
|
|
|
|
ASSERT(vc1c.size() == vc1.size());
|
|
|
|
|
ASSERT(vc2c.size() == vc2.size());
|
|
|
|
|
ASSERT_VEC_EQ(vc1c, vc1);
|
|
|
|
|
ASSERT_VEC_EQ(vc2c, vc2);
|
|
|
|
|
ASSERT(vc3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vc4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vc3.size() == vc1.size());
|
|
|
|
|
ASSERT(vc4.size() == vc2.size());
|
|
|
|
|
ASSERT_VEC_EQ(vc3, vc1);
|
|
|
|
|
ASSERT_VEC_EQ(vc4, vc2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vs1(test_defs::get<const char *>::arr<1>);
|
|
|
|
|
cc::const_vector vs2(test_defs::get<const char *>::arr<2>);
|
|
|
|
|
cc::const_vector vs1c(vs1);
|
|
|
|
|
cc::const_vector vs2c(vs2);
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<1>()> vs3(vs1);
|
|
|
|
|
cc::const_vector<const char *, test_defs::get<int>::capacity<2>()> vs4(vs2);
|
|
|
|
|
|
|
|
|
|
ASSERT(vs1c.capacity() == vs1.capacity());
|
|
|
|
|
ASSERT(vs2c.capacity() == vs2.capacity());
|
|
|
|
|
ASSERT(vs1c.size() == vs1.size());
|
|
|
|
|
ASSERT(vs2c.size() == vs2.size());
|
|
|
|
|
ASSERT_VEC_EQ(vs1c, vs1);
|
|
|
|
|
ASSERT_VEC_EQ(vs2c, vs2);
|
|
|
|
|
ASSERT(vs3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vs4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vs3.size() == vs1.size());
|
|
|
|
|
ASSERT(vs4.size() == vs2.size());
|
|
|
|
|
ASSERT_VEC_EQ(vs3, vs1);
|
|
|
|
|
ASSERT_VEC_EQ(vs4, vs2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vo1(test_defs::get<TestStruct>::arr<1>);
|
|
|
|
|
cc::const_vector vo2(test_defs::get<TestStruct>::arr<2>);
|
|
|
|
|
cc::const_vector vo1c(vo1);
|
|
|
|
|
cc::const_vector vo2c(vo2);
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<TestStruct>::capacity<1>()> vo3(vo1);
|
|
|
|
|
cc::const_vector<TestStruct, test_defs::get<TestStruct>::capacity<2>()> vo4(vo2);
|
|
|
|
|
|
|
|
|
|
ASSERT(vo1c.capacity() == vo1.capacity());
|
|
|
|
|
ASSERT(vo2c.capacity() == vo2.capacity());
|
|
|
|
|
ASSERT(vo1c.size() == vo1.size());
|
|
|
|
|
ASSERT(vo2c.size() == vo2.size());
|
|
|
|
|
ASSERT_VEC_EQ(vo1c, vo1);
|
|
|
|
|
ASSERT_VEC_EQ(vo2c, vo2);
|
|
|
|
|
ASSERT(vo3.capacity() == test_defs::get<int>::capacity<1>());
|
|
|
|
|
ASSERT(vo4.capacity() == test_defs::get<int>::capacity<2>());
|
|
|
|
|
ASSERT(vo3.size() == vo1.size());
|
|
|
|
|
ASSERT(vo4.size() == vo2.size());
|
|
|
|
|
ASSERT_VEC_EQ(vo3, vo1);
|
|
|
|
|
ASSERT_VEC_EQ(vo4, vo2);
|
|
|
|
|
|
|
|
|
|
return TEST_PASS();
|
|
|
|
|
}, EvalFlag::RUNTIME_CONSTEVAL)
|
|
|
|
|
|
|
|
|
|
("const_vector(const_vector&& other)", []() constexpr {
|
|
|
|
|
|
|
|
|
|
cc::const_vector vi1(test_defs::get<int>::arr<1>);
|
|
|
|
|
cc::const_vector vi2(test_defs::get<int>::arr<2>);
|
|
|
|
|
cc::const_vector vi1c(vi1);
|
|
|
|
|
cc::const_vector vi2c(vi2);
|
|
|
|
|
cc::const_vector vi3(const_cast<std::remove_const_t<decltype(vi1)>&&>(vi1));
|
|
|
|
|
cc::const_vector vi4(const_cast<std::remove_const_t<decltype(vi2)>&&>(vi2));
|
|
|
|
|
|
|
|
|
|
ASSERT(vi3.capacity() == vi1c.capacity());
|
|
|
|
|
ASSERT(vi4.capacity() == vi2c.capacity());
|
|
|
|
|
ASSERT(vi3.size() == vi1c.size());
|
|
|
|
|
ASSERT(vi4.size() == vi2c.size());
|
|
|
|
|
ASSERT_VEC_EQ(vi3, vi1c);
|
|
|
|
|
ASSERT_VEC_EQ(vi4, vi2c);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vc1(test_defs::get<char>::arr<1>);
|
|
|
|
|
cc::const_vector vc2(test_defs::get<char>::arr<2>);
|
|
|
|
|
cc::const_vector vc1c(vc1);
|
|
|
|
|
cc::const_vector vc2c(vc2);
|
|
|
|
|
cc::const_vector vc3(const_cast<std::remove_const_t<decltype(vc1)>&&>(vc1));
|
|
|
|
|
cc::const_vector vc4(const_cast<std::remove_const_t<decltype(vc2)>&&>(vc2));
|
|
|
|
|
|
|
|
|
|
ASSERT(vi3.capacity() == vi1c.capacity());
|
|
|
|
|
ASSERT(vi4.capacity() == vi2c.capacity());
|
|
|
|
|
ASSERT(vi3.size() == vi1c.size());
|
|
|
|
|
ASSERT(vi4.size() == vi2c.size());
|
|
|
|
|
ASSERT_VEC_EQ(vi3, vi1c);
|
|
|
|
|
ASSERT_VEC_EQ(vi4, vi2c);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vs1(test_defs::get<const char *>::arr<1>);
|
|
|
|
|
cc::const_vector vs2(test_defs::get<const char *>::arr<2>);
|
|
|
|
|
cc::const_vector vs1c(vs1);
|
|
|
|
|
cc::const_vector vs2c(vs2);
|
|
|
|
|
cc::const_vector vs3(const_cast<std::remove_const_t<decltype(vs1)>&&>(vs1));
|
|
|
|
|
cc::const_vector vs4(const_cast<std::remove_const_t<decltype(vs2)>&&>(vs2));
|
|
|
|
|
|
|
|
|
|
ASSERT(vs3.capacity() == vs1c.capacity());
|
|
|
|
|
ASSERT(vs4.capacity() == vs2c.capacity());
|
|
|
|
|
ASSERT(vs3.size() == vs1c.size());
|
|
|
|
|
ASSERT(vs4.size() == vs2c.size());
|
|
|
|
|
ASSERT_VEC_EQ(vs3, vs1c);
|
|
|
|
|
ASSERT_VEC_EQ(vs4, vs2c);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cc::const_vector vo1(test_defs::get<TestStruct>::arr<1>);
|
|
|
|
|
cc::const_vector vo2(test_defs::get<TestStruct>::arr<2>);
|
|
|
|
|
cc::const_vector vo1c(vo1);
|
|
|
|
|
cc::const_vector vo2c(vo2);
|
|
|
|
|
cc::const_vector vo3(const_cast<std::remove_const_t<decltype(vo1)>&&>(vo1));
|
|
|
|
|
cc::const_vector vo4(const_cast<std::remove_const_t<decltype(vo2)>&&>(vo2));
|
|
|
|
|
|
|
|
|
|
ASSERT(vo3.capacity() == vo1c.capacity());
|
|
|
|
|
ASSERT(vo4.capacity() == vo2c.capacity());
|
|
|
|
|
ASSERT(vo3.size() == vo1c.size());
|
|
|
|
|
ASSERT(vo4.size() == vo2c.size());
|
|
|
|
|
ASSERT_VEC_EQ(vo3, vo1c);
|
|
|
|
|
ASSERT_VEC_EQ(vo4, vo2c);
|
|
|
|
|
|
|
|
|
|
return TEST_PASS();
|
|
|
|
|
}, EvalFlag::RUNTIME_CONSTEVAL)
|
|
|
|
|
|
|
|
|
|
/*("const_vector(const_vector&& other)", []() {
|
|
|
|
|
|
|
|
|
|
return TEST_PASS();
|
|
|
|
|
}, EvalFlag::RUNTIME_CONSTEVAL)*/
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
return tests.run();
|
|
|
|
|
|