blob: d12b043ce05c13a01e265f4c09c212e8feb5670b [file] [log] [blame]
Éanna Ó Catháin58885892019-02-27 16:16:39 +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"
8#include "../Deserializer.hpp"
9
10#include <string>
11#include <iostream>
12
13BOOST_AUTO_TEST_SUITE(Deserializer)
14
15struct DivisionFixture : public ParserFlatbuffersSerializeFixture
16{
17 explicit DivisionFixture(const std::string & inputShape1,
18 const std::string & inputShape2,
19 const std::string & outputShape,
20 const std::string & dataType)
21 {
22 m_JsonString = R"(
23 {
24 inputIds: [0, 1],
25 outputIds: [3],
26 layers: [
27 {
28 layer_type: "InputLayer",
29 layer: {
30 base: {
31 layerBindingId: 0,
32 base: {
33 index: 0,
34 layerName: "InputLayer1",
35 layerType: "Input",
36 inputSlots: [{
37 index: 0,
38 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
39 }],
40 outputSlots: [ {
41 index: 0,
42 tensorInfo: {
43 dimensions: )" + inputShape1 + R"(,
44 dataType: )" + dataType + R"(
45 },
46 }],
47 },}},
48 },
49 {
50 layer_type: "InputLayer",
51 layer: {
52 base: {
53 layerBindingId: 1,
54 base: {
55 index:1,
56 layerName: "InputLayer2",
57 layerType: "Input",
58 inputSlots: [{
59 index: 0,
60 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
61 }],
62 outputSlots: [ {
63 index: 0,
64 tensorInfo: {
65 dimensions: )" + inputShape2 + R"(,
66 dataType: )" + dataType + R"(
67 },
68 }],
69 },}},
70 },
71 {
72 layer_type: "DivisionLayer",
73 layer : {
74 base: {
75 index:2,
76 layerName: "DivisionLayer",
77 layerType: "Division",
78 inputSlots: [
79 {
80 index: 0,
81 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
82 },
83 {
84 index: 1,
85 connection: {sourceLayerIndex:1, outputSlotIndex:0 },
86 }
87 ],
88 outputSlots: [ {
89 index: 0,
90 tensorInfo: {
91 dimensions: )" + outputShape + R"(,
92 dataType: )" + dataType + R"(
93 },
94 }],
95 }},
96 },
97 {
98 layer_type: "OutputLayer",
99 layer: {
100 base:{
101 layerBindingId: 0,
102 base: {
103 index: 3,
104 layerName: "OutputLayer",
105 layerType: "Output",
106 inputSlots: [{
107 index: 0,
108 connection: {sourceLayerIndex:2, outputSlotIndex:0 },
109 }],
110 outputSlots: [ {
111 index: 0,
112 tensorInfo: {
113 dimensions: )" + outputShape + R"(,
114 dataType: )" + dataType + R"(
115 },
116 }],
117 }}},
118 }]
119 }
120 )";
121 Setup();
122 }
123};
124
125
126struct SimpleDivisionFixture : DivisionFixture
127{
128 SimpleDivisionFixture() : DivisionFixture("[ 2, 2 ]",
129 "[ 2, 2 ]",
130 "[ 2, 2 ]",
131 "QuantisedAsymm8") {}
132};
133
134struct SimpleDivisionFixture2 : DivisionFixture
135{
136 SimpleDivisionFixture2() : DivisionFixture("[ 2, 2, 1, 1 ]",
137 "[ 2, 2, 1, 1 ]",
138 "[ 2, 2, 1, 1 ]",
139 "Float32") {}
140};
141
142BOOST_FIXTURE_TEST_CASE(DivisionQuantisedAsymm8, SimpleDivisionFixture)
143{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000144 RunTest<2, armnn::DataType::QAsymmU8>(
Éanna Ó Catháin58885892019-02-27 16:16:39 +0000145 0,
146 {{"InputLayer1", { 0, 5, 24, 21 }},
147 {"InputLayer2", { 4, 1, 6, 7 }}},
148 {{"OutputLayer", { 0, 5, 3, 3 }}});
149}
150
151BOOST_FIXTURE_TEST_CASE(DivisionFloat32, SimpleDivisionFixture2)
152{
153 RunTest<4, armnn::DataType::Float32>(
154 0,
155 {{"InputLayer1", { 100, 40, 226, 9 }},
156 {"InputLayer2", { 5, 8, 1, 3 }}},
157 {{"OutputLayer", { 20, 5, 226, 3 }}});
158}
159
160BOOST_AUTO_TEST_SUITE_END()