blob: d24740b762eab844b7dcdfc6572269851a32d3a9 [file] [log] [blame]
Narumol Prangnawarat02807852019-09-11 16:43:09 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
Narumol Prangnawarat02807852019-09-11 16:43:09 +01006#include <armnn/Types.hpp>
7
Matteo Martincighe011d202019-11-28 11:35:47 +00008#include <armnnUtils/TensorUtils.hpp>
9
Narumol Prangnawarat02807852019-09-11 16:43:09 +010010#include <boost/test/unit_test.hpp>
11
12using namespace armnn;
13using namespace armnnUtils;
14
15BOOST_AUTO_TEST_SUITE(TensorUtilsSuite)
16
17BOOST_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
30BOOST_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
43BOOST_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
56BOOST_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
69BOOST_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
82BOOST_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
95BOOST_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
108BOOST_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
121BOOST_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
129BOOST_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
137BOOST_AUTO_TEST_SUITE_END()