From 4a76cbbbf6361edb57ed83813d609604c5c74a47 Mon Sep 17 00:00:00 2001 From: Luca Heltai Date: Wed, 20 Sep 2017 11:43:43 +0200 Subject: [PATCH] Test Using add parameter. --- .../parameter_acceptor_02.cc | 80 +++++++++++++++++++ .../parameter_acceptor_02.output | 37 +++++++++ 2 files changed, 117 insertions(+) create mode 100644 tests/parameter_handler/parameter_acceptor_02.cc create mode 100644 tests/parameter_handler/parameter_acceptor_02.output diff --git a/tests/parameter_handler/parameter_acceptor_02.cc b/tests/parameter_handler/parameter_acceptor_02.cc new file mode 100644 index 0000000000..7f3ecbe2cd --- /dev/null +++ b/tests/parameter_handler/parameter_acceptor_02.cc @@ -0,0 +1,80 @@ +//----------------------------------------------------------- +// +// Copyright (C) 2015 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +//----------------------------------------------------------- + +#include "../tests.h" +#include +#include +#include + +template +class Test : public ParameterAcceptor +{ +public: + Test() + { + add_parameter("A double", a); + add_parameter("An int" , b); + add_parameter("A string", c); + add_parameter("A bool" , d); + }; + + void log_info() + { + deallog << "My type: " << boost::core::demangle(typeid(*this).name()) << std::endl + << "a: " << a << std::endl + << "b: " << b << std::endl + << "c: " << c << std::endl + << "d: " << (d ? "true" : "false") << std::endl; + } + +private: + double a = 1.0; + int b = 2; + std::string c = "Ciao"; + bool d = true; + +}; + + +int main () +{ + initlog(); + Test<1> a; + Test<2> b; + + auto &prm = ParameterAcceptor::prm; + + ParameterAcceptor::declare_all_parameters(); + ParameterAcceptor::parse_all_parameters(); + prm.log_parameters(deallog); + + a.log_info(); + b.log_info(); + + prm.parse_input_from_string("" + "subsection Test<1>\n" + " set A double = 3.0\n" + "end\n" + "subsection Test<2>\n" + " set A double = 5.0\n" + "end\n"); + + prm.log_parameters(deallog); + ParameterAcceptor::parse_all_parameters(prm); + + a.log_info(); + b.log_info(); + +} diff --git a/tests/parameter_handler/parameter_acceptor_02.output b/tests/parameter_handler/parameter_acceptor_02.output new file mode 100644 index 0000000000..e2e44a3e85 --- /dev/null +++ b/tests/parameter_handler/parameter_acceptor_02.output @@ -0,0 +1,37 @@ + +DEAL:parameters:Test<1>::A bool: true +DEAL:parameters:Test<1>::A double: 1.0 +DEAL:parameters:Test<1>::A string: Ciao +DEAL:parameters:Test<1>::An int: 2 +DEAL:parameters:Test<2>::A bool: true +DEAL:parameters:Test<2>::A double: 1.0 +DEAL:parameters:Test<2>::A string: Ciao +DEAL:parameters:Test<2>::An int: 2 +DEAL::My type: Test<1> +DEAL::a: 1.00000 +DEAL::b: 2 +DEAL::c: Ciao +DEAL::d: true +DEAL::My type: Test<2> +DEAL::a: 1.00000 +DEAL::b: 2 +DEAL::c: Ciao +DEAL::d: true +DEAL:parameters:Test<1>::A bool: true +DEAL:parameters:Test<1>::A double: 3.0 +DEAL:parameters:Test<1>::A string: Ciao +DEAL:parameters:Test<1>::An int: 2 +DEAL:parameters:Test<2>::A bool: true +DEAL:parameters:Test<2>::A double: 5.0 +DEAL:parameters:Test<2>::A string: Ciao +DEAL:parameters:Test<2>::An int: 2 +DEAL::My type: Test<1> +DEAL::a: 3.00000 +DEAL::b: 2 +DEAL::c: Ciao +DEAL::d: true +DEAL::My type: Test<2> +DEAL::a: 5.00000 +DEAL::b: 2 +DEAL::c: Ciao +DEAL::d: true -- 2.39.5