diff --git a/test/targetspacetest.cc b/test/targetspacetest.cc index 600d4f88dde4f3bbd6b60d78425c95bd2c9b6609..89faa5283128a64e6c3dd3bb3fc093c311ba9aed 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]); }