diff options
author | Michalis Spyrou <michalis.spyrou@arm.com> | 2020-07-30 23:39:32 +0100 |
---|---|---|
committer | Michalis Spyrou <michalis.spyrou@arm.com> | 2020-09-28 08:52:42 +0000 |
commit | d175ecea20f5c9e3bff07f7c5d3e4bb5519f7cb9 (patch) | |
tree | 62b0957e4241acc257685dadb79442ed27f5cb96 /tests/validation/NEON | |
parent | c6af9db1bb6b7a2093205f6f3088143bad660ff9 (diff) | |
download | ComputeLibrary-d175ecea20f5c9e3bff07f7c5d3e4bb5519f7cb9.tar.gz |
COMPMID-3324: Remove configuration tests
Remove configuation tests that use the default data shapes.
There is no need to run them since configure will run as part
of the actual validation run.
Signed-off-by: Michalis Spyrou <michalis.spyrou@arm.com>
Change-Id: If6d88a6ba5e9463fa8c615fcf76a5c07d3049d53
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3638
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests/validation/NEON')
67 files changed, 68 insertions, 2766 deletions
diff --git a/tests/validation/NEON/AbsoluteDifference.cpp b/tests/validation/NEON/AbsoluteDifference.cpp index 9e9a7db738..36499a4552 100644 --- a/tests/validation/NEON/AbsoluteDifference.cpp +++ b/tests/validation/NEON/AbsoluteDifference.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -57,28 +57,6 @@ template <typename T> using NEAbsoluteDifferenceFixture = AbsoluteDifferenceValidationFixture<Tensor, Accessor, NEAbsoluteDifference, T>; TEST_SUITE(U8) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), AbsoluteDifferenceU8Dataset), - shape, data_type0, data_type1, output_data_type) -{ - // Create tensors - Tensor ref_src1 = create_tensor<Tensor>(shape, data_type0); - Tensor ref_src2 = create_tensor<Tensor>(shape, data_type1); - Tensor dst = create_tensor<Tensor>(shape, output_data_type); - - // Create and Configure function - NEAbsoluteDifference abs_diff; - abs_diff.configure(&ref_src1, &ref_src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(ref_src1.info()->padding(), padding); - validate(ref_src2.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} FIXTURE_DATA_TEST_CASE(RunSmall, NEAbsoluteDifferenceFixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(datasets::SmallShapes(), AbsoluteDifferenceU8Dataset)) { @@ -93,28 +71,6 @@ FIXTURE_DATA_TEST_CASE(RunLarge, NEAbsoluteDifferenceFixture<uint8_t>, framework TEST_SUITE_END() // U8 TEST_SUITE(S16) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), AbsoluteDifferenceS16Dataset), - shape, data_type0, data_type1, output_data_type) -{ - // Create tensors - Tensor ref_src1 = create_tensor<Tensor>(shape, data_type0); - Tensor ref_src2 = create_tensor<Tensor>(shape, data_type1); - Tensor dst = create_tensor<Tensor>(shape, output_data_type); - - // Create and Configure function - NEAbsoluteDifference abs_diff; - abs_diff.configure(&ref_src1, &ref_src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(ref_src1.info()->padding(), padding); - validate(ref_src2.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} FIXTURE_DATA_TEST_CASE(RunSmall, NEAbsoluteDifferenceFixture<int16_t>, framework::DatasetMode::PRECOMMIT, combine(datasets::SmallShapes(), AbsoluteDifferenceS16Dataset)) { diff --git a/tests/validation/NEON/Accumulate.cpp b/tests/validation/NEON/Accumulate.cpp index e49069876f..963d697222 100644 --- a/tests/validation/NEON/Accumulate.cpp +++ b/tests/validation/NEON/Accumulate.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -53,26 +53,6 @@ TEST_SUITE(NEON) TEST_SUITE(Accumulate) TEST_SUITE(U8) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), AccumulateS16Dataset), - shape, data_type, output_data_type) -{ - // Create tensors - Tensor ref_src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, output_data_type); - - // Create and Configure function - NEAccumulate accum; - accum.configure(&ref_src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(ref_src.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} template <typename T1> using NEAccumulateFixture = AccumulateValidationFixture<Tensor, Accessor, NEAccumulate, T1, int16_t>; @@ -94,31 +74,6 @@ TEST_SUITE_END() // Accumulate TEST_SUITE(AccumulateWeighted) TEST_SUITE(U8) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), AccumulateU8Dataset), - shape, data_type, output_data_type) -{ - // Generate a random alpha value - std::mt19937 gen(library->seed()); - std::uniform_real_distribution<> float_dist(0, 1); - const float alpha = float_dist(gen); - - // Create tensors - Tensor ref_src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, output_data_type); - - // Create and Configure function - NEAccumulateWeighted accum_weight; - accum_weight.configure(&ref_src, alpha, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(ref_src.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} template <typename T1> using NEAccumulateWeightedFixture = AccumulateWeightedValidationFixture<Tensor, Accessor, NEAccumulateWeighted, T1, uint8_t>; @@ -140,31 +95,6 @@ TEST_SUITE_END() // AccumulateWeighted TEST_SUITE(AccumulateSquared) TEST_SUITE(U8) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), AccumulateS16Dataset), - shape, data_type, output_data_type) -{ - // Generate a random shift value - std::mt19937 gen(library->seed()); - std::uniform_int_distribution<uint32_t> int_dist(0, 15); - const uint32_t shift = int_dist(gen); - - // Create tensors - Tensor ref_src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, output_data_type); - - // Create and Configure function - NEAccumulateSquared accum_square; - accum_square.configure(&ref_src, shift, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(ref_src.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} template <typename T1> using NEAccumulateSquaredFixture = AccumulateSquaredValidationFixture<Tensor, Accessor, NEAccumulateSquared, T1, int16_t>; diff --git a/tests/validation/NEON/ActivationLayer.cpp b/tests/validation/NEON/ActivationLayer.cpp index 33e2850cb1..5af78d41f8 100644 --- a/tests/validation/NEON/ActivationLayer.cpp +++ b/tests/validation/NEON/ActivationLayer.cpp @@ -128,48 +128,6 @@ const auto ActivationDataset = combine(combine(framework::dataset::make("InPlace TEST_SUITE(NEON) TEST_SUITE(ActivationLayer) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::SmallShapes(), CNNDataTypes), framework::dataset::make("InPlace", { false, true })), - shape, data_type, in_place) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type, 1); - Tensor dst = create_tensor<Tensor>(shape, data_type, 1); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create context - RuntimeContext ctx; - - // Create and configure function - NEActivationLayer act_layer(&ctx); - - if(in_place) - { - act_layer.configure(&src, nullptr, ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::ABS)); - } - else - { - act_layer.configure(&src, &dst, ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::ABS)); - } - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - - if(!in_place) - { - validate(dst.info()->valid_region(), valid_region); - } - - // Validate padding - validate(src.info()->padding(), PaddingSize()); - if(!in_place) - { - validate(dst.info()->padding(), PaddingSize()); - } -} - // *INDENT-OFF* // clang-format off DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip( diff --git a/tests/validation/NEON/BitwiseAnd.cpp b/tests/validation/NEON/BitwiseAnd.cpp index f10be8d174..8796cc1147 100644 --- a/tests/validation/NEON/BitwiseAnd.cpp +++ b/tests/validation/NEON/BitwiseAnd.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -43,34 +43,6 @@ namespace validation TEST_SUITE(NEON) TEST_SUITE(BitwiseAnd) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), shape, data_type) -{ - // Create tensors - Tensor src1 = create_tensor<Tensor>(shape, data_type); - Tensor src2 = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src1.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(src2.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEBitwiseAnd bitwise_and; - bitwise_and.configure(&src1, &src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src1.info()->valid_region(), valid_region); - validate(src2.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(src1.info()->padding(), padding); - validate(src2.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} - template <typename T> using NEBitwiseAndFixture = BitwiseAndValidationFixture<Tensor, Accessor, NEBitwiseAnd, T>; diff --git a/tests/validation/NEON/BitwiseNot.cpp b/tests/validation/NEON/BitwiseNot.cpp index a53e77d472..13b3e6d7f3 100644 --- a/tests/validation/NEON/BitwiseNot.cpp +++ b/tests/validation/NEON/BitwiseNot.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -43,30 +43,6 @@ namespace validation TEST_SUITE(NEON) TEST_SUITE(BitwiseNot) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEBitwiseNot bitwise_not; - bitwise_not.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(src.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} - template <typename T> using NEBitwiseNotFixture = BitwiseNotValidationFixture<Tensor, Accessor, NEBitwiseNot, T>; diff --git a/tests/validation/NEON/BitwiseOr.cpp b/tests/validation/NEON/BitwiseOr.cpp index f74594a293..cef712f626 100644 --- a/tests/validation/NEON/BitwiseOr.cpp +++ b/tests/validation/NEON/BitwiseOr.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -43,34 +43,6 @@ namespace validation TEST_SUITE(NEON) TEST_SUITE(BitwiseOr) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), shape, data_type) -{ - // Create tensors - Tensor src1 = create_tensor<Tensor>(shape, data_type); - Tensor src2 = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src1.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(src2.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEBitwiseOr bitwise_or; - bitwise_or.configure(&src1, &src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src1.info()->valid_region(), valid_region); - validate(src2.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(src1.info()->padding(), padding); - validate(src2.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} - template <typename T> using NEBitwiseOrFixture = BitwiseOrValidationFixture<Tensor, Accessor, NEBitwiseOr, T>; diff --git a/tests/validation/NEON/BitwiseXor.cpp b/tests/validation/NEON/BitwiseXor.cpp index 094a69b599..3f973935df 100644 --- a/tests/validation/NEON/BitwiseXor.cpp +++ b/tests/validation/NEON/BitwiseXor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -43,34 +43,6 @@ namespace validation TEST_SUITE(NEON) TEST_SUITE(BitwiseXor) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), shape, data_type) -{ - // Create tensors - Tensor src1 = create_tensor<Tensor>(shape, data_type); - Tensor src2 = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src1.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(src2.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEBitwiseXor bitwise_xor; - bitwise_xor.configure(&src1, &src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src1.info()->valid_region(), valid_region); - validate(src2.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(src1.info()->padding(), padding); - validate(src2.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} - template <typename T> using NEBitwiseXorFixture = BitwiseXorValidationFixture<Tensor, Accessor, NEBitwiseXor, T>; diff --git a/tests/validation/NEON/Box3x3.cpp b/tests/validation/NEON/Box3x3.cpp index b4fd06a549..ef964bf856 100644 --- a/tests/validation/NEON/Box3x3.cpp +++ b/tests/validation/NEON/Box3x3.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,41 +50,6 @@ constexpr BorderSize border_size(filter_size / 2); /* Border size of the kerne TEST_SUITE(NEON) TEST_SUITE(Box3x3) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), - datasets::BorderModes()), - shape, data_type, border_mode) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEBox3x3 box3x3; - box3x3.configure(&src, &dst, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), border_size); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_size(1); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-1); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEBox3x3Fixture = Box3x3ValidationFixture<Tensor, Accessor, NEBox3x3, T>; diff --git a/tests/validation/NEON/CannyEdge.cpp b/tests/validation/NEON/CannyEdge.cpp index 42222c0450..da33ff9eeb 100644 --- a/tests/validation/NEON/CannyEdge.cpp +++ b/tests/validation/NEON/CannyEdge.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -55,41 +55,6 @@ const auto data = combine(framework::dataset::make("GradientSize", { 3, 5, 7 }), TEST_SUITE(NEON) TEST_SUITE(CannyEdge) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(concat(datasets::Small2DShapes(), datasets::Large2DShapes()), data), framework::dataset::make("Format", Format::U8)), - shape, gradient_size, normalization, border_mode, format) -{ - CannyEdgeParameters params = canny_edge_parameters(); - // Convert normalisation type to integer - const auto norm_type = static_cast<int>(normalization) + 1; - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type_from_format(format)); - Tensor dst = create_tensor<Tensor>(shape, data_type_from_format(format)); - src.info()->set_format(format); - dst.info()->set_format(format); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create Canny edge configure function - NECannyEdge canny_edge; - canny_edge.configure(&src, &dst, params.upper_thresh, params.lower_thresh, gradient_size, norm_type, border_mode, params.constant_border_value); - - // Validate valid region - validate(src.info()->valid_region(), shape_to_valid_region(shape, (BorderMode::UNDEFINED == border_mode))); - validate(dst.info()->valid_region(), shape_to_valid_region(shape, (BorderMode::UNDEFINED == border_mode))); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_mode(border_mode); - calculator.set_border_size(gradient_size / 2); - calculator.set_access_offset(-gradient_size / 2); - calculator.set_accessed_elements(16); - - validate(src.info()->padding(), calculator.required_padding()); - validate(dst.info()->padding(), PaddingSize{ 1 }); -} - template <typename T> using NECannyEdgeFixture = CannyEdgeValidationFixture<Tensor, Accessor, KeyPointArray, NECannyEdge, T>; diff --git a/tests/validation/NEON/ChannelCombine.cpp b/tests/validation/NEON/ChannelCombine.cpp index 1a400f2a7d..8ca9828bed 100644 --- a/tests/validation/NEON/ChannelCombine.cpp +++ b/tests/validation/NEON/ChannelCombine.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -42,56 +42,9 @@ namespace test { namespace validation { -namespace -{ -inline void validate_configuration(const TensorShape &shape, Format format) -{ - const int num_planes = num_planes_from_format(format); - - // Create tensors - MultiImage dst = create_multi_image<MultiImage>(shape, format); - std::vector<Tensor> ref_src = create_tensor_planes<Tensor>(shape, format); - - // Create and configure function - NEChannelCombine channel_combine; - - if(num_planes == 1) - { - const Tensor *tensor_extra = Format::RGBA8888 == format ? &ref_src[3] : nullptr; - - channel_combine.configure(&ref_src[0], &ref_src[1], &ref_src[2], tensor_extra, dst.plane(0)); - } - else - { - channel_combine.configure(&ref_src[0], &ref_src[1], &ref_src[2], &dst); - } - - // TODO(bsgcomp): Add validation for padding and shape (COMPMID-659) -} -} // namespace - TEST_SUITE(NEON) TEST_SUITE(ChannelCombine) -TEST_SUITE(Configuration) -DATA_TEST_CASE(RGBA, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), framework::dataset::make("FormatType", { Format::RGB888, Format::RGBA8888 })), - shape, format) -{ - validate_configuration(shape, format); -} -DATA_TEST_CASE(YUV, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), framework::dataset::make("FormatType", { Format::YUYV422, Format::UYVY422 })), - shape, format) -{ - validate_configuration(shape, format); -} - -DATA_TEST_CASE(YUVPlanar, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), framework::dataset::make("FormatType", { Format::IYUV, Format::YUV444, Format::NV12, Format::NV21 })), - shape, format) -{ - validate_configuration(shape, format); -} -TEST_SUITE_END() // Configuration - template <typename T> using NEChannelCombineFixture = ChannelCombineValidationFixture<MultiImage, Tensor, Accessor, NEChannelCombine, T>; diff --git a/tests/validation/NEON/ChannelExtract.cpp b/tests/validation/NEON/ChannelExtract.cpp index db7a9cf65f..d8b1921767 100644 --- a/tests/validation/NEON/ChannelExtract.cpp +++ b/tests/validation/NEON/ChannelExtract.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -51,34 +51,6 @@ const auto ChannelExtractYUVDataset = combine(framework::dataset::make("FormatTy framework::dataset::make("ChannelType", { Channel::Y, Channel::U, Channel::V })); const auto ChannelExtractYUVPlanarDataset = combine(framework::dataset::make("FormatType", { Format::IYUV, Format::YUV444, Format::NV12, Format::NV21 }), framework::dataset::make("ChannelType", { Channel::Y, Channel::U, Channel::V })); - -inline void validate_configuration(const TensorShape &shape, Format format, Channel channel) -{ - const unsigned int num_planes = num_planes_from_format(format); - - TensorShape dst_shape = adjust_odd_shape(shape, format); - dst_shape = calculate_subsampled_shape(dst_shape, format, channel); - - // Create tensors - MultiImage ref_src = create_multi_image<MultiImage>(shape, format); - Tensor dst = create_tensor<Tensor>(dst_shape, Format::U8); - - // Create and Configure function - NEChannelExtract channel_extract; - - if(1U == num_planes) - { - const Tensor *plane_src = ref_src.plane(0); - - channel_extract.configure(plane_src, channel, &dst); - } - else - { - channel_extract.configure(&ref_src, channel, &dst); - } - - // TODO(bsgcomp): Add validation for padding and shape (COMPMID-659) -} } // namespace TEST_SUITE(NEON) @@ -87,25 +59,6 @@ TEST_SUITE(ChannelExtract) template <typename T> using NEChannelExtractFixture = ChannelExtractValidationFixture<MultiImage, Tensor, Accessor, NEChannelExtract, T>; -TEST_SUITE(Configuration) -DATA_TEST_CASE(RGBA, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ChannelExtractRGBADataset), - shape, format, channel) -{ - validate_configuration(shape, format, channel); -} -DATA_TEST_CASE(YUV, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ChannelExtractYUVDataset), - shape, format, channel) -{ - validate_configuration(shape, format, channel); -} - -DATA_TEST_CASE(YUVPlanar, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ChannelExtractYUVPlanarDataset), - shape, format, channel) -{ - validate_configuration(shape, format, channel); -} -TEST_SUITE_END() // Configuration - TEST_SUITE(RGBA) FIXTURE_DATA_TEST_CASE(RunSmall, NEChannelExtractFixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(datasets::Small2DShapes(), ChannelExtractRGBADataset)) { diff --git a/tests/validation/NEON/ChannelShuffle.cpp b/tests/validation/NEON/ChannelShuffle.cpp index d7b98d942a..d0fa82fc53 100644 --- a/tests/validation/NEON/ChannelShuffle.cpp +++ b/tests/validation/NEON/ChannelShuffle.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -70,25 +70,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, - framework::DatasetMode::ALL, - combine(datasets::SmallRandomChannelShuffleLayerDataset(), - framework::dataset::make("DataType", { DataType::S8, DataType::U8, DataType::S16, DataType::U16, DataType::U32, DataType::S32, DataType::F32 })), - shape, num_groups, data_type) -{ - // Create tensors - Tensor ref_src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - // Create and Configure function - NEChannelShuffleLayer channel_shuffle_func; - channel_shuffle_func.configure(&ref_src, &dst, num_groups); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); -} - template <typename T> using NEChannelShuffleLayerFixture = ChannelShuffleLayerValidationFixture<Tensor, Accessor, NEChannelShuffleLayer, T>; diff --git a/tests/validation/NEON/ColorConvert.cpp b/tests/validation/NEON/ColorConvert.cpp index be64ee0095..e079bd12f3 100644 --- a/tests/validation/NEON/ColorConvert.cpp +++ b/tests/validation/NEON/ColorConvert.cpp @@ -70,62 +70,6 @@ const auto ColorConvert_YUYVDataset_to_NVDataset = combine(YUYVDataset, const auto ColorConvert_NVDataset_to_YUVDataset = combine(framework::dataset::make("FormatType", { Format::NV12, Format::NV21 }), framework::dataset::make("FormatType", { Format::IYUV, Format::YUV444 })); - -inline void validate_configuration(const TensorShape &shape, Format src_format, Format dst_format) -{ - const unsigned int src_num_planes = num_planes_from_format(src_format); - const unsigned int dst_num_planes = num_planes_from_format(dst_format); - - TensorShape input = adjust_odd_shape(shape, src_format); - input = adjust_odd_shape(input, dst_format); - - // Create tensors - MultiImage ref_src = create_multi_image<MultiImage>(input, src_format); - MultiImage ref_dst = create_multi_image<MultiImage>(input, dst_format); - - // Create and Configure function - NEColorConvert color_convert; - - if(1U == src_num_planes) - { - const Tensor *src_plane = ref_src.plane(0); - - if(1U == dst_num_planes) - { - Tensor *dst_plane = ref_dst.plane(0); - color_convert.configure(src_plane, dst_plane); - } - else - { - color_convert.configure(src_plane, &ref_dst); - } - } - else - { - if(1U == dst_num_planes) - { - Tensor *dst_plane = ref_dst.plane(0); - color_convert.configure(&ref_src, dst_plane); - } - else - { - color_convert.configure(&ref_src, &ref_dst); - } - } - - for(unsigned int plane_idx = 0; plane_idx < src_num_planes; ++plane_idx) - { - const Tensor *src_plane = ref_src.plane(plane_idx); - - ARM_COMPUTE_EXPECT(src_plane->info()->is_resizable(), framework::LogLevel::ERRORS); - } - for(unsigned int plane_idx = 0; plane_idx < dst_num_planes; ++plane_idx) - { - const Tensor *dst_plane = ref_dst.plane(plane_idx); - - ARM_COMPUTE_EXPECT(dst_plane->info()->is_resizable(), framework::LogLevel::ERRORS); - } -} } // namespace TEST_SUITE(NEON) @@ -134,56 +78,6 @@ TEST_SUITE(ColorConvert) template <typename T> using NEColorConvertFixture = ColorConvertValidationFixture<MultiImage, Tensor, Accessor, NEColorConvert, T>; -TEST_SUITE(Configuration) -DATA_TEST_CASE(RGBA, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ColorConvert_RGBA_to_RGB), - shape, src_format, dst_format) -{ - validate_configuration(shape, src_format, dst_format); -} - -DATA_TEST_CASE(RGB, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ColorConvert_RGB_to_RGBA), - shape, src_format, dst_format) -{ - validate_configuration(shape, src_format, dst_format); -} - -DATA_TEST_CASE(RGBtoU8, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ColorConvert_RGB_to_U8), - shape, src_format, dst_format) -{ - validate_configuration(shape, src_format, dst_format); -} - -DATA_TEST_CASE(YUV, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ColorConvert_YUYVDataset_to_RGBDataset), - shape, src_format, dst_format) -{ - validate_configuration(shape, src_format, dst_format); -} - -DATA_TEST_CASE(YUVPlanar, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ColorConvert_YUVPlanar_to_RGBDataset), - shape, src_format, dst_format) -{ - validate_configuration(shape, src_format, dst_format); -} - -DATA_TEST_CASE(NV, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ColorConvert_RGBDataset_to_NVDataset), - shape, src_format, dst_format) -{ - validate_configuration(shape, src_format, dst_format); -} - -DATA_TEST_CASE(YUYVtoNV, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ColorConvert_YUYVDataset_to_NVDataset), - shape, src_format, dst_format) -{ - validate_configuration(shape, src_format, dst_format); -} - -DATA_TEST_CASE(NVtoYUV, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), ColorConvert_NVDataset_to_YUVDataset), - shape, src_format, dst_format) -{ - validate_configuration(shape, src_format, dst_format); -} -TEST_SUITE_END() // Configuration - TEST_SUITE(RGBA) FIXTURE_DATA_TEST_CASE(RunSmall, NEColorConvertFixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(datasets::Small2DShapes(), ColorConvert_RGBA_to_RGB)) { diff --git a/tests/validation/NEON/Convolution.cpp b/tests/validation/NEON/Convolution.cpp index 96e07dd698..13bc34c995 100644 --- a/tests/validation/NEON/Convolution.cpp +++ b/tests/validation/NEON/Convolution.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -55,46 +55,6 @@ constexpr AbsoluteTolerance<int16_t> tolerance_s16(1); TEST_SUITE(NEON) TEST_SUITE(CustomConvolution) TEST_SUITE(Square3x3) - -DATA_TEST_CASE(Configuration, framework::DatasetMode::NIGHTLY, combine(combine(combine(concat(datasets::SmallShapes(), datasets::LargeShapes()), framework::dataset::make("DataType", { DataType::U8, DataType::S16 })), - datasets::BorderModes()), - framework::dataset::make("filter_size", { 3 })), - shape, output_data_type, border_mode, filter_size) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, DataType::U8); - Tensor dst = create_tensor<Tensor>(shape, output_data_type); - - // Create conv matrix - std::array<int16_t, 9> conv = { 0 }; - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEConvolution3x3 convolution; - convolution.configure(&src, &dst, conv.data(), 0, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), BorderSize(filter_size / 2)); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_size(1); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-1); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEConvolutionFixture = ConvolutionSquareValidationFixture<Tensor, Accessor, NEConvolution3x3, T>; @@ -124,45 +84,6 @@ TEST_SUITE_END() // S16 TEST_SUITE_END() // Square3x3 TEST_SUITE(Square5x5) -DATA_TEST_CASE(Configuration, framework::DatasetMode::NIGHTLY, combine(combine(combine(concat(datasets::SmallShapes(), datasets::LargeShapes()), framework::dataset::make("DataType", { DataType::U8, DataType::S16 })), - datasets::BorderModes()), - framework::dataset::make("filter_size", { 5 })), - shape, output_data_type, border_mode, filter_size) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, DataType::U8); - Tensor dst = create_tensor<Tensor>(shape, output_data_type); - - // Create conv matrix - std::array<int16_t, 25> conv = { 0 }; - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEConvolution5x5 convolution; - convolution.configure(&src, &dst, conv.data(), 0, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), BorderSize(filter_size / 2)); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_size(2); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-2); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEConvolutionFixture = ConvolutionSquareValidationFixture<Tensor, Accessor, NEConvolution5x5, T>; @@ -192,45 +113,6 @@ TEST_SUITE_END() // S16 TEST_SUITE_END() // Square5x5 TEST_SUITE(Square7x7) -DATA_TEST_CASE(Configuration, framework::DatasetMode::NIGHTLY, combine(combine(combine(concat(datasets::SmallShapes(), datasets::LargeShapes()), framework::dataset::make("DataType", { DataType::U8, DataType::S16 })), - datasets::BorderModes()), - framework::dataset::make("filter_size", { 7 })), - shape, output_data_type, border_mode, filter_size) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, DataType::U8); - Tensor dst = create_tensor<Tensor>(shape, output_data_type); - - // Create conv matrix - std::array<int16_t, 49> conv = { 0 }; - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEConvolution7x7 convolution; - convolution.configure(&src, &dst, conv.data(), 0, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), BorderSize(filter_size / 2)); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_size(3); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-3); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEConvolutionFixture = ConvolutionSquareValidationFixture<Tensor, Accessor, NEConvolution7x7, T>; @@ -260,45 +142,6 @@ TEST_SUITE_END() // S16 TEST_SUITE_END() // Square7x7 TEST_SUITE(Square9x9) -DATA_TEST_CASE(Configuration, framework::DatasetMode::NIGHTLY, combine(combine(combine(concat(datasets::SmallShapes(), datasets::LargeShapes()), framework::dataset::make("DataType", { DataType::U8, DataType::S16 })), - datasets::BorderModes()), - framework::dataset::make("filter_size", { 9 })), - shape, output_data_type, border_mode, filter_size) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, DataType::U8); - Tensor dst = create_tensor<Tensor>(shape, output_data_type); - - // Create conv matrix - std::array<int16_t, 81> conv = { 0 }; - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEConvolution9x9 convolution; - convolution.configure(&src, &dst, conv.data(), 0, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), BorderSize(filter_size / 2)); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_size(4); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-4); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEConvolutionFixture = ConvolutionSquareValidationFixture<Tensor, Accessor, NEConvolution9x9, T>; @@ -328,51 +171,6 @@ TEST_SUITE_END() // S16 TEST_SUITE_END() // Square9x9 TEST_SUITE(Rectangle) -DATA_TEST_CASE(Configuration, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(concat(datasets::SmallShapes(), datasets::LargeShapes()), framework::dataset::make("DataType", -{ DataType::U8, DataType::S16 })), -datasets::BorderModes()), -framework::dataset::make("filter_width", { 3, 5, 7, 9 })), -framework::dataset::make("filter_height", { 3, 5, 7, 9 })), -shape, output_data_type, border_mode, filter_width, filter_height) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, DataType::U8); - Tensor dst = create_tensor<Tensor>(shape, output_data_type); - - // Create conv matrix - std::vector<int16_t> conv(filter_height * filter_width); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEConvolutionRectangle convolution; - convolution.configure(&src, &dst, conv.data(), filter_width, filter_height, 1, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), BorderSize(filter_height / 2, filter_width / 2)); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_size(filter_width / 2); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-(filter_width / 2)); - - const PaddingSize width_padding = calculator.required_padding(); - - calculator.set_border_size(filter_height / 2); - calculator.set_access_offset(-(filter_height / 2)); - const PaddingSize height_padding = calculator.required_padding(); - - validate(src.info()->padding(), width_padding, height_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEConvolutionFixture = ConvolutionRectangleValidationFixture<Tensor, Accessor, NEConvolutionRectangle, T>; diff --git a/tests/validation/NEON/DepthwiseConvolutionLayerNative.cpp b/tests/validation/NEON/DepthwiseConvolutionLayerNative.cpp index 0e5024f6d3..be0eee32e0 100644 --- a/tests/validation/NEON/DepthwiseConvolutionLayerNative.cpp +++ b/tests/validation/NEON/DepthwiseConvolutionLayerNative.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Arm Limited. + * Copyright (c) 2019-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -98,77 +98,12 @@ const auto data_type_values = framework::dataset::make("data_type", { DataType:: /** Data layout values to test - All */ const auto data_layout_values = framework::dataset::make("data_layout", { DataLayout::NHWC }); - -/** Configuration test */ -void validate_configuration(size_t width_value, size_t height_value, size_t channel_value, size_t batch_value, Size2D kernel_sz_value, size_t depth_multiplier_value, Size2D dilation_value, Size2D stride_value, bool padding_valid_value, DataType data_type_value, DataLayout data_layout_value) -{ - TensorShape src_shape(width_value, height_value, channel_value, batch_value); - TensorShape weights_shape(kernel_sz_value.width, kernel_sz_value.height, channel_value * depth_multiplier_value); - TensorShape biases_shape(channel_value * depth_multiplier_value); - - if(data_layout_value == DataLayout::NHWC) - { - permute(src_shape, PermutationVector(2U, 0U, 1U, 3U)); - permute(weights_shape, PermutationVector(2U, 0U, 1U)); - } - - TensorInfo src_info(src_shape, 1, data_type_value); - TensorInfo weights_info(weights_shape, 1, data_type_value); - TensorInfo biases_info(biases_shape, 1, data_type_value); - - src_info.set_data_layout(data_layout_value); - weights_info.set_data_layout(data_layout_value); - biases_info.set_data_layout(data_layout_value); - - PadStrideInfo conv_info; - if(padding_valid_value) - { - conv_info = PadStrideInfo(); - } - else - { - conv_info = calculate_same_pad(src_shape, weights_shape, PadStrideInfo(stride_value.width, stride_value.height), data_layout_value, dilation_value); - } - - const TensorShape dst_shape = compute_depthwise_convolution_shape(src_info, weights_info, conv_info, depth_multiplier_value, dilation_value); - - // Create tensors - Tensor src = create_tensor<Tensor>(src_shape, data_type_value, 1, QuantizationInfo(), data_layout_value); - Tensor weights = create_tensor<Tensor>(weights_shape, data_type_value, 1, QuantizationInfo(), data_layout_value); - Tensor biases = create_tensor<Tensor>(biases_shape, data_type_value, 1, QuantizationInfo(), data_layout_value); - Tensor dst = create_tensor<Tensor>(dst_shape, data_type_value, 1, QuantizationInfo(), data_layout_value); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(weights.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(biases.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEDepthwiseConvolutionLayerNative dwc; - dwc.configure(&src, &weights, &biases, &dst, conv_info, depth_multiplier_value, dilation_value); -} } // namespace TEST_SUITE(NEON) TEST_SUITE(DepthwiseConvolutionLayerNative) TEST_SUITE(Float) TEST_SUITE(FP32) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(combine(combine(combine(combine(combine(combine(combine(combine(width_values_precommit, - height_values_precommit), - channel_values_precommit), - batch_values_precommit), - kernel_sz_values_precommit), - depth_multiplier_values), - dilation_values), - stride_values), - padding_valid_values), - data_type_values), - data_layout_values), -width_value, height_value, channel_value, batch_value, kernel_sz_value, depth_multiplier_value, dilation_value, stride_value, padding_valid_value, data_type_value, data_layout_value) -{ - validate_configuration(width_value, height_value, channel_value, batch_value, kernel_sz_value, depth_multiplier_value, dilation_value, stride_value, padding_valid_value, data_type_value, data_layout_value); -} - FIXTURE_DATA_TEST_CASE(RunSmall, NEDepthwiseConvolutionLayerNativeFixture<float>, framework::DatasetMode::ALL, combine(combine(combine(combine(combine(combine(combine(combine(combine(combine(width_values_precommit, height_values_precommit), diff --git a/tests/validation/NEON/DequantizationLayer.cpp b/tests/validation/NEON/DequantizationLayer.cpp index f4defcd4e0..bce60c7891 100644 --- a/tests/validation/NEON/DequantizationLayer.cpp +++ b/tests/validation/NEON/DequantizationLayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -117,32 +117,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, - framework::DatasetMode::ALL, - combine(datasets::SmallShapes(), data_types), - shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, DataType::QASYMM8, 1, QuantizationInfo(0.5f, -10)); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEDequantizationLayer dequant_layer; - dequant_layer.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - validate(src.info()->padding(), PaddingSize()); - validate(dst.info()->padding(), PaddingSize()); -} - template <typename T> using NEDequantizationLayerFixture = DequantizationValidationFixture<Tensor, Accessor, NEDequantizationLayer, T>; diff --git a/tests/validation/NEON/Derivative.cpp b/tests/validation/NEON/Derivative.cpp index 0a047782ce..304ac824ed 100644 --- a/tests/validation/NEON/Derivative.cpp +++ b/tests/validation/NEON/Derivative.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -44,42 +44,6 @@ TEST_SUITE(Derivative) using NEDerivativeFixture = DerivativeValidationFixture<Tensor, Accessor, NEDerivative, uint8_t, int16_t>; -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::Small2DShapes(), datasets::BorderModes()), framework::dataset::make("Format", - Format::U8)), - shape, border_mode, format) -{ - // Generate a random constant value - std::mt19937 gen(library->seed()); - std::uniform_int_distribution<uint8_t> int_dist(0, 255); - const uint8_t constant_border_value = int_dist(gen); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type_from_format(format)); - Tensor dst_x = create_tensor<Tensor>(shape, DataType::S16); - Tensor dst_y = create_tensor<Tensor>(shape, DataType::S16); - - src.info()->set_format(format); - dst_x.info()->set_format(Format::S16); - dst_y.info()->set_format(Format::S16); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst_x.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst_y.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create Derivative configure function - NEDerivative derivative; - derivative.configure(&src, &dst_x, &dst_y, border_mode, constant_border_value); - - // Validate valid region - constexpr BorderSize border_size{ 1 }; - const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); - - validate(dst_x.info()->valid_region(), dst_valid_region); - validate(dst_y.info()->valid_region(), dst_valid_region); - - // TODO(COMPMID-415) Validate padding after fixing x-access input bug in NEON kernel -} - FIXTURE_DATA_TEST_CASE(RunSmall, NEDerivativeFixture, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::Small2DShapes(), datasets::BorderModes()), framework::dataset::make("Format", Format::U8)), datasets::GradientDimensions())) diff --git a/tests/validation/NEON/Dilate.cpp b/tests/validation/NEON/Dilate.cpp index 668d2b01d7..9dc9dd57cd 100644 --- a/tests/validation/NEON/Dilate.cpp +++ b/tests/validation/NEON/Dilate.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,41 +50,6 @@ constexpr BorderSize border_size(filter_size / 2); /* Border size of the kerne TEST_SUITE(NEON) TEST_SUITE(Dilate) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), - datasets::BorderModes()), - shape, data_type, border_mode) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEDilate dilate; - dilate.configure(&src, &dst, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), border_size); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_size(1); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-1); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEDilateFixture = DilateValidationFixture<Tensor, Accessor, NEDilate, T>; diff --git a/tests/validation/NEON/DilatedConvolutionLayer.cpp b/tests/validation/NEON/DilatedConvolutionLayer.cpp index 4c1e532e76..cf2f5f2ea4 100644 --- a/tests/validation/NEON/DilatedConvolutionLayer.cpp +++ b/tests/validation/NEON/DilatedConvolutionLayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -108,49 +108,6 @@ TEST_SUITE_END() // DilatedConvolutionLayer TEST_SUITE(GEMMDilatedConvolutionLayer) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallDilatedConvolutionLayerDataset(), - CNNDataTypes), - input_shape, weights_shape, bias_shape, output_shape, info, dilation, data_type) -{ - auto bias_data_type = is_data_type_quantized_asymmetric(data_type) ? DataType::S32 : data_type; - - // Create tensors - Tensor src = create_tensor<Tensor>(input_shape, data_type, 1, QuantizationInfo(2.f / 255.f, 127)); - Tensor weights = create_tensor<Tensor>(weights_shape, data_type, 1, QuantizationInfo(2.f / 255.f, 127)); - Tensor bias = create_tensor<Tensor>(bias_shape, bias_data_type, 1, QuantizationInfo(2.f / 255.f, 127)); - Tensor dst = create_tensor<Tensor>(output_shape, data_type, 1, QuantizationInfo(2.f / 255.f, 127)); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(weights.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(bias.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - const QuantizationInfo src_quantization_info = src.info()->quantization_info(); - const QuantizationInfo weights_quantization_info = weights.info()->quantization_info(); - - // Create and configure function - NEGEMMConvolutionLayer conv; - conv.configure(&src, &weights, &bias, &dst, info, WeightsInfo(), dilation); - - // Validate valid region - const ValidRegion src_valid_region = shape_to_valid_region(input_shape); - const ValidRegion weights_valid_region = shape_to_valid_region(weights_shape); - const ValidRegion bias_valid_region = shape_to_valid_region(bias_shape); - const ValidRegion dst_valid_region = shape_to_valid_region(output_shape); - - validate(src.info()->valid_region(), src_valid_region); - validate(weights.info()->valid_region(), weights_valid_region); - validate(bias.info()->valid_region(), bias_valid_region); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate QuantizationInfo - ARM_COMPUTE_EXPECT(src.info()->quantization_info() == src_quantization_info, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(weights.info()->quantization_info() == weights_quantization_info, framework::LogLevel::ERRORS); - - // Validate padding - //TODO(COMPMID-415) Need to validate padding? -} - template <typename T> using NEGEMMDilatedConvolutionLayerFixture = ConvolutionValidationFixture<Tensor, Accessor, NEConvolutionLayer, T>; diff --git a/tests/validation/NEON/DirectConvolutionLayer.cpp b/tests/validation/NEON/DirectConvolutionLayer.cpp index 88578ca586..7277592736 100644 --- a/tests/validation/NEON/DirectConvolutionLayer.cpp +++ b/tests/validation/NEON/DirectConvolutionLayer.cpp @@ -195,8 +195,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(zip(zip( // clang-format on // *INDENT-ON* -//TODO(COMPMID-415): Configuration tests? - template <typename T> using NEDirectConvolutionLayerFixture = DirectConvolutionValidationFixture<Tensor, Accessor, NEDirectConvolutionLayer, T>; diff --git a/tests/validation/NEON/ElementwiseAbsoluteValue.cpp b/tests/validation/NEON/ElementwiseAbsoluteValue.cpp index 000a6de609..f135ba9913 100644 --- a/tests/validation/NEON/ElementwiseAbsoluteValue.cpp +++ b/tests/validation/NEON/ElementwiseAbsoluteValue.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Arm Limited. + * Copyright (c) 2019-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,26 +50,6 @@ RelativeTolerance<float> tolerance_fp16(0.01f); TEST_SUITE(NEON) TEST_SUITE(AbsLayer) - -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::F32)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEAbsLayer neg_layer; - neg_layer.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); -} - template <typename T> using NEAbsLayerFixture = AbsValidationFixture<Tensor, Accessor, NEAbsLayer, T>; diff --git a/tests/validation/NEON/ElementwiseDivision.cpp b/tests/validation/NEON/ElementwiseDivision.cpp index 4b613cbd0a..db34af1c05 100644 --- a/tests/validation/NEON/ElementwiseDivision.cpp +++ b/tests/validation/NEON/ElementwiseDivision.cpp @@ -103,23 +103,6 @@ TEST_SUITE_END() // F16 #endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */ TEST_SUITE(F32) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, framework::dataset::concat(datasets::SmallShapes(), datasets::LargeShapes()), - shape) -{ - // Create tensors - Tensor ref_src1 = create_tensor<Tensor>(shape, DataType::F32); - Tensor ref_src2 = create_tensor<Tensor>(shape, DataType::F32); - Tensor dst = create_tensor<Tensor>(shape, DataType::F32); - - // Create and Configure function - NEElementwiseDivision add; - add.configure(&ref_src1, &ref_src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); -} - FIXTURE_DATA_TEST_CASE(RunSmall, NEElementwiseDivisionFixture<float>, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), ElementwiseDivisionFP32Dataset)) { // Validate output diff --git a/tests/validation/NEON/ElementwiseExpLayer.cpp b/tests/validation/NEON/ElementwiseExpLayer.cpp index 5b6f33ef96..3168b9ffe2 100644 --- a/tests/validation/NEON/ElementwiseExpLayer.cpp +++ b/tests/validation/NEON/ElementwiseExpLayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,25 +50,6 @@ RelativeTolerance<float> tolerance_fp16(0.01f); TEST_SUITE(NEON) TEST_SUITE(ExpLayer) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::F32)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEExpLayer exp_layer; - exp_layer.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); -} - template <typename T> using NEExpLayerFixture = ExpValidationFixture<Tensor, Accessor, NEExpLayer, T>; diff --git a/tests/validation/NEON/ElementwiseLog.cpp b/tests/validation/NEON/ElementwiseLog.cpp index 4c5a35d4ac..81e6dc87e8 100644 --- a/tests/validation/NEON/ElementwiseLog.cpp +++ b/tests/validation/NEON/ElementwiseLog.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Arm Limited. + * Copyright (c) 2019-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,25 +50,6 @@ RelativeTolerance<float> tolerance_fp16(0.01f); TEST_SUITE(NEON) TEST_SUITE(LogLayer) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::F32)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NELogLayer log_layer; - log_layer.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); -} - template <typename T> using NELogLayerFixture = LogValidationFixture<Tensor, Accessor, NELogLayer, T>; diff --git a/tests/validation/NEON/ElementwiseNegation.cpp b/tests/validation/NEON/ElementwiseNegation.cpp index e121b13583..ae7dca1ef0 100644 --- a/tests/validation/NEON/ElementwiseNegation.cpp +++ b/tests/validation/NEON/ElementwiseNegation.cpp @@ -50,25 +50,6 @@ RelativeTolerance<float> tolerance_fp16(0.01f); TEST_SUITE(NEON) TEST_SUITE(NegLayer) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::F32)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NENegLayer neg_layer; - neg_layer.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); -} - template <typename T> using NENegLayerFixture = NegValidationInPlaceFixture<Tensor, Accessor, NENegLayer, T>; diff --git a/tests/validation/NEON/ElementwisePower.cpp b/tests/validation/NEON/ElementwisePower.cpp index bdca861c0a..beef1c874b 100644 --- a/tests/validation/NEON/ElementwisePower.cpp +++ b/tests/validation/NEON/ElementwisePower.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Arm Limited. + * Copyright (c) 2019-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -100,22 +100,6 @@ TEST_SUITE_END() // F16 #endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */ TEST_SUITE(F32) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, framework::dataset::concat(datasets::SmallShapes(), datasets::LargeShapes()), - shape) -{ - // Create tensors - Tensor ref_src1 = create_tensor<Tensor>(shape, DataType::F32); - Tensor ref_src2 = create_tensor<Tensor>(shape, DataType::F32); - Tensor dst = create_tensor<Tensor>(shape, DataType::F32); - - // Create and Configure function - NEElementwisePower power; - power.configure(&ref_src1, &ref_src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); -} FIXTURE_DATA_TEST_CASE(RunSmall, NEElementwisePowerFixture<float>, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), ElementwisePowerFP32Dataset)) { diff --git a/tests/validation/NEON/ElementwiseRound.cpp b/tests/validation/NEON/ElementwiseRound.cpp index fc194342fe..e0f24128f6 100644 --- a/tests/validation/NEON/ElementwiseRound.cpp +++ b/tests/validation/NEON/ElementwiseRound.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Arm Limited. + * Copyright (c) 2019-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -43,25 +43,6 @@ namespace validation TEST_SUITE(NEON) TEST_SUITE(RoundLayer) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::F32)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NERoundLayer round_layer; - round_layer.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); -} - template <typename T> using NERoundLayerFixture = RoundValidationFixture<Tensor, Accessor, NERoundLayer, T>; diff --git a/tests/validation/NEON/ElementwiseSin.cpp b/tests/validation/NEON/ElementwiseSin.cpp index 2e93ce3ee9..a2e6cb3760 100644 --- a/tests/validation/NEON/ElementwiseSin.cpp +++ b/tests/validation/NEON/ElementwiseSin.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Arm Limited. + * Copyright (c) 2019-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,25 +50,6 @@ AbsoluteTolerance<float> tolerance_fp16(0.0005f); TEST_SUITE(NEON) TEST_SUITE(SinLayer) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::F32)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NESinLayer sin_layer; - sin_layer.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); -} - template <typename T> using NESinLayerFixture = SinValidationFixture<Tensor, Accessor, NESinLayer, T>; diff --git a/tests/validation/NEON/ElementwiseSquareDiff.cpp b/tests/validation/NEON/ElementwiseSquareDiff.cpp index e81edf77dc..b50db3d4a3 100644 --- a/tests/validation/NEON/ElementwiseSquareDiff.cpp +++ b/tests/validation/NEON/ElementwiseSquareDiff.cpp @@ -109,23 +109,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip( // *INDENT-ON* TEST_SUITE(S32) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, datasets::SmallShapes(), - shape) -{ - // Create tensors - Tensor ref_src1 = create_tensor<Tensor>(shape, DataType::S32); - Tensor ref_src2 = create_tensor<Tensor>(shape, DataType::S32); - Tensor dst = create_tensor<Tensor>(shape, DataType::S32); - - // Create and Configure function - NEElementwiseSquaredDiff add; - add.configure(&ref_src1, &ref_src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); -} - FIXTURE_DATA_TEST_CASE(RunSmall, NEElementwiseSquaredDiffFixture<int32_t>, framework::DatasetMode::PRECOMMIT, combine(datasets::SmallShapes(), ElementwiseSquaredDiffS32Dataset)) { // Validate output @@ -134,23 +117,6 @@ FIXTURE_DATA_TEST_CASE(RunSmall, NEElementwiseSquaredDiffFixture<int32_t>, frame TEST_SUITE_END() // S32 TEST_SUITE(S16) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", { DataType::S16 })), - shape, data_type) -{ - // Create tensors - Tensor ref_src1 = create_tensor<Tensor>(shape, data_type); - Tensor ref_src2 = create_tensor<Tensor>(shape, DataType::S16); - Tensor dst = create_tensor<Tensor>(shape, DataType::S16); - - // Create and Configure function - NEElementwiseSquaredDiff add; - add.configure(&ref_src1, &ref_src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); -} - FIXTURE_DATA_TEST_CASE(RunSmall, NEElementwiseSquaredDiffFixture<int16_t>, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), ElementwiseSquaredDiffS16Dataset)) { // Validate output @@ -163,23 +129,6 @@ using NEElementwiseSquaredDiffQuantizedFixture = ElementwiseSquaredDiffValidatio TEST_SUITE(Quantized) TEST_SUITE(QASYMM8) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, datasets::SmallShapes(), - shape) -{ - // Create tensors - Tensor ref_src1 = create_tensor<Tensor>(shape, DataType::QASYMM8); - Tensor ref_src2 = create_tensor<Tensor>(shape, DataType::QASYMM8); - Tensor dst = create_tensor<Tensor>(shape, DataType::QASYMM8); - - // Create and Configure function - NEElementwiseMin add; - add.configure(&ref_src1, &ref_src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); -} - FIXTURE_DATA_TEST_CASE(RunSmall, NEElementwiseSquaredDiffQuantizedFixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(combine(datasets::SmallShapes(), ElementwiseSquaredDiffQASYMM8Dataset), framework::dataset::make("QuantizationInfo", { QuantizationInfo(5.f / 255.f, 20) })), @@ -231,23 +180,6 @@ TEST_SUITE_END() // F16 #endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */ TEST_SUITE(F32) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, datasets::SmallShapes(), - shape) -{ - // Create tensors - Tensor ref_src1 = create_tensor<Tensor>(shape, DataType::F32); - Tensor ref_src2 = create_tensor<Tensor>(shape, DataType::F32); - Tensor dst = create_tensor<Tensor>(shape, DataType::F32); - - // Create and Configure function - NEElementwiseSquaredDiff add; - add.configure(&ref_src1, &ref_src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); -} - FIXTURE_DATA_TEST_CASE(RunSmall, NEElementwiseSquaredDiffFixture<float>, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), ElementwiseSquaredDiffFP32Dataset)) { // Validate output diff --git a/tests/validation/NEON/EqualizeHistogram.cpp b/tests/validation/NEON/EqualizeHistogram.cpp index e1d3986930..b844c3a1df 100644 --- a/tests/validation/NEON/EqualizeHistogram.cpp +++ b/tests/validation/NEON/EqualizeHistogram.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -38,31 +38,6 @@ namespace validation { TEST_SUITE(NEON) TEST_SUITE(EqualizeHistogram) - -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), framework::dataset::make("DataType", DataType::U8)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEEqualizeHistogram equalize_histogram; - equalize_histogram.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(src.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} - template <typename T> using NEEqualizeHistogramFixture = EqualizeHistogramValidationFixture<Tensor, Accessor, NEEqualizeHistogram, T>; diff --git a/tests/validation/NEON/Erode.cpp b/tests/validation/NEON/Erode.cpp index ff9c9270c5..67fb0fb1f7 100644 --- a/tests/validation/NEON/Erode.cpp +++ b/tests/validation/NEON/Erode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,41 +50,6 @@ constexpr BorderSize border_size(filter_size / 2); /* Border size of the kerne TEST_SUITE(NEON) TEST_SUITE(Erode) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), - datasets::BorderModes()), - shape, data_type, border_mode) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEErode erode; - erode.configure(&src, &dst, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), border_size); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_size(1); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-1); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEErodeFixture = ErodeValidationFixture<Tensor, Accessor, NEErode, T>; diff --git a/tests/validation/NEON/FFT.cpp b/tests/validation/NEON/FFT.cpp index 7f1c7c52b4..bc528dd9a6 100644 --- a/tests/validation/NEON/FFT.cpp +++ b/tests/validation/NEON/FFT.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Arm Limited. + * Copyright (c) 2019-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -72,30 +72,6 @@ constexpr float tolerance_num = 0.07f; /**< Tolerance number */ TEST_SUITE(NEON) TEST_SUITE(FFT1D) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(shapes_1d, data_types), - shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type, 2); - Tensor dst = create_tensor<Tensor>(shape, data_type, 2); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEFFT1D fft1d; - fft1d.configure(&src, &dst, FFT1DInfo()); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - validate(src.info()->padding(), PaddingSize()); - validate(dst.info()->padding(), PaddingSize()); -} - // *INDENT-OFF* // clang-format off DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip( @@ -140,31 +116,6 @@ TEST_SUITE_END() // Float TEST_SUITE_END() // FFT1D TEST_SUITE(FFT2D) - -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(shapes_2d, data_types), - shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type, 2); - Tensor dst = create_tensor<Tensor>(shape, data_type, 2); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEFFT2D fft2d; - fft2d.configure(&src, &dst, FFT2DInfo()); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - validate(src.info()->padding(), PaddingSize()); - validate(dst.info()->padding(), PaddingSize()); -} - // *INDENT-OFF* // clang-format off DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip( diff --git a/tests/validation/NEON/FastCorners.cpp b/tests/validation/NEON/FastCorners.cpp index 389aa604ca..96dadc5169 100644 --- a/tests/validation/NEON/FastCorners.cpp +++ b/tests/validation/NEON/FastCorners.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -53,41 +53,6 @@ const AbsoluteTolerance<float> tolerance(0.5f); TEST_SUITE(NEON) TEST_SUITE(FastCorners) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(combine(concat(datasets::Small2DShapes(), datasets::Large2DShapes()), - framework::dataset::make("Format", Format::U8)), - framework::dataset::make("SuppressNonMax", { false, true })), - framework::dataset::make("BorderMode", BorderMode::UNDEFINED)), - shape, format, suppress_nonmax, border_mode) -{ - std::mt19937 gen(library->seed()); - std::uniform_int_distribution<uint8_t> int_dist(0, 255); - std::uniform_real_distribution<float> real_dist(0, 255); - - const uint8_t constant_border_value = int_dist(gen); - const float threshold = real_dist(gen); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type_from_format(format)); - src.info()->set_format(format); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - - KeyPointArray corners; - - // Create and configure function - NEFastCorners fast_corners; - fast_corners.configure(&src, threshold, suppress_nonmax, &corners, border_mode, constant_border_value); - - // Validate padding - PaddingCalculator calculator(shape.x(), 1); // elems_processed - - calculator.set_border_size(bresenham_radius); - calculator.set_access_offset(-bresenham_radius); - calculator.set_accessed_elements(8); // elems_read - - validate(src.info()->padding(), calculator.required_padding()); -} - template <typename T> using NEFastCornersFixture = FastCornersValidationFixture<Tensor, Accessor, KeyPointArray, NEFastCorners, T>; diff --git a/tests/validation/NEON/GEMMLowp.cpp b/tests/validation/NEON/GEMMLowp.cpp index ca7d50fd40..368433201b 100644 --- a/tests/validation/NEON/GEMMLowp.cpp +++ b/tests/validation/NEON/GEMMLowp.cpp @@ -79,26 +79,6 @@ TEST_SUITE(GEMMLowp) TEST_SUITE(MatrixMultiplyCore) using NEGEMMLowpMatrixMultiplyCoreFixture = GEMMLowpMatrixMultiplyCoreValidationFixture<Tensor, Accessor, NEGEMMLowpMatrixMultiplyCore>; -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, framework::dataset::concat(datasets::SmallGEMMLowpDataset(), datasets::LargeGEMMLowpDataset()), - shape_a, shape_b, shape_c, a_offset, b_offset) -{ - // Create tensors - Tensor a = create_tensor<Tensor>(shape_a, DataType::QASYMM8); - Tensor b = create_tensor<Tensor>(shape_b, DataType::QASYMM8); - Tensor c = create_tensor<Tensor>(shape_c, DataType::S32); - - a.info()->set_quantization_info(QuantizationInfo(1.0f / 255, a_offset)); - b.info()->set_quantization_info(QuantizationInfo(1.0f / 255, b_offset)); - - ARM_COMPUTE_EXPECT(a.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(b.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(c.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEGEMMLowpMatrixMultiplyCore gemmlowp_mm; - gemmlowp_mm.configure(&a, &b, nullptr, &c); -} - // *INDENT-OFF* // clang-format off DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip( @@ -224,11 +204,10 @@ TEST_CASE(NoPaddingAdded, framework::DatasetMode::PRECOMMIT) Tensor output = create_tensor<Tensor>(TensorShape(21U, 13U), DataType::QASYMM8); GEMMLowpOutputStageInfo output_stage = GEMMLowpOutputStageInfo(); - output_stage.type = GEMMLowpOutputStageType::QUANTIZE_DOWN; - output_stage.gemmlowp_min_bound = 0; - output_stage.gemmlowp_max_bound = 205; - output_stage.output_data_type = DataType::QASYMM8; - + output_stage.type = GEMMLowpOutputStageType::QUANTIZE_DOWN; + output_stage.gemmlowp_min_bound = 0; + output_stage.gemmlowp_max_bound = 205; + output_stage.output_data_type = DataType::QASYMM8; NEGEMMLowpOutputStage f; f.configure(&input1, &input2, &output, output_stage); @@ -239,7 +218,6 @@ TEST_CASE(NoPaddingAdded, framework::DatasetMode::PRECOMMIT) validate(output.info()->padding(), PaddingSize()); } - FIXTURE_DATA_TEST_CASE(RunSmall, NEGEMMLowpQuantizeDownInt32ScaleFixture, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), quantize_down_int32_to_uint8_scale_cases)) { // Validate output @@ -378,48 +356,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), - quantize_down_int32_to_uint8_scale_by_fixedpoint_cases), - shape, result_fixedpoint_multiplier, result_shift, result_offset_after_shift, min, max, add_bias) -{ - TensorShape shape_bias(shape[0]); - - // Create tensors - Tensor in = create_tensor<Tensor>(shape, DataType::S32); - Tensor bias = create_tensor<Tensor>(shape_bias, DataType::S32); - Tensor out = create_tensor<Tensor>(shape, DataType::QASYMM8); - - ARM_COMPUTE_EXPECT(in.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(bias.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(out.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint output_stage; - output_stage.configure(&in, add_bias ? &bias : nullptr, &out, result_fixedpoint_multiplier, result_shift, result_offset_after_shift, min, max); - - // Validate valid region input and output - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(in.info()->valid_region(), valid_region); - validate(out.info()->valid_region(), valid_region); - - // Validate valid region bias - if(add_bias) - { - const ValidRegion valid_region_bias = shape_to_valid_region(shape_bias); - validate(bias.info()->valid_region(), valid_region_bias); - } - - // Validate padding - const PaddingSize padding(0); - validate(in.info()->padding(), padding); - validate(out.info()->padding(), padding); - - if(add_bias) - { - validate(bias.info()->padding(), padding); - } -} - FIXTURE_DATA_TEST_CASE(RunSmall, NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointFixture, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), quantize_down_int32_to_uint8_scale_by_fixedpoint_cases)) { @@ -502,47 +438,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), - quantize_down_int32_to_int8_scale_by_fixedpoint_cases), - shape, result_fixedpoint_multiplier, result_shift, result_offset_after_shift, min, max, add_bias) -{ - TensorShape shape_bias(shape[0]); - - // Create tensors - Tensor in = create_tensor<Tensor>(shape, DataType::S32); - Tensor bias = create_tensor<Tensor>(shape_bias, DataType::S32); - Tensor out = create_tensor<Tensor>(shape, DataType::QASYMM8_SIGNED); - - ARM_COMPUTE_EXPECT(in.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(bias.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(out.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEGEMMLowpQuantizeDownInt32ToInt8ScaleByFixedPoint output_stage; - output_stage.configure(&in, add_bias ? &bias : nullptr, &out, result_fixedpoint_multiplier, result_shift, result_offset_after_shift, min, max); - - // Validate valid region input and output - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(in.info()->valid_region(), valid_region); - validate(out.info()->valid_region(), valid_region); - - // Validate valid region bias - if(add_bias) - { - const ValidRegion valid_region_bias = shape_to_valid_region(shape_bias); - validate(bias.info()->valid_region(), valid_region_bias); - } - - // Validate padding - const PaddingSize padding(0); - validate(in.info()->padding(), padding); - validate(out.info()->padding(), padding); - - if(add_bias) - { - validate(bias.info()->padding(), padding); - } -} FIXTURE_DATA_TEST_CASE(RunSmall, NEGEMMLowpQuantizeDownInt32ToInt8ScaleByFixedPointFixture, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), quantize_down_int32_to_int8_scale_by_fixedpoint_cases)) { @@ -616,47 +511,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), - quantize_down_int32_to_int16_scale_by_fixedpoint_cases), - shape, result_fixedpoint_multiplier, result_shift, min, max, add_bias) -{ - TensorShape shape_bias(shape[0]); - - // Create tensors - Tensor in = create_tensor<Tensor>(shape, DataType::S32); - Tensor bias = create_tensor<Tensor>(shape_bias, DataType::S32); - Tensor out = create_tensor<Tensor>(shape, DataType::QSYMM16); - - ARM_COMPUTE_EXPECT(in.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(bias.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(out.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEGEMMLowpQuantizeDownInt32ToInt16ScaleByFixedPoint output_stage; - output_stage.configure(&in, add_bias ? &bias : nullptr, &out, result_fixedpoint_multiplier, result_shift, min, max); - - // Validate valid region input and output - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(in.info()->valid_region(), valid_region); - validate(out.info()->valid_region(), valid_region); - - // Validate valid region bias - if(add_bias) - { - const ValidRegion valid_region_bias = shape_to_valid_region(shape_bias); - validate(bias.info()->valid_region(), valid_region_bias); - } - - // Validate padding - const PaddingSize padding(0); - validate(in.info()->padding(), padding); - validate(out.info()->padding(), padding); - - if(add_bias) - { - validate(bias.info()->padding(), padding); - } -} TEST_SUITE(NoRelu) TEST_SUITE(MultSmallerEq1) FIXTURE_DATA_TEST_CASE(RunSmall, NEGEMMLowpQuantizeDownInt32ToInt16ScaleByFixedPointFixture, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), diff --git a/tests/validation/NEON/Gather.cpp b/tests/validation/NEON/Gather.cpp index af534ba772..d2d5df802a 100644 --- a/tests/validation/NEON/Gather.cpp +++ b/tests/validation/NEON/Gather.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Arm Limited. + * Copyright (c) 2019-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -97,26 +97,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::F32 })), - input_shape, indices_shape, axis, data_type) -{ - const uint32_t actual_axis = wrap_around(axis, static_cast<int>(input_shape.num_dimensions())); - Tensor src = create_tensor<Tensor>(input_shape, data_type); - Tensor indices = create_tensor<Tensor>(indices_shape, DataType::U32); - TensorShape dst_shape = arm_compute::misc::shape_calculator::compute_gather_shape(input_shape, indices_shape, actual_axis); - Tensor dst = create_tensor<Tensor>(dst_shape, data_type); - - // Create and Configure function - NEGather 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 NEGatherFixture = GatherFixture<Tensor, Accessor, NEGather, T>; diff --git a/tests/validation/NEON/Gaussian3x3.cpp b/tests/validation/NEON/Gaussian3x3.cpp index 7396be7845..bcd9e0259a 100644 --- a/tests/validation/NEON/Gaussian3x3.cpp +++ b/tests/validation/NEON/Gaussian3x3.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,41 +50,6 @@ constexpr BorderSize border_size(filter_size / 2); /** Border size of the kern TEST_SUITE(NEON) TEST_SUITE(Gaussian3x3) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), - datasets::BorderModes()), - shape, data_type, border_mode) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEGaussian3x3 gaussian3x3; - gaussian3x3.configure(&src, &dst, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), border_size); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_size(1); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-1); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEGaussian3x3Fixture = Gaussian3x3ValidationFixture<Tensor, Accessor, NEGaussian3x3, T>; diff --git a/tests/validation/NEON/Gaussian5x5.cpp b/tests/validation/NEON/Gaussian5x5.cpp index 6c4c480ee9..9b5ae401b0 100644 --- a/tests/validation/NEON/Gaussian5x5.cpp +++ b/tests/validation/NEON/Gaussian5x5.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,41 +50,6 @@ constexpr BorderSize border_size(filter_size / 2); /** Border size of the kern TEST_SUITE(NEON) TEST_SUITE(Gaussian5x5) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), - datasets::BorderModes()), - shape, data_type, border_mode) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEGaussian5x5 gaussian5x5; - gaussian5x5.configure(&src, &dst, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), border_size); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 16); - calculator.set_border_size(2); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_processed_elements(8); - calculator.set_access_offset(-2); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEGaussian5x5Fixture = Gaussian5x5ValidationFixture<Tensor, Accessor, NEGaussian5x5, T>; diff --git a/tests/validation/NEON/GaussianPyramid.cpp b/tests/validation/NEON/GaussianPyramid.cpp index ed8e43cea9..a6e6f43f8a 100644 --- a/tests/validation/NEON/GaussianPyramid.cpp +++ b/tests/validation/NEON/GaussianPyramid.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -20,7 +20,7 @@ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. -*/ + */ #include "arm_compute/core/Types.h" #include "arm_compute/runtime/NEON/functions/NEGaussianPyramid.h" #include "arm_compute/runtime/Tensor.h" @@ -69,27 +69,6 @@ TEST_SUITE(NEON) TEST_SUITE(GaussianPyramid) TEST_SUITE(Half) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, large_gaussian_pyramid_levels, - shape, border_mode, num_levels) -{ - Tensor src = create_tensor<Tensor>(shape, DataType::U8); - - // Create pyramid - PyramidInfo pyramid_info(num_levels, SCALE_PYRAMID_HALF, shape, Format::U8); - Pyramid dst; - dst.init(pyramid_info); - - NEGaussianPyramidHalf gaussian_pyramid_half; - gaussian_pyramid_half.configure(&src, &dst, border_mode, 0); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - - for(size_t level = 0; level < pyramid_info.num_levels(); ++level) - { - ARM_COMPUTE_EXPECT(dst.get_pyramid_level(level)->info()->is_resizable(), framework::LogLevel::ERRORS); - } -} - template <typename T> using NEGaussianPyramidHalfFixture = GaussianPyramidHalfValidationFixture<Tensor, Accessor, NEGaussianPyramidHalf, T, Pyramid>; diff --git a/tests/validation/NEON/HarrisCorners.cpp b/tests/validation/NEON/HarrisCorners.cpp index e4c0827bb8..d88cad6564 100644 --- a/tests/validation/NEON/HarrisCorners.cpp +++ b/tests/validation/NEON/HarrisCorners.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -56,47 +56,6 @@ const auto data = combine(framework::dataset::make("GradientSize", { 3, 5, 7 }), TEST_SUITE(NEON) TEST_SUITE(HarrisCorners) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::Small2DShapes(), data), framework::dataset::make("Format", Format::U8)), shape, - gradient_size, block_size, border_mode, format) -{ - std::mt19937 gen(library->seed()); - std::uniform_real_distribution<float> real_dist(0.f, 0.01f); - - const float threshold = real_dist(gen); - const float sensitivity = real_dist(gen); - - constexpr float max_euclidean_distance = 30.f; - real_dist = std::uniform_real_distribution<float>(0.f, max_euclidean_distance); - const float min_dist = real_dist(gen); - - // Generate a random constant value - std::uniform_int_distribution<uint8_t> int_dist(0, 255); - const uint8_t constant_border_value = int_dist(gen); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type_from_format(format)); - src.info()->set_format(format); - KeyPointArray corners; - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create harris corners configure function - NEHarrisCorners harris_corners; - harris_corners.configure(&src, threshold, min_dist, sensitivity, gradient_size, block_size, &corners, border_mode, constant_border_value); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - - calculator.set_border_mode(border_mode); - calculator.set_border_size(gradient_size / 2); - calculator.set_access_offset(-gradient_size / 2); - calculator.set_accessed_elements(16); - - const PaddingSize padding = calculator.required_padding(); - - validate(src.info()->padding(), padding); -} - template <typename T> using NEHarrisCornersFixture = HarrisCornersValidationFixture<Tensor, Accessor, KeyPointArray, NEHarrisCorners, T>; diff --git a/tests/validation/NEON/Histogram.cpp b/tests/validation/NEON/Histogram.cpp index 03b2e2b705..cd113857f3 100644 --- a/tests/validation/NEON/Histogram.cpp +++ b/tests/validation/NEON/Histogram.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -45,44 +45,6 @@ namespace validation TEST_SUITE(NEON) TEST_SUITE(Histogram) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), - framework::dataset::make("DataType", DataType::U8)), - shape, data_type) -{ - // Setup Distribution - std::mt19937 gen(library->seed()); - std::uniform_int_distribution<size_t> distribution_size_t(1, 30); - const size_t num_bins = distribution_size_t(gen); - std::uniform_int_distribution<int32_t> distribution_int32_t(0, 125); - const size_t offset = distribution_int32_t(gen); - std::uniform_int_distribution<uint32_t> distribution_uint32_t(1, 255 - offset); - const size_t range = distribution_uint32_t(gen); - Distribution1D distribution_dst(num_bins, offset, range); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - TensorShape dst_shape(num_bins); - Tensor dst = create_tensor<Tensor>(dst_shape, DataType::U32); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEHistogram histogram; - histogram.configure(&src, &distribution_dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - const ValidRegion valid_region_dst = shape_to_valid_region(dst_shape); - validate(dst.info()->valid_region(), valid_region_dst); - - // Validate padding - const PaddingSize padding; - validate(src.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} - template <typename T> using NEHistogramFixture = HistogramValidationFixture<Tensor, Accessor, NEHistogram, T, Distribution1D>; diff --git a/tests/validation/NEON/IntegralImage.cpp b/tests/validation/NEON/IntegralImage.cpp index 2a8aa956b7..14e7df7152 100644 --- a/tests/validation/NEON/IntegralImage.cpp +++ b/tests/validation/NEON/IntegralImage.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -38,31 +38,6 @@ namespace validation TEST_SUITE(NEON) TEST_SUITE(IntegralImage) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, DataType::U32); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEIntegralImage integral_image; - integral_image.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize src_padding = PaddingCalculator(shape.x(), 16).required_padding(); - const PaddingSize dst_padding(1, src_padding.right, 0, 1); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEIntegralImageFixture = IntegralImageValidationFixture<Tensor, Accessor, NEIntegralImage, T>; diff --git a/tests/validation/NEON/LaplacianPyramid.cpp b/tests/validation/NEON/LaplacianPyramid.cpp index 0c03c70445..5ddd0e750f 100644 --- a/tests/validation/NEON/LaplacianPyramid.cpp +++ b/tests/validation/NEON/LaplacianPyramid.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -20,7 +20,7 @@ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. -*/ + */ #include "arm_compute/core/Types.h" #include "arm_compute/runtime/NEON/functions/NELaplacianPyramid.h" #include "arm_compute/runtime/Tensor.h" @@ -77,39 +77,6 @@ TEST_SUITE(LaplacianPyramid) // *INDENT-OFF* // clang-format off -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine( - concat(datasets::Medium2DShapes(), datasets::Large2DShapes()), - datasets::BorderModes()), - large_laplacian_pyramid_levels), - shape, border_mode, num_levels) -{ - // Create pyramid info - PyramidInfo pyramid_info(num_levels, SCALE_PYRAMID_HALF, shape, Format::S16); - Pyramid dst_pyramid{}; - dst_pyramid.init(pyramid_info); - - // Create Tensors - Tensor src = create_tensor<Tensor>(shape, Format::U8); - - // The first two dimensions of the output tensor must match the first two - // dimensions of the tensor in the last level of the pyramid - TensorShape dst_shape(shape); - dst_shape.set(0, dst_pyramid.get_pyramid_level(num_levels - 1)->info()->dimension(0)); - dst_shape.set(1, dst_pyramid.get_pyramid_level(num_levels - 1)->info()->dimension(1)); - Tensor dst = create_tensor<Tensor>(dst_shape, Format::S16); - - // Create and configure function - NELaplacianPyramid laplacian_pyramid; - laplacian_pyramid.configure(&src, &dst_pyramid, &dst, border_mode, 0); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - for(size_t level = 0; level < pyramid_info.num_levels(); ++level) - { - ARM_COMPUTE_EXPECT(dst_pyramid.get_pyramid_level(level)->info()->is_resizable(), framework::LogLevel::ERRORS); - } -} using NELaplacianPyramidFixture = LaplacianPyramidValidationFixture<Tensor, Accessor, NELaplacianPyramid, uint8_t, int16_t, Pyramid>; diff --git a/tests/validation/NEON/LaplacianReconstruct.cpp b/tests/validation/NEON/LaplacianReconstruct.cpp index bc1151f700..e407ea0a22 100644 --- a/tests/validation/NEON/LaplacianReconstruct.cpp +++ b/tests/validation/NEON/LaplacianReconstruct.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -20,7 +20,7 @@ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. -*/ + */ #include "arm_compute/core/Types.h" #include "arm_compute/runtime/NEON/functions/NELaplacianPyramid.h" #include "arm_compute/runtime/NEON/functions/NELaplacianReconstruct.h" @@ -68,48 +68,6 @@ TEST_SUITE(LaplacianReconstruct) // *INDENT-OFF* // clang-format off -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine( - concat(datasets::Medium2DShapes(), datasets::Large2DShapes()), - datasets::BorderModes()), - large_laplacian_reconstruct_levels), - shape, border_mode, num_levels) -{ - // Create pyramid info - PyramidInfo pyramid_info(num_levels, SCALE_PYRAMID_HALF, shape, Format::S16); - Pyramid dst_pyramid{}; - dst_pyramid.init(pyramid_info); - - // Create Tensors - Tensor src = create_tensor<Tensor>(shape, DataType::U8); - - // The first two dimensions of the output tensor must match the first two - // dimensions of the tensor in the last level of the pyramid - TensorShape dst_shape(shape); - dst_shape.set(0, dst_pyramid.get_pyramid_level(num_levels - 1)->info()->dimension(0)); - dst_shape.set(1, dst_pyramid.get_pyramid_level(num_levels - 1)->info()->dimension(1)); - Tensor dst = create_tensor<Tensor>(dst_shape, DataType::S16); - - // The dimensions of the reconstruct are the same as the src shape - Tensor rec_dst = create_tensor<Tensor>(shape, DataType::U8); - - // Create and configure pyramid function - NELaplacianPyramid laplacian_pyramid; - laplacian_pyramid.configure(&src, &dst_pyramid, &dst, border_mode, 0); - - // Create and configure reconstruct function - NELaplacianReconstruct laplacian_reconstruct; - laplacian_reconstruct.configure(&dst_pyramid, &dst, &rec_dst, border_mode, 0); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - for(size_t level = 0; level < pyramid_info.num_levels(); ++level) - { - ARM_COMPUTE_EXPECT(dst_pyramid.get_pyramid_level(level)->info()->is_resizable(), framework::LogLevel::ERRORS); - } - - ARM_COMPUTE_EXPECT(rec_dst.info()->is_resizable(), framework::LogLevel::ERRORS); -} using NELaplacianReconstructFixture = LaplacianReconstructValidationFixture<Tensor, Accessor, NELaplacianReconstruct, NELaplacianPyramid, int16_t, uint8_t, Pyramid>; diff --git a/tests/validation/NEON/Magnitude.cpp b/tests/validation/NEON/Magnitude.cpp index e14b32a89e..9ba119b234 100644 --- a/tests/validation/NEON/Magnitude.cpp +++ b/tests/validation/NEON/Magnitude.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -49,32 +49,6 @@ AbsoluteTolerance<T> tolerance(MagnitudeType magnitude_type) TEST_SUITE(NEON) TEST_SUITE(Magnitude) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::S16)), shape, data_type) -{ - // Create tensors - Tensor src1 = create_tensor<Tensor>(shape, data_type); - Tensor src2 = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src1.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(src2.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function (default MagnitudeType::L2NORM) - NEMagnitude magnitude; - magnitude.configure(&src1, &src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(src1.info()->padding(), padding); - validate(src2.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} - template <typename T> using NEMagnitudeFixture = MagnitudeValidationFixture<Tensor, Accessor, NEMagnitude, T>; diff --git a/tests/validation/NEON/MeanStdDev.cpp b/tests/validation/NEON/MeanStdDev.cpp index a10939680c..d688719331 100644 --- a/tests/validation/NEON/MeanStdDev.cpp +++ b/tests/validation/NEON/MeanStdDev.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -44,26 +44,6 @@ RelativeTolerance<float> tolerance_rel_low_error(0.0005f); TEST_SUITE(NEON) TEST_SUITE(MeanStdDev) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), framework::dataset::make("DataType", DataType::U8)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - - // Create output variables - float mean = 0.f; - float std_dev = 0.f; - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create configure function - NEMeanStdDev mean_std_dev_image; - mean_std_dev_image.configure(&src, &mean, &std_dev); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(src.info()->padding(), padding); -} - template <typename T> using NEMeanStdDevFixture = MeanStdDevValidationFixture<Tensor, Accessor, NEMeanStdDev, T>; diff --git a/tests/validation/NEON/Median3x3.cpp b/tests/validation/NEON/Median3x3.cpp index 1924a448d6..f22a27713b 100644 --- a/tests/validation/NEON/Median3x3.cpp +++ b/tests/validation/NEON/Median3x3.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,41 +50,6 @@ constexpr BorderSize border_size(filter_size / 2); /* Border size of the kerne TEST_SUITE(NEON) TEST_SUITE(Median3x3) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), - datasets::BorderModes()), - shape, data_type, border_mode) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEMedian3x3 median3x3; - median3x3.configure(&src, &dst, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, (border_mode == BorderMode::UNDEFINED), border_size); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - calculator.set_border_size(1); - calculator.set_border_mode(border_mode); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-1); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEMedian3x3Fixture = Median3x3ValidationFixture<Tensor, Accessor, NEMedian3x3, T>; diff --git a/tests/validation/NEON/MinMaxLocation.cpp b/tests/validation/NEON/MinMaxLocation.cpp index 973ea930bb..553159bc7c 100644 --- a/tests/validation/NEON/MinMaxLocation.cpp +++ b/tests/validation/NEON/MinMaxLocation.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -43,34 +43,7 @@ TEST_SUITE(MinMaxLocation) template <typename T> using NEMinMaxLocationFixture = MinMaxLocationValidationFixture<Tensor, Accessor, Array<Coordinates2D>, ArrayAccessor<Coordinates2D>, NEMinMaxLocation, T>; -void validate_configuration(const Tensor &src, TensorShape shape) -{ - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create output storage - int32_t min{}; - int32_t max{}; - Coordinates2DArray min_loc(shape.total_size()); - Coordinates2DArray max_loc(shape.total_size()); - - // Create and configure function - NEMinMaxLocation min_max_loc; - min_max_loc.configure(&src, &min, &max, &min_loc, &max_loc); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 1).required_padding(); - validate(src.info()->padding(), padding); -} - TEST_SUITE(U8) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), framework::dataset::make("DataType", DataType::U8)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - src.info()->set_format(Format::U8); - - validate_configuration(src, shape); -} FIXTURE_DATA_TEST_CASE(RunSmall, NEMinMaxLocationFixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(datasets::Small2DShapes(), framework::dataset::make("DataType", DataType::U8))) @@ -87,14 +60,6 @@ FIXTURE_DATA_TEST_CASE(RunLarge, NEMinMaxLocationFixture<uint8_t>, framework::Da TEST_SUITE_END() // U8 TEST_SUITE(S16) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), framework::dataset::make("DataType", DataType::S16)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - src.info()->set_format(Format::S16); - - validate_configuration(src, shape); -} FIXTURE_DATA_TEST_CASE(RunSmall, NEMinMaxLocationFixture<int16_t>, framework::DatasetMode::PRECOMMIT, combine(datasets::Small2DShapes(), framework::dataset::make("DataType", DataType::S16))) @@ -111,14 +76,6 @@ FIXTURE_DATA_TEST_CASE(RunLarge, NEMinMaxLocationFixture<int16_t>, framework::Da TEST_SUITE_END() // S16 TEST_SUITE(Float) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::Small2DShapes(), framework::dataset::make("DataType", DataType::F32)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - src.info()->set_format(Format::F32); - - validate_configuration(src, shape); -} FIXTURE_DATA_TEST_CASE(RunSmall, NEMinMaxLocationFixture<float>, framework::DatasetMode::PRECOMMIT, combine(datasets::Small2DShapes(), framework::dataset::make("DataType", DataType::F32))) diff --git a/tests/validation/NEON/NonLinearFilter.cpp b/tests/validation/NEON/NonLinearFilter.cpp index c54394d3a1..5074b028a9 100644 --- a/tests/validation/NEON/NonLinearFilter.cpp +++ b/tests/validation/NEON/NonLinearFilter.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -41,52 +41,6 @@ namespace validation TEST_SUITE(NEON) TEST_SUITE(NonLinearFilter) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(combine(combine(datasets::SmallShapes(), datasets::NonLinearFilterFunctions()), - framework::dataset::make("MaskSize", { 3U, 5U })), - datasets::MatrixPatterns()), - datasets::BorderModes()), - shape, function, mask_size, pattern, border_mode) -{ - std::mt19937 generator(library->seed()); - std::uniform_int_distribution<uint8_t> distribution_u8(0, 255); - const uint8_t constant_border_value = distribution_u8(generator); - - // Create the mask - std::vector<uint8_t> mask(mask_size * mask_size); - fill_mask_from_pattern(mask.data(), mask_size, mask_size, pattern); - const auto half_mask_size = static_cast<int>(mask_size / 2); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, DataType::U8); - Tensor dst = create_tensor<Tensor>(shape, DataType::U8); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NENonLinearFilter filter; - filter.configure(&src, &dst, function, mask_size, pattern, mask.data(), border_mode, constant_border_value); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(half_mask_size)); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), ((MatrixPattern::OTHER == pattern) ? 1 : 8)); - calculator.set_border_mode(border_mode); - calculator.set_border_size(half_mask_size); - - const PaddingSize write_padding = calculator.required_padding(PaddingCalculator::Option::EXCLUDE_BORDER); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-half_mask_size); - - const PaddingSize read_padding = calculator.required_padding(PaddingCalculator::Option::INCLUDE_BORDER); - - validate(src.info()->padding(), read_padding); - validate(dst.info()->padding(), write_padding); -} - template <typename T> using NENonLinearFilterFixture = NonLinearFilterValidationFixture<Tensor, Accessor, NENonLinearFilter, T>; diff --git a/tests/validation/NEON/NormalizationLayer.cpp b/tests/validation/NEON/NormalizationLayer.cpp index 255a68df05..d910cbdc45 100644 --- a/tests/validation/NEON/NormalizationLayer.cpp +++ b/tests/validation/NEON/NormalizationLayer.cpp @@ -91,41 +91,15 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::F32)), - shape, data_type) -{ - NormalizationLayerInfo info(NormType::IN_MAP_1D, 3U, 5.0f, 2.0f, 1.f, false); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NENormalizationLayer norm; - norm.configure(&src, &dst, info); - - validate(src.info()->padding(), PaddingSize(0, 0, 0, 0)); -} - template <typename T> using NENormalizationLayerFixture = NormalizationValidationFixture<Tensor, Accessor, NENormalizationLayer, T>; TEST_SUITE(Float) #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC TEST_SUITE(FP16) -FIXTURE_DATA_TEST_CASE(RunSmall, NENormalizationLayerFixture<half>, framework::DatasetMode::PRECOMMIT, combine(combine(NormalizationDataset, - framework::dataset::make("DataType", DataType::F16)), - framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC }))) -{ - // Validate output - validate(Accessor(_target), _reference, tolerance_f16); -} -FIXTURE_DATA_TEST_CASE(RunLarge, NENormalizationLayerFixture<half>, framework::DatasetMode::NIGHTLY, combine(combine(NormalizationDataset, - framework::dataset::make("DataType", DataType::F16)), - framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC }))) +FIXTURE_DATA_TEST_CASE(RunSmall, NENormalizationLayerFixture<half>, framework::DatasetMode::ALL, combine(combine(NormalizationDataset, + framework::dataset::make("DataType", DataType::F16)), + framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC }))) { // Validate output validate(Accessor(_target), _reference, tolerance_f16); diff --git a/tests/validation/NEON/Permute.cpp b/tests/validation/NEON/Permute.cpp index 9429f25618..d897bbbe07 100644 --- a/tests/validation/NEON/Permute.cpp +++ b/tests/validation/NEON/Permute.cpp @@ -125,29 +125,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::Small4DShapes(), framework::dataset::make("DataType", { DataType::S8, DataType::U8, DataType::S16, DataType::U16, DataType::U32, DataType::S32, DataType::F16, DataType::F32 })), - shape, data_type) -{ - // Define permutation vector - const PermutationVector perm(2U, 0U, 1U); - - // Permute shapes - TensorShape output_shape = shape; - permute(output_shape, perm); - - // Create tensors - Tensor ref_src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(output_shape, data_type); - - // Create and Configure function - NEPermute perm_func; - perm_func.configure(&ref_src, &dst, perm); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(output_shape); - validate(dst.info()->valid_region(), valid_region); -} - template <typename T> using NEPermuteFixture = PermuteValidationFixture<Tensor, Accessor, NEPermute, T>; diff --git a/tests/validation/NEON/Phase.cpp b/tests/validation/NEON/Phase.cpp index 37b04f4cef..f63309f09e 100644 --- a/tests/validation/NEON/Phase.cpp +++ b/tests/validation/NEON/Phase.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -45,32 +45,6 @@ constexpr AbsoluteTolerance<uint8_t> tolerance_value(1); TEST_SUITE(NEON) TEST_SUITE(Phase) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::S16)), shape, data_type) -{ - // Create tensors - Tensor src1 = create_tensor<Tensor>(shape, data_type); - Tensor src2 = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, DataType::U8); - - ARM_COMPUTE_EXPECT(src1.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(src2.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEPhase phase; - phase.configure(&src1, &src2, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(src1.info()->padding(), padding); - validate(src2.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} - template <typename T> using NEPhaseFixture = PhaseValidationFixture<Tensor, Accessor, NEPhase, T>; diff --git a/tests/validation/NEON/QuantizationLayer.cpp b/tests/validation/NEON/QuantizationLayer.cpp index 0156be275a..04b3a78972 100644 --- a/tests/validation/NEON/QuantizationLayer.cpp +++ b/tests/validation/NEON/QuantizationLayer.cpp @@ -74,29 +74,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(QuantizationSmallShapes, framework::dataset::make("DataType", DataType::F32)), shape, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, DataType::QASYMM8); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEQuantizationLayer quant_layer; - quant_layer.configure(&src, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - validate(src.info()->padding(), PaddingSize()); - validate(dst.info()->padding(), PaddingSize()); -} - template <typename T> using NEQuantizationLayerQASYMM8Fixture = QuantizationValidationFixture<Tensor, Accessor, NEQuantizationLayer, T, uint8_t>; template <typename T> diff --git a/tests/validation/NEON/ReduceMean.cpp b/tests/validation/NEON/ReduceMean.cpp index 1802b8a941..02cfcee262 100644 --- a/tests/validation/NEON/ReduceMean.cpp +++ b/tests/validation/NEON/ReduceMean.cpp @@ -48,10 +48,10 @@ constexpr AbsoluteTolerance<float> tolerance_f16(0.03f); /**< Tolerance value fo #endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC constexpr AbsoluteTolerance<uint8_t> tolerance_u8(1); /**< Tolerance value for comparing reference's output against implementation's output for unsigned 8-bit asymmetric quantized type */ #ifdef __aarch64__ -constexpr AbsoluteTolerance<int8_t> tolerance_s8(1); /**< Tolerance value for comparing reference's output against implementation's output for signed 8-bit asymmetric quantized type */ -#else // __aarch64__ -constexpr AbsoluteTolerance<int8_t> tolerance_s8(2); /**< Tolerance value for comparing reference's output against implementation's output for signed 8-bit asymmetric quantized type */ -#endif // __aarch64__ +constexpr AbsoluteTolerance<int8_t> tolerance_s8(1); /**< Tolerance value for comparing reference's output against implementation's output for signed 8-bit asymmetric quantized type */ +#else // __aarch64__ +constexpr AbsoluteTolerance<int8_t> tolerance_s8(2); /**< Tolerance value for comparing reference's output against implementation's output for signed 8-bit asymmetric quantized type */ +#endif // __aarch64__ const auto axis_keep = combine(framework::dataset::make("Axis", { Coordinates(0), Coordinates(1, 0), Coordinates(1, 2), Coordinates(0, 2), Coordinates(1, 3), Coordinates(0, 1, 2, 3) }), framework::dataset::make("KeepDims", { true })); @@ -87,28 +87,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(datasets::SmallShapes(), framework::dataset::make("DataType", { DataType::F32 })), - shape, data_type) -{ - // Create tensors - Tensor ref_src = create_tensor<Tensor>(shape, data_type); - Tensor dst; - - Coordinates axis(1); - - // Create and Configure function - NEReduceMean reduce_mean; - reduce_mean.configure(&ref_src, axis, true, &dst); - - // Validate valid region - TensorShape output_shape = shape; - output_shape.set(1, 1); - const ValidRegion valid_region = shape_to_valid_region(output_shape); - validate(dst.info()->valid_region(), valid_region); -} - template <typename T> using NEReduceMeanFixture = ReduceMeanFixture<Tensor, Accessor, NEReduceMean, T>; diff --git a/tests/validation/NEON/Remap.cpp b/tests/validation/NEON/Remap.cpp index f8d7a250f9..1e69973238 100644 --- a/tests/validation/NEON/Remap.cpp +++ b/tests/validation/NEON/Remap.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,40 +50,6 @@ constexpr float tolerance_number = 0.f; TEST_SUITE(NEON) TEST_SUITE(Remap) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(combine(concat(datasets::SmallShapes(), datasets::LargeShapes()), framework::dataset::make("InterpolationPolicy", { InterpolationPolicy::NEAREST_NEIGHBOR, InterpolationPolicy::BILINEAR })), - framework::dataset::make("DataType", DataType::U8)), - framework::dataset::make("BorderModes", { BorderMode::UNDEFINED, BorderMode::CONSTANT })), - shape, policy, data_type, border_mode) -{ - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor map_x = create_tensor<Tensor>(shape, DataType::F32); - Tensor map_y = create_tensor<Tensor>(shape, DataType::F32); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(map_x.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(map_y.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NERemap remap; - remap.configure(&src, &map_x, &map_y, &dst, policy, border_mode); - - // Validate valid region - const ValidRegion dst_valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - const int total_right = ceil_to_multiple(shape[0], 16); - const int access_right = total_right + (((total_right - shape[0]) == 0) ? 1 : 0); - - const PaddingSize read_padding(1, access_right - shape[0], 1, 1); - validate(src.info()->padding(), read_padding); - - PaddingCalculator calculator(shape.x(), 16); - validate(dst.info()->padding(), calculator.required_padding()); -} - template <typename T> using NERemapFixture = RemapValidationFixture<Tensor, Accessor, NERemap, T>; diff --git a/tests/validation/NEON/ReorgLayer.cpp b/tests/validation/NEON/ReorgLayer.cpp index e79a6717ba..cd8c10bd61 100644 --- a/tests/validation/NEON/ReorgLayer.cpp +++ b/tests/validation/NEON/ReorgLayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -69,44 +69,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(framework::dataset::concat(datasets::SmallReorgLayerDataset(), datasets::LargeReorgLayerDataset()), - framework::dataset::make("DataType", { DataType::F32, DataType::F16, DataType::QASYMM8 })), - framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC })), - shape, stride, data_type, data_layout) -{ - // Permute the tensor shape in case of NHWC data layout - TensorShape shape_to_use = shape; - if(data_layout == DataLayout::NHWC) - { - permute(shape_to_use, PermutationVector(2U, 0U, 1U)); - } - - // Create tensors - Tensor src = create_tensor<Tensor>(shape_to_use, data_type, 1, QuantizationInfo(), data_layout); - Tensor dst; - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEReorgLayer reorg_layer; - - // Auto-initialize the output within the function - reorg_layer.configure(&src, &dst, stride); - - // Validate valid region - const ValidRegion src_valid_region = shape_to_valid_region(shape_to_use); - const ValidRegion dst_valid_region = shape_to_valid_region(dst.info()->tensor_shape()); - validate(src.info()->valid_region(), src_valid_region); - validate(dst.info()->valid_region(), dst_valid_region); - - // Validate padding - const int step = 1; - const PaddingSize src_padding = PaddingCalculator(shape_to_use.x(), step).required_padding(); - const PaddingSize dst_padding = PaddingCalculator(dst.info()->tensor_shape().x(), step).required_padding(); - validate(src.info()->padding(), src_padding); - validate(dst.info()->padding(), dst_padding); -} - template <typename T> using NEReorgLayerFixture = ReorgLayerValidationFixture<Tensor, Accessor, NEReorgLayer, T>; diff --git a/tests/validation/NEON/Schaar.cpp b/tests/validation/NEON/Schaar.cpp index 85a85cce0a..c093121fca 100644 --- a/tests/validation/NEON/Schaar.cpp +++ b/tests/validation/NEON/Schaar.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -44,57 +44,6 @@ TEST_SUITE(Scharr) TEST_SUITE(W3x3) using NEScharr3x3Fixture = ScharrValidationFixture<Tensor, Accessor, NEScharr3x3, uint8_t, int16_t>; -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(concat(datasets::Small2DShapes(), datasets::Large2DShapes()), datasets::BorderModes()), framework::dataset::make("Format", - Format::U8)), - shape, border_mode, format) -{ - // Generate a random constant value - std::mt19937 gen(library->seed()); - std::uniform_int_distribution<uint8_t> int_dist(0, 255); - const uint8_t constant_border_value = int_dist(gen); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type_from_format(format)); - Tensor dst_x = create_tensor<Tensor>(shape, DataType::S16); - Tensor dst_y = create_tensor<Tensor>(shape, DataType::S16); - - src.info()->set_format(format); - dst_x.info()->set_format(Format::S16); - dst_y.info()->set_format(Format::S16); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst_x.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst_y.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create scharr 3x3 configure function - NEScharr3x3 scharr; - scharr.configure(&src, &dst_x, &dst_y, border_mode, constant_border_value); - - // Validate valid region - constexpr BorderSize border_size{ 1 }; - const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); - - validate(dst_x.info()->valid_region(), dst_valid_region); - validate(dst_y.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - - calculator.set_border_mode(border_mode); - calculator.set_border_size(1); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-1); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst_x.info()->padding(), dst_padding); - validate(dst_y.info()->padding(), dst_padding); -} - FIXTURE_DATA_TEST_CASE(RunSmall, NEScharr3x3Fixture, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::Small2DShapes(), datasets::BorderModes()), framework::dataset::make("Format", Format::U8)), datasets::GradientDimensions())) diff --git a/tests/validation/NEON/Select.cpp b/tests/validation/NEON/Select.cpp index 4fe422bda0..199b520ac8 100644 --- a/tests/validation/NEON/Select.cpp +++ b/tests/validation/NEON/Select.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -18,7 +18,7 @@ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONCLCTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #include "arm_compute/core/Types.h" @@ -41,8 +41,6 @@ namespace validation { namespace { -auto configuration_dataset = combine(framework::dataset::concat(datasets::SmallShapes(), datasets::LargeShapes()), - framework::dataset::make("has_same_rank", { false, true })); auto run_small_dataset = combine(datasets::SmallShapes(), framework::dataset::make("has_same_rank", { false, true })); auto run_large_dataset = combine(datasets::LargeShapes(), framework::dataset::make("has_same_rank", { false, true })); } // namespace @@ -100,26 +98,6 @@ TEST_SUITE(Float) #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC TEST_SUITE(F16) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, configuration_dataset, - shape, same_rank) -{ - const DataType dt = DataType::F16; - - // Create tensors - Tensor ref_c = create_tensor<Tensor>(detail::select_condition_shape(shape, same_rank), DataType::U8); - Tensor ref_x = create_tensor<Tensor>(shape, dt); - Tensor ref_y = create_tensor<Tensor>(shape, dt); - Tensor dst = create_tensor<Tensor>(shape, dt); - - // Create and Configure function - NESelect select; - select.configure(&ref_c, &ref_x, &ref_y, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); -} - FIXTURE_DATA_TEST_CASE(RunSmall, NESelectFixture<half>, framework::DatasetMode::PRECOMMIT, @@ -141,26 +119,6 @@ TEST_SUITE_END() // F16 #endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */ TEST_SUITE(FP32) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, configuration_dataset, - shape, same_rank) -{ - const DataType dt = DataType::F32; - - // Create tensors - Tensor ref_c = create_tensor<Tensor>(detail::select_condition_shape(shape, same_rank), DataType::U8); - Tensor ref_x = create_tensor<Tensor>(shape, dt); - Tensor ref_y = create_tensor<Tensor>(shape, dt); - Tensor dst = create_tensor<Tensor>(shape, dt); - - // Create and Configure function - NESelect select; - select.configure(&ref_c, &ref_x, &ref_y, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); -} - FIXTURE_DATA_TEST_CASE(RunSmall, NESelectFixture<float>, framework::DatasetMode::PRECOMMIT, diff --git a/tests/validation/NEON/Slice.cpp b/tests/validation/NEON/Slice.cpp index 1b35bfa30c..54b0fbf9d2 100644 --- a/tests/validation/NEON/Slice.cpp +++ b/tests/validation/NEON/Slice.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -63,24 +63,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, - framework::DatasetMode::ALL, - combine(arm_compute::test::datasets::SmallSliceDataset(), framework::dataset::make("DataType", { DataType::QASYMM8, DataType::F32 })), - shape, starts, ends, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst; - - // Create and Configure function - NESlice slice; - slice.configure(&src, &dst, starts, ends); - - // 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 NESliceFixture = SliceFixture<Tensor, Accessor, NESlice, T>; diff --git a/tests/validation/NEON/Sobel.cpp b/tests/validation/NEON/Sobel.cpp index 2765057ae7..e090bcd6e2 100644 --- a/tests/validation/NEON/Sobel.cpp +++ b/tests/validation/NEON/Sobel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -49,57 +49,6 @@ TEST_SUITE(Sobel) TEST_SUITE(W3x3) using NESobel3x3Fixture = SobelValidationFixture<Tensor, Accessor, NESobel3x3, uint8_t, int16_t>; -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::Small2DShapes(), datasets::BorderModes()), framework::dataset::make("Format", - Format::U8)), - shape, border_mode, format) -{ - // Generate a random constant value - std::mt19937 gen(library->seed()); - std::uniform_int_distribution<uint8_t> int_dist(0, 255); - const uint8_t constant_border_value = int_dist(gen); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type_from_format(format)); - Tensor dst_x = create_tensor<Tensor>(shape, DataType::S16); - Tensor dst_y = create_tensor<Tensor>(shape, DataType::S16); - - src.info()->set_format(format); - dst_x.info()->set_format(Format::S16); - dst_y.info()->set_format(Format::S16); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst_x.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst_y.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create sobel 3x3 configure function - NESobel3x3 sobel; - sobel.configure(&src, &dst_x, &dst_y, border_mode, constant_border_value); - - // Validate valid region - constexpr BorderSize border_size{ 1 }; - const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); - - validate(dst_x.info()->valid_region(), dst_valid_region); - validate(dst_y.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - - calculator.set_border_mode(border_mode); - calculator.set_border_size(1); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-1); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst_x.info()->padding(), dst_padding); - validate(dst_y.info()->padding(), dst_padding); -} - TEST_SUITE(X) FIXTURE_DATA_TEST_CASE(RunSmall, NESobel3x3Fixture, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::Small2DShapes(), datasets::BorderModes()), framework::dataset::make("Format", Format::U8)), @@ -168,56 +117,6 @@ TEST_SUITE_END() TEST_SUITE(W5x5) using NESobel5x5Fixture = SobelValidationFixture<Tensor, Accessor, NESobel5x5, uint8_t, int16_t>; -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::Small2DShapes(), datasets::BorderModes()), framework::dataset::make("Format", - Format::U8)), - shape, border_mode, format) -{ - // Generate a random constant value - std::mt19937 gen(library->seed()); - std::uniform_int_distribution<uint8_t> int_dist(0, 255); - const uint8_t constant_border_value = int_dist(gen); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type_from_format(format)); - Tensor dst_x = create_tensor<Tensor>(shape, DataType::S16); - Tensor dst_y = create_tensor<Tensor>(shape, DataType::S16); - - src.info()->set_format(format); - dst_x.info()->set_format(Format::S16); - dst_y.info()->set_format(Format::S16); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst_x.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst_y.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create sobel 5x5 configure function - NESobel5x5 sobel; - sobel.configure(&src, &dst_x, &dst_y, border_mode, constant_border_value); - - // Validate valid region - constexpr BorderSize border_size{ 2 }; - const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); - - validate(dst_x.info()->valid_region(), dst_valid_region); - validate(dst_y.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 16); - - calculator.set_border_mode(border_mode); - calculator.set_border_size(2); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_processed_elements(8); - calculator.set_access_offset(-2); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst_x.info()->padding(), dst_padding); - validate(dst_y.info()->padding(), dst_padding); -} TEST_SUITE(X) FIXTURE_DATA_TEST_CASE(RunSmall, NESobel5x5Fixture, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::Small2DShapes(), datasets::BorderModes()), framework::dataset::make("Format", Format::U8)), @@ -285,57 +184,6 @@ TEST_SUITE_END() TEST_SUITE(W7x7) using NESobel7x7Fixture = SobelValidationFixture<Tensor, Accessor, NESobel7x7, uint8_t, int32_t>; - -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::Small2DShapes(), datasets::BorderModes()), framework::dataset::make("Format", - Format::U8)), - shape, border_mode, format) -{ - // Generate a random constant value - std::mt19937 gen(library->seed()); - std::uniform_int_distribution<uint8_t> int_dist(0, 255); - const uint8_t constant_border_value = int_dist(gen); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type_from_format(format)); - Tensor dst_x = create_tensor<Tensor>(shape, DataType::S32); - Tensor dst_y = create_tensor<Tensor>(shape, DataType::S32); - - src.info()->set_format(format); - dst_x.info()->set_format(Format::S32); - dst_y.info()->set_format(Format::S32); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst_x.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst_y.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create sobel 7x7 configure function - NESobel7x7 sobel; - sobel.configure(&src, &dst_x, &dst_y, border_mode, constant_border_value); - - // Validate valid region - constexpr BorderSize border_size{ 3 }; - const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); - - validate(dst_x.info()->valid_region(), dst_valid_region); - validate(dst_y.info()->valid_region(), dst_valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 8); - - calculator.set_border_mode(border_mode); - calculator.set_border_size(3); - - const PaddingSize dst_padding = calculator.required_padding(); - - calculator.set_accessed_elements(16); - calculator.set_access_offset(-3); - - const PaddingSize src_padding = calculator.required_padding(); - - validate(src.info()->padding(), src_padding); - validate(dst_x.info()->padding(), dst_padding); - validate(dst_y.info()->padding(), dst_padding); -} TEST_SUITE(X) FIXTURE_DATA_TEST_CASE(RunSmall, NESobel7x7Fixture, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::Small2DShapes(), datasets::BorderModes()), framework::dataset::make("Format", Format::U8)), diff --git a/tests/validation/NEON/Split.cpp b/tests/validation/NEON/Split.cpp index a80f9acc88..e7133fa530 100644 --- a/tests/validation/NEON/Split.cpp +++ b/tests/validation/NEON/Split.cpp @@ -91,66 +91,6 @@ DATA_TEST_CASE(ValidateSplitShapes, framework::DatasetMode::ALL, zip(zip(zip( // clang-format on // *INDENT-ON* -DATA_TEST_CASE(Configuration, - framework::DatasetMode::ALL, - combine(datasets::SmallSplitDataset(), framework::dataset::make("DataType", { DataType::QASYMM8, DataType::F32 })), - shape, axis, splits, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - std::vector<Tensor> dsts(splits); - std::vector<ITensor *> dsts_ptrs; - dsts_ptrs.reserve(splits); - for(auto &dst : dsts) - { - dsts_ptrs.emplace_back(&dst); - } - - // Create and Configure function - NESplit split; - split.configure(&src, dsts_ptrs, axis); - - // Validate valid regions - for(auto &dst : dsts) - { - const ValidRegion valid_region = shape_to_valid_region(dst.info()->tensor_shape()); - validate(dst.info()->valid_region(), valid_region); - } -} - -DATA_TEST_CASE(ConfigurationSplitShapes, - framework::DatasetMode::ALL, - combine(datasets::SmallSplitShapesDataset(), framework::dataset::make("DataType", { DataType::F16, DataType::F32 })), - shape, axis, split_shapes, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - std::vector<Tensor> dsts; - - for(const auto &split_shape : split_shapes) - { - Tensor dst = create_tensor<Tensor>(split_shape, data_type); - dsts.push_back(std::move(dst)); - } - - std::vector<ITensor *> dsts_ptrs; - for(auto &dst : dsts) - { - dsts_ptrs.emplace_back(&dst); - } - - // Create and Configure function - NESplit split; - split.configure(&src, dsts_ptrs, axis); - - // Validate valid regions - for(auto &dst : dsts) - { - const ValidRegion valid_region = shape_to_valid_region(dst.info()->tensor_shape()); - validate(dst.info()->valid_region(), valid_region); - } -} - template <typename T> using NESplitFixture = SplitFixture<Tensor, ITensor, Accessor, NESplit, T>; diff --git a/tests/validation/NEON/StackLayer.cpp b/tests/validation/NEON/StackLayer.cpp index 9ba709a3d5..df0de81b4f 100644 --- a/tests/validation/NEON/StackLayer.cpp +++ b/tests/validation/NEON/StackLayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -77,35 +77,6 @@ const auto shapes_3d_large = combine(datasets::Medium3DShapes(), framework::data /** Shapes 4D to test */ const auto shapes_4d_large = combine(datasets::Medium4DShapes(), framework::dataset::make("Axis", -4, 5)); - -/** Configuration test */ -void validate_configuration(TensorShape shape_in, int axis, DataType data_type, int num_tensors) -{ - // Wrap around negative values - const unsigned int axis_u = wrap_around(axis, static_cast<int>(shape_in.num_dimensions() + 1)); - - const TensorShape shape_dst = compute_stack_shape(TensorInfo(shape_in, 1, data_type), axis_u, num_tensors); - - std::vector<Tensor> tensors(num_tensors); - std::vector<ITensor*> src(num_tensors); - - // Create vector of input tensors - for(int i = 0; i < num_tensors; ++i) - { - tensors[i] = create_tensor<Tensor>(shape_in, data_type); - src[i] = &(tensors[i]); - ARM_COMPUTE_EXPECT(src[i]->info()->is_resizable(), framework::LogLevel::ERRORS); - } - - // Create tensors - Tensor dst = create_tensor<Tensor>(shape_dst, data_type); - - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEStackLayer stack; - stack.configure(src, axis, &dst); -} } // namespace /** Fixture to use */ @@ -148,15 +119,6 @@ input_info, output_info, axis, expected) } TEST_SUITE(Shapes1D) - -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(shapes_1d_small, - data_types), - n_values), -shape_in, axis, data_type, num_tensors) -{ - validate_configuration(shape_in, axis, data_type, num_tensors); -} - TEST_SUITE(S32) FIXTURE_DATA_TEST_CASE(RunSmall, NEStackLayerFixture<int>, framework::DatasetMode::ALL, combine(combine(shapes_1d_small, @@ -219,15 +181,6 @@ TEST_SUITE_END() // S8 TEST_SUITE_END() // Shapes1D TEST_SUITE(Shapes2D) - -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(shapes_2d_small, - data_types), - n_values), -shape_in, axis, data_type, num_tensors) -{ - validate_configuration(shape_in, axis, data_type, num_tensors); -} - TEST_SUITE(S32) FIXTURE_DATA_TEST_CASE(RunSmall, NEStackLayerFixture<int>, framework::DatasetMode::ALL, combine(combine(shapes_2d_small, @@ -290,14 +243,6 @@ TEST_SUITE_END() // S8 TEST_SUITE_END() // Shapes2D TEST_SUITE(Shapes3D) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(shapes_3d_small, - data_types), - n_values), -shape_in, axis, data_type, num_tensors) -{ - validate_configuration(shape_in, axis, data_type, num_tensors); -} - TEST_SUITE(S32) FIXTURE_DATA_TEST_CASE(RunSmall, NEStackLayerFixture<int>, framework::DatasetMode::ALL, combine(combine(shapes_3d_small, @@ -360,14 +305,6 @@ TEST_SUITE_END() // S8 TEST_SUITE_END() // Shapes3D TEST_SUITE(Shapes4D) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(shapes_4d_small, - data_types), - n_values), -shape_in, axis, data_type, num_tensors) -{ - validate_configuration(shape_in, axis, data_type, num_tensors); -} - TEST_SUITE(S32) FIXTURE_DATA_TEST_CASE(RunSmall, NEStackLayerFixture<int>, framework::DatasetMode::ALL, combine(combine(shapes_4d_small, diff --git a/tests/validation/NEON/StridedSlice.cpp b/tests/validation/NEON/StridedSlice.cpp index 91d5a64f76..8332134b1b 100644 --- a/tests/validation/NEON/StridedSlice.cpp +++ b/tests/validation/NEON/StridedSlice.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -65,24 +65,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::SmallStridedSliceDataset(), framework::dataset::make("DataType", { DataType::QASYMM8, DataType::F32 })), - shape, starts, ends, strides, begin_mask, end_mask, shrink_mask, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst; - - // Create and Configure function - NEStridedSlice strided_slice; - strided_slice.configure(&src, &dst, starts, ends, strides, begin_mask, end_mask, shrink_mask); - - // 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 NEStridedSliceFixture = StridedSliceFixture<Tensor, Accessor, NEStridedSlice, T>; diff --git a/tests/validation/NEON/TableLookup.cpp b/tests/validation/NEON/TableLookup.cpp index 647c486f7a..cbd16c99f3 100644 --- a/tests/validation/NEON/TableLookup.cpp +++ b/tests/validation/NEON/TableLookup.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,42 +50,7 @@ TEST_SUITE(TableLookup) template <typename T> using NETableLookupFixture = TableLookupValidationFixture<Tensor, Accessor, NETableLookup, LutAccessor<T>, Lut, T>; TEST_SUITE(U8) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(datasets::SmallShapes(), framework::dataset::make("DataType", { DataType::U8, DataType::S16 })), - shape, data_type) -{ - // Create Lut - const int num_elem = (data_type == DataType::U8) ? std::numeric_limits<uint8_t>::max() + 1 : std::numeric_limits<int16_t>::max() - std::numeric_limits<int16_t>::lowest() + 1; - Lut lut(num_elem, data_type); - - switch(data_type) - { - case DataType::U8: - fill_lookuptable(LutAccessor<uint8_t>(lut)); - break; - case DataType::S16: - fill_lookuptable(LutAccessor<int16_t>(lut)); - break; - default: - ARM_COMPUTE_ERROR("Not supported"); - } - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - // Create and Configure function - NETableLookup table_lookup; - table_lookup.configure(&src, &lut, &dst); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding(); - validate(src.info()->padding(), padding); - validate(dst.info()->padding(), padding); -} FIXTURE_DATA_TEST_CASE(RunSmallU8, NETableLookupFixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8))) { // Validate output diff --git a/tests/validation/NEON/Threshold.cpp b/tests/validation/NEON/Threshold.cpp index 917a8a2b90..97e98d7224 100644 --- a/tests/validation/NEON/Threshold.cpp +++ b/tests/validation/NEON/Threshold.cpp @@ -40,30 +40,6 @@ namespace validation TEST_SUITE(NEON) TEST_SUITE(Threshold) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(datasets::SmallShapes(), datasets::MixedThresholdDataset()), - framework::dataset::make("DataType", DataType::U8)), - shape, threshold, false_value, true_value, type, upper, data_type) -{ - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEThreshold thrsh; - thrsh.configure(&src, &dst, ThresholdKernelInfo(threshold, false_value, true_value, type, upper)); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - validate(src.info()->padding(), PaddingSize()); - validate(dst.info()->padding(), PaddingSize()); -} - template <typename T> using ThresholdFixture = ThresholdValidationFixture<Tensor, Accessor, NEThreshold, T>; diff --git a/tests/validation/NEON/Upsample.cpp b/tests/validation/NEON/Upsample.cpp index 221f6904d4..799e513fb1 100644 --- a/tests/validation/NEON/Upsample.cpp +++ b/tests/validation/NEON/Upsample.cpp @@ -41,31 +41,6 @@ namespace validation TEST_SUITE(NEON) TEST_SUITE(UpsampleLayer) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, (combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::F32))), - input_shape, data_type) -{ - InterpolationPolicy policy = InterpolationPolicy::NEAREST_NEIGHBOR; - Size2D info = Size2D(2, 2); - - // Create tensors - Tensor src = create_tensor<Tensor>(input_shape, data_type, 1); - Tensor dst; - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEUpsampleLayer upsample; - upsample.configure(&src, &dst, info, policy); - - // Validate valid region - const ValidRegion src_valid_region = shape_to_valid_region(src.info()->tensor_shape()); - const ValidRegion dst_valid_region = shape_to_valid_region(dst.info()->tensor_shape()); - - validate(src.info()->valid_region(), src_valid_region); - validate(dst.info()->valid_region(), dst_valid_region); -} - // *INDENT-OFF* // clang-format off DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip( diff --git a/tests/validation/NEON/WarpAffine.cpp b/tests/validation/NEON/WarpAffine.cpp index ce5360b2cf..92dfe23736 100644 --- a/tests/validation/NEON/WarpAffine.cpp +++ b/tests/validation/NEON/WarpAffine.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -53,48 +53,6 @@ constexpr AbsoluteTolerance<uint8_t> tolerance(1); TEST_SUITE(NEON) TEST_SUITE(WarpAffine) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), - framework::dataset::make("InterpolationPolicy", { InterpolationPolicy::NEAREST_NEIGHBOR, InterpolationPolicy::BILINEAR })), - datasets::BorderModes()), - shape, data_type, policy, border_mode) -{ - // Generate a random constant value if border_mode is constant - std::mt19937 gen(library->seed()); - std::uniform_int_distribution<uint8_t> distribution_u8(0, 255); - uint8_t constant_border_value = distribution_u8(gen); - - // Create the matrix - std::array<float, 9> matrix{ {} }; - fill_warp_matrix<9>(matrix); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEWarpAffine warp_affine; - warp_affine.configure(&src, &dst, matrix, policy, border_mode, constant_border_value); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 1); - calculator.set_border_mode(border_mode); - calculator.set_border_size(1); - - const PaddingSize read_padding(1); - const PaddingSize write_padding = calculator.required_padding(); - - validate(src.info()->padding(), read_padding); - validate(dst.info()->padding(), write_padding); -} - template <typename T> using NEWarpAffineFixture = WarpAffineValidationFixture<Tensor, Accessor, NEWarpAffine, T>; diff --git a/tests/validation/NEON/WarpPerspective.cpp b/tests/validation/NEON/WarpPerspective.cpp index d146bda705..1c56220a21 100644 --- a/tests/validation/NEON/WarpPerspective.cpp +++ b/tests/validation/NEON/WarpPerspective.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -50,54 +50,6 @@ constexpr float tolerance_number = 0.2f; TEST_SUITE(NEON) TEST_SUITE(WarpPerspective) -DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::U8)), - framework::dataset::make("InterpolationPolicy", { InterpolationPolicy::NEAREST_NEIGHBOR, InterpolationPolicy::BILINEAR })), - datasets::BorderModes()), - shape, data_type, policy, border_mode) -{ - uint8_t constant_border_value = 0; - - // Generate a random constant value if border_mode is constant - if(border_mode == BorderMode::CONSTANT) - { - std::mt19937 gen(library->seed()); - std::uniform_int_distribution<uint8_t> distribution_u8(0, 255); - constant_border_value = distribution_u8(gen); - } - - // Create the matrix - std::array<float, 9> matrix = { { 0 } }; - fill_warp_matrix<9>(matrix); - - // Create tensors - Tensor src = create_tensor<Tensor>(shape, data_type); - Tensor dst = create_tensor<Tensor>(shape, data_type); - - ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS); - - // Create and configure function - NEWarpPerspective warp_perspective; - warp_perspective.configure(&src, &dst, matrix, policy, border_mode, constant_border_value); - - // Validate valid region - const ValidRegion valid_region = shape_to_valid_region(shape); - - validate(src.info()->valid_region(), valid_region); - validate(dst.info()->valid_region(), valid_region); - - // Validate padding - PaddingCalculator calculator(shape.x(), 1); - calculator.set_border_mode(border_mode); - calculator.set_border_size(1); - - const PaddingSize read_padding(1); - const PaddingSize write_padding = calculator.required_padding(); - - validate(src.info()->padding(), read_padding); - validate(dst.info()->padding(), write_padding); -} - template <typename T> using NEWarpPerspectiveFixture = WarpPerspectiveValidationFixture<Tensor, Accessor, NEWarpPerspective, T>; |