aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/NEON/ReductionOperation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/validation/NEON/ReductionOperation.cpp')
-rw-r--r--tests/validation/NEON/ReductionOperation.cpp36
1 files changed, 22 insertions, 14 deletions
diff --git a/tests/validation/NEON/ReductionOperation.cpp b/tests/validation/NEON/ReductionOperation.cpp
index 5b697a5efa..3a7f707d23 100644
--- a/tests/validation/NEON/ReductionOperation.cpp
+++ b/tests/validation/NEON/ReductionOperation.cpp
@@ -66,6 +66,8 @@ const auto QuantizationInfos = framework::dataset::make("QuantizationInfo",
const auto Axises = framework::dataset::make("Axis",
{ 0, 1, 2, 3 });
+const auto KeepDims = framework::dataset::make("KeepDims", { true, false });
+
} // namespace
TEST_SUITE(NEON)
@@ -73,27 +75,31 @@ TEST_SUITE(ReductionOperation)
// *INDENT-OFF*
// clang-format off
-DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(
+DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
framework::dataset::make("InputInfo", { TensorInfo(TensorShape(128U, 64U), 1, DataType::F32), // Mismatching data type input/output
TensorInfo(TensorShape(128U, 64U), 2, DataType::F32), // Number of Input channels != 1
TensorInfo(TensorShape(128U, 64U), 1, DataType::S16), // DataType != F32
TensorInfo(TensorShape(128U, 64U), 1, DataType::F32), // Axis >= num_max_dimensions
- TensorInfo(TensorShape(128U, 64U), 1, DataType::F32)
+ TensorInfo(TensorShape(128U, 64U), 1, DataType::F32),
+ TensorInfo(TensorShape(128U, 64U), 1, DataType::F32) // Kept dimension when keep_dims = false
}),
framework::dataset::make("OutputInfo", { TensorInfo(TensorShape(1U, 64U), 1, DataType::F16),
TensorInfo(TensorShape(1U, 64U), 1, DataType::F32),
TensorInfo(TensorShape(1U, 64U), 1, DataType::S16),
TensorInfo(TensorShape(1U, 64U), 1, DataType::F32),
+ TensorInfo(TensorShape(1U, 64U), 1, DataType::F32),
TensorInfo(TensorShape(1U, 64U), 1, DataType::F32)
})),
- framework::dataset::make("Axis", { 0U, 0U, 0U, static_cast<unsigned int>(TensorShape::num_max_dimensions), 0U })),
- framework::dataset::make("Expected", { false, false, false, false, true })),
- input_info, output_info, axis, expected)
+ framework::dataset::make("Axis", { 0U, 0U, 0U, static_cast<unsigned int>(TensorShape::num_max_dimensions), 0U, 0U })),
+ framework::dataset::make("KeepDims", { true, true, true, true, true, false})),
+ framework::dataset::make("Expected", { false, false, false, false, true, false })),
+ input_info, output_info, axis, keep_dims, expected)
{
bool is_valid = bool(NEReductionOperation::validate(&input_info.clone()->set_is_resizable(false),
&output_info.clone()->set_is_resizable(true),
axis,
- ReductionOperation::SUM_SQUARE));
+ ReductionOperation::SUM_SQUARE,
+ keep_dims));
ARM_COMPUTE_EXPECT(is_valid == expected, framework::LogLevel::ERRORS);
}
// clang-format on
@@ -104,13 +110,13 @@ using NEReductionOperationFixture = ReductionOperationFixture<Tensor, Accessor,
TEST_SUITE(FP32)
FIXTURE_DATA_TEST_CASE(RunSmall, NEReductionOperationFixture<float>, framework::DatasetMode::PRECOMMIT,
- combine(combine(combine(datasets::Small4DShapes(), framework::dataset::make("DataType", DataType::F32)), Axises), ReductionOperations))
+ combine(combine(combine(combine(datasets::Small4DShapes(), framework::dataset::make("DataType", DataType::F32)), Axises), ReductionOperations), KeepDims))
{
// Validate output
validate(Accessor(_target), _reference, tolerance_f32);
}
FIXTURE_DATA_TEST_CASE(RunLarge, NEReductionOperationFixture<float>, framework::DatasetMode::NIGHTLY,
- combine(combine(combine(datasets::Large4DShapes(), framework::dataset::make("DataType", DataType::F32)), Axises), ReductionOperations))
+ combine(combine(combine(combine(datasets::Large4DShapes(), framework::dataset::make("DataType", DataType::F32)), Axises), ReductionOperations), KeepDims))
{
// Validate output
validate(Accessor(_target), _reference, rel_tolerance_f32, 0, tolerance_f32);
@@ -122,17 +128,19 @@ using NEReductionOperationQuantizedFixture = ReductionOperationQuantizedFixture<
TEST_SUITE(QASYMM8)
FIXTURE_DATA_TEST_CASE(RunSmall, NEReductionOperationQuantizedFixture<uint8_t>, framework::DatasetMode::PRECOMMIT,
- combine(combine(combine(combine(datasets::Small4DShapes(), framework::dataset::make("DataType", DataType::QASYMM8)), Axises),
- ReductionOperations),
- QuantizationInfos))
+ combine(combine(combine(combine(combine(datasets::Small4DShapes(), framework::dataset::make("DataType", DataType::QASYMM8)), Axises),
+ ReductionOperations),
+ QuantizationInfos),
+ KeepDims))
{
// Validate output
validate(Accessor(_target), _reference, tolerance_qasymm8);
}
FIXTURE_DATA_TEST_CASE(RunLarge, NEReductionOperationQuantizedFixture<uint8_t>, framework::DatasetMode::NIGHTLY,
- combine(combine(combine(combine(datasets::Large4DShapes(), framework::dataset::make("DataType", DataType::QASYMM8)), Axises),
- ReductionOperations),
- QuantizationInfos))
+ combine(combine(combine(combine(combine(datasets::Large4DShapes(), framework::dataset::make("DataType", DataType::QASYMM8)), Axises),
+ ReductionOperations),
+ QuantizationInfos),
+ KeepDims))
{
// Validate output
validate(Accessor(_target), _reference, tolerance_qasymm8);