ArmNN  NotReleased
DeserializePad.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include <boost/test/unit_test.hpp>
8 #include "../Deserializer.hpp"
9 
10 #include <string>
11 
12 BOOST_AUTO_TEST_SUITE(Deserializer)
13 
14 struct PadFixture : public ParserFlatbuffersSerializeFixture
15 {
16  explicit PadFixture(const std::string &inputShape,
17  const std::string &padList,
18  const std::string &outputShape,
19  const std::string &dataType)
20  {
21  m_JsonString = R"(
22  {
23  inputIds: [0],
24  outputIds: [2],
25  layers: [
26  {
27  layer_type: "InputLayer",
28  layer: {
29  base: {
30  layerBindingId: 0,
31  base: {
32  index: 0,
33  layerName: "InputLayer",
34  layerType: "Input",
35  inputSlots: [{
36  index: 0,
37  connection: {sourceLayerIndex:0, outputSlotIndex:0 },
38  }],
39  outputSlots: [{
40  index: 0,
41  tensorInfo: {
42  dimensions: )" + inputShape + R"(,
43  dataType: )" + dataType + R"(
44  }
45  }]
46  }
47  }
48  }
49  },
50  {
51  layer_type: "PadLayer",
52  layer: {
53  base: {
54  index: 1,
55  layerName: "PadLayer",
56  layerType: "Pad",
57  inputSlots: [{
58  index: 0,
59  connection: {sourceLayerIndex:0, outputSlotIndex:0 },
60  }],
61  outputSlots: [{
62  index: 0,
63  tensorInfo: {
64  dimensions: )" + outputShape + R"(,
65  dataType: )" + dataType + R"(
66  }
67  }]
68  },
69  descriptor: {
70  padList: )" + padList + R"(,
71  }
72  }
73  },
74  {
75  layer_type: "OutputLayer",
76  layer: {
77  base:{
78  layerBindingId: 2,
79  base: {
80  index: 2,
81  layerName: "OutputLayer",
82  layerType: "Output",
83  inputSlots: [{
84  index: 0,
85  connection: {sourceLayerIndex:1, outputSlotIndex:0 },
86  }],
87  outputSlots: [{
88  index: 0,
89  tensorInfo: {
90  dimensions: )" + outputShape + R"(,
91  dataType: )" + dataType + R"(
92  },
93  }],
94  }
95  }
96  },
97  }
98  ]
99  }
100  )";
101  SetupSingleInputSingleOutput("InputLayer", "OutputLayer");
102  }
103 };
104 
105 struct SimplePadFixture : PadFixture
106 {
107  SimplePadFixture() : PadFixture("[ 2, 2, 2 ]",
108  "[ 0, 1, 2, 1, 2, 2 ]",
109  "[ 3, 5, 6 ]",
110  "QuantisedAsymm8") {}
111 };
112 
113 BOOST_FIXTURE_TEST_CASE(SimplePadQuantisedAsymm8, SimplePadFixture)
114 {
115  RunTest<3, armnn::DataType::QAsymmU8>(0,
116  {
117  0, 4, 2, 5, 6, 1, 5, 2
118  },
119  {
120  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
121  4, 0, 0, 0, 0, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0,
122  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
123  1, 0, 0, 0, 0, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0,
124  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
125  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
126  });
127 }
128 
void SetupSingleInputSingleOutput(const std::string &inputName, const std::string &outputName)
BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
BOOST_FIXTURE_TEST_CASE(SimplePadQuantisedAsymm8, SimplePadFixture)