blob: 8bca334e5c62949c8197f86395a71af2af19c241 [file] [log] [blame]
Marat Dukhan5de7bc02021-09-09 19:04:01 -07001// Copyright 2021 Google LLC
2//
3// This source code is licensed under the BSD-style license found in the
4// LICENSE file in the root directory of this source tree.
5
6#include <gtest/gtest.h>
7
8#include "tanh-operator-tester.h"
9
10
11TEST(TANH_NC_QS8, unit_batch) {
12 for (size_t channels = 1; channels < 100; channels += 15) {
13 TanhOperatorTester()
14 .batch_size(1)
15 .channels(channels)
16 .iterations(3)
17 .TestQS8();
18 }
19}
20
21TEST(TANH_NC_QS8, unit_batch_with_qmin) {
22 for (size_t channels = 1; channels < 100; channels += 15) {
23 TanhOperatorTester()
24 .batch_size(1)
25 .channels(channels)
26 .qmin(128)
27 .iterations(3)
28 .TestQS8();
29 }
30}
31
32TEST(TANH_NC_QS8, unit_batch_with_qmax) {
33 for (size_t channels = 1; channels < 100; channels += 15) {
34 TanhOperatorTester()
35 .batch_size(1)
36 .channels(channels)
37 .qmax(128)
38 .iterations(3)
39 .TestQS8();
40 }
41}
42
43TEST(TANH_NC_QS8, unit_batch_with_input_scale) {
44 for (size_t channels = 1; channels < 100; channels += 15) {
45 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
46 TanhOperatorTester()
47 .batch_size(1)
48 .channels(channels)
49 .input_scale(input_scale)
50 .iterations(1)
51 .TestQS8();
52 }
53 }
54}
55
56TEST(TANH_NC_QS8, unit_batch_with_input_zero_point) {
57 for (size_t channels = 1; channels < 100; channels += 15) {
58 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
59 TanhOperatorTester()
60 .batch_size(1)
61 .channels(channels)
62 .input_zero_point(uint8_t(input_zero_point))
63 .iterations(1)
64 .TestQS8();
65 }
66 }
67}
68
69TEST(TANH_NC_QS8, small_batch) {
70 for (size_t channels = 1; channels < 100; channels += 15) {
71 TanhOperatorTester()
72 .batch_size(3)
73 .channels(channels)
74 .iterations(3)
75 .TestQS8();
76 }
77}
78
79TEST(TANH_NC_QS8, small_batch_with_input_stride) {
80 for (size_t channels = 1; channels < 100; channels += 15) {
81 TanhOperatorTester()
82 .batch_size(3)
83 .channels(channels)
84 .input_stride(129)
85 .iterations(3)
86 .TestQS8();
87 }
88}
89
90TEST(TANH_NC_QS8, small_batch_with_output_stride) {
91 for (size_t channels = 1; channels < 100; channels += 15) {
92 TanhOperatorTester()
93 .batch_size(3)
94 .channels(channels)
95 .output_stride(117)
96 .iterations(3)
97 .TestQS8();
98 }
99}
100
101TEST(TANH_NC_QS8, small_batch_with_qmin) {
102 for (size_t channels = 1; channels < 100; channels += 15) {
103 TanhOperatorTester()
104 .batch_size(3)
105 .channels(channels)
106 .qmin(128)
107 .iterations(3)
108 .TestQS8();
109 }
110}
111
112TEST(TANH_NC_QS8, small_batch_with_qmax) {
113 for (size_t channels = 1; channels < 100; channels += 15) {
114 TanhOperatorTester()
115 .batch_size(3)
116 .channels(channels)
117 .qmax(128)
118 .iterations(3)
119 .TestQS8();
120 }
121}
122
123TEST(TANH_NC_QS8, small_batch_with_input_scale) {
124 for (size_t channels = 1; channels < 100; channels += 15) {
125 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
126 TanhOperatorTester()
127 .batch_size(3)
128 .channels(channels)
129 .input_scale(input_scale)
130 .iterations(1)
131 .TestQS8();
132 }
133 }
134}
135
136TEST(TANH_NC_QS8, small_batch_with_input_zero_point) {
137 for (size_t channels = 1; channels < 100; channels += 15) {
138 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
139 TanhOperatorTester()
140 .batch_size(3)
141 .channels(channels)
142 .input_zero_point(uint8_t(input_zero_point))
143 .iterations(1)
144 .TestQS8();
145 }
146 }
147}
148
149TEST(TANH_NC_QS8, strided_batch) {
150 for (size_t channels = 1; channels < 100; channels += 15) {
151 TanhOperatorTester()
152 .batch_size(3)
153 .channels(channels)
154 .input_stride(129)
155 .output_stride(117)
156 .iterations(3)
157 .TestQS8();
158 }
159}
160
161TEST(TANH_NC_QS8, strided_batch_with_qmin) {
162 for (size_t channels = 1; channels < 100; channels += 15) {
163 TanhOperatorTester()
164 .batch_size(3)
165 .channels(channels)
166 .input_stride(129)
167 .output_stride(117)
168 .qmin(128)
169 .iterations(3)
170 .TestQS8();
171 }
172}
173
174TEST(TANH_NC_QS8, strided_batch_with_qmax) {
175 for (size_t channels = 1; channels < 100; channels += 15) {
176 TanhOperatorTester()
177 .batch_size(3)
178 .channels(channels)
179 .input_stride(129)
180 .output_stride(117)
181 .qmax(128)
182 .iterations(3)
183 .TestQS8();
184 }
185}
186
187TEST(TANH_NC_QS8, strided_batch_with_input_scale) {
188 for (size_t channels = 1; channels < 100; channels += 15) {
189 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
190 TanhOperatorTester()
191 .batch_size(3)
192 .channels(channels)
193 .input_stride(129)
194 .output_stride(117)
195 .input_scale(input_scale)
196 .iterations(1)
197 .TestQS8();
198 }
199 }
200}
201
202TEST(TANH_NC_QS8, strided_batch_with_input_zero_point) {
203 for (size_t channels = 1; channels < 100; channels += 15) {
204 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
205 TanhOperatorTester()
206 .batch_size(3)
207 .channels(channels)
208 .input_stride(129)
209 .output_stride(117)
210 .input_zero_point(uint8_t(input_zero_point))
211 .iterations(1)
212 .TestQS8();
213 }
214 }
215}
216
217TEST(TANH_NC_QU8, unit_batch) {
218 for (size_t channels = 1; channels < 100; channels += 15) {
219 TanhOperatorTester()
220 .batch_size(1)
221 .channels(channels)
222 .iterations(3)
223 .TestQU8();
224 }
225}
226
227TEST(TANH_NC_QU8, unit_batch_with_qmin) {
228 for (size_t channels = 1; channels < 100; channels += 15) {
229 TanhOperatorTester()
230 .batch_size(1)
231 .channels(channels)
232 .qmin(128)
233 .iterations(3)
234 .TestQU8();
235 }
236}
237
238TEST(TANH_NC_QU8, unit_batch_with_qmax) {
239 for (size_t channels = 1; channels < 100; channels += 15) {
240 TanhOperatorTester()
241 .batch_size(1)
242 .channels(channels)
243 .qmax(128)
244 .iterations(3)
245 .TestQU8();
246 }
247}
248
249TEST(TANH_NC_QU8, unit_batch_with_input_scale) {
250 for (size_t channels = 1; channels < 100; channels += 15) {
251 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
252 TanhOperatorTester()
253 .batch_size(1)
254 .channels(channels)
255 .input_scale(input_scale)
256 .iterations(1)
257 .TestQU8();
258 }
259 }
260}
261
262TEST(TANH_NC_QU8, unit_batch_with_input_zero_point) {
263 for (size_t channels = 1; channels < 100; channels += 15) {
264 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
265 TanhOperatorTester()
266 .batch_size(1)
267 .channels(channels)
268 .input_zero_point(uint8_t(input_zero_point))
269 .iterations(1)
270 .TestQU8();
271 }
272 }
273}
274
275TEST(TANH_NC_QU8, small_batch) {
276 for (size_t channels = 1; channels < 100; channels += 15) {
277 TanhOperatorTester()
278 .batch_size(3)
279 .channels(channels)
280 .iterations(3)
281 .TestQU8();
282 }
283}
284
285TEST(TANH_NC_QU8, small_batch_with_input_stride) {
286 for (size_t channels = 1; channels < 100; channels += 15) {
287 TanhOperatorTester()
288 .batch_size(3)
289 .channels(channels)
290 .input_stride(129)
291 .iterations(3)
292 .TestQU8();
293 }
294}
295
296TEST(TANH_NC_QU8, small_batch_with_output_stride) {
297 for (size_t channels = 1; channels < 100; channels += 15) {
298 TanhOperatorTester()
299 .batch_size(3)
300 .channels(channels)
301 .output_stride(117)
302 .iterations(3)
303 .TestQU8();
304 }
305}
306
307TEST(TANH_NC_QU8, small_batch_with_qmin) {
308 for (size_t channels = 1; channels < 100; channels += 15) {
309 TanhOperatorTester()
310 .batch_size(3)
311 .channels(channels)
312 .qmin(128)
313 .iterations(3)
314 .TestQU8();
315 }
316}
317
318TEST(TANH_NC_QU8, small_batch_with_qmax) {
319 for (size_t channels = 1; channels < 100; channels += 15) {
320 TanhOperatorTester()
321 .batch_size(3)
322 .channels(channels)
323 .qmax(128)
324 .iterations(3)
325 .TestQU8();
326 }
327}
328
329TEST(TANH_NC_QU8, small_batch_with_input_scale) {
330 for (size_t channels = 1; channels < 100; channels += 15) {
331 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
332 TanhOperatorTester()
333 .batch_size(3)
334 .channels(channels)
335 .input_scale(input_scale)
336 .iterations(1)
337 .TestQU8();
338 }
339 }
340}
341
342TEST(TANH_NC_QU8, small_batch_with_input_zero_point) {
343 for (size_t channels = 1; channels < 100; channels += 15) {
344 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
345 TanhOperatorTester()
346 .batch_size(3)
347 .channels(channels)
348 .input_zero_point(uint8_t(input_zero_point))
349 .iterations(1)
350 .TestQU8();
351 }
352 }
353}
354
355TEST(TANH_NC_QU8, strided_batch) {
356 for (size_t channels = 1; channels < 100; channels += 15) {
357 TanhOperatorTester()
358 .batch_size(3)
359 .channels(channels)
360 .input_stride(129)
361 .output_stride(117)
362 .iterations(3)
363 .TestQU8();
364 }
365}
366
367TEST(TANH_NC_QU8, strided_batch_with_qmin) {
368 for (size_t channels = 1; channels < 100; channels += 15) {
369 TanhOperatorTester()
370 .batch_size(3)
371 .channels(channels)
372 .input_stride(129)
373 .output_stride(117)
374 .qmin(128)
375 .iterations(3)
376 .TestQU8();
377 }
378}
379
380TEST(TANH_NC_QU8, strided_batch_with_qmax) {
381 for (size_t channels = 1; channels < 100; channels += 15) {
382 TanhOperatorTester()
383 .batch_size(3)
384 .channels(channels)
385 .input_stride(129)
386 .output_stride(117)
387 .qmax(128)
388 .iterations(3)
389 .TestQU8();
390 }
391}
392
393TEST(TANH_NC_QU8, strided_batch_with_input_scale) {
394 for (size_t channels = 1; channels < 100; channels += 15) {
395 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
396 TanhOperatorTester()
397 .batch_size(3)
398 .channels(channels)
399 .input_stride(129)
400 .output_stride(117)
401 .input_scale(input_scale)
402 .iterations(1)
403 .TestQU8();
404 }
405 }
406}
407
408TEST(TANH_NC_QU8, strided_batch_with_input_zero_point) {
409 for (size_t channels = 1; channels < 100; channels += 15) {
410 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
411 TanhOperatorTester()
412 .batch_size(3)
413 .channels(channels)
414 .input_stride(129)
415 .output_stride(117)
416 .input_zero_point(uint8_t(input_zero_point))
417 .iterations(1)
418 .TestQU8();
419 }
420 }
421}