blob: 05ea36f33372738084f831d94f4b1054030769e6 [file] [log] [blame]
Bruno Goncalvesb8d805e2019-02-12 22:57:13 -02001//
Finn Williamsb49ed182021-06-29 15:50:08 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
Bruno Goncalvesb8d805e2019-02-12 22:57:13 -02003// SPDX-License-Identifier: MIT
4//
5
Bruno Goncalvesb8d805e2019-02-12 22:57:13 -02006#include "ParserFlatbuffersFixture.hpp"
Bruno Goncalvesb8d805e2019-02-12 22:57:13 -02007
Bruno Goncalvesb8d805e2019-02-12 22:57:13 -02008
Sadik Armagan1625efc2021-06-10 18:24:34 +01009TEST_SUITE("TensorflowLiteParser_Maximum")
10{
Bruno Goncalvesb8d805e2019-02-12 22:57:13 -020011struct MaximumFixture : public ParserFlatbuffersFixture
12{
13 explicit MaximumFixture(const std::string & inputShape1,
14 const std::string & inputShape2,
15 const std::string & outputShape)
16 {
17 m_JsonString = R"(
18 {
19 "version": 3,
20 "operator_codes": [ { "builtin_code": "MAXIMUM" } ],
21 "subgraphs": [ {
22 "tensors": [
23 {
24 "shape": )" + inputShape1 + R"(,
25 "type": "FLOAT32",
26 "buffer": 0,
27 "name": "inputTensor1",
28 "quantization": {
29 "min": [ 0.0 ],
30 "max": [ 255.0 ],
31 "scale": [ 1.0 ],
32 "zero_point": [ 0 ],
33 }
34 },
35 {
36 "shape": )" + inputShape2 + R"(,
37 "type": "FLOAT32",
38 "buffer": 1,
39 "name": "inputTensor2",
40 "quantization": {
41 "min": [ 0.0 ],
42 "max": [ 255.0 ],
43 "scale": [ 1.0 ],
44 "zero_point": [ 0 ],
45 }
46 },
47 {
48 "shape": )" + outputShape + R"( ,
49 "type": "FLOAT32",
50 "buffer": 2,
51 "name": "outputTensor",
52 "quantization": {
53 "min": [ 0.0 ],
54 "max": [ 255.0 ],
55 "scale": [ 1.0 ],
56 "zero_point": [ 0 ],
57 }
58 }
59 ],
60 "inputs": [ 0, 1 ],
61 "outputs": [ 2 ],
62 "operators": [
63 {
64 "opcode_index": 0,
65 "inputs": [ 0, 1 ],
66 "outputs": [ 2 ],
67 "custom_options_format": "FLEXBUFFERS"
68 }
69 ],
70 } ],
71 "buffers" : [
72 { },
73 { }
74 ]
75 }
76 )";
77 Setup();
78 }
79};
80
81
82struct MaximumFixture4D4D : MaximumFixture
83{
84 MaximumFixture4D4D() : MaximumFixture("[ 1, 2, 2, 3 ]",
85 "[ 1, 2, 2, 3 ]",
86 "[ 1, 2, 2, 3 ]") {}
87};
88
Sadik Armagan1625efc2021-06-10 18:24:34 +010089TEST_CASE_FIXTURE(MaximumFixture4D4D, "ParseMaximum4D4D")
Bruno Goncalvesb8d805e2019-02-12 22:57:13 -020090{
91 RunTest<4, armnn::DataType::Float32>(
92 0,
93 {{"inputTensor1", { 0.0f, 1.0f, 2.0f,
94 3.0f, 4.0f, 5.0f,
95 6.0f, 7.0f, 8.0f,
96 9.0f, 10.0f, 11.0f }},
97 {"inputTensor2", { 5.0f, 1.0f, 3.0f,
98 4.0f, 5.5f, 1.0f,
99 2.0f, 17.0f, 18.0f,
100 19.0f, 1.0f, 3.0f }}},
101 {{"outputTensor", { 5.0f, 1.0f, 3.0f,
102 4.0f, 5.5f, 5.0f,
103 6.0f, 17.0f, 18.0f,
104 19.0f, 10.0f, 11.0f }}});
105}
106
107struct MaximumBroadcastFixture4D4D : MaximumFixture
108{
109 MaximumBroadcastFixture4D4D() : MaximumFixture("[ 1, 1, 2, 1 ]",
110 "[ 1, 2, 1, 3 ]",
111 "[ 1, 2, 2, 3 ]") {}
112};
113
Sadik Armagan1625efc2021-06-10 18:24:34 +0100114TEST_CASE_FIXTURE(MaximumBroadcastFixture4D4D, "ParseMaximumBroadcast4D4D")
Bruno Goncalvesb8d805e2019-02-12 22:57:13 -0200115{
116 RunTest<4, armnn::DataType::Float32>(
117 0,
118 {{"inputTensor1", { 2.0f, 4.0f }},
119 {"inputTensor2", { 1.0f, 2.0f, 3.0f,
120 4.0f, 5.0f, 6.0f }}},
121 {{"outputTensor", { 2.0f, 2.0f, 3.0f,
122 4.0f, 4.0f, 4.0f,
123 4.0f, 5.0f, 6.0f,
124 4.0f, 5.0f, 6.0f }}});
125}
126
127struct MaximumBroadcastFixture4D1D : MaximumFixture
128{
129 MaximumBroadcastFixture4D1D() : MaximumFixture("[ 1, 2, 2, 3 ]",
130 "[ 1 ]",
131 "[ 1, 2, 2, 3 ]") {}
132};
133
Sadik Armagan1625efc2021-06-10 18:24:34 +0100134TEST_CASE_FIXTURE(MaximumBroadcastFixture4D1D, "ParseMaximumBroadcast4D1D")
Bruno Goncalvesb8d805e2019-02-12 22:57:13 -0200135{
136 RunTest<4, armnn::DataType::Float32>(
137 0,
138 {{"inputTensor1", { 0.0f, 1.0f, 2.0f,
139 3.0f, 4.0f, 5.0f,
140 6.0f, 7.0f, 8.0f,
141 9.0f, 10.0f, 11.0f }},
142 {"inputTensor2", { 5.0f }}},
143 {{"outputTensor", { 5.0f, 5.0f, 5.0f,
144 5.0f, 5.0f, 5.0f,
145 6.0f, 7.0f, 8.0f,
146 9.0f, 10.0f, 11.0f }}});
147}
148
149struct MaximumBroadcastFixture1D4D : MaximumFixture
150{
151 MaximumBroadcastFixture1D4D() : MaximumFixture("[ 1 ]",
152 "[ 1, 2, 2, 3 ]",
153 "[ 1, 2, 2, 3 ]") {}
154};
155
Sadik Armagan1625efc2021-06-10 18:24:34 +0100156TEST_CASE_FIXTURE(MaximumBroadcastFixture1D4D, "ParseMaximumBroadcast1D4D")
Bruno Goncalvesb8d805e2019-02-12 22:57:13 -0200157{
158 RunTest<4, armnn::DataType::Float32>(
159 0,
160 {{"inputTensor1", { 3.0f }},
161 {"inputTensor2", { 0.0f, 1.0f, 2.0f,
162 3.0f, 4.0f, 5.0f,
163 6.0f, 7.0f, 8.0f,
164 9.0f, 10.0f, 11.0f }}},
165 {{"outputTensor", { 3.0f, 3.0f, 3.0f,
166 3.0f, 4.0f, 5.0f,
167 6.0f, 7.0f, 8.0f,
168 9.0f, 10.0f, 11.0f }}});
169}
170
Sadik Armagan1625efc2021-06-10 18:24:34 +0100171}