From 0200cdd23ab655f0a65e3f41cad996f7bf9bac2b Mon Sep 17 00:00:00 2001
From: Timo Koch <timo.koch@iws.uni-stuttgart.de>
Date: Sun, 18 Nov 2018 21:40:11 +0100
Subject: [PATCH] [tests] Add fvGeometry.hasBoundaryScvf() to the fvgeometry
 tests

---
 test/discretization/box/test_boxfvgeometry.cc         | 11 ++++++++++-
 .../cellcentered/tpfa/test_tpfafvgeometry.cc          | 11 ++++++++++-
 .../staggered/test_staggeredfvgeometry.cc             | 11 ++++++++++-
 3 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/test/discretization/box/test_boxfvgeometry.cc b/test/discretization/box/test_boxfvgeometry.cc
index 227191bc55..b2130b25da 100644
--- a/test/discretization/box/test_boxfvgeometry.cc
+++ b/test/discretization/box/test_boxfvgeometry.cc
@@ -98,12 +98,21 @@ int main (int argc, char *argv[]) try
         if(0 != testForwardIterator(range2.begin(), range2.end(), op2))
             DUNE_THROW(Dune::Exception, "Iterator does not fulfill the forward iterator concept");
 
+        std::size_t boundaryCount = 0;
         for (auto&& scvf : scvfs(fvGeometry))
         {
             std::cout << "-- scvf " << scvf.index() << " ip at: " << scvf.ipGlobal() << " normal: " << scvf.unitOuterNormal();
-            if (scvf.boundary()) std::cout << " (on boundary).";
+            if (scvf.boundary())
+            {
+                ++boundaryCount;
+                std::cout << " (on boundary).";
+            }
             std::cout << std::endl;
         }
+
+        if ((boundaryCount>0) != fvGeometry.hasBoundaryScvf())
+            DUNE_THROW(Dune::InvalidStateException, "fvGeometry.hasBoundaryScvf() reports " << fvGeometry.hasBoundaryScvf()
+                            << " but the number of boundary scvfs is " << boundaryCount);
     }
 }
 // //////////////////////////////////
diff --git a/test/discretization/cellcentered/tpfa/test_tpfafvgeometry.cc b/test/discretization/cellcentered/tpfa/test_tpfafvgeometry.cc
index e7223e64bb..49d715f3ff 100644
--- a/test/discretization/cellcentered/tpfa/test_tpfafvgeometry.cc
+++ b/test/discretization/cellcentered/tpfa/test_tpfafvgeometry.cc
@@ -99,12 +99,21 @@ int main (int argc, char *argv[]) try
         if(0 != testForwardIterator(range2.begin(), range2.end(), op2))
             DUNE_THROW(Dune::Exception, "Iterator does not fulfill the forward iterator concept");
 
+        std::size_t boundaryCount = 0;
         for (auto&& scvf : scvfs(fvGeometry))
         {
             std::cout << "-- scvf " << scvf.index() << " ip at: " << scvf.ipGlobal();
-            if (scvf.boundary()) std::cout << " (on boundary).";
+            if (scvf.boundary())
+            {
+                ++boundaryCount;
+                std::cout << " (on boundary).";
+            }
             std::cout << std::endl;
         }
+
+        if ((boundaryCount>0) != fvGeometry.hasBoundaryScvf())
+            DUNE_THROW(Dune::InvalidStateException, "fvGeometry.hasBoundaryScvf() reports " << fvGeometry.hasBoundaryScvf()
+                            << " but the number of boundary scvfs is " << boundaryCount);
     }
 }
 // //////////////////////////////////
diff --git a/test/discretization/staggered/test_staggeredfvgeometry.cc b/test/discretization/staggered/test_staggeredfvgeometry.cc
index d3d45349e8..130e0be2df 100644
--- a/test/discretization/staggered/test_staggeredfvgeometry.cc
+++ b/test/discretization/staggered/test_staggeredfvgeometry.cc
@@ -133,12 +133,21 @@ int main (int argc, char *argv[]) try
         if(0 != testForwardIterator(range2.begin(), range2.end(), op2))
             DUNE_THROW(Dune::Exception, "Iterator does not fulfill the forward iterator concept");
 
+        std::size_t boundaryCount = 0;
         for (auto&& scvf : scvfs(fvGeometry))
         {
             std::cout << "-- scvf " << scvf.index() << " ip at: " << scvf.ipGlobal() << " normal: " << scvf.unitOuterNormal();
-            if (scvf.boundary()) std::cout << " (on boundary).";
+            if (scvf.boundary())
+            {
+                ++boundaryCount;
+                std::cout << " (on boundary).";
+            }
             std::cout << std::endl;
         }
+
+        if ((boundaryCount>0) != fvGeometry.hasBoundaryScvf())
+            DUNE_THROW(Dune::InvalidStateException, "fvGeometry.hasBoundaryScvf() reports " << fvGeometry.hasBoundaryScvf()
+                            << " but the number of boundary scvfs is " << boundaryCount);
     }
 }
 // //////////////////////////////////
-- 
GitLab