From bb76e0d69b028ac1ef64ea57b15369f89b574bde Mon Sep 17 00:00:00 2001
From: Tobias Leibner <tobias.leibner@googlemail.com>
Date: Fri, 12 Apr 2019 17:24:48 +0200
Subject: [PATCH] [test] fix passing gridsize as array

---
 dune/gdt/test/mn-discretization.hh |  8 ++++----
 dune/gdt/test/pn-discretization.hh | 17 +++++++++--------
 2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/dune/gdt/test/mn-discretization.hh b/dune/gdt/test/mn-discretization.hh
index 5de5b5814..a232332fd 100644
--- a/dune/gdt/test/mn-discretization.hh
+++ b/dune/gdt/test/mn-discretization.hh
@@ -43,7 +43,7 @@ struct HyperbolicMnDiscretization
                                                           size_t num_output_steps = 0,
                                                           size_t quad_order = size_t(-1),
                                                           size_t quad_refinements = size_t(-1),
-                                                          size_t grid_size = size_t(-1),
+                                                          std::string grid_size = "",
                                                           size_t overlap_size = 2,
                                                           double t_end = 0.,
                                                           std::string filename = "",
@@ -70,8 +70,8 @@ struct HyperbolicMnDiscretization
 
     //******************* create grid and FV space ***************************************
     auto grid_config = ProblemType::default_grid_cfg();
-    if (grid_size != size_t(-1))
-      grid_config["num_elements"] = XT::Common::to_string(grid_size);
+    if (!grid_size.empty())
+      grid_config["num_elements"] = grid_size;
     grid_config["overlap_size"] = XT::Common::to_string(overlap_size);
     const auto grid_ptr =
         Dune::XT::Grid::CubeGridProviderFactory<GridType>::create(grid_config, MPIHelper::getCommunicator()).grid_ptr();
@@ -245,7 +245,7 @@ struct HyperbolicMnTest
                      0,
                      TestCaseType::RealizabilityLimiterChooserType::quad_order,
                      TestCaseType::RealizabilityLimiterChooserType::quad_refinements,
-                     size_t(-1),
+                     "",
                      2,
                      TestCaseType::t_end,
                      "test",
diff --git a/dune/gdt/test/pn-discretization.hh b/dune/gdt/test/pn-discretization.hh
index 0c9a02fb7..3cd158c0f 100644
--- a/dune/gdt/test/pn-discretization.hh
+++ b/dune/gdt/test/pn-discretization.hh
@@ -43,7 +43,7 @@ void parse_momentmodel_arguments(int argc,
                                  size_t& num_output_steps,
                                  size_t& quad_order,
                                  size_t& quad_refinements,
-                                 size_t& grid_size,
+                                 std::string& grid_size,
                                  size_t& overlap_size,
                                  double& t_end,
                                  std::string& filename)
@@ -59,7 +59,8 @@ void parse_momentmodel_arguments(int argc,
   num_output_steps = num_save_steps;
   quad_order = -1;
   quad_refinements = -1;
-  grid_size = -1, overlap_size = 2;
+  grid_size = "";
+  overlap_size = 2;
   t_end = 0.;
   filename = "";
 
@@ -101,7 +102,7 @@ void parse_momentmodel_arguments(int argc,
         DUNE_THROW(Dune::IOError, "--num_output_steps option requires one argument.");
     } else if (std::string(argv[i]) == "--grid_size") {
       if (i + 1 < argc)
-        grid_size = XT::Common::from_string<size_t>(argv[++i]);
+        grid_size = argv[++i];
       else
         DUNE_THROW(Dune::IOError, "--grid_size option requires one argument.");
     } else if (std::string(argv[i]) == "--overlap_size") {
@@ -176,7 +177,7 @@ struct HyperbolicPnDiscretization
                                    size_t num_output_steps = 0,
                                    size_t quad_order = size_t(-1),
                                    size_t quad_refinements = size_t(-1),
-                                   size_t grid_size = size_t(-1),
+                                   std::string grid_size = "",
                                    size_t overlap_size = 2,
                                    double t_end = 0.,
                                    std::string filename = "")
@@ -203,8 +204,8 @@ struct HyperbolicPnDiscretization
 
     //******************* create grid and FV space ***************************************
     auto grid_config = ProblemType::default_grid_cfg();
-    if (grid_size != size_t(-1))
-      grid_config["num_elements"] = XT::Common::to_string(grid_size);
+    if (!grid_size.empty())
+      grid_config["num_elements"] = grid_size;
     grid_config["overlap_size"] = XT::Common::to_string(overlap_size);
     const auto grid_ptr =
         Dune::XT::Grid::CubeGridProviderFactory<GridType>::create(grid_config, MPIHelper::getCommunicator()).grid_ptr();
@@ -367,8 +368,8 @@ struct HyperbolicPnTest
 {
   void run()
   {
-    auto norms = HyperbolicPnDiscretization<TestCaseType>::run(
-        1, 0, size_t(-1), size_t(-1), size_t(-1), 2, TestCaseType::t_end, "test");
+    auto norms =
+        HyperbolicPnDiscretization<TestCaseType>::run(1, 0, size_t(-1), size_t(-1), "", 2, TestCaseType::t_end, "test");
     const double l1norm = norms[0];
     const double l2norm = norms[1];
     const double linfnorm = norms[2];
-- 
GitLab