diff options
Diffstat (limited to 'src/armnnUtils/test')
-rw-r--r-- | src/armnnUtils/test/TensorUtilsTest.cpp | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/src/armnnUtils/test/TensorUtilsTest.cpp b/src/armnnUtils/test/TensorUtilsTest.cpp new file mode 100644 index 0000000000..a903b63f83 --- /dev/null +++ b/src/armnnUtils/test/TensorUtilsTest.cpp @@ -0,0 +1,137 @@ +// +// Copyright © 2019 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include <TensorUtils.hpp> + +#include <armnn/Types.hpp> + +#include <boost/test/unit_test.hpp> + +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() |