blob: 5649e5a5562ee5a56f9d6f379e265531c764f1af [file] [log] [blame]
Giorgio Arena04a8f8c2017-11-23 11:45:24 +00001/*
Sheri Zhangac6499a2021-02-10 15:32:38 +00002 * Copyright (c) 2017-2021 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
Georgios Pinitas11d84152021-04-28 10:20:18 +010073const 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 DepthConvertLayerZeroShiftDataset = framework::dataset::make("Shift", 0);
Michalis Spyroue2588182018-12-13 18:31:18 +000076
77constexpr AbsoluteTolerance<uint8_t> tolerance_qasymm8(1);
Usama Arif9e631c22019-05-14 17:10:40 +010078constexpr AbsoluteTolerance<int32_t> tolerance_one_int32(1);
Michalis Spyrou775c7f52019-06-05 11:45:16 +010079#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
Usama Arif9e631c22019-05-14 17:10:40 +010080constexpr AbsoluteTolerance<uint8_t> tolerance_one_uint8(1);
Michalis Spyrou775c7f52019-06-05 11:45:16 +010081#endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */
Giorgio Arena04a8f8c2017-11-23 11:45:24 +000082} // namespace
83
84TEST_SUITE(NEON)
85TEST_SUITE(DepthConvertLayer)
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000086
87// *INDENT-OFF*
88// clang-format off
89DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
Usama Arif9e631c22019-05-14 17:10:40 +010090 framework::dataset::make("InputInfo", { TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U16), // Invalid data type combination
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000091 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::S16), // Invalid data type combination
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000092 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8), // Mismatching shapes
93 TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::U8), // Invalid shift
94 TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::U8), // Valid
95 }),
Usama Arif9e631c22019-05-14 17:10:40 +010096 framework::dataset::make("OutputInfo",{ TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::F32),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000097 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::F32),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +000098 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
99 TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::U8),
100 })),
101 framework::dataset::make("Policy",{ ConvertPolicy::WRAP,
102 ConvertPolicy::WRAP,
103 ConvertPolicy::WRAP,
104 ConvertPolicy::WRAP,
105 ConvertPolicy::WRAP,
106 ConvertPolicy::WRAP,
107 ConvertPolicy::WRAP,
108 })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100109 framework::dataset::make("Shift",{ 0, 0, 0, 1, 1, 1, 8, 1,
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000110 })),
Usama Arif9e631c22019-05-14 17:10:40 +0100111 framework::dataset::make("Expected", { false, false, false, false, true})),
Michalis Spyrouaeebe4a2019-01-09 14:21:03 +0000112 input_info, output_info, policy, shift, expected)
113{
114 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);
115}
116// clang-format on
117// *INDENT-ON*
118
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000119template <typename T>
120using NEDepthConvertLayerToU16Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, uint16_t>;
121template <typename T>
122using NEDepthConvertLayerToS16Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, int16_t>;
123template <typename T>
124using NEDepthConvertLayerToS32Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, int32_t>;
125template <typename T>
126using NEDepthConvertLayerToU8Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, uint8_t>;
127template <typename T>
128using NEDepthConvertLayerToU32Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, uint32_t>;
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100129template <typename T>
Georgios Pinitase8291ac2020-02-26 09:58:13 +0000130using NEDepthConvertLayerToBF16Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, bfloat16>;
131template <typename T>
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100132using NEDepthConvertLayerToF16Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, half>;
133template <typename T>
134using NEDepthConvertLayerToF32Fixture = DepthConvertLayerValidationFixture<Tensor, Accessor, NEDepthConvertLayer, T, float>;
Michalis Spyroue2588182018-12-13 18:31:18 +0000135template <typename T>
136using NEDepthConvertLayerToQASYMM8Fixture = DepthConvertLayerValidationQuantizedFixture<Tensor, Accessor, NEDepthConvertLayer, T, uint8_t>;
137template <typename T>
138using NEDepthConvertLayerQuantizedToF16Fixture = DepthConvertLayerValidationQuantizedFixture<Tensor, Accessor, NEDepthConvertLayer, T, half>;
139template <typename T>
140using NEDepthConvertLayerQuantizedToF32Fixture = DepthConvertLayerValidationQuantizedFixture<Tensor, Accessor, NEDepthConvertLayer, T, float>;
Usama Arif9e631c22019-05-14 17:10:40 +0100141template <typename T>
142using NEDepthConvertLayerQuantizedToS32Fixture = DepthConvertLayerValidationQuantizedFixture<Tensor, Accessor, NEDepthConvertLayer, T, int32_t>;
Michalis Spyroue2588182018-12-13 18:31:18 +0000143
144TEST_SUITE(QASYMM8_to_F32)
Michalis Spyroue2588182018-12-13 18:31:18 +0000145FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerQuantizedToF32Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
146 DepthConvertLayerQASYMM8toF32Dataset),
147 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
148 DepthConvertLayerZeroShiftDataset),
149 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
150{
151 // Validate output
152 validate(Accessor(_target), _reference);
153}
154FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerQuantizedToF32Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
155 DepthConvertLayerQASYMM8toF32Dataset),
156 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
157 DepthConvertLayerZeroShiftDataset),
158 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
159{
160 // Validate output
161 validate(Accessor(_target), _reference);
162}
163TEST_SUITE_END() // QASYMM8_to_F32
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000164
Usama Arif9e631c22019-05-14 17:10:40 +0100165TEST_SUITE(QASYMM8_to_S32)
Usama Arif9e631c22019-05-14 17:10:40 +0100166FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerQuantizedToS32Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
167 DepthConvertLayerQASYMM8toS32Dataset),
168 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
169 DepthConvertLayerZeroShiftDataset),
170 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
171{
172 // Validate output
173 validate(Accessor(_target), _reference);
174}
175FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerQuantizedToS32Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
176 DepthConvertLayerQASYMM8toS32Dataset),
177 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
178 DepthConvertLayerZeroShiftDataset),
179 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
180{
181 // Validate output
182 validate(Accessor(_target), _reference);
183}
184TEST_SUITE_END() // QASYMM8_to_S32
185
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000186TEST_SUITE(U8_to_U16)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000187FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU16Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU8toU16Dataset),
188 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100189 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000190{
191 // Validate output
192 validate(Accessor(_target), _reference);
193}
194
195FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU16Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU8toU16Dataset),
196 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100197 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000198{
199 // Validate output
200 validate(Accessor(_target), _reference);
201}
Michalis Spyroue2588182018-12-13 18:31:18 +0000202TEST_SUITE_END() // U8_to_U16
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000203
204TEST_SUITE(U8_to_S16)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000205FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToS16Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU8toS16Dataset),
206 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100207 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000208{
209 // Validate output
210 validate(Accessor(_target), _reference);
211}
212
213FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToS16Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU8toS16Dataset),
214 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100215 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000216{
217 // Validate output
218 validate(Accessor(_target), _reference);
219}
Michalis Spyroue2588182018-12-13 18:31:18 +0000220TEST_SUITE_END() // U8_to_S16
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000221TEST_SUITE(U8_to_S32)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000222FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToS32Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU8toS32Dataset),
223 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100224 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000225{
226 // Validate output
227 validate(Accessor(_target), _reference);
228}
229
230FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToS32Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU8toS32Dataset),
231 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100232 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000233{
234 // Validate output
235 validate(Accessor(_target), _reference);
236}
Michalis Spyroue2588182018-12-13 18:31:18 +0000237TEST_SUITE_END() // U8_to_S32
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000238
Usama Arif9e631c22019-05-14 17:10:40 +0100239TEST_SUITE(U8_to_F32)
Usama Arif9e631c22019-05-14 17:10:40 +0100240FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF32Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU8toF32Dataset),
241 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100242 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100243{
244 // Validate output
245 validate(Accessor(_target), _reference);
246}
247
248FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF32Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU8toF32Dataset),
249 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100250 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100251{
252 // Validate output
253 validate(Accessor(_target), _reference);
254}
255TEST_SUITE_END() // U8_to_F32
256
257#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
258TEST_SUITE(U8_to_F16)
Usama Arif9e631c22019-05-14 17:10:40 +0100259FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF16Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU8toF16Dataset),
260 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100261 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100262{
263 // Validate output
264 validate(Accessor(_target), _reference);
265}
266
267FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF16Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU8toF16Dataset),
268 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100269 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100270{
271 // Validate output
272 validate(Accessor(_target), _reference);
273}
274TEST_SUITE_END() // U8_to_F36
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000275#endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
Usama Arif9e631c22019-05-14 17:10:40 +0100276
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000277TEST_SUITE(U16_to_U8)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000278FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU8Fixture<uint16_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU16toU8Dataset),
279 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100280 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000281{
282 // Validate output
283 validate(Accessor(_target), _reference);
284}
285FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU8Fixture<uint16_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU16toU8Dataset),
286 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100287 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000288{
289 // Validate output
290 validate(Accessor(_target), _reference);
291}
Michalis Spyroue2588182018-12-13 18:31:18 +0000292TEST_SUITE_END() // U16_to_U8
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000293
294TEST_SUITE(U16_to_U32)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000295FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU32Fixture<uint16_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerU16toU32Dataset),
296 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100297 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000298{
299 // Validate output
300 validate(Accessor(_target), _reference);
301}
302FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU32Fixture<uint16_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerU16toU32Dataset),
303 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100304 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000305{
306 // Validate output
307 validate(Accessor(_target), _reference);
308}
Michalis Spyroue2588182018-12-13 18:31:18 +0000309TEST_SUITE_END() // U16_to_U32
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000310
311TEST_SUITE(S16_to_U8)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000312FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU8Fixture<int16_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerS16toU8Dataset),
313 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100314 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000315{
316 // Validate output
317 validate(Accessor(_target), _reference);
318}
319FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU8Fixture<int16_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerS16toU8Dataset),
320 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100321 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000322{
323 // Validate output
324 validate(Accessor(_target), _reference);
325}
Michalis Spyroue2588182018-12-13 18:31:18 +0000326TEST_SUITE_END() // S16_to_U8
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000327
328TEST_SUITE(S16_to_S32)
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000329FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToS32Fixture<int16_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerS16toS32Dataset),
330 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100331 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000332{
333 // Validate output
334 validate(Accessor(_target), _reference);
335}
336FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToS32Fixture<int16_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerS16toS32Dataset),
337 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas11d84152021-04-28 10:20:18 +0100338 DepthConvertLayerZeroShiftDataset))
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000339{
340 // Validate output
341 validate(Accessor(_target), _reference);
342}
Michalis Spyroue2588182018-12-13 18:31:18 +0000343TEST_SUITE_END() // S16_to_S32
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000344
Georgios Pinitase8291ac2020-02-26 09:58:13 +0000345#if defined(__ARM_FEATURE_BF16_VECTOR_ARITHMETIC) || defined(ARM_COMPUTE_FORCE_BF16)
346TEST_SUITE(BFLOAT16_to_F32)
347FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF32Fixture<bfloat16>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerBF16toF32Dataset),
348 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
349 DepthConvertLayerZeroShiftDataset))
350{
351 // Validate output
352 validate(Accessor(_target), _reference);
353}
Georgios Pinitase8291ac2020-02-26 09:58:13 +0000354TEST_SUITE_END() // BFLOAT16_to_F32
355
356TEST_SUITE(F32_to_BFLOAT16)
357FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToBF16Fixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF32toBF16Dataset),
358 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
359 DepthConvertLayerZeroShiftDataset))
360{
361 // Validate output
362 validate(Accessor(_target), _reference);
363}
Georgios Pinitase8291ac2020-02-26 09:58:13 +0000364TEST_SUITE_END() // F32_to_BFLOAT16
365#endif /* defined(__ARM_FEATURE_BF16_VECTOR_ARITHMETIC) || defined(ARM_COMPUTE_FORCE_BF16) */
366
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100367#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
Michalis Spyroue2588182018-12-13 18:31:18 +0000368TEST_SUITE(F16_to_QASYMM8)
Michalis Spyroue2588182018-12-13 18:31:18 +0000369FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToQASYMM8Fixture<half>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
370 DepthConvertLayerF16toQASYMM8Dataset),
371 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
372 DepthConvertLayerZeroShiftDataset),
373 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
374{
375 // Validate output
376 validate(Accessor(_target), _reference, tolerance_qasymm8);
377}
378FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToQASYMM8Fixture<half>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
379 DepthConvertLayerF16toQASYMM8Dataset),
380 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
381 DepthConvertLayerZeroShiftDataset),
382 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
383{
384 // Validate output
385 validate(Accessor(_target), _reference, tolerance_qasymm8);
386}
387TEST_SUITE_END() // F16_to_QASYMM8
388
Usama Arif9e631c22019-05-14 17:10:40 +0100389TEST_SUITE(F16_to_U8)
Usama Arif9e631c22019-05-14 17:10:40 +0100390FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU8Fixture<half>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF16toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000391 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
392 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100393{
394 // Validate output
395 validate(Accessor(_target), _reference, tolerance_one_uint8);
396}
397FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU8Fixture<half>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF16toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000398 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
399 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100400{
401 // Validate output
402 validate(Accessor(_target), _reference, tolerance_one_uint8);
403}
404TEST_SUITE_END() // F16_to_U8
405
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100406TEST_SUITE(F16_to_F32)
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100407FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF32Fixture<half>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF16toF32Dataset),
408 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas6a468ef2018-12-04 13:46:48 +0000409 DepthConvertLayerZeroShiftDataset))
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100410{
411 // Validate output
412 validate(Accessor(_target), _reference);
413}
414FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF32Fixture<half>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF16toF32Dataset),
415 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas6a468ef2018-12-04 13:46:48 +0000416 DepthConvertLayerZeroShiftDataset))
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100417{
418 // Validate output
419 validate(Accessor(_target), _reference);
420}
Michalis Spyroue2588182018-12-13 18:31:18 +0000421TEST_SUITE_END() // F16_to_F32
422
Usama Arif9e631c22019-05-14 17:10:40 +0100423TEST_SUITE(F16_to_S32)
Usama Arif9e631c22019-05-14 17:10:40 +0100424FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToS32Fixture<half>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF16toS32Dataset),
425 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
426 DepthConvertLayerZeroShiftDataset))
427{
428 // Validate output
429 validate(Accessor(_target), _reference, tolerance_one_int32);
430}
431FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToS32Fixture<half>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF16toS32Dataset),
432 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
433 DepthConvertLayerZeroShiftDataset))
434{
435 // Validate output
436 validate(Accessor(_target), _reference, tolerance_one_int32);
437}
438
439TEST_SUITE_END() // F16_to_S32
440
Michalis Spyroue2588182018-12-13 18:31:18 +0000441TEST_SUITE(QASYMM8_to_F16)
Michalis Spyroue2588182018-12-13 18:31:18 +0000442FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerQuantizedToF16Fixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
443 DepthConvertLayerQASYMM8toF16Dataset),
444 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
445 DepthConvertLayerZeroShiftDataset),
446 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
447{
448 // Validate output
449 validate(Accessor(_target), _reference);
450}
451FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerQuantizedToF16Fixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
452 DepthConvertLayerQASYMM8toF16Dataset),
453 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
454 DepthConvertLayerZeroShiftDataset),
455 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
456{
457 // Validate output
458 validate(Accessor(_target), _reference);
459}
460TEST_SUITE_END() // QASYMM8_to_F16
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100461
462TEST_SUITE(F32_to_F16)
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100463FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF16Fixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF32toF16Dataset),
464 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas6a468ef2018-12-04 13:46:48 +0000465 DepthConvertLayerZeroShiftDataset))
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100466{
467 // Validate output
468 validate(Accessor(_target), _reference);
469}
470FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF16Fixture<float>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF32toF16Dataset),
471 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
Georgios Pinitas6a468ef2018-12-04 13:46:48 +0000472 DepthConvertLayerZeroShiftDataset))
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100473{
474 // Validate output
475 validate(Accessor(_target), _reference);
476}
Michalis Spyroue2588182018-12-13 18:31:18 +0000477TEST_SUITE_END() // F32_to_F16
Usama Arif9e631c22019-05-14 17:10:40 +0100478
479TEST_SUITE(S32_to_F16)
Usama Arif9e631c22019-05-14 17:10:40 +0100480FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF16Fixture<int32_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerS32toF16Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000481 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
482 DepthConvertLayerZeroShiftDataset))
483{
484 // Validate output
485 validate(Accessor(_target), _reference);
486}
487FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF16Fixture<int32_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerS32toF16Dataset),
Usama Arif9e631c22019-05-14 17:10:40 +0100488 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
489 DepthConvertLayerZeroShiftDataset))
490{
491 // Validate output
492 validate(Accessor(_target), _reference);
493}
Usama Arif9e631c22019-05-14 17:10:40 +0100494TEST_SUITE_END() // S32_to_F16
495
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000496#endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */
Michele Di Giorgio3e570db2018-08-24 18:28:48 +0100497
Usama Arif9e631c22019-05-14 17:10:40 +0100498TEST_SUITE(F32_to_S32)
Usama Arif9e631c22019-05-14 17:10:40 +0100499FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToS32Fixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF32toS32Dataset),
500 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
501 DepthConvertLayerZeroShiftDataset))
502{
503 // Validate output
504 validate(Accessor(_target), _reference, tolerance_one_int32);
505}
506FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToS32Fixture<float>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF32toS32Dataset),
507 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
508 DepthConvertLayerZeroShiftDataset))
509{
510 // Validate output
511 validate(Accessor(_target), _reference, tolerance_one_int32);
512}
513TEST_SUITE_END() // F32_to_S32
514
515TEST_SUITE(F32_to_U8)
Usama Arif9e631c22019-05-14 17:10:40 +0100516FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU8Fixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerF32toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000517 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
518 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100519{
520 // Validate output
521 validate(Accessor(_target), _reference, tolerance_one_int32);
522}
523FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU8Fixture<float>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerF32toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000524 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
525 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100526{
527 // Validate output
528 validate(Accessor(_target), _reference, tolerance_one_int32);
529}
530TEST_SUITE_END() // F32_to_U8
531
Michalis Spyroue2588182018-12-13 18:31:18 +0000532TEST_SUITE(F32_to_QASYMM8)
Michalis Spyroue2588182018-12-13 18:31:18 +0000533FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToQASYMM8Fixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
534 DepthConvertLayerF32toQASYMM8Dataset),
535 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
536 DepthConvertLayerZeroShiftDataset),
537 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
538{
539 // Validate output
540 validate(Accessor(_target), _reference, tolerance_qasymm8);
541}
542FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToQASYMM8Fixture<float>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
543 DepthConvertLayerF32toQASYMM8Dataset),
544 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
545 DepthConvertLayerZeroShiftDataset),
546 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
547{
548 // Validate output
549 validate(Accessor(_target), _reference, tolerance_qasymm8);
550}
551TEST_SUITE_END() // F32_to_QASYMM8
Usama Arif9e631c22019-05-14 17:10:40 +0100552
Usama Arif9e631c22019-05-14 17:10:40 +0100553TEST_SUITE(S32_to_F32)
Usama Arif9e631c22019-05-14 17:10:40 +0100554FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToF32Fixture<int32_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerS32toF32Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000555 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
556 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100557{
558 // Validate output
559 validate(Accessor(_target), _reference);
560}
561FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToF32Fixture<int32_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerS32toF32Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000562 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
563 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100564{
565 // Validate output
566 validate(Accessor(_target), _reference);
567}
568TEST_SUITE_END() // S32_to_F32
569
570TEST_SUITE(S32_to_QASYMM8)
Usama Arif9e631c22019-05-14 17:10:40 +0100571FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToQASYMM8Fixture<int32_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000572 DepthConvertLayerS32toQASYMM8Dataset),
573 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
574 DepthConvertLayerZeroShiftDataset),
575 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
576{
577 // Validate output
578 validate(Accessor(_target), _reference, tolerance_qasymm8);
579}
580FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToQASYMM8Fixture<int32_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(),
Usama Arif9e631c22019-05-14 17:10:40 +0100581 DepthConvertLayerS32toQASYMM8Dataset),
582 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })),
583 DepthConvertLayerZeroShiftDataset),
584 framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.5f, 10) })))
585{
586 // Validate output
587 validate(Accessor(_target), _reference, tolerance_qasymm8);
588}
Usama Arif9e631c22019-05-14 17:10:40 +0100589TEST_SUITE_END() // S32_to_QASYMM8
590
591TEST_SUITE(S32_to_U8)
Usama Arif9e631c22019-05-14 17:10:40 +0100592FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthConvertLayerToU8Fixture<int32_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), DepthConvertLayerS32toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000593 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
594 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100595{
596 // Validate output
597 validate(Accessor(_target), _reference);
598}
599FIXTURE_DATA_TEST_CASE(RunLarge, NEDepthConvertLayerToU8Fixture<int32_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), DepthConvertLayerS32toU8Dataset),
Michalis Spyrou4de2d592020-02-21 18:58:38 +0000600 framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE, ConvertPolicy::WRAP })),
601 DepthConvertLayerZeroShiftDataset))
Usama Arif9e631c22019-05-14 17:10:40 +0100602{
603 // Validate output
604 validate(Accessor(_target), _reference);
605}
606TEST_SUITE_END() // S32_to_U8
607
Michalis Spyroue2588182018-12-13 18:31:18 +0000608TEST_SUITE_END() // DepthConvertLayer
Sheri Zhangac6499a2021-02-10 15:32:38 +0000609TEST_SUITE_END() // Neon
Giorgio Arena04a8f8c2017-11-23 11:45:24 +0000610} // namespace validation
611} // namespace test
612} // namespace arm_compute