aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/CL/Gather.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/validation/CL/Gather.cpp')
-rw-r--r--tests/validation/CL/Gather.cpp82
1 files changed, 51 insertions, 31 deletions
diff --git a/tests/validation/CL/Gather.cpp b/tests/validation/CL/Gather.cpp
index cc892a30d1..7619baae1e 100644
--- a/tests/validation/CL/Gather.cpp
+++ b/tests/validation/CL/Gather.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2019 ARM Limited.
+ * Copyright (c) 2018-2020, 2023 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -25,7 +25,6 @@
#include "arm_compute/runtime/CL/CLTensor.h"
#include "arm_compute/runtime/CL/CLTensorAllocator.h"
#include "arm_compute/runtime/CL/functions/CLGather.h"
-
#include "tests/CL/CLAccessor.h"
#include "tests/datasets/GatherDataset.h"
#include "tests/framework/Asserts.h"
@@ -49,19 +48,21 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
framework::dataset::make("InputInfo", { TensorInfo(TensorShape(27U, 27U), 1, DataType::F16),
TensorInfo(TensorShape(27U, 27U), 1, DataType::F32),
TensorInfo(TensorShape(27U, 27U), 1, DataType::F32),
- TensorInfo(TensorShape(27U, 27U), 1, DataType::F32), // Invalid Indices data type
- TensorInfo(TensorShape(27U, 27U), 1, DataType::F32), // Invalid Indices dimensionality
- TensorInfo(TensorShape(5U, 5U, 5U, 5U, 5U), 1, DataType::F32), // Invalid Input dimensionality
- TensorInfo(TensorShape(27U, 27U), 1, DataType::F16), // Mismatching data type input/output
- TensorInfo(TensorShape(27U, 27U), 1, DataType::F32), // Invalid positive axis value
- TensorInfo(TensorShape(27U, 27U), 1, DataType::F16), // Invalid negative axis value
+ TensorInfo(TensorShape(27U, 27U), 1, DataType::F32), // Invalid Output shape
+ TensorInfo(TensorShape(27U, 27U), 1, DataType::F32), // Invalid Indices data type
+ TensorInfo(TensorShape(27U, 27U), 1, DataType::F32), // Invalid Indices dimensionality
+ TensorInfo(TensorShape(5U, 5U, 5U, 5U, 5U), 1, DataType::F32), // Invalid Input dimensionality
+ TensorInfo(TensorShape(27U, 27U), 1, DataType::F16), // Mismatching data type input/output
+ TensorInfo(TensorShape(27U, 27U), 1, DataType::F32), // Invalid positive axis value
+ TensorInfo(TensorShape(27U, 27U), 1, DataType::F16), // Invalid negative axis value
}),
framework::dataset::make("IndicesInfo", {
TensorInfo(TensorShape(10U), 1, DataType::U32),
TensorInfo(TensorShape(10U), 1, DataType::U32),
TensorInfo(TensorShape(10U), 1, DataType::U32),
- TensorInfo(TensorShape(10U), 1, DataType::U8),
TensorInfo(TensorShape(10U, 10U), 1, DataType::U32),
+ TensorInfo(TensorShape(10U), 1, DataType::U8),
+ TensorInfo(TensorShape(10U, 10U, 10U, 10U), 1, DataType::U32),
TensorInfo(TensorShape(10U), 1, DataType::U32),
TensorInfo(TensorShape(10U), 1, DataType::U32),
TensorInfo(TensorShape(10U), 1, DataType::U32),
@@ -72,7 +73,8 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
TensorInfo(TensorShape(27U, 10U), 1, DataType::F32),
TensorInfo(TensorShape(10U, 27U), 1, DataType::F32),
TensorInfo(TensorShape(10U, 27U), 1, DataType::F32),
- TensorInfo(TensorShape(27U, 10U), 1, DataType::F32),
+ TensorInfo(TensorShape(10U, 27U), 1, DataType::F32),
+ TensorInfo(TensorShape(27U, 10U, 10U, 10U, 10U), 1, DataType::F32),
TensorInfo(TensorShape(10U, 5U, 5U, 5U, 5U), 1, DataType::F32),
TensorInfo(TensorShape(27U, 10U), 1, DataType::F32),
TensorInfo(TensorShape(27U, 27U), 1, DataType::F32),
@@ -83,13 +85,14 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
1,
-2,
0,
+ 0,
1,
0,
1,
2,
-3,
})),
- framework::dataset::make("Expected", { true, true, true, false, false, false, false, false, false })),
+ framework::dataset::make("Expected", { true, true, true, false, false, false, false, false, false, false })),
input_info, indices_info, output_info, axis, expected)
{
const Status status = CLGather::validate(&input_info.clone()->set_is_resizable(true), &indices_info.clone()->set_is_resizable(true), &output_info.clone()->set_is_resizable(true), axis);
@@ -98,26 +101,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
// clang-format on
// *INDENT-ON*
-DATA_TEST_CASE(Configuration,
- framework::DatasetMode::ALL,
- combine(arm_compute::test::datasets::SmallGatherDataset(), framework::dataset::make("DataType", { DataType::F16, DataType::F32 })),
- input_shape, indices_shape, axis, data_type)
-{
- const uint32_t actual_axis = wrap_around(axis, static_cast<int>(input_shape.num_dimensions()));
- CLTensor src = create_tensor<CLTensor>(input_shape, data_type);
- CLTensor indices = create_tensor<CLTensor>(indices_shape, DataType::U32);
- TensorShape dst_shape = arm_compute::misc::shape_calculator::compute_gather_shape(input_shape, indices_shape, actual_axis);
- CLTensor dst = create_tensor<CLTensor>(dst_shape, data_type);
-
- // Create and Configure function
- CLGather gather;
- gather.configure(&src, &indices, &dst, axis);
-
- // Validate valid region
- const ValidRegion valid_region = shape_to_valid_region(dst.info()->tensor_shape());
- validate(dst.info()->valid_region(), valid_region);
-}
-
template <typename T>
using CLGatherFixture = GatherFixture<CLTensor, CLAccessor, CLGather, T>;
@@ -132,6 +115,15 @@ FIXTURE_DATA_TEST_CASE(RunSmall,
validate(CLAccessor(_target), _reference);
}
+FIXTURE_DATA_TEST_CASE(RunSmallMultiDimIndices,
+ CLGatherFixture<half>,
+ framework::DatasetMode::PRECOMMIT,
+ combine(datasets::CLSmallGatherMultiDimIndicesDataset(), framework::dataset::make("DataType", DataType::F16)))
+{
+ // Validate output
+ validate(CLAccessor(_target), _reference);
+}
+
FIXTURE_DATA_TEST_CASE(RunLarge,
CLGatherFixture<half>,
framework::DatasetMode::NIGHTLY,
@@ -152,6 +144,15 @@ FIXTURE_DATA_TEST_CASE(RunSmall,
validate(CLAccessor(_target), _reference);
}
+FIXTURE_DATA_TEST_CASE(RunSmallMultiDimIndices,
+ CLGatherFixture<float>,
+ framework::DatasetMode::PRECOMMIT,
+ combine(datasets::CLSmallGatherMultiDimIndicesDataset(), framework::dataset::make("DataType", DataType::F32)))
+{
+ // Validate output
+ validate(CLAccessor(_target), _reference);
+}
+
FIXTURE_DATA_TEST_CASE(RunLarge,
CLGatherFixture<float>,
framework::DatasetMode::NIGHTLY,
@@ -173,6 +174,15 @@ FIXTURE_DATA_TEST_CASE(RunSmall,
validate(CLAccessor(_target), _reference);
}
+FIXTURE_DATA_TEST_CASE(RunSmallMultiDimIndices,
+ CLGatherFixture<uint8_t>,
+ framework::DatasetMode::PRECOMMIT,
+ combine(datasets::CLSmallGatherMultiDimIndicesDataset(), framework::dataset::make("DataType", DataType::U8)))
+{
+ // Validate output
+ validate(CLAccessor(_target), _reference);
+}
+
FIXTURE_DATA_TEST_CASE(RunLarge,
CLGatherFixture<uint8_t>,
framework::DatasetMode::NIGHTLY,
@@ -193,6 +203,16 @@ FIXTURE_DATA_TEST_CASE(RunSmall,
validate(CLAccessor(_target), _reference);
}
+FIXTURE_DATA_TEST_CASE(RunSmallMultiDimIndices,
+ CLGatherFixture<uint16_t>,
+ framework::DatasetMode::PRECOMMIT,
+ combine(datasets::CLSmallGatherMultiDimIndicesDataset(), framework::dataset::make("DataType", DataType::U16)))
+{
+ // Validate output
+ validate(CLAccessor(_target), _reference);
+}
+
+
FIXTURE_DATA_TEST_CASE(RunLarge,
CLGatherFixture<uint16_t>,
framework::DatasetMode::NIGHTLY,