• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "ParserFlatbuffersFixture.hpp"
7 
8 TEST_SUITE("TensorflowLiteParser_Shape")
9 {
10 struct ShapeFixture : public ParserFlatbuffersFixture
11 {
ShapeFixtureShapeFixture12     explicit ShapeFixture(const std::string& inputShape,
13                           const std::string& outputShape,
14                           const std::string& inputDataType,
15                           const std::string& outputDataType)
16      {
17         m_JsonString = R"(
18             {
19                 "version": 3,
20                 "operator_codes": [ { "builtin_code": "SHAPE" } ],
21                 "subgraphs": [ {
22                     "tensors": [
23                         {
24                             "shape": )" + inputShape + R"(,
25                             "type": )" + inputDataType + R"(,
26                             "buffer": 0,
27                             "name": "inputTensor",
28                             "quantization": {
29                                 "min": [ 0.0 ],
30                                 "max": [ 255.0 ],
31                                 "scale": [ 1.0 ],
32                                 "zero_point": [ 0 ],
33                             }
34                         },
35                         {
36                             "shape": )" + outputShape + R"(,
37                             "type": )" + outputDataType + R"(,
38                             "buffer": 1,
39                             "name": "outputTensor",
40                             "quantization": {
41                                 "min": [ 0.0 ],
42                                 "max": [ 255.0 ],
43                                 "scale": [ 1.0 ],
44                                 "zero_point": [ 0 ],
45                             }
46                         }
47                     ],
48                     "inputs": [ 0 ],
49                     "outputs": [ 1 ],
50                     "operators": [
51                         {
52                           "opcode_index": 0,
53                           "inputs": [ 0 ],
54                           "outputs": [ 1 ],
55                           "custom_options_format": "FLEXBUFFERS"
56                         }
57                     ],
58                 } ],
59                 "buffers" : [ {}, {} ]
60             }
61         )";
62         SetupSingleInputSingleOutput("inputTensor", "outputTensor");
63     }
64 };
65 
66 
67 struct SimpleShapeFixture : ShapeFixture
68 {
SimpleShapeFixtureSimpleShapeFixture69     SimpleShapeFixture() : ShapeFixture("[ 1, 3, 3, 1 ]",
70                                        "[ 4 ]",
71                                        "INT32",
72                                        "INT32") {}
73 };
74 
75 TEST_CASE_FIXTURE(SimpleShapeFixture, "SimpleShapeFixture")
76 {
77     RunTest<1, armnn::DataType::Signed32>(
78             0,
79             {{"inputTensor", { 1, 1, 1, 1, 1, 1, 1, 1, 1 }}},
80             {{"outputTensor",{ 1, 3, 3, 1 }}});
81 }
82 
83 }