1 // Generated from rnn.mod.py
2 // DO NOT EDIT
3 // clang-format off
4 #include "TestHarness.h"
5 using namespace test_helper;
6
7 namespace generated_tests::rnn {
8
get_test_model()9 const TestModel& get_test_model() {
10 static TestModel model = {
11 .expectFailure = false,
12 .expectedMultinomialDistributionTolerance = 0,
13 .isRelaxed = false,
14 .main = {
15 .inputIndexes = {0, 1, 2, 3, 4},
16 .operands = {{ // input
17 .channelQuant = {},
18 .data = TestBuffer::createFromVector<float>({0.23689353f, 0.285385f, 0.037029743f, -0.19858193f, -0.27569133f, 0.43773448f, 0.60379338f, 0.35562468f, 0.23689353f, 0.285385f, 0.037029743f, -0.19858193f, -0.27569133f, 0.43773448f, 0.60379338f, 0.35562468f}),
19 .dimensions = {2, 8},
20 .isIgnored = false,
21 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
22 .numberOfConsumers = 1,
23 .scale = 0.0f,
24 .type = TestOperandType::TENSOR_FLOAT32,
25 .zeroPoint = 0
26 }, { // weights
27 .channelQuant = {},
28 .data = TestBuffer::createFromVector<float>({0.461459f, 0.153381f, 0.529743f, -0.00371218f, 0.676267f, -0.211346f, 0.317493f, 0.969689f, -0.343251f, 0.186423f, 0.398151f, 0.152399f, 0.448504f, 0.317662f, 0.523556f, -0.323514f, 0.480877f, 0.333113f, -0.757714f, -0.674487f, -0.643585f, 0.217766f, -0.0251462f, 0.79512f, -0.595574f, -0.422444f, 0.371572f, -0.452178f, -0.556069f, -0.482188f, -0.685456f, -0.727851f, 0.841829f, 0.551535f, -0.232336f, 0.729158f, -0.00294906f, -0.69754f, 0.766073f, -0.178424f, 0.369513f, -0.423241f, 0.548547f, -0.0152023f, -0.757482f, -0.85491f, 0.251331f, -0.989183f, 0.306261f, -0.340716f, 0.886103f, -0.0726757f, -0.723523f, -0.784303f, 0.0354295f, 0.566564f, -0.485469f, -0.620498f, 0.832546f, 0.697884f, -0.279115f, 0.294415f, -0.584313f, 0.548772f, 0.0648819f, 0.968726f, 0.723834f, -0.0080452f, -0.350386f, -0.272803f, 0.115121f, -0.412644f, -0.824713f, -0.992843f, -0.592904f, -0.417893f, 0.863791f, -0.423461f, -0.147601f, -0.770664f, -0.479006f, 0.654782f, 0.587314f, -0.639158f, 0.816969f, -0.337228f, 0.659878f, 0.73107f, 0.754768f, -0.337042f, 0.0960841f, 0.368357f, 0.244191f, -0.817703f, -0.211223f, 0.442012f, 0.37225f, -0.623598f, -0.405423f, 0.455101f, 0.673656f, -0.145345f, -0.511346f, -0.901675f, -0.81252f, -0.127006f, 0.809865f, -0.721884f, 0.636255f, 0.868989f, -0.347973f, -0.10179f, -0.777449f, 0.917274f, 0.819286f, 0.206218f, -0.00785118f, 0.167141f, 0.45872f, 0.972934f, -0.276798f, 0.837861f, 0.747958f, -0.0151566f, -0.330057f, -0.469077f, 0.277308f, 0.415818f}),
29 .dimensions = {16, 8},
30 .isIgnored = false,
31 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
32 .numberOfConsumers = 1,
33 .scale = 0.0f,
34 .type = TestOperandType::TENSOR_FLOAT32,
35 .zeroPoint = 0
36 }, { // recurrent_weights
37 .channelQuant = {},
38 .data = TestBuffer::createFromVector<float>({0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f}),
39 .dimensions = {16, 16},
40 .isIgnored = false,
41 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
42 .numberOfConsumers = 1,
43 .scale = 0.0f,
44 .type = TestOperandType::TENSOR_FLOAT32,
45 .zeroPoint = 0
46 }, { // bias
47 .channelQuant = {},
48 .data = TestBuffer::createFromVector<float>({0.065691948f, -0.69055247f, 0.1107955f, -0.97084129f, -0.23957068f, -0.23566568f, -0.389184f, 0.47481549f, -0.4791103f, 0.29931796f, 0.10463274f, 0.83918178f, 0.37197268f, 0.61957061f, 0.3956964f, -0.37609905f}),
49 .dimensions = {16},
50 .isIgnored = false,
51 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
52 .numberOfConsumers = 1,
53 .scale = 0.0f,
54 .type = TestOperandType::TENSOR_FLOAT32,
55 .zeroPoint = 0
56 }, { // hidden_state_in
57 .channelQuant = {},
58 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}),
59 .dimensions = {2, 16},
60 .isIgnored = false,
61 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
62 .numberOfConsumers = 1,
63 .scale = 0.0f,
64 .type = TestOperandType::TENSOR_FLOAT32,
65 .zeroPoint = 0
66 }, { // activation_param
67 .channelQuant = {},
68 .data = TestBuffer::createFromVector<int32_t>({1}),
69 .dimensions = {},
70 .isIgnored = false,
71 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
72 .numberOfConsumers = 1,
73 .scale = 0.0f,
74 .type = TestOperandType::INT32,
75 .zeroPoint = 0
76 }, { // hidden_state_out
77 .channelQuant = {},
78 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}),
79 .dimensions = {2, 16},
80 .isIgnored = true,
81 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
82 .numberOfConsumers = 0,
83 .scale = 0.0f,
84 .type = TestOperandType::TENSOR_FLOAT32,
85 .zeroPoint = 0
86 }, { // output
87 .channelQuant = {},
88 .data = TestBuffer::createFromVector<float>({0.496726f, 0.0f, 0.965996f, 0.0f, 0.0584254f, 0.0f, 0.0f, 0.12315f, 0.0f, 0.0f, 0.612266f, 0.456601f, 0.0f, 0.52286f, 1.16099f, 0.0291232f, 0.496726f, 0.0f, 0.965996f, 0.0f, 0.0584254f, 0.0f, 0.0f, 0.12315f, 0.0f, 0.0f, 0.612266f, 0.456601f, 0.0f, 0.52286f, 1.16099f, 0.0291232f}),
89 .dimensions = {2, 16},
90 .isIgnored = false,
91 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
92 .numberOfConsumers = 0,
93 .scale = 0.0f,
94 .type = TestOperandType::TENSOR_FLOAT32,
95 .zeroPoint = 0
96 }},
97 .operations = {{
98 .inputs = {0, 1, 2, 3, 4, 5},
99 .outputs = {6, 7},
100 .type = TestOperationType::RNN
101 }},
102 .outputIndexes = {6, 7}
103 },
104 .minSupportedVersion = TestHalVersion::V1_0,
105 .referenced = {}
106 };
107 return model;
108 }
109
110 const auto dummy_test_model = TestModelManager::get().add("rnn", get_test_model());
111
112 } // namespace generated_tests::rnn
113
114 namespace generated_tests::rnn {
115
get_test_model_all_inputs_as_internal()116 const TestModel& get_test_model_all_inputs_as_internal() {
117 static TestModel model = {
118 .expectFailure = false,
119 .expectedMultinomialDistributionTolerance = 0,
120 .isRelaxed = false,
121 .main = {
122 .inputIndexes = {8, 11, 14, 17, 20},
123 .operands = {{ // input
124 .channelQuant = {},
125 .data = TestBuffer::createFromVector<float>({}),
126 .dimensions = {2, 8},
127 .isIgnored = false,
128 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
129 .numberOfConsumers = 1,
130 .scale = 0.0f,
131 .type = TestOperandType::TENSOR_FLOAT32,
132 .zeroPoint = 0
133 }, { // weights
134 .channelQuant = {},
135 .data = TestBuffer::createFromVector<float>({}),
136 .dimensions = {16, 8},
137 .isIgnored = false,
138 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
139 .numberOfConsumers = 1,
140 .scale = 0.0f,
141 .type = TestOperandType::TENSOR_FLOAT32,
142 .zeroPoint = 0
143 }, { // recurrent_weights
144 .channelQuant = {},
145 .data = TestBuffer::createFromVector<float>({}),
146 .dimensions = {16, 16},
147 .isIgnored = false,
148 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
149 .numberOfConsumers = 1,
150 .scale = 0.0f,
151 .type = TestOperandType::TENSOR_FLOAT32,
152 .zeroPoint = 0
153 }, { // bias
154 .channelQuant = {},
155 .data = TestBuffer::createFromVector<float>({}),
156 .dimensions = {16},
157 .isIgnored = false,
158 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
159 .numberOfConsumers = 1,
160 .scale = 0.0f,
161 .type = TestOperandType::TENSOR_FLOAT32,
162 .zeroPoint = 0
163 }, { // hidden_state_in
164 .channelQuant = {},
165 .data = TestBuffer::createFromVector<float>({}),
166 .dimensions = {2, 16},
167 .isIgnored = false,
168 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
169 .numberOfConsumers = 1,
170 .scale = 0.0f,
171 .type = TestOperandType::TENSOR_FLOAT32,
172 .zeroPoint = 0
173 }, { // activation_param
174 .channelQuant = {},
175 .data = TestBuffer::createFromVector<int32_t>({1}),
176 .dimensions = {},
177 .isIgnored = false,
178 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
179 .numberOfConsumers = 1,
180 .scale = 0.0f,
181 .type = TestOperandType::INT32,
182 .zeroPoint = 0
183 }, { // hidden_state_out
184 .channelQuant = {},
185 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}),
186 .dimensions = {2, 16},
187 .isIgnored = true,
188 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
189 .numberOfConsumers = 0,
190 .scale = 0.0f,
191 .type = TestOperandType::TENSOR_FLOAT32,
192 .zeroPoint = 0
193 }, { // output
194 .channelQuant = {},
195 .data = TestBuffer::createFromVector<float>({0.496726f, 0.0f, 0.965996f, 0.0f, 0.0584254f, 0.0f, 0.0f, 0.12315f, 0.0f, 0.0f, 0.612266f, 0.456601f, 0.0f, 0.52286f, 1.16099f, 0.0291232f, 0.496726f, 0.0f, 0.965996f, 0.0f, 0.0584254f, 0.0f, 0.0f, 0.12315f, 0.0f, 0.0f, 0.612266f, 0.456601f, 0.0f, 0.52286f, 1.16099f, 0.0291232f}),
196 .dimensions = {2, 16},
197 .isIgnored = false,
198 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
199 .numberOfConsumers = 0,
200 .scale = 0.0f,
201 .type = TestOperandType::TENSOR_FLOAT32,
202 .zeroPoint = 0
203 }, { // input_new
204 .channelQuant = {},
205 .data = TestBuffer::createFromVector<float>({0.23689353f, 0.285385f, 0.037029743f, -0.19858193f, -0.27569133f, 0.43773448f, 0.60379338f, 0.35562468f, 0.23689353f, 0.285385f, 0.037029743f, -0.19858193f, -0.27569133f, 0.43773448f, 0.60379338f, 0.35562468f}),
206 .dimensions = {2, 8},
207 .isIgnored = false,
208 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
209 .numberOfConsumers = 1,
210 .scale = 0.0f,
211 .type = TestOperandType::TENSOR_FLOAT32,
212 .zeroPoint = 0
213 }, { // placeholder
214 .channelQuant = {},
215 .data = TestBuffer::createFromVector<float>({0.0f}),
216 .dimensions = {1},
217 .isIgnored = false,
218 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
219 .numberOfConsumers = 1,
220 .scale = 0.0f,
221 .type = TestOperandType::TENSOR_FLOAT32,
222 .zeroPoint = 0
223 }, { // param
224 .channelQuant = {},
225 .data = TestBuffer::createFromVector<int32_t>({0}),
226 .dimensions = {},
227 .isIgnored = false,
228 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
229 .numberOfConsumers = 1,
230 .scale = 0.0f,
231 .type = TestOperandType::INT32,
232 .zeroPoint = 0
233 }, { // weights_new
234 .channelQuant = {},
235 .data = TestBuffer::createFromVector<float>({0.461459f, 0.153381f, 0.529743f, -0.00371218f, 0.676267f, -0.211346f, 0.317493f, 0.969689f, -0.343251f, 0.186423f, 0.398151f, 0.152399f, 0.448504f, 0.317662f, 0.523556f, -0.323514f, 0.480877f, 0.333113f, -0.757714f, -0.674487f, -0.643585f, 0.217766f, -0.0251462f, 0.79512f, -0.595574f, -0.422444f, 0.371572f, -0.452178f, -0.556069f, -0.482188f, -0.685456f, -0.727851f, 0.841829f, 0.551535f, -0.232336f, 0.729158f, -0.00294906f, -0.69754f, 0.766073f, -0.178424f, 0.369513f, -0.423241f, 0.548547f, -0.0152023f, -0.757482f, -0.85491f, 0.251331f, -0.989183f, 0.306261f, -0.340716f, 0.886103f, -0.0726757f, -0.723523f, -0.784303f, 0.0354295f, 0.566564f, -0.485469f, -0.620498f, 0.832546f, 0.697884f, -0.279115f, 0.294415f, -0.584313f, 0.548772f, 0.0648819f, 0.968726f, 0.723834f, -0.0080452f, -0.350386f, -0.272803f, 0.115121f, -0.412644f, -0.824713f, -0.992843f, -0.592904f, -0.417893f, 0.863791f, -0.423461f, -0.147601f, -0.770664f, -0.479006f, 0.654782f, 0.587314f, -0.639158f, 0.816969f, -0.337228f, 0.659878f, 0.73107f, 0.754768f, -0.337042f, 0.0960841f, 0.368357f, 0.244191f, -0.817703f, -0.211223f, 0.442012f, 0.37225f, -0.623598f, -0.405423f, 0.455101f, 0.673656f, -0.145345f, -0.511346f, -0.901675f, -0.81252f, -0.127006f, 0.809865f, -0.721884f, 0.636255f, 0.868989f, -0.347973f, -0.10179f, -0.777449f, 0.917274f, 0.819286f, 0.206218f, -0.00785118f, 0.167141f, 0.45872f, 0.972934f, -0.276798f, 0.837861f, 0.747958f, -0.0151566f, -0.330057f, -0.469077f, 0.277308f, 0.415818f}),
236 .dimensions = {16, 8},
237 .isIgnored = false,
238 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
239 .numberOfConsumers = 1,
240 .scale = 0.0f,
241 .type = TestOperandType::TENSOR_FLOAT32,
242 .zeroPoint = 0
243 }, { // placeholder1
244 .channelQuant = {},
245 .data = TestBuffer::createFromVector<float>({0.0f}),
246 .dimensions = {1},
247 .isIgnored = false,
248 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
249 .numberOfConsumers = 1,
250 .scale = 0.0f,
251 .type = TestOperandType::TENSOR_FLOAT32,
252 .zeroPoint = 0
253 }, { // param1
254 .channelQuant = {},
255 .data = TestBuffer::createFromVector<int32_t>({0}),
256 .dimensions = {},
257 .isIgnored = false,
258 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
259 .numberOfConsumers = 1,
260 .scale = 0.0f,
261 .type = TestOperandType::INT32,
262 .zeroPoint = 0
263 }, { // recurrent_weights_new
264 .channelQuant = {},
265 .data = TestBuffer::createFromVector<float>({0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f}),
266 .dimensions = {16, 16},
267 .isIgnored = false,
268 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
269 .numberOfConsumers = 1,
270 .scale = 0.0f,
271 .type = TestOperandType::TENSOR_FLOAT32,
272 .zeroPoint = 0
273 }, { // placeholder2
274 .channelQuant = {},
275 .data = TestBuffer::createFromVector<float>({0.0f}),
276 .dimensions = {1},
277 .isIgnored = false,
278 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
279 .numberOfConsumers = 1,
280 .scale = 0.0f,
281 .type = TestOperandType::TENSOR_FLOAT32,
282 .zeroPoint = 0
283 }, { // param2
284 .channelQuant = {},
285 .data = TestBuffer::createFromVector<int32_t>({0}),
286 .dimensions = {},
287 .isIgnored = false,
288 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
289 .numberOfConsumers = 1,
290 .scale = 0.0f,
291 .type = TestOperandType::INT32,
292 .zeroPoint = 0
293 }, { // bias_new
294 .channelQuant = {},
295 .data = TestBuffer::createFromVector<float>({0.065691948f, -0.69055247f, 0.1107955f, -0.97084129f, -0.23957068f, -0.23566568f, -0.389184f, 0.47481549f, -0.4791103f, 0.29931796f, 0.10463274f, 0.83918178f, 0.37197268f, 0.61957061f, 0.3956964f, -0.37609905f}),
296 .dimensions = {16},
297 .isIgnored = false,
298 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
299 .numberOfConsumers = 1,
300 .scale = 0.0f,
301 .type = TestOperandType::TENSOR_FLOAT32,
302 .zeroPoint = 0
303 }, { // placeholder3
304 .channelQuant = {},
305 .data = TestBuffer::createFromVector<float>({0.0f}),
306 .dimensions = {1},
307 .isIgnored = false,
308 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
309 .numberOfConsumers = 1,
310 .scale = 0.0f,
311 .type = TestOperandType::TENSOR_FLOAT32,
312 .zeroPoint = 0
313 }, { // param3
314 .channelQuant = {},
315 .data = TestBuffer::createFromVector<int32_t>({0}),
316 .dimensions = {},
317 .isIgnored = false,
318 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
319 .numberOfConsumers = 1,
320 .scale = 0.0f,
321 .type = TestOperandType::INT32,
322 .zeroPoint = 0
323 }, { // hidden_state_in_new
324 .channelQuant = {},
325 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}),
326 .dimensions = {2, 16},
327 .isIgnored = false,
328 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
329 .numberOfConsumers = 1,
330 .scale = 0.0f,
331 .type = TestOperandType::TENSOR_FLOAT32,
332 .zeroPoint = 0
333 }, { // placeholder4
334 .channelQuant = {},
335 .data = TestBuffer::createFromVector<float>({0.0f}),
336 .dimensions = {1},
337 .isIgnored = false,
338 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
339 .numberOfConsumers = 1,
340 .scale = 0.0f,
341 .type = TestOperandType::TENSOR_FLOAT32,
342 .zeroPoint = 0
343 }, { // param4
344 .channelQuant = {},
345 .data = TestBuffer::createFromVector<int32_t>({0}),
346 .dimensions = {},
347 .isIgnored = false,
348 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
349 .numberOfConsumers = 1,
350 .scale = 0.0f,
351 .type = TestOperandType::INT32,
352 .zeroPoint = 0
353 }},
354 .operations = {{
355 .inputs = {8, 9, 10},
356 .outputs = {0},
357 .type = TestOperationType::ADD
358 }, {
359 .inputs = {11, 12, 13},
360 .outputs = {1},
361 .type = TestOperationType::ADD
362 }, {
363 .inputs = {14, 15, 16},
364 .outputs = {2},
365 .type = TestOperationType::ADD
366 }, {
367 .inputs = {17, 18, 19},
368 .outputs = {3},
369 .type = TestOperationType::ADD
370 }, {
371 .inputs = {20, 21, 22},
372 .outputs = {4},
373 .type = TestOperationType::ADD
374 }, {
375 .inputs = {0, 1, 2, 3, 4, 5},
376 .outputs = {6, 7},
377 .type = TestOperationType::RNN
378 }},
379 .outputIndexes = {6, 7}
380 },
381 .minSupportedVersion = TestHalVersion::V1_0,
382 .referenced = {}
383 };
384 return model;
385 }
386
387 const auto dummy_test_model_all_inputs_as_internal = TestModelManager::get().add("rnn_all_inputs_as_internal", get_test_model_all_inputs_as_internal());
388
389 } // namespace generated_tests::rnn
390
391