From e71d54d9c75818140c77d1f971b127dc7f93ab5f Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Fri, 14 Oct 2011 09:52:08 +0000
Subject: [PATCH] merge the tests for the different TargetSpaces into a single
 method

[[Imported from SVN: r7904]]
---
 test/localgfetestfunctiontest.cc | 103 ++++---------------------------
 1 file changed, 12 insertions(+), 91 deletions(-)

diff --git a/test/localgfetestfunctiontest.cc b/test/localgfetestfunctiontest.cc
index fbccf207..b0bd512b 100644
--- a/test/localgfetestfunctiontest.cc
+++ b/test/localgfetestfunctiontest.cc
@@ -20,95 +20,14 @@ const double eps = 1e-6;
 
 using namespace Dune;
 
-
-
-template <int domainDim>
-void testRealTuples()
+template <class TargetSpace, int domainDim>
+void test()
 {
-    std::cout << " --- Testing RealTuple<1>, domain dimension: " << domainDim << " ---" << std::endl;
-
-    typedef RealTuple<1> TargetSpace;
-
-    std::vector<TargetSpace> corners = {TargetSpace(1),
-                                        TargetSpace(2),
-                                        TargetSpace(3)};
-
-}
-
-template <int domainDim>
-void testUnitVector2d()
-{
-    std::cout << " --- Testing UnitVector<2>, domain dimension: " << domainDim << " ---" << std::endl;
-
-    typedef UnitVector<2> TargetSpace;
+    std::cout << " --- Testing " << className<TargetSpace>() << ", domain dimension: " << domainDim << " ---" << std::endl;
 
     std::vector<TargetSpace> testPoints;
     ValueFactory<TargetSpace>::get(testPoints);
     
-    int nTestPoints = testPoints.size();
-    
-    // Set up elements of S^1
-    std::vector<TargetSpace> corners(domainDim+1);
-    
-    MultiIndex<domainDim+1> index(nTestPoints);
-    int numIndices = index.cycle();
-    
-    for (int i=0; i<numIndices; i++, ++index) {
-        
-        for (int j=0; j<domainDim+1; j++)
-            corners[j] = testPoints[index[j]];
-
-        bool spreadOut = false;
-        for (int j=0; j<domainDim+1; j++)
-            for (int k=0; k<domainDim+1; k++)
-                if (UnitVector<2>::distance(corners[j],corners[k]) > M_PI*0.98)
-                    spreadOut = true;
-                    
-        if (spreadOut)
-            continue;
-        
-    }
-
-}
-
-template <int domainDim>
-void testUnitVector3d()
-{
-    std::cout << " --- Testing UnitVector<3>, domain dimension: " << domainDim << " ---" << std::endl;
-
-    typedef UnitVector<3> TargetSpace;
-
-    std::vector<TargetSpace> testPoints;
-    ValueFactory<TargetSpace>::get(testPoints);
-    
-    int nTestPoints = testPoints.size();
-    
-    // Set up elements of S^2
-    std::vector<TargetSpace> corners(domainDim+1);
-
-    MultiIndex<domainDim+1> index(nTestPoints);
-    int numIndices = index.cycle();
-
-    for (int i=0; i<numIndices; i++, ++index) {
-        
-        for (int j=0; j<domainDim+1; j++)
-            corners[j] = testPoints[index[j]];
-
-                  
-    }
-
-}
-
-template <int domainDim>
-void testRotation()
-{
-    std::cout << " --- Testing Rotation<3>, domain dimension: " << domainDim << " ---" << std::endl;
-
-    typedef Rotation<3,double> TargetSpace;
-
-    std::vector<Rotation<3,double> > testPoints;
-    ValueFactory<Rotation<3,double> >::get(testPoints);
-    
     int nTestPoints = testPoints.size();
 
     // Set up elements of SO(3)
@@ -119,6 +38,7 @@ void testRotation()
     
     PQkLocalFiniteElementCache<double,double,domainDim,1> feCache;
     typedef typename PQkLocalFiniteElementCache<double,double,domainDim,1>::FiniteElementType LocalFiniteElement;
+    
     GeometryType simplex;
     simplex.makeSimplex(domainDim);
 
@@ -142,12 +62,13 @@ int main()
 
     std::cout << std::setw(15) << std::setprecision(12);
     
-    testRealTuples<1>();
-    testUnitVector2d<1>();
-    testUnitVector3d<1>();
-    testUnitVector2d<2>();
-    testUnitVector3d<2>();
+    test<RealTuple<1>, 1>();
     
-    testRotation<1>();
-    testRotation<2>();
+    test<UnitVector<2>, 1>();
+    test<UnitVector<3>, 1>();
+    test<UnitVector<2>, 2>();
+    test<UnitVector<3>, 2>();
+        
+    test<Rotation<3,double>, 1>();
+    test<Rotation<3,double>, 2>();
 }
-- 
GitLab