6 #include <boost/test/unit_test.hpp> 8 #include "../TfLiteParser.hpp" 17 explicit MultiplicationFixture(
const std::string & inputShape1,
18 const std::string & inputShape2,
19 const std::string & outputShape,
20 const std::string & activation=
"NONE")
25 "operator_codes": [ { "builtin_code": "MUL" } ], 29 "shape": )" + inputShape1 + R"(, 32 "name": "inputTensor1", 41 "shape": )" + inputShape2 + R"(, 44 "name": "inputTensor2", 53 "shape": )" + outputShape + R"( , 56 "name": "outputTensor", 72 "builtin_options_type": "MulOptions", 74 "fused_activation_function": )" + activation + R"( 76 "custom_options_format": "FLEXBUFFERS" 90 struct SimpleMultiplicationFixture :
public MultiplicationFixture
92 SimpleMultiplicationFixture() : MultiplicationFixture(
"[ 1, 2, 2, 3 ]",
"[ 1, 2, 2, 3 ]",
"[ 1, 2, 2, 3 ]") {}
98 RunTest<4, DataType::Float32>(0, {{
"inputTensor1", { 0.0f, 1.0f, 2.0f,
101 9.0f, 10.0f, 11.0f } },
102 {
"inputTensor2", { 1.0f, 1.0f, 1.0f,
105 5.0f, 5.0f, 5.0f} } },
106 {{
"outputTensor", { 0.0f, 1.0f, 2.0f,
109 45.0f, 50.0f, 55.0f } } });
112 struct MultiplicationBroadcastFixture4D1D :
public MultiplicationFixture
114 MultiplicationBroadcastFixture4D1D() : MultiplicationFixture(
"[ 1, 2, 2, 3 ]",
"[ 1 ]",
"[ 1, 2, 2, 3 ]") {}
120 RunTest<4, DataType::Float32>(0, {{
"inputTensor1", { 0.0f, 1.0f, 2.0f,
123 9.0f, 10.0f, 11.0f } },
124 {
"inputTensor2", { 5.0f } } },
125 {{
"outputTensor", { 0.0f, 5.0f, 10.0f,
128 45.0f, 50.0f, 55.0f } } });
131 struct MultiplicationBroadcastFixture1D4D :
public MultiplicationFixture
133 MultiplicationBroadcastFixture1D4D() : MultiplicationFixture(
"[ 1 ]",
"[ 1, 2, 2, 3 ]",
"[ 1, 2, 2, 3 ]") {}
139 RunTest<4, DataType::Float32>(0, {{
"inputTensor1", { 3.0f } },
140 {
"inputTensor2", { 0.0f, 1.0f, 2.0f,
143 9.0f, 10.0f, 11.0f } } },
144 {{
"outputTensor", { 0.0f, 3.0f, 6.0f,
147 27.0f, 30.0f, 33.0f } } });
BOOST_FIXTURE_TEST_CASE(ParseMultiplication, SimpleMultiplicationFixture)
BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)