Skip to content

Commit 3569423

Browse files
committed
Furthur refactor tests to reduce complexity
1 parent 8614065 commit 3569423

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

src/ystdlib/containers/test/test_Array.cpp

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#include <algorithm>
2+
#include <concepts>
23
#include <cstddef>
34
#include <ranges>
5+
#include <stdexcept>
46
#include <string>
57
#include <string_view>
68
#include <type_traits>
@@ -80,20 +82,42 @@ TEST_CASE("test_array_empty", "[containers][Array]") {
8082
REQUIRE((arr.begin() == arr.end()));
8183
}
8284

83-
TEST_CASE("test_array_copy_and_move", "[containers][Array]") {
84-
std::vector<int> vec;
85-
for (int i{0}; i < cBufferSize; ++i) {
86-
vec.push_back(i);
85+
TEST_CASE("test_array_reference", "[containers][Array]") {
86+
Array<int> arr(cBufferSize);
87+
for (int idx{0}; idx < cBufferSize; ++idx) {
88+
arr.at(idx) = idx;
89+
}
90+
auto const& arr_const_ref = arr;
91+
for (int idx{0}; idx < cBufferSize; ++idx) {
92+
REQUIRE(arr_const_ref.at(idx) == idx);
8793
}
94+
}
8895

96+
TEST_CASE("test_array_illegal_access", "[containers][Array]") {
97+
Array<int> arr(cBufferSize);
98+
REQUIRE_THROWS_AS(arr.at(-1), std::out_of_range);
99+
REQUIRE_THROWS_AS(arr.at(cBufferSize), std::out_of_range);
100+
}
101+
102+
TEST_CASE("test_array_ranged_copy", "[containers][Array]") {
103+
std::vector<int> vec;
104+
for (int idx{0}; idx < cBufferSize; ++idx) {
105+
vec.push_back(idx);
106+
}
89107
Array<int> arr(cBufferSize);
90108
std::ranges::copy(vec, arr.begin());
91109
REQUIRE(std::ranges::equal(vec, arr));
92-
REQUIRE_THROWS_AS(arr.at(cBufferSize), std::out_of_range);
110+
}
93111

112+
TEST_CASE("test_array_movable", "[containers][Array]") {
113+
Array<int> arr(cBufferSize);
114+
Array<int> reference_array(cBufferSize);
115+
for (int idx{0}; idx < cBufferSize; ++idx) {
116+
arr.at(idx) = idx;
117+
reference_array.at(idx) = idx;
118+
}
94119
auto const arr_moved{std::move(arr)};
95-
REQUIRE(std::ranges::equal(vec, arr_moved));
96-
REQUIRE_THROWS_AS(arr_moved.at(cBufferSize), std::out_of_range);
120+
REQUIRE(std::ranges::equal(reference_array, arr_moved));
97121
}
98122

99123
TEMPLATE_TEST_CASE(

0 commit comments

Comments
 (0)