diff --git a/dune/grid/io/file/test/subsamplingvtktest.cc b/dune/grid/io/file/test/subsamplingvtktest.cc index f59add0a3d87c1ce5e9e9d96038f62efe24979db..4c913721ae8d3d47dc42ac21dd279eed845cc2b2 100644 --- a/dune/grid/io/file/test/subsamplingvtktest.cc +++ b/dune/grid/io/file/test/subsamplingvtktest.cc @@ -84,7 +84,7 @@ struct Acc }; template< class GridView > -int doWrite( const GridView &gridView, bool coerceToSimplex) +int doWrite( Dune::VTKChecker& vtkChecker, const std::string& gridViewName, const GridView &gridView, bool coerceToSimplex) { enum { dim = GridView :: dimension }; @@ -104,21 +104,21 @@ int doWrite( const GridView &gridView, bool coerceToSimplex) int result = 0; std::string name; std::ostringstream prefix; - prefix << "subsamplingvtktest-" << dim << "D-" + prefix << "subsamplingvtktest-" << dim << "D-" << gridViewName << "-" << (coerceToSimplex ? "simplex" : "natural"); int rank = gridView.comm().rank(); name = vtk.write(prefix.str() + "-ascii"); - if(rank == 0) acc(result, checkVTKFile(name)); + if(rank == 0) vtkChecker.push(name); name = vtk.write(prefix.str() + "-appendedraw", Dune::VTK::appendedraw); - if(rank == 0) acc(result, checkVTKFile(name)); + if(rank == 0) vtkChecker.push(name); return result; } template<int dim> -int vtkCheck(const std::array<int, dim>& elements, +int vtkCheck(Dune::VTKChecker& vtkChecker, const std::array<int, dim>& elements, const Dune::FieldVector<double, dim>& upperRight) { Dune::YaspGrid<dim> g(upperRight, elements); @@ -132,13 +132,13 @@ int vtkCheck(const std::array<int, dim>& elements, int result = 0; - acc(result, doWrite( g.leafGridView(), false)); - acc(result, doWrite( g.levelGridView( 0 ), false)); - acc(result, doWrite( g.levelGridView( g.maxLevel() ), false)); + acc(result, doWrite( vtkChecker, "leafview", g.leafGridView(), false)); + acc(result, doWrite( vtkChecker, "coarselevelview", g.levelGridView( 0 ), false)); + acc(result, doWrite( vtkChecker, "finelevelview", g.levelGridView( g.maxLevel() ), false)); - acc(result, doWrite( g.leafGridView(), true)); - acc(result, doWrite( g.levelGridView( 0 ), true)); - acc(result, doWrite( g.levelGridView( g.maxLevel() ), true)); + acc(result, doWrite( vtkChecker, "leafview", g.leafGridView(), true)); + acc(result, doWrite( vtkChecker, "coarselevelview", g.levelGridView( 0 ), true)); + acc(result, doWrite( vtkChecker, "finelevelview", g.levelGridView( g.maxLevel() ), true)); return result; } @@ -156,9 +156,13 @@ int main(int argc, char **argv) int result = 0; // pass by default using Dune::make_array; - acc(result, vtkCheck<1>(make_array(5), {1.0})); - acc(result, vtkCheck<2>(make_array(5,5), {1.0, 2.0})); - acc(result, vtkCheck<3>(make_array(5,5,5), {1.0, 2.0, 3.0})); + Dune::VTKChecker vtkChecker; + + acc(result, vtkCheck<1>(vtkChecker, make_array(5), {1.0})); + acc(result, vtkCheck<2>(vtkChecker, make_array(5,5), {1.0, 2.0})); + acc(result, vtkCheck<3>(vtkChecker, make_array(5,5,5), {1.0, 2.0, 3.0})); + + acc(result, vtkChecker.check()); mpiHelper.getCollectiveCommunication().allreduce<Acc>(&result, 1); diff --git a/dune/grid/io/file/test/vtktest.cc b/dune/grid/io/file/test/vtktest.cc index a5801feb1b47c6b3a83ea5fdb8e691bfadc17246..eb2f4c503ab3d87a383cfc906560d842d7deed7e 100644 --- a/dune/grid/io/file/test/vtktest.cc +++ b/dune/grid/io/file/test/vtktest.cc @@ -94,7 +94,7 @@ struct Acc }; template< class GridView > -int doWrite( const GridView &gridView, Dune :: VTK :: DataMode dm ) +int doWrite( Dune::VTKChecker& vtkChecker, const std::string& gridViewName, const GridView &gridView, Dune :: VTK :: DataMode dm ) { enum { dim = GridView :: dimension }; @@ -113,27 +113,27 @@ int doWrite( const GridView &gridView, Dune :: VTK :: DataMode dm ) int result = 0; std::string name; std::ostringstream prefix; - prefix << "vtktest-" << dim << "D-" << VTKDataMode(dm); + prefix << "vtktest-" << dim << "D-" << gridViewName << "-" << VTKDataMode(dm); int rank = gridView.comm().rank(); name = vtk.write(prefix.str() + "-ascii"); - if(rank == 0) acc(result, checkVTKFile(name)); + if(rank == 0) vtkChecker.push(name); name = vtk.write(prefix.str() + "-base64", Dune::VTK::base64); - if(rank == 0) acc(result, checkVTKFile(name)); + if(rank == 0) vtkChecker.push(name); name = vtk.write(prefix.str() + "-appendedraw", Dune::VTK::appendedraw); - if(rank == 0) acc(result, checkVTKFile(name)); + if(rank == 0) vtkChecker.push(name); name = vtk.write(prefix.str() + "-appendedbase64", Dune::VTK::appendedbase64); - if(rank == 0) acc(result, checkVTKFile(name)); + if(rank == 0) vtkChecker.push(name); return result; } template<int dim> -int vtkCheck(const std::array<int, dim>& elements, +int vtkCheck(Dune::VTKChecker& vtkChecker, const std::array<int, dim>& elements, const Dune::FieldVector<double, dim>& upperRight) { Dune::YaspGrid<dim> g(upperRight, elements); @@ -147,15 +147,15 @@ int vtkCheck(const std::array<int, dim>& elements, int result = 0; - acc(result, doWrite( g.leafGridView(), Dune::VTK::conforming )); - acc(result, doWrite( g.leafGridView(), Dune::VTK::nonconforming )); - acc(result, doWrite( g.levelGridView( 0 ), + acc(result, doWrite( vtkChecker, "leafview", g.leafGridView(), Dune::VTK::conforming )); + acc(result, doWrite( vtkChecker, "leafview", g.leafGridView(), Dune::VTK::nonconforming )); + acc(result, doWrite( vtkChecker, "coarselevelview", g.levelGridView( 0 ), Dune::VTK::conforming )); - acc(result, doWrite( g.levelGridView( 0 ), + acc(result, doWrite( vtkChecker, "coarselevelview", g.levelGridView( 0 ), Dune::VTK::nonconforming )); - acc(result, doWrite( g.levelGridView( g.maxLevel() ), + acc(result, doWrite( vtkChecker, "finelevelview", g.levelGridView( g.maxLevel() ), Dune::VTK::conforming )); - acc(result, doWrite( g.levelGridView( g.maxLevel() ), + acc(result, doWrite( vtkChecker, "finelevelview", g.levelGridView( g.maxLevel() ), Dune::VTK::nonconforming )); return result; @@ -174,9 +174,13 @@ int main(int argc, char **argv) int result = 0; // pass by default using Dune::make_array; - acc(result, vtkCheck<1>(make_array(5), {1.0})); - acc(result, vtkCheck<2>(make_array(5,5), {1.0, 2.0})); - acc(result, vtkCheck<3>(make_array(5,5,5), {1.0, 2.0, 3.0})); + Dune::VTKChecker vtkChecker; + + acc(result, vtkCheck<1>(vtkChecker, make_array(5), {1.0})); + acc(result, vtkCheck<2>(vtkChecker, make_array(5,5), {1.0, 2.0})); + acc(result, vtkCheck<3>(vtkChecker, make_array(5,5,5), {1.0, 2.0, 3.0})); + + acc(result, vtkChecker.check()); mpiHelper.getCollectiveCommunication().allreduce<Acc>(&result, 1);