From fc2817dc0436ef2d5064df0a061aafd3d324d894 Mon Sep 17 00:00:00 2001 From: Giorgio Arena Date: Tue, 27 Jun 2017 17:26:37 +0100 Subject: COMPMID-424 NEON/CL Harris Corners validation tests. Change-Id: I82d2a73f515a8d45d16b9ddb702fea51ae05c82e Reviewed-on: http://mpd-gerrit.cambridge.arm.com/79687 Tested-by: Kaizen Reviewed-by: Moritz Pflanzer --- tests/validation/Validation.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tests/validation/Validation.cpp') diff --git a/tests/validation/Validation.cpp b/tests/validation/Validation.cpp index 868bbaac5e..61097cd407 100644 --- a/tests/validation/Validation.cpp +++ b/tests/validation/Validation.cpp @@ -26,6 +26,7 @@ #include "arm_compute/core/Coordinates.h" #include "arm_compute/core/Error.h" #include "arm_compute/core/FixedPoint.h" +#include "arm_compute/core/IArray.h" #include "arm_compute/core/TensorShape.h" #include "arm_compute/runtime/Tensor.h" #include "tests/IAccessor.h" @@ -39,6 +40,7 @@ #include #include #include +#include namespace arm_compute { @@ -435,6 +437,27 @@ void validate(float target, float ref, float tolerance_abs_error, float toleranc BOOST_TEST_INFO("target = " << std::setprecision(5) << target); BOOST_TEST(equal); } + +void validate(IArray &target, IArray &ref) +{ + BOOST_TEST(target.num_values() == ref.num_values()); + + for(size_t i = 0; i < target.num_values(); ++i) + { + KeyPoint *ref_val = std::find_if(ref.buffer(), ref.buffer() + ref.num_values(), [&target, i](KeyPoint key) + { + return key.x == target.at(i).x && key.y == target.at(i).y; + }); + + BOOST_TEST(ref_val != ref.buffer() + ref.num_values()); + BOOST_TEST(target.at(i).tracking_status == ref_val->tracking_status); + + validate(target.at(i).strength, ref_val->strength); + validate(target.at(i).scale, ref_val->scale); + validate(target.at(i).orientation, ref_val->orientation); + validate(target.at(i).error, ref_val->error); + } +} } // namespace validation } // namespace test } // namespace arm_compute -- cgit v1.2.1