| 25 | namespace { |
| 26 | |
| 27 | TEST(OIHW, Smoke) { |
| 28 | OIHW OIHW; |
| 29 | |
| 30 | // Test 4 different versions of setters. |
| 31 | OIHW.i = 1; |
| 32 | ASSERT_TRUE(OIHW.set<Axis::OUTPUT_CHANNELS>(2)); |
| 33 | ASSERT_TRUE(OIHW.set(Axis::HEIGHT, 3)); |
| 34 | ASSERT_TRUE(OIHW.set(3, 4)); |
| 35 | |
| 36 | // Make sure invalid setters return false. |
| 37 | ASSERT_FALSE(OIHW.set(5, 10)); |
| 38 | ASSERT_FALSE(OIHW.set(Axis::CHANNELS, 10)); |
| 39 | ASSERT_FALSE(OIHW.set<Axis::CHANNELS>(10)); |
| 40 | |
| 41 | // Test 4 different versions of getters |
| 42 | EXPECT_EQ(1, OIHW.get(Axis::INPUT_CHANNELS)); |
| 43 | EXPECT_EQ(2, OIHW.o); |
| 44 | EXPECT_EQ(3, OIHW.get(2)); |
| 45 | EXPECT_EQ(4, OIHW.get<Axis::WIDTH>()); |
| 46 | |
| 47 | // Make sure getters that fall outside of a range return invalid axis. |
| 48 | EXPECT_EQ(-1, OIHW.get(5)); |
| 49 | EXPECT_EQ(-1, OIHW.get(Axis::CHANNELS)); |
| 50 | EXPECT_EQ(-1, OIHW.get<Axis::CHANNELS>()); |
| 51 | |
| 52 | // Check axis indices are all correct. |
| 53 | ASSERT_EQ(4, OIHW.size()); |
| 54 | std::vector<Axis> expected = {Axis::OUTPUT_CHANNELS, Axis::INPUT_CHANNELS, |
| 55 | Axis::HEIGHT, Axis::WIDTH}; |
| 56 | for (int i = 0; i < OIHW.size(); ++i) { |
| 57 | Axis axis = OIHW.axis(i); |
| 58 | ASSERT_EQ(expected[i], axis); |
| 59 | ASSERT_EQ(i, OIHW.index(axis)); |
| 60 | } |
| 61 | |
| 62 | // Check equivalent conversions. |
| 63 | OHWI ohwi; |
| 64 | ASSERT_TRUE(ohwi.CopyAllDefinedAxis(OIHW)); |
| 65 | EXPECT_EQ(ohwi.o, OIHW.o); |
| 66 | EXPECT_EQ(ohwi.i, OIHW.i); |
| 67 | EXPECT_EQ(ohwi.h, OIHW.h); |
| 68 | EXPECT_EQ(ohwi.w, OIHW.w); |
| 69 | |
| 70 | ohwi = OHWI(10, 20, 30, 40); |
| 71 | ASSERT_TRUE(OIHW.CopyAllGivenAxis(ohwi)); |
| 72 | EXPECT_EQ(ohwi.o, OIHW.o); |
| 73 | EXPECT_EQ(ohwi.i, OIHW.i); |
| 74 | EXPECT_EQ(ohwi.h, OIHW.h); |
| 75 | EXPECT_EQ(ohwi.w, OIHW.w); |
| 76 | } |
| 77 | |
| 78 | TEST(Layout, Smoke) { |
| 79 | EXPECT_EQ(4, Size<Layout::OIHW>()); |
nothing calls this directly
no test coverage detected