From e767f5b0124be8527fc385f0d7ca679889a20839 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 28 Jul 2024 22:00:36 +0200 Subject: [PATCH] implemented context changes in assignment.test --- .../const_vector_assignment.test.cpp | 151 +++++++++--------- 1 file changed, 75 insertions(+), 76 deletions(-) diff --git a/test/const_vector/const_vector_assignment.test.cpp b/test/const_vector/const_vector_assignment.test.cpp index c10e410..eb619f1 100644 --- a/test/const_vector/const_vector_assignment.test.cpp +++ b/test/const_vector/const_vector_assignment.test.cpp @@ -3,24 +3,26 @@ #include #include "test_params.h" +#include + constexpr test_suite tests = define_tests("Assignment") ("const_vector::operator=(const const_vector& other)", []() constexpr { - REPEAT_FOR_TYPES_N(([]() { + REPEAT_FOR_TYPES_N(([]() { - cc::const_vector original(Ctx::template value<"arr">); + cc::const_vector original(get_test_param()); decltype(original) v1; - cc::const_vector()> v2; - cc::const_vector) - 1> too_small; + cc::const_vector()> v2; + cc::const_vector()) - 1> too_small; v1 = original; v2 = original; ASSERT_TYPE_NUM_THROWS((too_small = original), std::invalid_argument, T, N); - ASSERT_TYPE_NUM(std::ranges::equal(v1, Ctx::template value<"arr">), T, N); - ASSERT_TYPE_NUM(std::ranges::equal(v2, Ctx::template value<"arr">), T, N); - ASSERT_TYPE_NUM(std::ranges::equal(original, Ctx::template value<"arr">), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v1, get_test_param()), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v2, get_test_param()), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(original, get_test_param()), T, N); return TEST_PASS(); }), 2, int, char, const char *, TestObj); @@ -29,22 +31,22 @@ constexpr test_suite tests = define_tests("Assignment") }, EvalFlag::RUNTIME_CONSTEVAL) ("const_vector::operator=(const_vector&& other)", []() constexpr { - REPEAT_FOR_TYPES_N(([]() { + REPEAT_FOR_TYPES_N(([]() { - cc::const_vector original1(Ctx::template value<"arr">); - cc::const_vector original2(Ctx::template value<"arr">); - cc::const_vector original3(Ctx::template value<"arr">); + cc::const_vector original1(get_test_param()); + cc::const_vector original2(get_test_param()); + cc::const_vector original3(get_test_param()); decltype(original1) v1; - cc::const_vector> v2; - cc::const_vector) - 1> too_small; + cc::const_vector()> v2; + cc::const_vector()) - 1> too_small; v1 = force_move(original1); v2 = force_move(original2); ASSERT_TYPE_NUM_THROWS((too_small = force_move(original3)), std::invalid_argument, T, N); - ASSERT_TYPE_NUM(std::ranges::equal(v1, Ctx::template value<"arr">), T, N); - ASSERT_TYPE_NUM(std::ranges::equal(v2, Ctx::template value<"arr">), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v1, get_test_param()), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v2, get_test_param()), T, N); return TEST_PASS(); }), 2, int, char, const char *, TestObj); @@ -53,22 +55,22 @@ constexpr test_suite tests = define_tests("Assignment") }, EvalFlag::RUNTIME_CONSTEVAL) ("const_vector::operator=(const value_type (&array)[])", []() constexpr { - REPEAT_FOR_TYPES_N(([]() { + REPEAT_FOR_TYPES_N(([]() { - std::remove_cvref_t)> arr = {}; - std::copy(std::begin(Ctx::template value<"arr">), std::end(Ctx::template value<"arr">), std::begin(arr)); + std::remove_cvref_t())> arr = {}; + std::copy(std::begin(get_test_param()), std::end(get_test_param()), std::begin(arr)); cc::const_vector v1; - cc::const_vector> v2; - cc::const_vector) - 1> too_small; + cc::const_vector()> v2; + cc::const_vector()) - 1> too_small; v1 = arr; v2 = arr; ASSERT_TYPE_NUM_THROWS((too_small = arr), std::invalid_argument, T, N); - ASSERT_TYPE_NUM(std::ranges::equal(v1, Ctx::template value<"arr">), T, N); - ASSERT_TYPE_NUM(std::ranges::equal(v2, Ctx::template value<"arr">), T, N); - ASSERT_TYPE_NUM(std::ranges::equal(arr, Ctx::template value<"arr">), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v1, get_test_param()), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v2, get_test_param()), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(arr, get_test_param()), T, N); return TEST_PASS(); }), 2, int, char, const char *, TestObj); @@ -77,18 +79,18 @@ constexpr test_suite tests = define_tests("Assignment") }, EvalFlag::RUNTIME_CONSTEVAL) ("const_vector::operator=(std::initializer_list values)", []() constexpr { - REPEAT_FOR_TYPES_N(([]() { + REPEAT_FOR_TYPES_N(([]() { - cc::const_vector.size()> v1; - cc::const_vector> v2; - cc::const_vector.size() - 1> too_small; + cc::const_vector().size()> v1; + cc::const_vector()> v2; + cc::const_vector().size() - 1> too_small; - v1 = test_params<"ilist", Ctx>; - v2 = test_params<"ilist", Ctx>; - ASSERT_TYPE_NUM_THROWS((too_small = test_params<"ilist", Ctx>), std::invalid_argument, T, N); + v1 = get_test_param(); + v2 = get_test_param(); + ASSERT_TYPE_NUM_THROWS((too_small = get_test_param()), std::invalid_argument, T, N); - ASSERT_TYPE_NUM(std::ranges::equal(v1, test_params<"ilist", Ctx>), T, N); - ASSERT_TYPE_NUM(std::ranges::equal(v2, test_params<"ilist", Ctx>), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v1, get_test_param()), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v2, get_test_param()), T, N); return TEST_PASS(); }), 2, int, char, const char *, TestObj); @@ -98,12 +100,12 @@ constexpr test_suite tests = define_tests("Assignment") ("const_vector::assign(size_type count, const value_type& value)", []() constexpr { - REPEAT_FOR_TYPES_N(([]() constexpr { + REPEAT_FOR_TYPES_N(([]() constexpr { - std::remove_cvref_t)> value = test_params<"value", Ctx>; + auto value = make_copy(get_test_param()); - cc::const_vector v1(test_params<"arr", Ctx>); - cc::const_vector v2(test_params<"arr", Ctx>); + cc::const_vector v1(get_test_param()); + cc::const_vector v2(get_test_param()); auto count1 = v1.size(); auto count2 = v2.size() / 2; @@ -116,63 +118,60 @@ constexpr test_suite tests = define_tests("Assignment") ASSERT_TYPE_NUM(std::ranges::all_of(v1, [value](auto&& e) { return e == value; }), T, N); ASSERT_TYPE_NUM(std::ranges::all_of(v1, [value](auto&& e) { return e == value; }), T, N); - ASSERT_TYPE_NUM((value == test_params<"value", Ctx>), T, N); + ASSERT_TYPE_NUM((value == get_test_param()), T, N); return TEST_PASS(); }), 2, int, char, const char*, TestObj); return TEST_PASS(); }, EvalFlag::RUNTIME_CONSTEVAL) - /*("const_vector::assign(InputIt first, InputIt last)", []() constexpr { + ("const_vector::assign(InputIt first, InputIt last)", []() constexpr { - REPEAT_FOR_TYPES_N(([]() constexpr { - constexpr std::size_t N = n+1; - cc::const_vector::template arr_len()> v1; - cc::const_vector::template il_len()> v2; - cc::const_vector::template il_len()> v3; - cc::const_vector::template arr_len() - 1> v4; + REPEAT_FOR_TYPES_N(([]() constexpr { - std::vector container = test_defs::get::template i_list; + cc::const_vector())> v1; + cc::const_vector()> v2; + cc::const_vector().size()> v3; + cc::const_vector()) - 1> too_small; - v1.assign(std::begin(test_defs::get::template arr), std::end(test_defs::get::template arr)); - v2.assign(container.begin(), container.end()); - v3.assign(container.begin(), std::next(container.begin(), test_defs::get::template il_len() / 2)); + std::vector container = get_test_param(); + + v1.assign(std::begin(get_test_param()), std::end(get_test_param())); + v2.assign(std::begin(get_test_param()), std::end(get_test_param())); + v3.assign(container.begin(), container.end()); ASSERT_TYPE_NUM_THROWS( - (v4.assign(std::begin(test_defs::get::template arr), - std::end(test_defs::get::template arr))), std::invalid_argument, T, N); + (too_small.assign(std::begin(get_test_param()), + std::end(get_test_param()))), std::invalid_argument, T, N); - ASSERT_TYPE_NUM_VEC_ARR_EQ(v1, test_defs::get::template arr, T, N); - ASSERT_TYPE_NUM(v1.size() == test_defs::get::template arr_len(), T, N); - ASSERT_TYPE_NUM_VEC_ARR_EQ(v2, container, T, N); - ASSERT_TYPE_NUM(v2.size() == container.size(), T, N); - ASSERT_TYPE_NUM_VEC_ARR_EQ(v3, container, T, N); - ASSERT_TYPE_NUM(v3.size() == container.size() / 2, T, N); - - return TEST_PASS(); - }), 3, int, char, const char *, TestStruct); - - return TEST_PASS(); - }, EvalFlag::RUNTIME_CONSTEVAL) - ("const_vector::assign(std::initializer_list values)", []() constexpr { - - REPEAT_FOR_TYPES_N(([]() constexpr { - - cc::const_vector).size()> v1; - cc::const_vector).size() - 1> v2; - - v1.assign(test_params<"ilist", Ctx>); - - ASSERT_TYPE_NUM_VEC_ARR_EQ(v1, (test_params<"ilist", Ctx>), T, N); - ASSERT_TYPE_NUM((v1.size() == test_params<"ilist", Ctx>.size()), T, N); - - ASSERT_TYPE_NUM_THROWS(v2.assign(test_params<"ilist", Ctx>), std::invalid_argument, T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v1, get_test_param()), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v2, get_test_param()), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(v3, container), T, N); + ASSERT_TYPE_NUM(std::ranges::equal(container, get_test_param()), T, N); return TEST_PASS(); }), 2, int, char, const char *, TestObj); return TEST_PASS(); - }, EvalFlag::RUNTIME_CONSTEVAL)*/; + }, EvalFlag::RUNTIME_CONSTEVAL) + ("const_vector::assign(std::initializer_list values)", []() constexpr { + + REPEAT_FOR_TYPES_N(([]() constexpr { + + cc::const_vector().size()> v; + cc::const_vector().size() - 1> too_small; + + v.assign(get_test_param()); + + ASSERT_TYPE_NUM(std::ranges::equal(v, get_test_param()), T, N); + + ASSERT_TYPE_NUM_THROWS(too_small.assign(get_test_param()), std::invalid_argument, T, N); + + return TEST_PASS(); + }), 2, int, char, const char *, TestObj); + + return TEST_PASS(); + }, EvalFlag::RUNTIME_CONSTEVAL); int main() { return tests.run();