diff options
author | Michele Di Giorgio <michele.digiorgio@arm.com> | 2017-07-04 17:19:43 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-09-17 14:16:42 +0100 |
commit | ef4b4ae784f7533ed6d9e7b51827a894c32ed48e (patch) | |
tree | 6f4268044be18c003f5136b8ef7c7c07e219f2bd /tests/validation/Validation.h | |
parent | f87cc7f6fef95f9b022725304118796a6a764a7c (diff) | |
download | ComputeLibrary-ef4b4ae784f7533ed6d9e7b51827a894c32ed48e.tar.gz |
COMPMID-438: Add support for floating point Min-Max Location layer.
Change-Id: I84ae564a40fc7320a6f94a84d53906ba51404f51
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/79797
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Diffstat (limited to 'tests/validation/Validation.h')
-rw-r--r-- | tests/validation/Validation.h | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/tests/validation/Validation.h b/tests/validation/Validation.h index 217ec63658..66bb2be2ca 100644 --- a/tests/validation/Validation.h +++ b/tests/validation/Validation.h @@ -133,10 +133,42 @@ void validate(float target, float ref, float tolerance_abs_error = std::numeric_ * * - All values should match */ -void validate_min_max_loc(int32_t min, int32_t ref_min, int32_t max, int32_t ref_max, +template <typename T> +void validate_min_max_loc(T min, T ref_min, T max, T ref_max, IArray<Coordinates2D> &min_loc, IArray<Coordinates2D> &ref_min_loc, IArray<Coordinates2D> &max_loc, IArray<Coordinates2D> &ref_max_loc, - uint32_t min_count, uint32_t ref_min_count, uint32_t max_count, uint32_t ref_max_count); + uint32_t min_count, uint32_t ref_min_count, uint32_t max_count, uint32_t ref_max_count) +{ + BOOST_TEST(min == ref_min); + BOOST_TEST(max == ref_max); + + BOOST_TEST(min_count == min_loc.num_values()); + BOOST_TEST(max_count == max_loc.num_values()); + BOOST_TEST(ref_min_count == ref_min_loc.num_values()); + BOOST_TEST(ref_max_count == ref_max_loc.num_values()); + + BOOST_TEST(min_count == ref_min_count); + BOOST_TEST(max_count == ref_max_count); + + for(uint32_t i = 0; i < min_count; i++) + { + Coordinates2D *same_coords = std::find_if(ref_min_loc.buffer(), ref_min_loc.buffer() + min_count, [&min_loc, i](Coordinates2D coord) + { + return coord.x == min_loc.at(i).x && coord.y == min_loc.at(i).y; + }); + BOOST_TEST(same_coords != ref_min_loc.buffer() + min_count); + } + + for(uint32_t i = 0; i < max_count; i++) + { + Coordinates2D *same_coords = std::find_if(ref_max_loc.buffer(), ref_max_loc.buffer() + max_count, [&max_loc, i](Coordinates2D coord) + { + return coord.x == max_loc.at(i).x && coord.y == max_loc.at(i).y; + }); + + BOOST_TEST(same_coords != ref_max_loc.buffer() + max_count); + } +} } // namespace validation } // namespace test } // namespace arm_compute |