| 24 | #include <gtest/gtest.h> |
| 25 | |
| 26 | TEST(CanonicalShapeInferenceRuleTest, minimal) |
| 27 | { |
| 28 | // Create a simple identity network, which takes Tensor<1x2x3x4> as input. |
| 29 | GraphTestcase<GraphCode::Identity> testcase{1, 2, 3, 4}; |
| 30 | |
| 31 | // Run Inference |
| 32 | loco::CanonicalShapeInferenceRule rule; |
| 33 | |
| 34 | loco::apply(&rule).to(testcase.graph()); |
| 35 | |
| 36 | // Verify! |
| 37 | ASSERT_TRUE(loco::shape_known(testcase.push_node)); |
| 38 | ASSERT_EQ(loco::Domain::Tensor, loco::shape_get(testcase.push_node).domain()); |
| 39 | ASSERT_EQ(4, loco::shape_get(testcase.push_node).as<loco::TensorShape>().rank()); |
| 40 | ASSERT_EQ(1, loco::shape_get(testcase.push_node).as<loco::TensorShape>().dim(0)); |
| 41 | ASSERT_EQ(2, loco::shape_get(testcase.push_node).as<loco::TensorShape>().dim(1)); |
| 42 | ASSERT_EQ(3, loco::shape_get(testcase.push_node).as<loco::TensorShape>().dim(2)); |
| 43 | ASSERT_EQ(4, loco::shape_get(testcase.push_node).as<loco::TensorShape>().dim(3)); |
| 44 | } |
| 45 | |
| 46 | TEST(CanonicalShapeInferenceRuleTest, const_gen) |
| 47 | { |
nothing calls this directly
no test coverage detected