From 9bdbf42e97644bc78a2528a5a5a6a6da3f69b7e5 Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Mon, 23 May 2011 14:48:26 +0000 Subject: [PATCH] A factory that produces sets of test values for various target spaces [[Imported from SVN: r7306]] --- test/valuefactory.hh | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 test/valuefactory.hh diff --git a/test/valuefactory.hh b/test/valuefactory.hh new file mode 100644 index 00000000..cc867867 --- /dev/null +++ b/test/valuefactory.hh @@ -0,0 +1,80 @@ +#ifndef VALUE_FACTORY_HH +#define VALUE_FACTORY_HH + +#include <vector> + +#include <dune/gfe/unitvector.hh> + +/** \brief A class that creates sets of values of various types, to be used in unit tests + * + * This is the generic dummy. The actual work is done in specializations. + */ +template <class T> +class ValueFactory +{ +public: + static void get(std::vector<T>& values); + +}; + + +/** \brief A class that creates sets of values of various types, to be used in unit tests + * + * This is the specialization for UnitVector<2> + */ +template <> +class ValueFactory<UnitVector<2> > +{ +public: + static void get(std::vector<UnitVector<2> >& values) { + + int nTestPoints = 10; + double testPoints[10][2] = {{1,0}, {0.5,0.5}, {0,1}, {-0.5,0.5}, {-1,0}, {-0.5,-0.5}, {0,-1}, {0.5,-0.5}, {0.1,1}, {1,.1}}; + + values.resize(nTestPoints); + + // Set up elements of S^1 + for (int i=0; i<nTestPoints; i++) { + + Dune::array<double,2> w = {{testPoints[i][0], testPoints[i][1]}}; + values[i] = UnitVector<2>(w); + + } + + } + +}; + + +/** \brief A class that creates sets of values of various types, to be used in unit tests + * + * This is the specialization for UnitVector<3> + */ +template <> +class ValueFactory<UnitVector<3> > +{ +public: + static void get(std::vector<UnitVector<3> >& values) { + + int nTestPoints = 10; + double testPoints[10][3] = {{1,0,0}, {0,1,0}, {-0.838114,0.356751,-0.412667}, + {-0.490946,-0.306456,0.81551},{-0.944506,0.123687,-0.304319}, + {-0.6,0.1,-0.2},{0.45,0.12,0.517}, + {-0.1,0.3,-0.1},{-0.444506,0.123687,0.104319},{-0.7,-0.123687,-0.304319}}; + + values.resize(nTestPoints); + + // Set up elements of S^1 + for (int i=0; i<nTestPoints; i++) { + + Dune::array<double,3> w = {{testPoints[i][0], testPoints[i][1], testPoints[i][2]}}; + values[i] = UnitVector<3>(w); + + } + + } + +}; + + +#endif \ No newline at end of file -- GitLab