finished implementing tests in data_access.test
This commit is contained in:
parent
00874526f5
commit
4e448f2f85
|
|
@ -26,6 +26,137 @@ constexpr test_suite tests = define_tests("Data Access")
|
|||
return TEST_PASS();
|
||||
}), 2, int, char, const char *, TestObj);
|
||||
|
||||
return TEST_PASS();
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL)
|
||||
("const_vector::operator[](size_type pos)", []() constexpr {
|
||||
|
||||
REPEAT_FOR_TYPES_N(([]<typename T, std::size_t N, typename ctx>() constexpr {
|
||||
|
||||
cc::const_vector<T, c_arr_len(get_test_param<ctx, "arr">()) + 1> v(get_test_param<ctx, "arr">());
|
||||
const cc::const_vector<T, c_arr_len(get_test_param<ctx, "arr">()) + 1> cv(get_test_param<ctx, "arr">());
|
||||
|
||||
for (int i = 0; i < c_arr_len(get_test_param<ctx, "arr">()); ++i) {
|
||||
ASSERT((v[i] == get_test_param<ctx, "arr">()[i]), ctx);
|
||||
ASSERT((cv[i] == get_test_param<ctx, "arr">()[i]), ctx);
|
||||
}
|
||||
|
||||
v[v.size() / 2] = get_test_param<ctx, "value">();
|
||||
|
||||
ASSERT((v[v.size() / 2] == get_test_param<ctx, "value">()), ctx);
|
||||
|
||||
return TEST_PASS();
|
||||
}), 2, int, char, const char *, TestObj);
|
||||
|
||||
return TEST_PASS();
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL)
|
||||
("const_vector::front()", []() constexpr {
|
||||
|
||||
REPEAT_FOR_TYPES_N(([]<typename T, std::size_t N, typename ctx>() constexpr {
|
||||
|
||||
cc::const_vector<T, c_arr_len(get_test_param<ctx, "arr">()) + 1> v(get_test_param<ctx, "arr">());
|
||||
const cc::const_vector<T, c_arr_len(get_test_param<ctx, "arr">()) + 1> cv(get_test_param<ctx, "arr">());
|
||||
|
||||
ASSERT((v.front() == get_test_param<ctx, "arr">()[0]), ctx);
|
||||
ASSERT((cv.front() == get_test_param<ctx, "arr">()[0]), ctx);
|
||||
|
||||
v.front() = get_test_param<ctx, "value">();
|
||||
ASSERT((v[0] == get_test_param<ctx, "value">()));
|
||||
|
||||
return TEST_PASS();
|
||||
}), 2, int, char, const char *, TestObj);
|
||||
|
||||
return TEST_PASS();
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL)
|
||||
("const_vector::back()", []() constexpr {
|
||||
|
||||
REPEAT_FOR_TYPES_N(([]<typename T, std::size_t N, typename ctx>() constexpr {
|
||||
|
||||
cc::const_vector<T, c_arr_len(get_test_param<ctx, "arr">()) + 1> v(get_test_param<ctx, "arr">());
|
||||
const cc::const_vector<T, c_arr_len(get_test_param<ctx, "arr">()) + 1> cv(get_test_param<ctx, "arr">());
|
||||
|
||||
ASSERT((v.back() == get_test_param<ctx, "arr">()[c_arr_len(get_test_param<ctx, "arr">()) - 1]), ctx);
|
||||
ASSERT((cv.back() == get_test_param<ctx, "arr">()[c_arr_len(get_test_param<ctx, "arr">()) - 1]), ctx);
|
||||
|
||||
v.back() = get_test_param<ctx, "value">();
|
||||
ASSERT((v[v.size() - 1] == get_test_param<ctx, "value">()));
|
||||
|
||||
return TEST_PASS();
|
||||
}), 2, int, char, const char *, TestObj);
|
||||
|
||||
return TEST_PASS();
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL)
|
||||
("const_vector::(c)begin()/(c)end()", []() constexpr {
|
||||
|
||||
REPEAT_FOR_TYPES_N(([]<typename T, std::size_t N, typename ctx>() constexpr {
|
||||
|
||||
cc::const_vector<T, c_arr_len(get_test_param<ctx, "arr">()) + 1> v(get_test_param<ctx, "arr">());
|
||||
const cc::const_vector<T, c_arr_len(get_test_param<ctx, "arr">()) + 1> cv(get_test_param<ctx, "arr">());
|
||||
|
||||
auto v_it = v.begin();
|
||||
for (std::size_t i = 0; v_it != v.end(); ++v_it, ++i) {
|
||||
ASSERT(*v_it == v[i], ctx);
|
||||
*v_it = get_test_param<ctx, "value">();
|
||||
ASSERT((v[i] == get_test_param<ctx, "value">()), ctx);
|
||||
}
|
||||
|
||||
auto v_cit = v.cbegin();
|
||||
for (std::size_t i = 0; v_cit != v.cend(); ++v_cit, ++i) {
|
||||
ASSERT(*v_cit == v[i], ctx);
|
||||
ASSERT(std::is_const_v<std::remove_reference_t<typename std::iterator_traits<decltype(v_cit)>::reference>>, ctx);
|
||||
}
|
||||
|
||||
auto cv_it = cv.begin();
|
||||
for (std::size_t i = 0; cv_it != cv.end(); ++cv_it, ++i) {
|
||||
ASSERT(*cv_it == cv[i], ctx);
|
||||
ASSERT(std::is_const_v<std::remove_reference_t<typename std::iterator_traits<decltype(cv_it)>::reference>>, ctx);
|
||||
}
|
||||
|
||||
auto cv_cit = cv.cbegin();
|
||||
for (std::size_t i = 0; cv_cit != cv.cend(); ++cv_cit, ++i) {
|
||||
ASSERT(*cv_cit == cv[i], ctx);
|
||||
ASSERT(std::is_const_v<std::remove_reference_t<typename std::iterator_traits<decltype(cv_cit)>::reference>>, ctx);
|
||||
}
|
||||
|
||||
return TEST_PASS();
|
||||
}), 2, int, char, const char *, TestObj);
|
||||
|
||||
return TEST_PASS();
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL)
|
||||
("const_vector::(c)rbegin()/(c)rend()", []() constexpr {
|
||||
|
||||
REPEAT_FOR_TYPES_N(([]<typename T, std::size_t N, typename ctx>() constexpr {
|
||||
|
||||
cc::const_vector<T, c_arr_len(get_test_param<ctx, "arr">()) + 1> v(get_test_param<ctx, "arr">());
|
||||
const cc::const_vector<T, c_arr_len(get_test_param<ctx, "arr">()) + 1> cv(get_test_param<ctx, "arr">());
|
||||
|
||||
auto v_it = v.rbegin();
|
||||
for (std::size_t i = v.size() - 1; v_it != v.rend(); ++v_it, --i) {
|
||||
ASSERT(*v_it == v[i], ctx);
|
||||
*v_it = get_test_param<ctx, "value">();
|
||||
ASSERT((v[i] == get_test_param<ctx, "value">()), ctx);
|
||||
}
|
||||
|
||||
auto v_cit = v.crbegin();
|
||||
for (std::size_t i = v.size() - 1; v_cit != v.crend(); ++v_cit, --i) {
|
||||
ASSERT(*v_cit == v[i], ctx);
|
||||
ASSERT(std::is_const_v<std::remove_reference_t<typename std::iterator_traits<decltype(v_cit)>::reference>>, ctx);
|
||||
}
|
||||
|
||||
auto cv_it = cv.rbegin();
|
||||
for (std::size_t i = v.size() - 1; cv_it != cv.rend(); ++cv_it, --i) {
|
||||
ASSERT(*cv_it == cv[i], ctx);
|
||||
ASSERT(std::is_const_v<std::remove_reference_t<typename std::iterator_traits<decltype(cv_it)>::reference>>, ctx);
|
||||
}
|
||||
|
||||
auto cv_cit = cv.crbegin();
|
||||
for (std::size_t i = v.size() - 1; cv_cit != cv.crend(); ++cv_cit, --i) {
|
||||
ASSERT(*cv_cit == cv[i], ctx);
|
||||
ASSERT(std::is_const_v<std::remove_reference_t<typename std::iterator_traits<decltype(cv_cit)>::reference>>, ctx);
|
||||
}
|
||||
|
||||
return TEST_PASS();
|
||||
}), 2, int, char, const char *, TestObj);
|
||||
|
||||
return TEST_PASS();
|
||||
}, EvalFlag::RUNTIME_CONSTEVAL);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue