ArmNN
 22.05
FloorDiv.cpp File Reference

Go to the source code of this file.

Functions

 TEST_SUITE ("TensorflowLiteParser_FloorDiv")
 

Function Documentation

◆ TEST_SUITE()

TEST_SUITE ( "TensorflowLiteParser_FloorDiv"  )

Definition at line 9 of file FloorDiv.cpp.

References ParserFlatbuffersFixture::Setup(), and TEST_CASE_FIXTURE().

10 {
11 struct FloorDivFixture : public ParserFlatbuffersFixture
12 {
13  explicit FloorDivFixture(const std::string& inputShape1,
14  const std::string& inputShape2,
15  const std::string& outputShape,
16  const std::string& inputShapeSignature1,
17  const std::string& inputShapeSignature2,
18  const std::string& outputShapeSignature,
19  const std::string& dataType = "FLOAT32")
20  {
21  m_JsonString = R"(
22  {
23  "version": 3,
24  "operator_codes": [
25  {
26  "deprecated_builtin_code": 90,
27  "version": 2,
28  "builtin_code": "FLOOR_DIV"
29  }
30  ],
31  "subgraphs": [
32  {
33  "tensors": [
34  {
35  "shape": )" + inputShape1 + R"(,
36  "type": )" + dataType + R"(,
37  "buffer": 1,
38  "name": "inputTensor1",
39  "quantization": {
40  "details_type": "NONE",
41  "quantized_dimension": 0
42  },
43  "is_variable": false,
44  "shape_signature": )" + inputShapeSignature1 + R"(,
45  },
46  {
47  "shape": )" + inputShape2 + R"(,
48  "type": )" + dataType + R"(,
49  "buffer": 2,
50  "name": "inputTensor2",
51  "quantization": {
52  "details_type": "NONE",
53  "quantized_dimension": 0
54  },
55  "is_variable": false,
56  "shape_signature": )" + inputShapeSignature2 + R"(,
57  },
58  {
59  "shape": )" + outputShape + R"(,
60  "type": )" + dataType + R"(,
61  "buffer": 3,
62  "name": "outputTensor",
63  "quantization": {
64  "details_type": "NONE",
65  "quantized_dimension": 0
66  },
67  "is_variable": false,
68  "shape_signature": )" + outputShapeSignature + R"(,
69  }
70  ],
71  "inputs": [
72  0,
73  1
74  ],
75  "outputs": [
76  2
77  ],
78  "operators": [
79  {
80  "opcode_index": 0,
81  "inputs": [
82  0,
83  1
84  ],
85  "outputs": [
86  2
87  ],
88  "builtin_options_type": "NONE",
89  "custom_options_format": "FLEXBUFFERS"
90  }
91  ],
92  "name": "main"
93  }
94  ],
95  "description": "MLIR Converted.",
96  "buffers": [ {}, {}, {}, {},
97  {
98  "data": [
99  49,
100  46,
101  49,
102  52,
103  46,
104  48,
105  0,
106  0,
107  0,
108  0,
109  0,
110  0,
111  0,
112  0,
113  0,
114  0
115  ]
116  }
117  ],
118  "metadata": [
119  {
120  "name": "min_runtime_version",
121  "buffer": 4
122  }
123  ],
124  "signature_defs": [
125 
126  ]
127  }
128  )";
129  Setup();
130  }
131 };
132 
133 struct SimpleFloorDivFixture : public FloorDivFixture
134 {
135  SimpleFloorDivFixture() : FloorDivFixture("[ 1, 3, 4 ]", "[ 1, 3, 4 ]", "[ 1, 3, 4 ]",
136  "[ -1, 3, 4 ]", "[ -1, 3, 4 ]", "[ -1, 3, 4 ]") {}
137 };
138 
139 TEST_CASE_FIXTURE(SimpleFloorDivFixture, "ParseFloorDiv")
140 {
141  using armnn::DataType;
142  float Inf = std::numeric_limits<float>::infinity();
143  float NaN = std::numeric_limits<float>::quiet_NaN();
144 
145  RunTest<3, DataType::Float32>(0, {{ "inputTensor1", { 0.0f, 1.0f, 2.0f,
146  3.0f, 4.0f, 5.0f,
147  6.0f, -7.0f, 8.0f,
148  9.0f, 10.0f, -11.0f } },
149  { "inputTensor2", { 0.0f, 0.0f, 4.0f,
150  3.0f, 40.0f, 5.0f,
151  6.0f, 2.0f, 8.0f,
152  9.0f, 10.0f, 11.0f} } },
153  {{ "outputTensor", { NaN, Inf, 0.0f,
154  1.0f, 0.0f, 1.0f,
155  1.0f, -4.0f, 1.0f,
156  1.0f, 1.0f, -1.0f } } });
157 }
158 
159 struct SimpleFloorDivInt32Fixture : public FloorDivFixture
160 {
161  SimpleFloorDivInt32Fixture() : FloorDivFixture("[ 1, 3, 4 ]", "[ 1, 3, 4 ]", "[ 1, 3, 4 ]",
162  "[ -1, 3, 4 ]", "[ -1, 3, 4 ]", "[ -1, 3, 4 ]", "INT32") {}
163 };
164 TEST_CASE_FIXTURE(SimpleFloorDivInt32Fixture, "ParseFloorDivInt32")
165 {
166  using armnn::DataType;
167 
168  RunTest<3, DataType::Signed32>(0, {{ "inputTensor1", { 1, 1, 2,
169  3, 4, 5,
170  6, -7, 8,
171  9, 10, -11 } },
172  { "inputTensor2", { 1, 1, 4,
173  3, 40, 5,
174  6, 2, 8,
175  9, 10, 11} } },
176  {{ "outputTensor", { 1, 1, 0,
177  1, 0, 1,
178  1, -4, 1,
179  1, 1, -1 } } });
180 }
181 
182 
183 struct DynamicFloorDivFixture : public FloorDivFixture
184 {
185  DynamicFloorDivFixture() : FloorDivFixture("[ 1, 3, 4 ]", "[ 1, 3, 4 ]", "[ 1, 3, 4 ]",
186  "[ -1, 3, 4 ]", "[ -1, 3, 4 ]", "[ -1, 3, 4 ]") {}
187 };
188 
189 TEST_CASE_FIXTURE(DynamicFloorDivFixture, "ParseDynamicFloorDiv")
190 {
191  using armnn::DataType;
192  float Inf = std::numeric_limits<float>::infinity();
193  float NaN = std::numeric_limits<float>::quiet_NaN();
194 
195  RunTest<3, DataType::Float32, DataType::Float32>(0, {{ "inputTensor1", { 0.0f, 1.0f, 2.0f,
196  3.0f, 4.0f, 5.0f,
197  6.0f, -7.0f, 8.0f,
198  9.0f, 10.0f, -11.0f } },
199  { "inputTensor2", { 0.0f, 0.0f, 4.0f,
200  3.0f, 40.0f, 5.0f,
201  6.0f, 2.0f, 8.0f,
202  9.0f, 10.0f, 11.0f} } },
203  {{ "outputTensor", { NaN, Inf, 0.0f,
204  1.0f, 0.0f, 1.0f,
205  1.0f, -4.0f, 1.0f,
206  1.0f, 1.0f, -1.0f } } }, true);
207 }
208 
209 }
TEST_CASE_FIXTURE(ClContextControlFixture, "CopyBetweenNeonAndGpu")
DataType
Definition: Types.hpp:48
void Setup(bool testDynamic=true)