// // Copyright © 2019 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include #include #include using namespace armnn; using namespace armnnUtils; BOOST_AUTO_TEST_SUITE(TensorUtilsSuite) BOOST_AUTO_TEST_CASE(ExpandDimsAxis0Test) { armnn::TensorShape inputShape({ 2, 3, 4 }); // Expand dimension 0 armnn::TensorShape outputShape = ExpandDims(inputShape, 0); BOOST_TEST(outputShape.GetNumDimensions() == 4); BOOST_TEST(outputShape[0] == 1); BOOST_TEST(outputShape[1] == 2); BOOST_TEST(outputShape[2] == 3); BOOST_TEST(outputShape[3] == 4); } BOOST_AUTO_TEST_CASE(ExpandDimsAxis1Test) { armnn::TensorShape inputShape({ 2, 3, 4 }); // Expand dimension 1 armnn::TensorShape outputShape = ExpandDims(inputShape, 1); BOOST_TEST(outputShape.GetNumDimensions() == 4); BOOST_TEST(outputShape[0] == 2); BOOST_TEST(outputShape[1] == 1); BOOST_TEST(outputShape[2] == 3); BOOST_TEST(outputShape[3] == 4); } BOOST_AUTO_TEST_CASE(ExpandDimsAxis2Test) { armnn::TensorShape inputShape({ 2, 3, 4 }); // Expand dimension 2 armnn::TensorShape outputShape = ExpandDims(inputShape, 2); BOOST_TEST(outputShape.GetNumDimensions() == 4); BOOST_TEST(outputShape[0] == 2); BOOST_TEST(outputShape[1] == 3); BOOST_TEST(outputShape[2] == 1); BOOST_TEST(outputShape[3] == 4); } BOOST_AUTO_TEST_CASE(ExpandDimsAxis3Test) { armnn::TensorShape inputShape({ 2, 3, 4 }); // Expand dimension 3 armnn::TensorShape outputShape = ExpandDims(inputShape, 3); BOOST_TEST(outputShape.GetNumDimensions() == 4); BOOST_TEST(outputShape[0] == 2); BOOST_TEST(outputShape[1] == 3); BOOST_TEST(outputShape[2] == 4); BOOST_TEST(outputShape[3] == 1); } BOOST_AUTO_TEST_CASE(ExpandDimsNegativeAxis1Test) { armnn::TensorShape inputShape({ 2, 3, 4 }); // Expand dimension -1 armnn::TensorShape outputShape = ExpandDims(inputShape, -1); BOOST_TEST(outputShape.GetNumDimensions() == 4); BOOST_TEST(outputShape[0] == 2); BOOST_TEST(outputShape[1] == 3); BOOST_TEST(outputShape[2] == 4); BOOST_TEST(outputShape[3] == 1); } BOOST_AUTO_TEST_CASE(ExpandDimsNegativeAxis2Test) { armnn::TensorShape inputShape({ 2, 3, 4 }); // Expand dimension -2 armnn::TensorShape outputShape = ExpandDims(inputShape, -2); BOOST_TEST(outputShape.GetNumDimensions() == 4); BOOST_TEST(outputShape[0] == 2); BOOST_TEST(outputShape[1] == 3); BOOST_TEST(outputShape[2] == 1); BOOST_TEST(outputShape[3] == 4); } BOOST_AUTO_TEST_CASE(ExpandDimsNegativeAxis3Test) { armnn::TensorShape inputShape({ 2, 3, 4 }); // Expand dimension -3 armnn::TensorShape outputShape = ExpandDims(inputShape, -3); BOOST_TEST(outputShape.GetNumDimensions() == 4); BOOST_TEST(outputShape[0] == 2); BOOST_TEST(outputShape[1] == 1); BOOST_TEST(outputShape[2] == 3); BOOST_TEST(outputShape[3] == 4); } BOOST_AUTO_TEST_CASE(ExpandDimsNegativeAxis4Test) { armnn::TensorShape inputShape({ 2, 3, 4 }); // Expand dimension -4 armnn::TensorShape outputShape = ExpandDims(inputShape, -4); BOOST_TEST(outputShape.GetNumDimensions() == 4); BOOST_TEST(outputShape[0] == 1); BOOST_TEST(outputShape[1] == 2); BOOST_TEST(outputShape[2] == 3); BOOST_TEST(outputShape[3] == 4); } BOOST_AUTO_TEST_CASE(ExpandDimsInvalidAxisTest) { armnn::TensorShape inputShape({ 2, 3, 4 }); // Invalid expand dimension 4 BOOST_CHECK_THROW(ExpandDims(inputShape, 4), armnn::InvalidArgumentException); } BOOST_AUTO_TEST_CASE(ExpandDimsInvalidNegativeAxisTest) { armnn::TensorShape inputShape({ 2, 3, 4 }); // Invalid expand dimension -5 BOOST_CHECK_THROW(ExpandDims(inputShape, -5), armnn::InvalidArgumentException); } BOOST_AUTO_TEST_SUITE_END()