diff options
Diffstat (limited to 'tests/validation/NEON')
-rw-r--r-- | tests/validation/NEON/Box3x3.cpp | 9 | ||||
-rw-r--r-- | tests/validation/NEON/Gaussian3x3.cpp | 9 | ||||
-rw-r--r-- | tests/validation/NEON/Gaussian5x5.cpp | 9 | ||||
-rw-r--r-- | tests/validation/NEON/NonLinearFilter.cpp | 18 | ||||
-rw-r--r-- | tests/validation/NEON/Sobel3x3.cpp | 21 | ||||
-rw-r--r-- | tests/validation/NEON/Sobel5x5.cpp | 21 |
6 files changed, 33 insertions, 54 deletions
diff --git a/tests/validation/NEON/Box3x3.cpp b/tests/validation/NEON/Box3x3.cpp index c05167682a..c673ff1be3 100644 --- a/tests/validation/NEON/Box3x3.cpp +++ b/tests/validation/NEON/Box3x3.cpp @@ -52,6 +52,9 @@ using namespace arm_compute::test::validation; namespace { +constexpr unsigned int filter_size = 3; /** Size of the kernel/filter in number of elements. */ +constexpr BorderSize border_size(filter_size / 2); /** Border size of the kernel/filter around its central element. */ + /** Compute Neon box3x3 filter. * * @param[in] shape Shape of the input and output tensors. @@ -107,7 +110,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()) * BorderMode // Validate valid region const ValidRegion src_valid_region = shape_to_valid_region(shape); - const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(1)); + const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); validate(src.info()->valid_region(), src_valid_region); validate(dst.info()->valid_region(), dst_valid_region); @@ -141,7 +144,7 @@ BOOST_DATA_TEST_CASE(RunSmall, SmallShapes() * BorderModes(), shape, border_mode RawTensor ref_dst = Reference::compute_reference_box3x3(shape, border_mode, border_value); // Validate output - validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(1))); + validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size)); } BOOST_TEST_DECORATOR(*boost::unit_test::label("nightly")) @@ -158,7 +161,7 @@ BOOST_DATA_TEST_CASE(RunLarge, LargeShapes() * BorderModes(), shape, border_mode RawTensor ref_dst = Reference::compute_reference_box3x3(shape, border_mode, border_value); // Validate output - validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(1))); + validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size)); } BOOST_AUTO_TEST_SUITE_END() diff --git a/tests/validation/NEON/Gaussian3x3.cpp b/tests/validation/NEON/Gaussian3x3.cpp index f33b63f919..b69df9ac24 100644 --- a/tests/validation/NEON/Gaussian3x3.cpp +++ b/tests/validation/NEON/Gaussian3x3.cpp @@ -52,6 +52,9 @@ using namespace arm_compute::test::validation; namespace { +constexpr unsigned int filter_size = 3; /** Size of the kernel/filter in number of elements. */ +constexpr BorderSize border_size(filter_size / 2); /** Border size of the kernel/filter around its central element. */ + /** Compute Neon gaussian3x3 filter. * * @param[in] shape Shape of the input and output tensors. @@ -107,7 +110,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()) * BorderMode // Validate valid region const ValidRegion src_valid_region = shape_to_valid_region(shape); - const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(1)); + const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); validate(src.info()->valid_region(), src_valid_region); validate(dst.info()->valid_region(), dst_valid_region); @@ -141,7 +144,7 @@ BOOST_DATA_TEST_CASE(RunSmall, SmallShapes() * BorderModes(), shape, border_mode RawTensor ref_dst = Reference::compute_reference_gaussian3x3(shape, border_mode, border_value); // Validate output - validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(1))); + validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size)); } BOOST_TEST_DECORATOR(*boost::unit_test::label("nightly")) @@ -158,7 +161,7 @@ BOOST_DATA_TEST_CASE(RunLarge, LargeShapes() * BorderModes(), shape, border_mode RawTensor ref_dst = Reference::compute_reference_gaussian3x3(shape, border_mode, border_value); // Validate output - validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(1))); + validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size)); } BOOST_AUTO_TEST_SUITE_END() diff --git a/tests/validation/NEON/Gaussian5x5.cpp b/tests/validation/NEON/Gaussian5x5.cpp index a553078d6c..bb48961652 100644 --- a/tests/validation/NEON/Gaussian5x5.cpp +++ b/tests/validation/NEON/Gaussian5x5.cpp @@ -54,6 +54,9 @@ using namespace arm_compute::test::validation; namespace { +constexpr unsigned int filter_size = 5; /** Size of the kernel/filter in number of elements. */ +constexpr BorderSize border_size(filter_size / 2); /** Border size of the kernel/filter around its central element. */ + /** Compute Neon gaussian5x5 filter. * * @param[in] shape Shape of the input and output tensors. @@ -109,7 +112,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()) * BorderMode // Validate valid region const ValidRegion src_valid_region = shape_to_valid_region(shape); - const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(2)); + const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); validate(src.info()->valid_region(), src_valid_region); validate(dst.info()->valid_region(), dst_valid_region); @@ -143,7 +146,7 @@ BOOST_DATA_TEST_CASE(RunSmall, SmallShapes() * BorderModes(), shape, border_mode RawTensor ref_dst = Reference::compute_reference_gaussian5x5(shape, border_mode, border_value); // Validate output - validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(2))); + validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size)); } BOOST_TEST_DECORATOR(*boost::unit_test::label("nightly")) @@ -160,7 +163,7 @@ BOOST_DATA_TEST_CASE(RunLarge, LargeShapes() * BorderModes(), shape, border_mode RawTensor ref_dst = Reference::compute_reference_gaussian5x5(shape, border_mode, border_value); // Validate output - validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(2))); + validate(NEAccessor(dst), ref_dst, shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size)); } BOOST_AUTO_TEST_SUITE_END() diff --git a/tests/validation/NEON/NonLinearFilter.cpp b/tests/validation/NEON/NonLinearFilter.cpp index 3b71eaa9c6..c5d5087d39 100644 --- a/tests/validation/NEON/NonLinearFilter.cpp +++ b/tests/validation/NEON/NonLinearFilter.cpp @@ -125,11 +125,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()) // Validate valid region const ValidRegion src_valid_region = shape_to_valid_region(shape); - ValidRegion dst_valid_region = shape_to_valid_region(shape); - if(border_mode == BorderMode::UNDEFINED) - { - dst_valid_region = shape_to_valid_region_undefined_border(shape, BorderSize(half_mask_size)); - } + const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(half_mask_size)); validate(src.info()->valid_region(), src_valid_region); validate(dst.info()->valid_region(), dst_valid_region); @@ -171,11 +167,7 @@ BOOST_DATA_TEST_CASE(RunSmall, SmallShapes() RawTensor ref_dst = Reference::compute_reference_non_linear_filter(shape, function, mask_size, pattern, mask, border_mode, constant_border_value); // Calculate valid region - ValidRegion valid_region = shape_to_valid_region(shape); - if(border_mode == BorderMode::UNDEFINED) - { - valid_region = shape_to_valid_region_undefined_border(shape, BorderSize(static_cast<int>(mask_size / 2))); - } + const ValidRegion valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(static_cast<int>(mask_size / 2))); // Validate output validate(NEAccessor(dst), ref_dst, valid_region); @@ -202,11 +194,7 @@ BOOST_DATA_TEST_CASE(RunLarge, LargeShapes() RawTensor ref_dst = Reference::compute_reference_non_linear_filter(shape, function, mask_size, pattern, mask, border_mode, constant_border_value); // Calculate valid region - ValidRegion valid_region = shape_to_valid_region(shape); - if(border_mode == BorderMode::UNDEFINED) - { - valid_region = shape_to_valid_region_undefined_border(shape, BorderSize(static_cast<int>(mask_size / 2))); - } + const ValidRegion valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, BorderSize(static_cast<int>(mask_size / 2))); // Validate output validate(NEAccessor(dst), ref_dst, valid_region); diff --git a/tests/validation/NEON/Sobel3x3.cpp b/tests/validation/NEON/Sobel3x3.cpp index 8324614f0d..c6c58f1a37 100644 --- a/tests/validation/NEON/Sobel3x3.cpp +++ b/tests/validation/NEON/Sobel3x3.cpp @@ -52,6 +52,9 @@ using namespace arm_compute::test::validation; namespace { +constexpr unsigned int filter_size = 3; /** Size of the kernel/filter in number of elements. */ +constexpr BorderSize border_size(filter_size / 2); /** Border size of the kernel/filter around its central element. */ + /** Compute Neon Sobel 3x3 function. * * @param[in] shape Shape of the input and output tensors. @@ -120,11 +123,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()) * BorderMode // Validate valid region const ValidRegion src_valid_region = shape_to_valid_region(shape); - ValidRegion dst_valid_region = shape_to_valid_region(shape); - if(border_mode == BorderMode::UNDEFINED) - { - dst_valid_region = shape_to_valid_region_undefined_border(shape, BorderSize(1)); - } + const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); validate(src.info()->valid_region(), src_valid_region); validate(dst_x.info()->valid_region(), dst_valid_region); @@ -168,11 +167,7 @@ BOOST_DATA_TEST_CASE(RunSmall, SmallShapes() * BorderModes(), shape, border_mode std::pair<RawTensor, RawTensor> ref_dst = Reference::compute_reference_sobel_3x3(shape, border_mode, constant_border_value); // Calculate valid region - ValidRegion valid_region = shape_to_valid_region(shape); - if(border_mode == BorderMode::UNDEFINED) - { - valid_region = shape_to_valid_region_undefined_border(shape, BorderSize(1)); - } + const ValidRegion valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); // Validate output validate(NEAccessor(dst.first), ref_dst.first, valid_region); @@ -199,11 +194,7 @@ BOOST_DATA_TEST_CASE(RunLarge, LargeShapes() * BorderModes(), shape, border_mode std::pair<RawTensor, RawTensor> ref_dst = Reference::compute_reference_sobel_3x3(shape, border_mode, constant_border_value); // Calculate valid region - ValidRegion valid_region = shape_to_valid_region(shape); - if(border_mode == BorderMode::UNDEFINED) - { - valid_region = shape_to_valid_region_undefined_border(shape, BorderSize(1)); - } + const ValidRegion valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); // Validate output validate(NEAccessor(dst.first), ref_dst.first, valid_region); diff --git a/tests/validation/NEON/Sobel5x5.cpp b/tests/validation/NEON/Sobel5x5.cpp index bb2d7baf79..195afa6922 100644 --- a/tests/validation/NEON/Sobel5x5.cpp +++ b/tests/validation/NEON/Sobel5x5.cpp @@ -52,6 +52,9 @@ using namespace arm_compute::test::validation; namespace { +constexpr unsigned int filter_size = 5; /** Size of the kernel/filter in number of elements. */ +constexpr BorderSize border_size(filter_size / 2); /** Border size of the kernel/filter around its central element. */ + /** Compute Neon Sobel 5x5 function. * * @param[in] shape Shape of the input and output tensors. @@ -120,11 +123,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()) * BorderMode // Validate valid region const ValidRegion src_valid_region = shape_to_valid_region(shape); - ValidRegion dst_valid_region = shape_to_valid_region(shape); - if(border_mode == BorderMode::UNDEFINED) - { - dst_valid_region = shape_to_valid_region_undefined_border(shape, BorderSize(2)); - } + const ValidRegion dst_valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); validate(src.info()->valid_region(), src_valid_region); validate(dst_x.info()->valid_region(), dst_valid_region); @@ -168,11 +167,7 @@ BOOST_DATA_TEST_CASE(RunSmall, SmallShapes() * BorderModes(), shape, border_mode std::pair<RawTensor, RawTensor> ref_dst = Reference::compute_reference_sobel_5x5(shape, border_mode, constant_border_value); // Calculate valid region - ValidRegion valid_region = shape_to_valid_region(shape); - if(border_mode == BorderMode::UNDEFINED) - { - valid_region = shape_to_valid_region_undefined_border(shape, BorderSize(2)); - } + const ValidRegion valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); // Validate output validate(NEAccessor(dst.first), ref_dst.first, valid_region); @@ -199,11 +194,7 @@ BOOST_DATA_TEST_CASE(RunLarge, LargeShapes() * BorderModes(), shape, border_mode std::pair<RawTensor, RawTensor> ref_dst = Reference::compute_reference_sobel_5x5(shape, border_mode, constant_border_value); // Calculate valid region - ValidRegion valid_region = shape_to_valid_region(shape); - if(border_mode == BorderMode::UNDEFINED) - { - valid_region = shape_to_valid_region_undefined_border(shape, BorderSize(2)); - } + const ValidRegion valid_region = shape_to_valid_region(shape, border_mode == BorderMode::UNDEFINED, border_size); // Validate output validate(NEAccessor(dst.first), ref_dst.first, valid_region); |