#include #include #include #include "Service/SeArray.hpp" using namespace Chaos::Service; TEST(SeArrayTests, InitializationTest) { { SeArray arr; for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(0, arr[i]); } } { SeArray arr; for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(0, arr[i]); } } { SeArray arr; for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(0, arr[i]); } } } TEST(SeArrayTests, EraseTest) { { SeArray arr; for (size_t i = 0; i < arr.Size(); ++i) { arr[i] = 1; } for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(1, arr[i]); } arr.Erase(); for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(0, arr[i]); } } { SeArray arr; for (size_t i = 0; i < arr.Size(); ++i) { arr[i] = 15; } for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(15, arr[i]); } arr.Erase(); for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(0, arr[i]); } } { SeArray arr; for (size_t i = 0; i < arr.Size(); ++i) { arr[i] = -1; } for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(-1, arr[i]); } arr.Erase(); for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(0, arr[i]); } } } TEST(SeArrayTests, SubscriptOperatorTest) { SeArray arr; arr[0] = 10; ASSERT_EQ(10, arr[0]); arr[0] = 7; ASSERT_EQ(7, arr[0]); arr[arr.Size() - 1] = 99; ASSERT_EQ(99, arr[arr.Size() - 1]); for (int32_t i = 0; i < arr.Size(); ++i) { arr[i] = i; } for (int32_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(i, arr[i]); } const SeArray & arrRef = arr; for (int32_t i = 0; i < arrRef.Size(); ++i) { ASSERT_EQ(i, arrRef[i]); } } TEST(SeArrayTests, IteratorsTest) { SeArray arr; ASSERT_EQ(arr.Size(), std::distance(arr.Begin(), arr.End())); for (auto it = arr.Begin(); it != arr.End(); ++it) { ASSERT_EQ(0, *it); } { int32_t counter = 0; for (auto it = arr.Begin(); it != arr.End(); ++it) { *it = counter++; } counter = 0; for (auto it = arr.Begin(); it != arr.End(); ++it) { ASSERT_EQ(counter++, *it); } } { int32_t counter = 0; for (auto it = arr.Begin(); it != arr.End(); ++it) { *it = arr.Size() - 1 - counter++; } counter = 0; for (auto it = std::make_reverse_iterator(arr.End()); it != std::make_reverse_iterator(arr.Begin()); ++it) { ASSERT_EQ(counter++, *it); } } { int32_t counter = 0; for (auto it = arr.Begin(); it != arr.End(); ++it) { *it = counter++; } counter = 0; const SeArray & arrRef = arr; for (auto it = arrRef.Begin(); it != arrRef.End(); ++it) { ASSERT_EQ(counter++, *it); } } } TEST(SeArrayTests, SizeTest) { { constexpr size_t SIZE = 10; SeArray arr; ASSERT_EQ(SIZE, arr.Size()); } { constexpr size_t SIZE = 20; SeArray arr; ASSERT_EQ(SIZE, arr.Size()); } { constexpr size_t SIZE = 237; SeArray arr; ASSERT_EQ(SIZE, arr.Size()); } { constexpr size_t SIZE = 100; SeArray arr; ASSERT_EQ(SIZE, arr.Size()); arr.Erase(); ASSERT_EQ(SIZE, arr.Size()); } } TEST(SeArrayTests, FillTest) { SeArray arr; for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(0, arr[i]); } arr.Fill(112); for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(112, arr[i]); } arr.Fill(-3); for (size_t i = 0; i < arr.Size(); ++i) { ASSERT_EQ(-3, arr[i]); } }