/* * arrayviewtest.cpp * * Created on: Mar 18, 2017 * Author: gregor */ #include #include TEST(ArrayView, NoStrideNoOffset) { int data[10]; for(int i = 0; i < 10; i++) { data[i] = 0; } gltb::ArrayView dataView(data, 0, 0); for(int i = 0; i < 5; i++) { dataView[i] = 1; } for(int i = 0; i < 5; i++) { ASSERT_EQ(data[i], 1); ASSERT_EQ(data[5 + i], 0); } } TEST(ArrayView, StrideNoOffset) { int data[10]; for(int i = 0; i < 10; i++) { data[i] = 0; } gltb::ArrayView dataView(data, 0, 8); for(int i = 0; i < 5; i++) { dataView[i] = 1; } ASSERT_EQ(data[0], 1); ASSERT_EQ(data[1], 0); ASSERT_EQ(data[2], 1); ASSERT_EQ(data[3], 0); ASSERT_EQ(data[4], 1); ASSERT_EQ(data[5], 0); ASSERT_EQ(data[6], 1); ASSERT_EQ(data[7], 0); ASSERT_EQ(data[8], 1); ASSERT_EQ(data[9], 0); } TEST(ArrayView, NoStrideAndOffset) { int data[10]; for(int i = 0; i < 10; i++) { data[i] = 0; } gltb::ArrayView dataView(data, 4, 0); for(int i = 0; i < 5; i++) { dataView[i] = 1; } ASSERT_EQ(data[0], 0); for(int i = 0; i < 5; i++) { ASSERT_EQ(data[1 + i], 1); } ASSERT_EQ(data[6], 0); ASSERT_EQ(data[7], 0); ASSERT_EQ(data[8], 0); ASSERT_EQ(data[9], 0); } TEST(ArrayView, StrideAndOffset) { int data[10]; for(int i = 0; i < 10; i++) { data[i] = 0; } gltb::ArrayView dataView(data, 4, 8); for(int i = 0; i < 4; i++) { dataView[i] = 1; } ASSERT_EQ(data[0], 0); ASSERT_EQ(data[1], 1); ASSERT_EQ(data[2], 0); ASSERT_EQ(data[3], 1); ASSERT_EQ(data[4], 0); ASSERT_EQ(data[5], 1); ASSERT_EQ(data[6], 0); ASSERT_EQ(data[7], 1); ASSERT_EQ(data[8], 0); ASSERT_EQ(data[9], 0); } int main(int argc, char *argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }