From d33830544bec2e42de7a24203456a17e802a183c Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Tue, 25 Oct 2011 15:00:41 +0000 Subject: [PATCH] restrict testing to point that are closer than 0.5*M_PI apart. That's a hacky way to avoid degenerate cases [[Imported from SVN: r8038]] --- test/targetspacetest.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/targetspacetest.cc b/test/targetspacetest.cc index 600d4f88..89faa528 100644 --- a/test/targetspacetest.cc +++ b/test/targetspacetest.cc @@ -15,6 +15,17 @@ using Dune::FieldVector; using namespace Dune; +/** \brief Computes the diameter of a set */ +template <class TargetSpace> +double diameter(const std::vector<TargetSpace>& v) +{ + double d = 0; + for (size_t i=0; i<v.size(); i++) + for (size_t j=0; j<v.size(); j++) + d = std::max(d, TargetSpace::distance(v[i],v[j])); + return d; +} + const double eps = 1e-4; template <class TargetSpace> @@ -322,6 +333,12 @@ void test() for (int j=0; j<nTestPoints; j++) { + std::vector<TargetSpace> testPointPair(2); + testPointPair[0] = testPoints[i]; + testPointPair[1] = testPoints[j]; + if (diameter(testPointPair) > 0.5*M_PI) + continue; + testDerivativesOfSquaredDistance<TargetSpace>(testPoints[i], testPoints[j]); } -- GitLab