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