#include #include "array.h" #include TEST(ArrayTest, Append) { array arr; int SIZE = 10 * 1000; EXPECT_EQ(arr.getLength(), 0); // First try inserting sorted ints for(int i=0; i < SIZE; i++) { arr.append(i); } EXPECT_EQ(arr.getLength(), SIZE); for(int i=0; i < SIZE; i++) { EXPECT_EQ(arr.at(i), i); EXPECT_EQ(arr.indexOf(i), i); EXPECT_EQ(arr.contains(i), true); } EXPECT_EQ(arr.contains(SIZE), false); EXPECT_EQ(arr.indexOf(SIZE), SIZE); EXPECT_EQ(arr.indexOf(SIZE+1), SIZE); // Insert in unsorted fashion array arr2; std::vector unsorted; for(int i=0; i < SIZE; i++) { uint32_t r = (uint32_t) rand(); unsorted.push_back(r); arr2.append(r); } EXPECT_EQ(arr2.getLength(), SIZE); for(int i=0; i < SIZE; i++) { uint32_t value = unsorted.at(i); EXPECT_EQ(arr2.at(i), value); } } TEST(ArrayTest, InsertValues) { std::vector eles = {10, 1, 4, 5, 7}; array arr; for(size_t i=0; i < eles.size(); i++) { arr.append(eles[i]); } uint32_t insert_arr[2] = {2, 3}; arr.insert(2, insert_arr, 2); eles = {10, 1, 2, 3, 4, 5, 7}; for(size_t i=0; i < eles.size(); i++) { ASSERT_EQ(eles[i], arr.at(i)); } uint32_t insert_arr2[2] = {20, 25}; arr.insert(6, insert_arr2, 2); eles = {10, 1, 2, 3, 4, 5, 20, 25, 7}; for(size_t i=0; i < eles.size(); i++) { ASSERT_EQ(eles[i], arr.at(i)); } } TEST(ArrayTest, Uncompress) { const size_t SIZE = 10*1000; array unsorted_arr; std::vector unsorted; for(size_t i=0; i unsorted; // try removing from empty array arr.append(100); arr.remove_index(0, 1); arr.contains(100); arr.remove_index(0, 1); for(size_t i=0; i