From 124ab62a91685f88507922b72497ad5307d5514a Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Wed, 21 Apr 2010 21:21:29 +0000
Subject: [PATCH] a test to compare SO(2) and S^1, which should be the same,
 but implemented differently

[[Imported from SVN: r5919]]
---
 test/Makefile.am       |  4 +++-
 test/unitcircletest.cc | 31 +++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100644 test/unitcircletest.cc

diff --git a/test/Makefile.am b/test/Makefile.am
index d11177b9..8fdc5dc7 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -5,7 +5,7 @@ LDADD = $(UG_LDFLAGS) $(AMIRAMESH_LDFLAGS) $(UG_LIBS) $(AMIRAMESH_LIBS)
 AM_CPPFLAGS += $(UG_CPPFLAGS) $(AMIRAMESH_CPPFLAGS) -Wall
 
 check_PROGRAMS = frameinvariancetest rotationtest fdcheck localgeodesicfefunctiontest \
-                 harmonicenergytest averagedistanceassemblertest
+                 harmonicenergytest averagedistanceassemblertest unitcircletest
 
 frameinvariancetest_SOURCES = frameinvariancetest.cc
 
@@ -19,6 +19,8 @@ harmonicenergytest_SOURCES = harmonicenergytest.cc
 
 averagedistanceassemblertest_SOURCES = averagedistanceassemblertest.cc
 
+unitcircletest_SOURCES = unitcircletest.cc
+
 # don't follow the full GNU-standard
 # we need automake 1.5
 AUTOMAKE_OPTIONS = foreign 1.5
diff --git a/test/unitcircletest.cc b/test/unitcircletest.cc
new file mode 100644
index 00000000..425f4779
--- /dev/null
+++ b/test/unitcircletest.cc
@@ -0,0 +1,31 @@
+#include <config.h>
+
+#include <dune/src/unitvector.hh>
+#include <dune/src/rotation.hh>
+
+
+using namespace Dune;
+
+int main()
+{
+    // Set up elements of S^1
+    FieldVector<double,2> v;
+    v[0] = 1;  v[1] = 1;
+    UnitVector<2> uv1;  uv1 = v;
+    v[0] = 0;  v[1] = 1;
+    UnitVector<2> uv0;  uv0 = v;
+
+    // Set up elements of SO(2)
+    Rotation<2,double> ro1(M_PI/4);
+    Rotation<2,double> ro0(M_PI/2);
+
+    std::cout << UnitVector<2>::distance(uv0, uv1) << std::endl;
+    std::cout << Rotation<2,double>::distance(ro0, ro1) << std::endl;
+
+    std::cout << UnitVector<2>::derivativeOfDistanceSquaredWRTSecondArgument(uv0, uv1) << std::endl;
+    std::cout << Rotation<2,double>::derivativeOfDistanceSquaredWRTSecondArgument(ro0, ro1) << std::endl;
+
+    std::cout << UnitVector<2>::secondDerivativeOfDistanceSquaredWRTSecondArgument(uv0, uv1) << std::endl;
+    std::cout << Rotation<2,double>::secondDerivativeOfDistanceSquaredWRTSecondArgument(ro0, ro1) << std::endl;
+}
+
-- 
GitLab