diff --git a/test/const_vector/CMakeLists.txt b/test/const_vector/CMakeLists.txt index 4798ffb..b53f2b6 100644 --- a/test/const_vector/CMakeLists.txt +++ b/test/const_vector/CMakeLists.txt @@ -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) diff --git a/test/const_vector/const_vector_constructor.test.cpp b/test/const_vector/const_vector_constructor.test.cpp index 4a616f5..107c21b 100644 --- a/test/const_vector/const_vector_constructor.test.cpp +++ b/test/const_vector/const_vector_constructor.test.cpp @@ -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::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(([]() constexpr { - - cc::const_vector::get_arr_len() + 1> v(test_context_params::template value<"arr">); - const cc::const_vector::get_arr_len() + 1> cv(test_context_params::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(); diff --git a/test/const_vector/const_vector_data_access.test.cpp b/test/const_vector/const_vector_data_access.test.cpp new file mode 100644 index 0000000..e6bbf68 --- /dev/null +++ b/test/const_vector/const_vector_data_access.test.cpp @@ -0,0 +1,34 @@ +#include + +#include +#include "test_params.h" + +constexpr test_suite tests = define_tests("Data Access") + ("const_vector::at(size_type pos)", []() constexpr { + + REPEAT_FOR_TYPES_N(([]() constexpr { + + cc::const_vector::get_arr_len() + 1> v(test_context_params::template value<"arr">); + const cc::const_vector::get_arr_len() + 1> cv(test_context_params::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(); +} \ No newline at end of file