added test for const_vector::at
This commit is contained in:
parent
1b96fd982e
commit
c8144b041c
|
|
@ -1225,6 +1225,27 @@ constexpr test_suite tests = define_tests("Tests")
|
||||||
|
|
||||||
("const_vector::at(size_type pos)", []() constexpr {
|
("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();
|
return TEST_PASS();
|
||||||
}, EvalFlag::RUNTIME_CONSTEVAL)
|
}, EvalFlag::RUNTIME_CONSTEVAL)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue