added test for assign(count, value)
This commit is contained in:
parent
856c76375e
commit
fce50dc9b0
|
|
@ -6,11 +6,17 @@
|
|||
|
||||
#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(), std::begin(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), std::begin(eq))
|
||||
#define ASSERT_TYPE_ALL_VEC_EQ(vec, eq, type) ASSERT_ALL_EQ((vec).begin(), (vec).end(), eq)
|
||||
#define ASSERT_TYPE_RANGE_VEC_EQ(vec, startI, endI, eq, type) ASSERT_ALL_EQ(((vec).data() + startI), ((vec).data() + endI), eq)
|
||||
#define ASSERT_TYPE_VEC_ARR_EQ(vec, eq, type) ASSERT_C_ARR_EQ((vec).data(), (vec).data() + (vec).size(), std::begin(eq))
|
||||
#define ASSERT_TYPE_VEC_EQ(vec1, vec2, type) ASSERT_C_ARR_EQ((vec1).data(), (vec1).data() + (vec1).size(), (vec2).data())
|
||||
#define ASSERT_TYPE_RANGE_VEC_ARR_EQ(vec, startI, endI, eq, type) ASSERT_C_ARR_EQ(((vec).begin() + startI), ((vec).begin() + endI), std::begin(eq))
|
||||
|
||||
#define ASSERT_ALL_VEC_EQ(vec, eq) ASSERT_TYPE_ALL_VEC_EQ(vec, eq, std::nullptr_t)
|
||||
#define ASSERT_RANGE_VEC_EQ(vec, startI, endI, eq) ASSERT_TYPE_RANGE_VEC_EQ(vec, startI, endI, eq, std::nullptr_t)
|
||||
#define ASSERT_VEC_ARR_EQ(vec, eq) ASSERT_TYPE_VEC_ARR_EQ(vec, eq, std::nullptr_t)
|
||||
#define ASSERT_VEC_EQ(vec1, vec2) ASSERT_TYPE_VEC_EQ(vec1, vec2, std::nullptr_t)
|
||||
#define ASSERT_RANGE_VEC_ARR_EQ(vec, startI, endI, eq) ASSERT_TYPE_RANGE_VEC_ARR_EQ(vec, startI, endI, eq, std::nullptr_t)
|
||||
|
||||
constexpr test_suite tests = define_tests("Tests")
|
||||
("const_vector()", []() constexpr {
|
||||
|
|
@ -638,6 +644,7 @@ constexpr test_suite tests = define_tests("Tests")
|
|||
|
||||
return TEST_PASS();
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL)
|
||||
|
||||
("const_vector::operator=(const const_vector& other)", []() constexpr {
|
||||
|
||||
cc::const_vector vi1(test_defs::get<int>::arr<1>);
|
||||
|
|
@ -1110,11 +1117,40 @@ constexpr test_suite tests = define_tests("Tests")
|
|||
|
||||
return TEST_PASS();
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL)
|
||||
|
||||
("const_vector::assign(size_type count, const value_type& value)", []() constexpr {
|
||||
|
||||
REPEAT_FOR_TYPES(([]<typename T>() constexpr {
|
||||
|
||||
cc::const_vector v1(test_defs::get<T>::template arr<1>);
|
||||
cc::const_vector v2(test_defs::get<T>::template arr<2>);
|
||||
cc::const_vector<T, test_defs::get<T>::template capacity<1>()> v3;
|
||||
|
||||
auto count1 = test_defs::get<T>::template arr_len<1>() / 2;
|
||||
auto count2 = test_defs::get<T>::template arr_len<2>() / 2;
|
||||
|
||||
v1.assign(count1, test_defs::get<T>::template value<1>());
|
||||
v2.assign(count2, test_defs::get<T>::template value<2>());
|
||||
v3.assign(test_defs::get<T>::template capacity<1>() + 1, test_defs::get<T>::template value<1>());
|
||||
|
||||
ASSERT_TYPE(v1.size() == count1, T);
|
||||
ASSERT_TYPE(v2.size() == count2, T);
|
||||
ASSERT_TYPE_ALL_VEC_EQ(v1, test_defs::get<T>::template value<1>(), T);
|
||||
ASSERT_TYPE_ALL_VEC_EQ(v2, test_defs::get<T>::template value<2>(), T);
|
||||
|
||||
ASSERT_TYPE(v3.size() == test_defs::get<T>::template capacity<1>(), T);
|
||||
ASSERT_TYPE_ALL_VEC_EQ(v1, test_defs::get<T>::template value<1>(), T);
|
||||
|
||||
return TEST_PASS();
|
||||
}), int, char, const char*, TestStruct)
|
||||
|
||||
return TEST_PASS();
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL)
|
||||
/*("const_vector(const_vector&& other)", []() constexpr {
|
||||
|
||||
return TEST_PASS();
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL)*/
|
||||
;
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL)
|
||||
*/;
|
||||
|
||||
int main() {
|
||||
return tests.run();
|
||||
|
|
|
|||
Loading…
Reference in New Issue