ArmNN
 20.08
TensorUtilsTest.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2019 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include <armnn/Types.hpp>
7 
9 
10 #include <boost/test/unit_test.hpp>
11 
12 using namespace armnn;
13 using namespace armnnUtils;
14 
15 BOOST_AUTO_TEST_SUITE(TensorUtilsSuite)
16 
17 BOOST_AUTO_TEST_CASE(ExpandDimsAxis0Test)
18 {
19  armnn::TensorShape inputShape({ 2, 3, 4 });
20 
21  // Expand dimension 0
22  armnn::TensorShape outputShape = ExpandDims(inputShape, 0);
23  BOOST_TEST(outputShape.GetNumDimensions() == 4);
24  BOOST_TEST(outputShape[0] == 1);
25  BOOST_TEST(outputShape[1] == 2);
26  BOOST_TEST(outputShape[2] == 3);
27  BOOST_TEST(outputShape[3] == 4);
28 }
29 
30 BOOST_AUTO_TEST_CASE(ExpandDimsAxis1Test)
31 {
32  armnn::TensorShape inputShape({ 2, 3, 4 });
33 
34  // Expand dimension 1
35  armnn::TensorShape outputShape = ExpandDims(inputShape, 1);
36  BOOST_TEST(outputShape.GetNumDimensions() == 4);
37  BOOST_TEST(outputShape[0] == 2);
38  BOOST_TEST(outputShape[1] == 1);
39  BOOST_TEST(outputShape[2] == 3);
40  BOOST_TEST(outputShape[3] == 4);
41 }
42 
43 BOOST_AUTO_TEST_CASE(ExpandDimsAxis2Test)
44 {
45  armnn::TensorShape inputShape({ 2, 3, 4 });
46 
47  // Expand dimension 2
48  armnn::TensorShape outputShape = ExpandDims(inputShape, 2);
49  BOOST_TEST(outputShape.GetNumDimensions() == 4);
50  BOOST_TEST(outputShape[0] == 2);
51  BOOST_TEST(outputShape[1] == 3);
52  BOOST_TEST(outputShape[2] == 1);
53  BOOST_TEST(outputShape[3] == 4);
54 }
55 
56 BOOST_AUTO_TEST_CASE(ExpandDimsAxis3Test)
57 {
58  armnn::TensorShape inputShape({ 2, 3, 4 });
59 
60  // Expand dimension 3
61  armnn::TensorShape outputShape = ExpandDims(inputShape, 3);
62  BOOST_TEST(outputShape.GetNumDimensions() == 4);
63  BOOST_TEST(outputShape[0] == 2);
64  BOOST_TEST(outputShape[1] == 3);
65  BOOST_TEST(outputShape[2] == 4);
66  BOOST_TEST(outputShape[3] == 1);
67 }
68 
69 BOOST_AUTO_TEST_CASE(ExpandDimsNegativeAxis1Test)
70 {
71  armnn::TensorShape inputShape({ 2, 3, 4 });
72 
73  // Expand dimension -1
74  armnn::TensorShape outputShape = ExpandDims(inputShape, -1);
75  BOOST_TEST(outputShape.GetNumDimensions() == 4);
76  BOOST_TEST(outputShape[0] == 2);
77  BOOST_TEST(outputShape[1] == 3);
78  BOOST_TEST(outputShape[2] == 4);
79  BOOST_TEST(outputShape[3] == 1);
80 }
81 
82 BOOST_AUTO_TEST_CASE(ExpandDimsNegativeAxis2Test)
83 {
84  armnn::TensorShape inputShape({ 2, 3, 4 });
85 
86  // Expand dimension -2
87  armnn::TensorShape outputShape = ExpandDims(inputShape, -2);
88  BOOST_TEST(outputShape.GetNumDimensions() == 4);
89  BOOST_TEST(outputShape[0] == 2);
90  BOOST_TEST(outputShape[1] == 3);
91  BOOST_TEST(outputShape[2] == 1);
92  BOOST_TEST(outputShape[3] == 4);
93 }
94 
95 BOOST_AUTO_TEST_CASE(ExpandDimsNegativeAxis3Test)
96 {
97  armnn::TensorShape inputShape({ 2, 3, 4 });
98 
99  // Expand dimension -3
100  armnn::TensorShape outputShape = ExpandDims(inputShape, -3);
101  BOOST_TEST(outputShape.GetNumDimensions() == 4);
102  BOOST_TEST(outputShape[0] == 2);
103  BOOST_TEST(outputShape[1] == 1);
104  BOOST_TEST(outputShape[2] == 3);
105  BOOST_TEST(outputShape[3] == 4);
106 }
107 
108 BOOST_AUTO_TEST_CASE(ExpandDimsNegativeAxis4Test)
109 {
110  armnn::TensorShape inputShape({ 2, 3, 4 });
111 
112  // Expand dimension -4
113  armnn::TensorShape outputShape = ExpandDims(inputShape, -4);
114  BOOST_TEST(outputShape.GetNumDimensions() == 4);
115  BOOST_TEST(outputShape[0] == 1);
116  BOOST_TEST(outputShape[1] == 2);
117  BOOST_TEST(outputShape[2] == 3);
118  BOOST_TEST(outputShape[3] == 4);
119 }
120 
121 BOOST_AUTO_TEST_CASE(ExpandDimsInvalidAxisTest)
122 {
123  armnn::TensorShape inputShape({ 2, 3, 4 });
124 
125  // Invalid expand dimension 4
126  BOOST_CHECK_THROW(ExpandDims(inputShape, 4), armnn::InvalidArgumentException);
127 }
128 
129 BOOST_AUTO_TEST_CASE(ExpandDimsInvalidNegativeAxisTest)
130 {
131  armnn::TensorShape inputShape({ 2, 3, 4 });
132 
133  // Invalid expand dimension -5
134  BOOST_CHECK_THROW(ExpandDims(inputShape, -5), armnn::InvalidArgumentException);
135 }
136 
BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
Copyright (c) 2020 ARM Limited.
armnn::TensorShape ExpandDims(const armnn::TensorShape &tensorShape, int axis)
Definition: TensorUtils.cpp:85
BOOST_AUTO_TEST_CASE(CheckConvolution2dLayer)
BOOST_AUTO_TEST_SUITE_END()