From cb02772e8b15b9ee579029a1c0c1733695a759db Mon Sep 17 00:00:00 2001
From: Oliver Sander <oliver.sander@tu-dresden.de>
Date: Wed, 28 Feb 2018 12:26:20 +0100
Subject: [PATCH] A unit test for the BrezziDouglasMariniBasis class

---
 .../functionspacebases/test/CMakeLists.txt    |  2 +
 .../test/brezzidouglasmarinibasistest.cc      | 51 +++++++++++++++++++
 2 files changed, 53 insertions(+)
 create mode 100644 dune/functions/functionspacebases/test/brezzidouglasmarinibasistest.cc

diff --git a/dune/functions/functionspacebases/test/CMakeLists.txt b/dune/functions/functionspacebases/test/CMakeLists.txt
index e258b01..4f3490a 100644
--- a/dune/functions/functionspacebases/test/CMakeLists.txt
+++ b/dune/functions/functionspacebases/test/CMakeLists.txt
@@ -3,6 +3,8 @@
 # Path to the example grid files in dune-grid
 add_definitions(-DDUNE_GRID_EXAMPLE_GRIDS_PATH=\"${DUNE_GRID_EXAMPLE_GRIDS_PATH}\")
 
+dune_add_test(SOURCES brezzidouglasmarinibasistest.cc)
+
 dune_add_test(SOURCES gridviewfunctionspacebasistest.cc)
 
 dune_add_test(SOURCES taylorhoodbasistest.cc)
diff --git a/dune/functions/functionspacebases/test/brezzidouglasmarinibasistest.cc b/dune/functions/functionspacebases/test/brezzidouglasmarinibasistest.cc
new file mode 100644
index 0000000..a61d8d7
--- /dev/null
+++ b/dune/functions/functionspacebases/test/brezzidouglasmarinibasistest.cc
@@ -0,0 +1,51 @@
+// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+// vi: set et ts=4 sw=2 sts=2:
+#include <config.h>
+
+#include <dune/common/exceptions.hh>
+#include <dune/common/parallel/mpihelper.hh>
+
+#include <dune/grid/yaspgrid.hh>
+
+#include <dune/functions/functionspacebases/brezzidouglasmarinibasis.hh>
+
+#include <dune/functions/functionspacebases/test/basistest.hh>
+
+using namespace Dune;
+
+int main (int argc, char* argv[])
+{
+  MPIHelper::instance(argc, argv);
+
+  TestSuite test;
+
+
+
+  // Generate grid for testing
+  const int dim = 2;
+  typedef YaspGrid<dim> GridType;
+  FieldVector<double,dim> l(1);
+  std::array<int,dim> elements = {{10, 10}};
+  GridType grid(l,elements);
+
+
+
+  // check RaviartThomasBasis created 'manually'
+  {
+    typedef GridType::LeafGridView GridView;
+    const GridView& gridView = grid.leafGridView();
+    Functions::BrezziDouglasMariniBasis<GridView,1,GeometryType::BasicType::cube> basis(gridView);
+    test.subTest(checkBasis(basis));
+  }
+
+
+
+  // check RaviartThomasBasis created using basis builder mechanism
+  {
+    using namespace Functions::BasisBuilder;
+    auto basis = makeBasis(grid.leafGridView(), bdm<1, GeometryType::BasicType::cube>());
+    test.subTest(checkBasis(basis));
+  }
+
+  return test.exit();
+}
-- 
GitLab