blob: 7aceb7b48c0975bb9d2933aac658a8b5b6986250 [file] [log] [blame]
Conor Kennedy76277882019-02-26 08:29:54 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include <boost/test/unit_test.hpp>
7#include "ParserFlatbuffersSerializeFixture.hpp"
Finn Williams85d36712021-01-26 22:30:06 +00008#include <armnnDeserializer/IDeserializer.hpp>
Conor Kennedy76277882019-02-26 08:29:54 +00009
10#include <string>
Conor Kennedy76277882019-02-26 08:29:54 +000011
12BOOST_AUTO_TEST_SUITE(DeserializeParser)
13
14struct ConstantAddFixture : public ParserFlatbuffersSerializeFixture
15{
16 explicit ConstantAddFixture(const std::string & shape,
17 const std::string & constTensorDatatype,
18 const std::string & constData,
19 const std::string & dataType)
20 {
21 m_JsonString = R"(
22 {
23 inputIds: [0],
24 outputIds: [3],
25 layers: [
26 {
27 layer_type: "InputLayer",
28 layer: {
29 base: {
30 layerBindingId: 0,
31 base: {
32 index: 0,
33 layerName: "InputLayer1",
34 layerType: "Input",
35 inputSlots: [{
36 index: 0,
37 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
38 }],
39 outputSlots: [ {
40 index: 0,
41 tensorInfo: {
42 dimensions: )" + shape + R"(,
43 dataType: )" + dataType + R"(
44 },
45 }],
46 },}},
47 },
48 {
49 layer_type: "ConstantLayer",
50 layer: {
51 base: {
52 index:1,
53 layerName: "ConstantLayer",
54 layerType: "Constant",
55 outputSlots: [ {
56 index: 0,
57 tensorInfo: {
58 dimensions: )" + shape + R"(,
59 dataType: )" + dataType + R"(,
60 },
61 }],
62 inputSlots: [{
63 index: 0,
64 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
65 }],
66 },
67 input: {
68 info: {
69 dimensions: )" + shape + R"(,
70 dataType: )" + dataType + R"(
71 },
72 data_type: )" + constTensorDatatype + R"(,
73 data: {
74 data: )" + constData + R"(,
75 } }
76 },
77 },
78 {
79 layer_type: "AdditionLayer",
80 layer : {
81 base: {
82 index:2,
83 layerName: "AdditionLayer",
84 layerType: "Addition",
85 inputSlots: [
86 {
87 index: 0,
88 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
89 },
90 {
91 index: 1,
92 connection: {sourceLayerIndex:1, outputSlotIndex:0 },
93 }
94 ],
95 outputSlots: [ {
96 index: 0,
97 tensorInfo: {
98 dimensions: )" + shape + R"(,
99 dataType: )" + dataType + R"(
100 },
101 }],
102 }},
103 },
104 {
105 layer_type: "OutputLayer",
106 layer: {
107 base:{
108 layerBindingId: 0,
109 base: {
110 index: 3,
111 layerName: "OutputLayer",
112 layerType: "Output",
113 inputSlots: [{
114 index: 0,
115 connection: {sourceLayerIndex:2, outputSlotIndex:0 },
116 }],
117 outputSlots: [ {
118 index: 0,
119 tensorInfo: {
120 dimensions: )" + shape + R"(,
121 dataType: )" + dataType + R"(
122 },
123 }],
124 }}},
125 }]
126 }
127 )";
128 SetupSingleInputSingleOutput("InputLayer1", "OutputLayer");
129 }
130};
131
132struct SimpleConstantAddFixture : ConstantAddFixture
133{
134 SimpleConstantAddFixture()
135 : ConstantAddFixture("[ 2, 3 ]", // shape
136 "ByteData", // constDataType
137 "[ 1, 2, 3, 4, 5, 6 ]", // constData
138 "QuantisedAsymm8") // datatype
139
140 {}
141};
142
143BOOST_FIXTURE_TEST_CASE(SimpleConstantAddQuantisedAsymm8, SimpleConstantAddFixture)
144{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000145 RunTest<2, armnn::DataType::QAsymmU8>(
Conor Kennedy76277882019-02-26 08:29:54 +0000146 0,
147 { 1, 2, 3, 4, 5, 6 },
148 { 2, 4, 6, 8, 10, 12 });
149}
150
151BOOST_AUTO_TEST_SUITE_END()