blob: 8b581a2ce72e73234258f8ae81f26a6dd1f90ad3 [file] [log] [blame]
Giorgio Arena04a8f8c2017-11-23 11:45:24 +00001/*
Michele Di Giorgiod9eaf612020-07-08 11:12:57 +01002 * Copyright (c) 2017-2020 Arm Limited.
Giorgio Arena04a8f8c2017-11-23 11:45:24 +00003 *
4 * SPDX-License-Identifier: MIT
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to
8 * deal in the Software without restriction, including without limitation the
9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 * sell copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in all
14 * copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000021 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
Giorgio Arena04a8f8c2017-11-23 11:45:24 +000022 * SOFTWARE.
23 */
24#include "arm_compute/core/Types.h"
25#include "arm_compute/runtime/NEON/functions/NEDepthConvertLayer.h"
26#include "arm_compute/runtime/Tensor.h"
27#include "arm_compute/runtime/TensorAllocator.h"
28#include "tests/NEON/Accessor.h"
29#include "tests/PaddingCalculator.h"
30#include "tests/datasets/ConvertPolicyDataset.h"
31#include "tests/datasets/ShapeDatasets.h"
32#include "tests/framework/Asserts.h"
33#include "tests/framework/Macros.h"
34#include "tests/framework/datasets/Datasets.h"
35#include "tests/validation/Validation.h"
36#include "tests/validation/fixtures/DepthConvertLayerFixture.h"
37
38namespace arm_compute
39{
40namespace test
41{
42namespace validation
43{
44namespace
45{
46/** Input data sets **/
Michalis Spyrou4de2d592020-02-21 18:58:38 +000047const auto DepthConvertLayerQASYMM8toF16Dataset = combine(framework::dataset::make("DataType", DataType::QASYMM8), framework::dataset::make("DataType", DataType::F16));
48const auto DepthConvertLayerQASYMM8toF32Dataset = combine(framework::dataset::make("DataType", DataType::QASYMM8), framework::dataset::make("DataType", DataType::F32));
49const auto DepthConvertLayerQASYMM8toS32Dataset = combine(framework::dataset::make("DataType", DataType::QASYMM8), framework::dataset::make("DataType", DataType::S32));
50const auto DepthConvertLayerU8toU16Dataset = combine(framework::dataset::make("DataType", DataType::U8), framework::dataset::make("DataType", DataType::U16));
51const auto DepthConvertLayerU8toS16Dataset = combine(framework::dataset::make("DataType", DataType::U8), framework::dataset::make("DataType", DataType::S16));
52const auto DepthConvertLayerU8toS32Dataset = combine(framework::dataset::make("DataType", DataType::U8), framework::dataset::make("DataType", DataType::S32));
53const auto DepthConvertLayerU8toF16Dataset = combine(framework::dataset::make("DataType", DataType::U8), framework::dataset::make("DataType", DataType::F16));
54const auto DepthConvertLayerU8toF32Dataset = combine(framework::dataset::make("DataType", DataType::U8), framework::dataset::make("DataType", DataType::F32));
55const auto DepthConvertLayerU16toU8Dataset = combine(framework::dataset::make("DataType", DataType::U16), framework::dataset::make("DataType", DataType::U8));
56const auto DepthConvertLayerU16toU32Dataset = combine(framework::dataset::make("DataType", DataType::U16), framework::dataset::make("DataType", DataType::U32));
57const auto DepthConvertLayerS16toU8Dataset = combine(framework::dataset::make("DataType", DataType::S16), framework::dataset::make("DataType", DataType::U8));
58const auto DepthConvertLayerS16toS32Dataset = combine(framework::dataset::make("DataType", DataType::S16), framework::dataset::make("DataType", DataType::S32));
Georgios Pinitase8291ac2020-02-26 09:58:13 +000059const auto DepthConvertLayerBF16toF32Dataset = combine(framework::dataset::make("DataType", DataType::BFLOAT16), framework::dataset::make("DataType", DataType::F32));
Michalis Spyrou4de2d592020-02-21 18:58:38 +000060const auto DepthConvertLayerF16toU8Dataset = combine(framework::dataset::make("DataType", DataType::F16), framework::dataset::make("DataType", DataType::U8));
61const auto DepthConvertLayerF16toF32Dataset = combine(framework::dataset::make("DataType", DataType::F16), framework::dataset::make("DataType", DataType::F32));
62const auto DepthConvertLayerF16toS32Dataset = combine(framework::dataset::make("DataType", DataType::F16), framework::dataset::make("DataType", DataType::S32));
63const auto DepthConvertLayerF32toF16Dataset = combine(framework::dataset::make("DataType", DataType::F32), framework::dataset::make("DataType", DataType::F16));
64const auto DepthConvertLayerF32toS32Dataset = combine(framework::dataset::make("DataType", DataType::F32), framework::dataset::make("DataType", DataType::S32));
65const auto DepthConvertLayerF32toU8Dataset = combine(framework::dataset::make("DataType", DataType::F32), framework::dataset::make("DataType", DataType::U8));
Georgios Pinitase8291ac2020-02-26 09:58:13 +000066const auto DepthConvertLayerF32toBF16Dataset = combine(framework::dataset::make("DataType", DataType::F32), framework::dataset::make("DataType", DataType::BFLOAT16));
Usama Arif9e631c22019-05-14 17:10:40 +010067
Michalis Spyrou4de2d592020-02-21 18:58:38 +000068const auto DepthConvertLayerS32toF32Dataset = combine(framework::dataset::make("DataType", DataType::S32), framework::dataset::make("DataType", DataType::F32));
69const auto DepthConvertLayerS32toQASYMM8Dataset = combine(framework::dataset::make("DataType", DataType::S32), framework::dataset::make("DataType", DataType::QASYMM8));
70const auto DepthConvertLayerS32toF16Dataset = combine(framework::dataset::make("DataType", DataType::S32), framework::dataset::make("DataType", DataType::F16));
71const auto DepthConvertLayerS32toU8Dataset = combine(framework::dataset::make("DataType", DataType::S32), framework::dataset::make("DataType", DataType::U8));
Usama Arif9e631c22019-05-14 17:10:40 +010072
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000073const auto DepthConvertLayerF16toQASYMM8Dataset = combine(framework::dataset::make("DataType", DataType::F16), framework::dataset::make("DataType", DataType::QASYMM8));
74const auto DepthConvertLayerF32toQASYMM8Dataset = combine(framework::dataset::make("DataType", DataType::F32), framework::dataset::make("DataType", DataType::QASYMM8));
75const auto DepthConvertLayerShiftDatasetNightly = framework::dataset::make("Shift", 0, 7);
76const auto DepthConvertLayerShiftDatasetPrecommit = framework::dataset::make("Shift", { 0, 3, 6 });
77const auto DepthConvertLayerZeroShiftDataset = framework::dataset::make("Shift", 0);
Michalis Spyroue2588182018-12-13 18:31:18 +000078
79constexpr AbsoluteTolerance<uint8_t> tolerance_qasymm8(1);
Usama Arif9e631c22019-05-14 17:10:40 +010080constexpr AbsoluteTolerance<int32_t> tolerance_one_int32(1);
Michalis Spyrou775c7f52019-06-05 11:45:16 +010081#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
Usama Arif9e631c22019-05-14 17:10:40 +010082constexpr AbsoluteTolerance<uint8_t> tolerance_one_uint8(1);
Michalis Spyrou775c7f52019-06-05 11:45:16 +010083#endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */
Giorgio Arena04a8f8c2017-11-23 11:45:24 +000084} // namespace
85
86TEST_SUITE(NEON)
87TEST_SUITE(DepthConvertLayer)
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000088
89// *INDENT-OFF*
90// clang-format off
91DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
Usama Arif9e631c22019-05-14 17:10:40 +010092 framework::dataset::make("InputInfo", { TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U16), // Invalid data type combination
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000093 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::S16), // Invalid data type combination
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000094 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8), // Mismatching shapes
95 TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::U8), // Invalid shift
96 TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::U8), // Valid
97 }),
Usama Arif9e631c22019-05-14 17:10:40 +010098 framework::dataset::make("OutputInfo",{ TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::F32),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000099 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::F32),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000100 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
101 TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::U8),
102 })),
103 framework::dataset::make("Policy",{ ConvertPolicy::WRAP,
104 ConvertPolicy::WRAP,
105 ConvertPolicy::WRAP,
106 ConvertPolicy::WRAP,
107 ConvertPolicy::WRAP,
108 ConvertPolicy::WRAP,
109 ConvertPolicy::WRAP,
110 })),
111 framework::dataset::make("Shift",{ 1, 1, 1, 1, 1, 1, 8, 1,
112 })),
Usama Arif9e631c22019-05-14 17:10:40 +0100113 framework::dataset::make("Expected", { false, false, false, false, true})),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000114 input_info, output_info, policy, shift, expected)
115{
116 ARM_COMPUTE_EXPECT(bool(NEDepthConvertLayer::validate(&input_info.clone()->set_is_resizable(false), &output_info.clone()->set_is_resizable(false), policy, shift)) == expected, framework::LogLevel::ERRORS);
117}
118// clang-format on
119// *INDENT-ON*
120
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000121template <typename T>
122using NEDepthConvertLayerToU16Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, uint16_t>;
123template <typename T>
124using NEDepthConvertLayerToS16Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, int16_t>;
125template <typename T>
126using NEDepthConvertLayerToS32Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, int32_t>;
127template <typename T>
128using NEDepthConvertLayerToU8Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, uint8_t>;
129template <typename T>
130using NEDepthConvertLayerToU32Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, uint32_t>;
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100131template <typename T>
Georgios Pinitase8291ac2020-02-26 09:58:13 +0000132using NEDepthConvertLayerToBF16Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, bfloat16>;
133template <typename T>
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100134using NEDepthConvertLayerToF16Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, half>;
135template <typename T>
136using NEDepthConvertLayerToF32Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, float>;
Michalis Spyroue2588182018-12-13 18:31:18 +0000137template <typename T>
138using NEDepthConvertLayerToQASYMM8Fixture = DepthConvertLayerValidationQuantizedFixture<Tensor, Accessor, NEDepthConvertLayer, T, uint8_t>;
139template <typename T>
140using NEDepthConvertLayerQuantizedToF16Fixture = DepthConvertLayerValidationQuantizedFixture<Tensor, Accessor, NEDepthConvertLayer, T, half>;
141template <typename T>
142using NEDepthConvertLayerQuantizedToF32Fixture = DepthConvertLayerValidationQuantizedFixture<Tensor, Accessor, NEDepthConvertLayer, T, float>;
Usama Arif9e631c22019-05-14 17:10:40 +0100143template <typename T>
144using NEDepthConvertLayerQuantizedToS32Fixture = DepthConvertLayerValidationQuantizedFixture<Tensor, Accessor, NEDepthConvertLayer, T, int32_t>;
Michalis Spyroue2588182018-12-13 18:31:18 +0000145
146TEST_SUITE(QASYMM8_to_F32)
Michalis Spyroue2588182018-12-13 18:31:18 +0000147FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerQuantizedToF32Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
148 DepthConvertLayerQASYMM8toF32Dataset),
149 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
150 DepthConvertLayerZeroShiftDataset),
151 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
152{
153 // Validate output
154 validate(Accessor(_target), _reference);
155}
156FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerQuantizedToF32Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
157 DepthConvertLayerQASYMM8toF32Dataset),
158 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
159 DepthConvertLayerZeroShiftDataset),
160 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
161{
162 // Validate output
163 validate(Accessor(_target), _reference);
164}
165TEST_SUITE_END() // QASYMM8_to_F32
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000166
Usama Arif9e631c22019-05-14 17:10:40 +0100167TEST_SUITE(QASYMM8_to_S32)
Usama Arif9e631c22019-05-14 17:10:40 +0100168FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerQuantizedToS32Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
169 DepthConvertLayerQASYMM8toS32Dataset),
170 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
171 DepthConvertLayerZeroShiftDataset),
172 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
173{
174 // Validate output
175 validate(Accessor(_target), _reference);
176}
177FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerQuantizedToS32Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
178 DepthConvertLayerQASYMM8toS32Dataset),
179 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
180 DepthConvertLayerZeroShiftDataset),
181 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
182{
183 // Validate output
184 validate(Accessor(_target), _reference);
185}
186TEST_SUITE_END() // QASYMM8_to_S32
187
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000188TEST_SUITE(U8_to_U16)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000189FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU16Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU8toU16Dataset),
190 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000191 DepthConvertLayerShiftDatasetPrecommit))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000192{
193 // Validate output
194 validate(Accessor(_target), _reference);
195}
196
197FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU16Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU8toU16Dataset),
198 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000199 DepthConvertLayerShiftDatasetNightly))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000200{
201 // Validate output
202 validate(Accessor(_target), _reference);
203}
Michalis Spyroue2588182018-12-13 18:31:18 +0000204TEST_SUITE_END() // U8_to_U16
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000205
206TEST_SUITE(U8_to_S16)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000207FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToS16Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU8toS16Dataset),
208 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000209 DepthConvertLayerShiftDatasetPrecommit))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000210{
211 // Validate output
212 validate(Accessor(_target), _reference);
213}
214
215FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToS16Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU8toS16Dataset),
216 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000217 DepthConvertLayerShiftDatasetNightly))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000218{
219 // Validate output
220 validate(Accessor(_target), _reference);
221}
Michalis Spyroue2588182018-12-13 18:31:18 +0000222TEST_SUITE_END() // U8_to_S16
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000223TEST_SUITE(U8_to_S32)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000224FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToS32Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU8toS32Dataset),
225 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000226 DepthConvertLayerShiftDatasetPrecommit))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000227{
228 // Validate output
229 validate(Accessor(_target), _reference);
230}
231
232FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToS32Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU8toS32Dataset),
233 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000234 DepthConvertLayerShiftDatasetNightly))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000235{
236 // Validate output
237 validate(Accessor(_target), _reference);
238}
Michalis Spyroue2588182018-12-13 18:31:18 +0000239TEST_SUITE_END() // U8_to_S32
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000240
Usama Arif9e631c22019-05-14 17:10:40 +0100241TEST_SUITE(U8_to_F32)
Usama Arif9e631c22019-05-14 17:10:40 +0100242FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF32Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU8toF32Dataset),
243 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
244 DepthConvertLayerShiftDatasetPrecommit))
245{
246 // Validate output
247 validate(Accessor(_target), _reference);
248}
249
250FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF32Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU8toF32Dataset),
251 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
252 DepthConvertLayerShiftDatasetNightly))
253{
254 // Validate output
255 validate(Accessor(_target), _reference);
256}
257TEST_SUITE_END() // U8_to_F32
258
259#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
260TEST_SUITE(U8_to_F16)
Usama Arif9e631c22019-05-14 17:10:40 +0100261FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF16Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU8toF16Dataset),
262 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
263 DepthConvertLayerShiftDatasetPrecommit))
264{
265 // Validate output
266 validate(Accessor(_target), _reference);
267}
268
269FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF16Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU8toF16Dataset),
270 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
271 DepthConvertLayerShiftDatasetNightly))
272{
273 // Validate output
274 validate(Accessor(_target), _reference);
275}
276TEST_SUITE_END() // U8_to_F36
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000277#endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
Usama Arif9e631c22019-05-14 17:10:40 +0100278
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000279TEST_SUITE(U16_to_U8)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000280FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU8Fixture<uint16_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU16toU8Dataset),
281 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000282 DepthConvertLayerShiftDatasetPrecommit))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000283{
284 // Validate output
285 validate(Accessor(_target), _reference);
286}
287FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU8Fixture<uint16_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU16toU8Dataset),
288 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000289 DepthConvertLayerShiftDatasetNightly))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000290{
291 // Validate output
292 validate(Accessor(_target), _reference);
293}
Michalis Spyroue2588182018-12-13 18:31:18 +0000294TEST_SUITE_END() // U16_to_U8
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000295
296TEST_SUITE(U16_to_U32)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000297FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU32Fixture<uint16_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU16toU32Dataset),
298 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000299 DepthConvertLayerShiftDatasetPrecommit))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000300{
301 // Validate output
302 validate(Accessor(_target), _reference);
303}
304FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU32Fixture<uint16_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU16toU32Dataset),
305 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000306 DepthConvertLayerShiftDatasetNightly))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000307{
308 // Validate output
309 validate(Accessor(_target), _reference);
310}
Michalis Spyroue2588182018-12-13 18:31:18 +0000311TEST_SUITE_END() // U16_to_U32
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000312
313TEST_SUITE(S16_to_U8)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000314FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU8Fixture<int16_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerS16toU8Dataset),
315 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000316 DepthConvertLayerShiftDatasetPrecommit))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000317{
318 // Validate output
319 validate(Accessor(_target), _reference);
320}
321FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU8Fixture<int16_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerS16toU8Dataset),
322 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000323 DepthConvertLayerShiftDatasetNightly))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000324{
325 // Validate output
326 validate(Accessor(_target), _reference);
327}
Michalis Spyroue2588182018-12-13 18:31:18 +0000328TEST_SUITE_END() // S16_to_U8
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000329
330TEST_SUITE(S16_to_S32)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000331FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToS32Fixture<int16_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerS16toS32Dataset),
332 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000333 DepthConvertLayerShiftDatasetPrecommit))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000334{
335 // Validate output
336 validate(Accessor(_target), _reference);
337}
338FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToS32Fixture<int16_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerS16toS32Dataset),
339 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000340 DepthConvertLayerShiftDatasetNightly))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000341{
342 // Validate output
343 validate(Accessor(_target), _reference);
344}
Michalis Spyroue2588182018-12-13 18:31:18 +0000345TEST_SUITE_END() // S16_to_S32
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000346
Georgios Pinitase8291ac2020-02-26 09:58:13 +0000347#if defined(__ARM_FEATURE_BF16_VECTOR_ARITHMETIC) || defined(ARM_COMPUTE_FORCE_BF16)
348TEST_SUITE(BFLOAT16_to_F32)
349FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF32Fixture<bfloat16>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerBF16toF32Dataset),
350 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
351 DepthConvertLayerZeroShiftDataset))
352{
353 // Validate output
354 validate(Accessor(_target), _reference);
355}
Georgios Pinitase8291ac2020-02-26 09:58:13 +0000356TEST_SUITE_END() // BFLOAT16_to_F32
357
358TEST_SUITE(F32_to_BFLOAT16)
359FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToBF16Fixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF32toBF16Dataset),
360 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
361 DepthConvertLayerZeroShiftDataset))
362{
363 // Validate output
364 validate(Accessor(_target), _reference);
365}
Georgios Pinitase8291ac2020-02-26 09:58:13 +0000366TEST_SUITE_END() // F32_to_BFLOAT16
367#endif /* defined(__ARM_FEATURE_BF16_VECTOR_ARITHMETIC) || defined(ARM_COMPUTE_FORCE_BF16) */
368
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100369#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
Michalis Spyroue2588182018-12-13 18:31:18 +0000370TEST_SUITE(F16_to_QASYMM8)
Michalis Spyroue2588182018-12-13 18:31:18 +0000371FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToQASYMM8Fixture<half>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
372 DepthConvertLayerF16toQASYMM8Dataset),
373 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
374 DepthConvertLayerZeroShiftDataset),
375 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
376{
377 // Validate output
378 validate(Accessor(_target), _reference, tolerance_qasymm8);
379}
380FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToQASYMM8Fixture<half>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
381 DepthConvertLayerF16toQASYMM8Dataset),
382 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
383 DepthConvertLayerZeroShiftDataset),
384 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
385{
386 // Validate output
387 validate(Accessor(_target), _reference, tolerance_qasymm8);
388}
389TEST_SUITE_END() // F16_to_QASYMM8
390
Usama Arif9e631c22019-05-14 17:10:40 +0100391TEST_SUITE(F16_to_U8)
Usama Arif9e631c22019-05-14 17:10:40 +0100392FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU8Fixture<half>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF16toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000393 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
394 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100395{
396 // Validate output
397 validate(Accessor(_target), _reference, tolerance_one_uint8);
398}
399FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU8Fixture<half>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF16toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000400 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
401 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100402{
403 // Validate output
404 validate(Accessor(_target), _reference, tolerance_one_uint8);
405}
406TEST_SUITE_END() // F16_to_U8
407
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100408TEST_SUITE(F16_to_F32)
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100409FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF32Fixture<half>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF16toF32Dataset),
410 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas6a468ef2018-12-04 13:46:48 +0000411 DepthConvertLayerZeroShiftDataset))
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100412{
413 // Validate output
414 validate(Accessor(_target), _reference);
415}
416FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF32Fixture<half>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF16toF32Dataset),
417 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas6a468ef2018-12-04 13:46:48 +0000418 DepthConvertLayerZeroShiftDataset))
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100419{
420 // Validate output
421 validate(Accessor(_target), _reference);
422}
Michalis Spyroue2588182018-12-13 18:31:18 +0000423TEST_SUITE_END() // F16_to_F32
424
Usama Arif9e631c22019-05-14 17:10:40 +0100425TEST_SUITE(F16_to_S32)
Usama Arif9e631c22019-05-14 17:10:40 +0100426FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToS32Fixture<half>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF16toS32Dataset),
427 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
428 DepthConvertLayerZeroShiftDataset))
429{
430 // Validate output
431 validate(Accessor(_target), _reference, tolerance_one_int32);
432}
433FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToS32Fixture<half>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF16toS32Dataset),
434 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
435 DepthConvertLayerZeroShiftDataset))
436{
437 // Validate output
438 validate(Accessor(_target), _reference, tolerance_one_int32);
439}
440
441TEST_SUITE_END() // F16_to_S32
442
Michalis Spyroue2588182018-12-13 18:31:18 +0000443TEST_SUITE(QASYMM8_to_F16)
Michalis Spyroue2588182018-12-13 18:31:18 +0000444FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerQuantizedToF16Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
445 DepthConvertLayerQASYMM8toF16Dataset),
446 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
447 DepthConvertLayerZeroShiftDataset),
448 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
449{
450 // Validate output
451 validate(Accessor(_target), _reference);
452}
453FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerQuantizedToF16Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
454 DepthConvertLayerQASYMM8toF16Dataset),
455 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
456 DepthConvertLayerZeroShiftDataset),
457 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
458{
459 // Validate output
460 validate(Accessor(_target), _reference);
461}
462TEST_SUITE_END() // QASYMM8_to_F16
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100463
464TEST_SUITE(F32_to_F16)
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100465FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF16Fixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF32toF16Dataset),
466 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas6a468ef2018-12-04 13:46:48 +0000467 DepthConvertLayerZeroShiftDataset))
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100468{
469 // Validate output
470 validate(Accessor(_target), _reference);
471}
472FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF16Fixture<float>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF32toF16Dataset),
473 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas6a468ef2018-12-04 13:46:48 +0000474 DepthConvertLayerZeroShiftDataset))
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100475{
476 // Validate output
477 validate(Accessor(_target), _reference);
478}
Michalis Spyroue2588182018-12-13 18:31:18 +0000479TEST_SUITE_END() // F32_to_F16
Usama Arif9e631c22019-05-14 17:10:40 +0100480
481TEST_SUITE(S32_to_F16)
Usama Arif9e631c22019-05-14 17:10:40 +0100482FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF16Fixture<int32_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerS32toF16Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000483 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
484 DepthConvertLayerZeroShiftDataset))
485{
486 // Validate output
487 validate(Accessor(_target), _reference);
488}
489FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF16Fixture<int32_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerS32toF16Dataset),
Usama Arif9e631c22019-05-14 17:10:40 +0100490 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
491 DepthConvertLayerZeroShiftDataset))
492{
493 // Validate output
494 validate(Accessor(_target), _reference);
495}
Usama Arif9e631c22019-05-14 17:10:40 +0100496TEST_SUITE_END() // S32_to_F16
497
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000498#endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100499
Usama Arif9e631c22019-05-14 17:10:40 +0100500TEST_SUITE(F32_to_S32)
Usama Arif9e631c22019-05-14 17:10:40 +0100501FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToS32Fixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF32toS32Dataset),
502 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
503 DepthConvertLayerZeroShiftDataset))
504{
505 // Validate output
506 validate(Accessor(_target), _reference, tolerance_one_int32);
507}
508FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToS32Fixture<float>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF32toS32Dataset),
509 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
510 DepthConvertLayerZeroShiftDataset))
511{
512 // Validate output
513 validate(Accessor(_target), _reference, tolerance_one_int32);
514}
515TEST_SUITE_END() // F32_to_S32
516
517TEST_SUITE(F32_to_U8)
Usama Arif9e631c22019-05-14 17:10:40 +0100518FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU8Fixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF32toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000519 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
520 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100521{
522 // Validate output
523 validate(Accessor(_target), _reference, tolerance_one_int32);
524}
525FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU8Fixture<float>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF32toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000526 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
527 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100528{
529 // Validate output
530 validate(Accessor(_target), _reference, tolerance_one_int32);
531}
532TEST_SUITE_END() // F32_to_U8
533
Michalis Spyroue2588182018-12-13 18:31:18 +0000534TEST_SUITE(F32_to_QASYMM8)
Michalis Spyroue2588182018-12-13 18:31:18 +0000535FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToQASYMM8Fixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
536 DepthConvertLayerF32toQASYMM8Dataset),
537 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
538 DepthConvertLayerZeroShiftDataset),
539 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
540{
541 // Validate output
542 validate(Accessor(_target), _reference, tolerance_qasymm8);
543}
544FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToQASYMM8Fixture<float>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
545 DepthConvertLayerF32toQASYMM8Dataset),
546 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
547 DepthConvertLayerZeroShiftDataset),
548 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
549{
550 // Validate output
551 validate(Accessor(_target), _reference, tolerance_qasymm8);
552}
553TEST_SUITE_END() // F32_to_QASYMM8
Usama Arif9e631c22019-05-14 17:10:40 +0100554
Usama Arif9e631c22019-05-14 17:10:40 +0100555TEST_SUITE(S32_to_F32)
Usama Arif9e631c22019-05-14 17:10:40 +0100556FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF32Fixture<int32_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerS32toF32Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000557 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
558 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100559{
560 // Validate output
561 validate(Accessor(_target), _reference);
562}
563FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF32Fixture<int32_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerS32toF32Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000564 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
565 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100566{
567 // Validate output
568 validate(Accessor(_target), _reference);
569}
570TEST_SUITE_END() // S32_to_F32
571
572TEST_SUITE(S32_to_QASYMM8)
Usama Arif9e631c22019-05-14 17:10:40 +0100573FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToQASYMM8Fixture<int32_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000574 DepthConvertLayerS32toQASYMM8Dataset),
575 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
576 DepthConvertLayerZeroShiftDataset),
577 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
578{
579 // Validate output
580 validate(Accessor(_target), _reference, tolerance_qasymm8);
581}
582FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToQASYMM8Fixture<int32_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
Usama Arif9e631c22019-05-14 17:10:40 +0100583 DepthConvertLayerS32toQASYMM8Dataset),
584 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
585 DepthConvertLayerZeroShiftDataset),
586 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
587{
588 // Validate output
589 validate(Accessor(_target), _reference, tolerance_qasymm8);
590}
Usama Arif9e631c22019-05-14 17:10:40 +0100591TEST_SUITE_END() // S32_to_QASYMM8
592
593TEST_SUITE(S32_to_U8)
Usama Arif9e631c22019-05-14 17:10:40 +0100594FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU8Fixture<int32_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerS32toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000595 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
596 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100597{
598 // Validate output
599 validate(Accessor(_target), _reference);
600}
601FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU8Fixture<int32_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerS32toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000602 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
603 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100604{
605 // Validate output
606 validate(Accessor(_target), _reference);
607}
608TEST_SUITE_END() // S32_to_U8
609
Michalis Spyroue2588182018-12-13 18:31:18 +0000610TEST_SUITE_END() // DepthConvertLayer
611TEST_SUITE_END() // NEON
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000612} // namespace validation
613} // namespace test
614} // namespace arm_compute