moved test for at() to data_access

This commit is contained in:
cyborg1811m 2024-07-27 23:58:51 +02:00
parent c8144b041c
commit 9f307442dc
3 changed files with 41 additions and 39 deletions

View File

@ -7,3 +7,8 @@ add_executable(test_const_vector_constructor const_vector_constructor.test.cpp
test_params.h)
target_link_libraries(test_const_vector_constructor const_container test_common)
add_test(NAME "const_vector constructor" COMMAND test_const_vector_constructor)
add_executable(test_const_vector_data_access const_vector_data_access.test.cpp
test_params.h)
target_link_libraries(test_const_vector_data_access const_container test_common)
add_test(NAME "const_vector data access" COMMAND test_const_vector_constructor)

View File

@ -27,7 +27,7 @@
#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")
constexpr test_suite tests = define_tests("Constructors")
("const_vector()", []() constexpr {
cc::const_vector<int, test_defs::get<int>::capacity<1>()> vi1;
@ -1221,44 +1221,7 @@ constexpr test_suite tests = define_tests("Tests")
}), 2, int, char, const char *, TestObj);
return TEST_PASS();
}, EvalFlag::RUNTIME_CONSTEVAL)
("const_vector::at(size_type pos)", []() constexpr {
REPEAT_FOR_TYPES_N(([]<typename T, std::size_t N, typename Ctx>() constexpr {
cc::const_vector<T, test_params<"arr", Ctx>::get_arr_len() + 1> v(test_context_params<T, N>::template value<"arr">);
const cc::const_vector<T, test_params<"arr", Ctx>::get_arr_len() + 1> cv(test_context_params<T, N>::template value<"arr">);
for (int i = 0; i < test_params<"arr", Ctx>::get_arr_len(); ++i) {
ASSERT_TYPE_NUM((v.at(i) == test_params<"arr", Ctx>::get()[i]), T, N);
ASSERT_TYPE_NUM((cv.at(i) == test_params<"arr", Ctx>::get()[i]), T, N);
}
ASSERT_TYPE_NUM_THROWS(v.at(test_params<"arr", Ctx>::get_arr_len()), std::out_of_range, T, N);
ASSERT_TYPE_NUM_THROWS(cv.at(test_params<"arr", Ctx>::get_arr_len()), std::out_of_range, T, N);
v.at(v.size() / 2) = test_params<"value", Ctx>::get();
ASSERT_TYPE_NUM((v.data()[v.size() / 2] == test_params<"value", Ctx>::get()), T, N);
return TEST_PASS();
}), 2, int, char, const char *, TestObj);
return TEST_PASS();
}, EvalFlag::RUNTIME_CONSTEVAL)
/*("const_vector", []() constexpr {
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();

View File

@ -0,0 +1,34 @@
#include <const_vector.hpp>
#include <test.hpp>
#include "test_params.h"
constexpr test_suite tests = define_tests("Data Access")
("const_vector::at(size_type pos)", []() constexpr {
REPEAT_FOR_TYPES_N(([]<typename T, std::size_t N, typename Ctx>() constexpr {
cc::const_vector<T, test_params<"arr", Ctx>::get_arr_len() + 1> v(test_context_params<T, N>::template value<"arr">);
const cc::const_vector<T, test_params<"arr", Ctx>::get_arr_len() + 1> cv(test_context_params<T, N>::template value<"arr">);
for (int i = 0; i < test_params<"arr", Ctx>::get_arr_len(); ++i) {
ASSERT_TYPE_NUM((v.at(i) == test_params<"arr", Ctx>::get()[i]), T, N);
ASSERT_TYPE_NUM((cv.at(i) == test_params<"arr", Ctx>::get()[i]), T, N);
}
ASSERT_TYPE_NUM_THROWS(v.at(test_params<"arr", Ctx>::get_arr_len()), std::out_of_range, T, N);
ASSERT_TYPE_NUM_THROWS(cv.at(test_params<"arr", Ctx>::get_arr_len()), std::out_of_range, T, N);
v.at(v.size() / 2) = test_params<"value", Ctx>::get();
ASSERT_TYPE_NUM((v.data()[v.size() / 2] == test_params<"value", Ctx>::get()), T, N);
return TEST_PASS();
}), 2, int, char, const char *, TestObj);
return TEST_PASS();
}, EvalFlag::RUNTIME_CONSTEVAL);
int main() {
return tests.run();
}