added test for const_vector::at

This commit is contained in:
cyborg1811m 2024-07-27 23:52:05 +02:00
parent 1b96fd982e
commit c8144b041c
1 changed files with 21 additions and 0 deletions

View File

@ -1225,6 +1225,27 @@ constexpr test_suite tests = define_tests("Tests")
("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)