]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Rework Pattern::Double 2601/head
authorTimo Heister <timo.heister@gmail.com>
Sat, 14 May 2016 14:53:21 +0000 (15:53 +0100)
committerTimo Heister <timo.heister@gmail.com>
Sun, 15 May 2016 15:03:05 +0000 (16:03 +0100)
- Fix broken parsing of Pattern::Double::description() in
::create()(skipping " range " that shouldn't exist and parsing an empty
range incorrectly).
- Display default values as -MAX_DOUBLE...MAX_DOUBLE instead of
-1.79769e+308...1.79769e+308 in the description.
- Add some new tests.
- Update output of tests to match new description.

remove c++11'ism

use std::memcmp

16 files changed:
include/deal.II/base/parameter_handler.h
source/base/parameter_handler.cc
tests/bits/parameter_handler_4.output
tests/bits/parameter_handler_4a.output
tests/bits/parameter_handler_4a_with_alias.output
tests/bits/parameter_handler_4a_with_alias_deprecated.output
tests/bits/parameter_handler_7.output
tests/bits/parameter_handler_double_01.cc [new file with mode: 0644]
tests/bits/parameter_handler_double_01.output [new file with mode: 0644]
tests/bits/parameter_handler_double_02.cc [new file with mode: 0644]
tests/bits/parameter_handler_double_02.output [new file with mode: 0644]
tests/bits/parameter_handler_read_xml.output
tests/bits/parameter_handler_write_json.output
tests/bits/parameter_handler_write_section_xml.output
tests/bits/parameter_handler_write_xml.output
tests/serialization/parameter_handler.output

index aff602e6fd5e9b92325aa908dd8a74660f195c43..dc5825ccf0afadce4a346a17cbb24c1862e389e2 100644 (file)
@@ -221,16 +221,14 @@ namespace Patterns
   {
   public:
     /**
-     * Minimal double value. If the <tt>std::numeric_limits</tt> class is
-     * available use this information to obtain the extremal values, otherwise
-     * set it so that this class understands that all values are allowed.
+     * Minimal double value used as default value, taken from
+     * <tt>std::numeric_limits</tt>.
      */
     static const double min_double_value;
 
     /**
-     * Maximal double value. If the numeric_limits class is available use this
-     * information to obtain the extremal values, otherwise set it so that
-     * this class understands that all values are allowed.
+     * Maximal double value used as default value, taken from
+     * <tt>std::numeric_limits</tt>.
      */
     static const double max_double_value;
 
@@ -264,9 +262,11 @@ namespace Patterns
     virtual PatternBase *clone () const;
 
     /**
-     * Creates new object if the start of description matches
-     * description_init.  Ownership of that object is transferred to the
-     * caller of this function.
+     * Creates a new object on the heap using @p new if the given
+     * @p description is a valid format (for example created by calling
+     * description() on an existing object), or NULL otherwise. Ownership of
+     * the returned object is transferred to the caller of this function,
+     * which should be freed using @p delete.
      */
     static Double *create (const std::string &description);
 
@@ -275,7 +275,7 @@ namespace Patterns
      * Value of the lower bound. A number that satisfies the
      * @ref match
      * operation of this class must be equal to this value or larger, if the
-     * bounds of the interval for a valid range.
+     * bounds of the interval form a valid range.
      */
     const double lower_bound;
 
@@ -283,7 +283,7 @@ namespace Patterns
      * Value of the upper bound. A number that satisfies the
      * @ref match
      * operation of this class must be equal to this value or less, if the
-     * bounds of the interval for a valid range.
+     * bounds of the interval form a valid range.
      */
     const double upper_bound;
 
index bd98002cfe922e389247e4a0e6aa3fb168ef4e66..98e8ee8097fa0b165e4104d96e41e842bcbe3c51 100644 (file)
@@ -35,6 +35,7 @@ DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
 #include <sstream>
 #include <cctype>
 #include <limits>
+#include <cstring>
 
 
 DEAL_II_NAMESPACE_OPEN
@@ -281,23 +282,28 @@ namespace Patterns
   {
     std::ostringstream description;
 
-    // check whether valid bounds
-    // were specified, and if so
-    // output their values
     if (lower_bound <= upper_bound)
       {
-        description << description_init
-                    << " "
-                    << lower_bound << "..." << upper_bound
-                    << " (inclusive)]";
+        // bounds are valid
+        description << description_init << " ";
+        // We really want to compare with ==, but -Wfloat-equal would create
+        // a warning here, so work around it.
+        if (0==std::memcmp(&lower_bound, &min_double_value, sizeof(lower_bound)))
+          description << "-MAX_DOUBLE";
+        else
+          description << lower_bound;
+        description << "...";
+        if (0==std::memcmp(&upper_bound, &max_double_value, sizeof(upper_bound)))
+          description << "MAX_DOUBLE";
+        else
+          description << upper_bound;
+        description << " (inclusive)]";
         return description.str();
       }
     else
-      // if no bounds were given, then
-      // return generic string
       {
-        description << description_init
-                    << "]";
+        // invalid bounds, assume unbounded double:
+        description << description_init << "]";
         return description.str();
       }
   }
@@ -313,31 +319,38 @@ namespace Patterns
 
   Double *Double::create (const std::string &description)
   {
-    if (description.compare(0, std::strlen(description_init), description_init) == 0)
-      {
-        std::istringstream is(description);
+    const std::string description_init_str = description_init;
+    if (description.compare(0, description_init_str.size(), description_init_str) != 0)
+      return NULL;
+    if (*description.rbegin() != ']')
+      return NULL;
 
-        if (is.str().size() > strlen(description_init) + 1)
-          {
-            double lower_bound, upper_bound;
+    std::string temp = description.substr(description_init_str.size());
+    if (temp == "]")
+      return new Double(1.0, -1.0); // return an invalid range
 
-            is.ignore(strlen(description_init) + strlen(" range "));
+    if (temp.find("...") != std::string::npos)
+      temp.replace(temp.find("..."), 3, " ");
 
-            if (!(is >> lower_bound))
-              return new Double();
+    double lower_bound = min_double_value,
+           upper_bound = max_double_value;
 
-            is.ignore(strlen("..."));
+    std::istringstream is(temp);
+    if (0 == temp.compare(0, std::strlen(" -MAX_DOUBLE"), " -MAX_DOUBLE"))
+      is.ignore(std::strlen(" -MAX_DOUBLE"));
+    else
+      {
+        // parse lower bound and give up if not a double
+        if (!(is >> lower_bound))
+          return NULL;
+      }
 
-            if (!(is >> upper_bound))
-              return new Double();
+    // ignore failure here and assume we got MAX_DOUBLE as upper bound:
+    is >> upper_bound;
+    if (is.fail())
+      upper_bound = max_double_value;
 
-            return new Double(lower_bound, upper_bound);
-          }
-        else
-          return new Double();
-      }
-    else
-      return 0;
+    return new Double(lower_bound, upper_bound);
   }
 
 
index 7262fc5e8140a9d943eadbb7689e4a327ba837c1..7c5a0faac19f0591dd66e4a02945457acf9c388e 100644 (file)
@@ -23,7 +23,7 @@
 {\it Description:} docs 3
 
 
-{\it Possible values:} [Double -1.79769e+308...1.79769e+308 (inclusive)]
+{\it Possible values:} [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
 \item {\it Parameter name:} {\tt int}
 \phantomsection\label{parameters:Testing/int}
 
index 6dcf0739c9df11c0e55e9ac535471e86ac2f872d..56d289b6ee1f6299ffdcefc557b3c129690f0c41 100644 (file)
@@ -23,7 +23,7 @@
 {\it Description:} docs 3
 
 
-{\it Possible values:} [Double -1.79769e+308...1.79769e+308 (inclusive)]
+{\it Possible values:} [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
 \item {\it Parameter name:} {\tt int}
 \phantomsection\label{parameters:Testing/int}
 
@@ -76,7 +76,7 @@
 {\it Description:} docs 3
 
 
-{\it Possible values:} [Double -1.79769e+308...1.79769e+308 (inclusive)]
+{\it Possible values:} [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
 \item {\it Parameter name:} {\tt int 2}
 \phantomsection\label{parameters:Testing/Testing 2/int 2}
 
index 8d5a7a675fc322ea98897e25d5bedcc94aac7ca5..0befbc268316535ff450e1574d8729007da56a58 100644 (file)
@@ -23,7 +23,7 @@
 {\it Description:} docs 3
 
 
-{\it Possible values:} [Double -1.79769e+308...1.79769e+308 (inclusive)]
+{\it Possible values:} [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
 \item {\it Parameter name:} {\tt double_alias}
 \phantomsection\label{parameters:Testing/double_alias}
 
@@ -94,7 +94,7 @@ This parameter is an alias for the parameter ``\texttt{int}''.
 {\it Description:} docs 3
 
 
-{\it Possible values:} [Double -1.79769e+308...1.79769e+308 (inclusive)]
+{\it Possible values:} [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
 \item {\it Parameter name:} {\tt int 2}
 \phantomsection\label{parameters:Testing/Testing 2/int 2}
 
index 19a83f190fc0b507b788633cc4e74bb56bf10bd8..91e452c3442757b99c7a46039199d02ba695ea5a 100644 (file)
@@ -23,7 +23,7 @@
 {\it Description:} docs 3
 
 
-{\it Possible values:} [Double -1.79769e+308...1.79769e+308 (inclusive)]
+{\it Possible values:} [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
 \item {\it Parameter name:} {\tt double_alias}
 \phantomsection\label{parameters:Testing/double_alias}
 
@@ -94,7 +94,7 @@ This parameter is an alias for the parameter ``\texttt{int}''.
 {\it Description:} docs 3
 
 
-{\it Possible values:} [Double -1.79769e+308...1.79769e+308 (inclusive)]
+{\it Possible values:} [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
 \item {\it Parameter name:} {\tt int 2}
 \phantomsection\label{parameters:Testing/Testing 2/int 2}
 
index af472ec703f828255e7abf44f4f41d83d336de82..48dc5bd2d62ee89207bcb46852b9eaffb822fedd 100644 (file)
@@ -2,7 +2,7 @@
 Listing of Parameters:
 
 subsection Testing
-  set double       =   [Double -1.79769e+308...1.79769e+308 (inclusive)]
+  set double       =   [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
                        (docs 3)
   set int          =   [Integer range -2147483648...2147483647 (inclusive)]
   set string list  = 
diff --git a/tests/bits/parameter_handler_double_01.cc b/tests/bits/parameter_handler_double_01.cc
new file mode 100644 (file)
index 0000000..06dc88e
--- /dev/null
@@ -0,0 +1,41 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2003 - 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// test ParameterHandler::Double description of limits
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/base/parameter_handler.h>
+#include <fstream>
+#include <iomanip>
+
+
+int main ()
+{
+  initlog();
+
+  ParameterHandler prm;
+  prm.declare_entry ("a", "1.2", Patterns::Double(), "no limit");
+  prm.declare_entry ("b", "1.2", Patterns::Double(-2.13), "lower limit");
+  prm.declare_entry ("c", "1.2", Patterns::Double(Patterns::Double::min_double_value, 42.0), "upper limit");
+  prm.declare_entry ("d", "1.2", Patterns::Double(0.2, 42.0), "both limits");
+  prm.declare_entry ("e", "1.2", Patterns::Double(1.0, -1.0), "no limits");
+
+  prm.print_parameters (deallog.get_file_stream(), ParameterHandler::LaTeX);
+
+  return 0;
+}
diff --git a/tests/bits/parameter_handler_double_01.output b/tests/bits/parameter_handler_double_01.output
new file mode 100644 (file)
index 0000000..aad44bd
--- /dev/null
@@ -0,0 +1,87 @@
+
+\subsection{Global parameters}
+\label{parameters:global}
+
+
+\begin{itemize}
+\item {\it Parameter name:} {\tt a}
+\phantomsection\label{parameters:a}
+
+
+\index[prmindex]{a}
+\index[prmindexfull]{a}
+{\it Value:} 1.2
+
+
+{\it Default:} 1.2
+
+
+{\it Description:} no limit
+
+
+{\it Possible values:} [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
+\item {\it Parameter name:} {\tt b}
+\phantomsection\label{parameters:b}
+
+
+\index[prmindex]{b}
+\index[prmindexfull]{b}
+{\it Value:} 1.2
+
+
+{\it Default:} 1.2
+
+
+{\it Description:} lower limit
+
+
+{\it Possible values:} [Double -2.13...MAX_DOUBLE (inclusive)]
+\item {\it Parameter name:} {\tt c}
+\phantomsection\label{parameters:c}
+
+
+\index[prmindex]{c}
+\index[prmindexfull]{c}
+{\it Value:} 1.2
+
+
+{\it Default:} 1.2
+
+
+{\it Description:} upper limit
+
+
+{\it Possible values:} [Double -MAX_DOUBLE...42 (inclusive)]
+\item {\it Parameter name:} {\tt d}
+\phantomsection\label{parameters:d}
+
+
+\index[prmindex]{d}
+\index[prmindexfull]{d}
+{\it Value:} 1.2
+
+
+{\it Default:} 1.2
+
+
+{\it Description:} both limits
+
+
+{\it Possible values:} [Double 0.2...42 (inclusive)]
+\item {\it Parameter name:} {\tt e}
+\phantomsection\label{parameters:e}
+
+
+\index[prmindex]{e}
+\index[prmindexfull]{e}
+{\it Value:} 1.2
+
+
+{\it Default:} 1.2
+
+
+{\it Description:} no limits
+
+
+{\it Possible values:} [Double]
+\end{itemize}
diff --git a/tests/bits/parameter_handler_double_02.cc b/tests/bits/parameter_handler_double_02.cc
new file mode 100644 (file)
index 0000000..a42fedb
--- /dev/null
@@ -0,0 +1,55 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2003 - 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// test ParameterHandler::Double::create()
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/base/parameter_handler.h>
+#include <fstream>
+#include <iomanip>
+
+void test(const std::string &desc)
+{
+  deallog << desc << " -> ";
+  Patterns::Double *c = Patterns::Double::create(desc);
+  if (!c)
+    {
+      deallog << "NULL" << std::endl;
+      return;
+    }
+  deallog << c->description() << std::endl;
+}
+
+
+int main ()
+{
+  initlog();
+
+  // invalid:
+  test("invalid");
+  test("[Double invalid]");
+  test("[Double");
+
+  test(Patterns::Double().description()); // no limit
+  test(Patterns::Double(-2.13).description()); // lower limit
+  test(Patterns::Double(Patterns::Double::min_double_value, 42.0).description()); // upper limit
+  test(Patterns::Double(0.2, 42.0).description()); // both limits
+  test(Patterns::Double(1.0, -1.0).description()); // no limits
+
+  return 0;
+}
diff --git a/tests/bits/parameter_handler_double_02.output b/tests/bits/parameter_handler_double_02.output
new file mode 100644 (file)
index 0000000..fb17b6c
--- /dev/null
@@ -0,0 +1,9 @@
+
+DEAL::invalid -> NULL
+DEAL::[Double invalid] -> NULL
+DEAL::[Double -> NULL
+DEAL::[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] -> [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
+DEAL::[Double -2.13...MAX_DOUBLE (inclusive)] -> [Double -2.13...MAX_DOUBLE (inclusive)]
+DEAL::[Double -MAX_DOUBLE...42 (inclusive)] -> [Double -MAX_DOUBLE...42 (inclusive)]
+DEAL::[Double 0.2...42 (inclusive)] -> [Double 0.2...42 (inclusive)]
+DEAL::[Double] -> [Double]
index b0080fa3d19fc21d4b7439523f64dcb947404f52..7115313c6d56810111b72f2570f545cc8e3db1e1 100644 (file)
@@ -1,3 +1,3 @@
 
 <?xml version="1.0" encoding="utf-8"?>
-<ParameterHandler><int1><value>2</value><default_value>1</default_value><documentation>doc 1</documentation><pattern>0</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int1><int2><value>3</value><default_value>2</default_value><documentation>doc 2</documentation><pattern>1</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int2><ss1><double_201><value>2.234</value><default_value>1.234</default_value><documentation>doc 3</documentation><pattern>2</pattern><pattern_description>[Double -1.79769e+308...1.79769e+308 (inclusive)]</pattern_description></double_201><ss2><double_202><value>5.321</value><default_value>4.321</default_value><documentation>doc 4</documentation><pattern>3</pattern><pattern_description>[Double -1.79769e+308...1.79769e+308 (inclusive)]</pattern_description></double_202></ss2></ss1><Testing_25testing><string_26list><value>__&lt; &amp; &gt; ; /</value><default_value>&lt; &amp; &gt; ; /</default_value><documentation>docs 1</documentation><pattern>4</pattern><pattern_description>[Anything]</pattern_description></string_26list><int_2aint><value>2</value><default_value>2</default_value><documentation/><pattern>5</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int_2aint><double_2bdouble><value>7.1415926</value><default_value>6.1415926</default_value><documentation>docs 3</documentation><pattern>6</pattern><pattern_description>[Double -1.79769e+308...1.79769e+308 (inclusive)]</pattern_description></double_2bdouble></Testing_25testing></ParameterHandler>
+<ParameterHandler><int1><value>2</value><default_value>1</default_value><documentation>doc 1</documentation><pattern>0</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int1><int2><value>3</value><default_value>2</default_value><documentation>doc 2</documentation><pattern>1</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int2><ss1><double_201><value>2.234</value><default_value>1.234</default_value><documentation>doc 3</documentation><pattern>2</pattern><pattern_description>[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]</pattern_description></double_201><ss2><double_202><value>5.321</value><default_value>4.321</default_value><documentation>doc 4</documentation><pattern>3</pattern><pattern_description>[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]</pattern_description></double_202></ss2></ss1><Testing_25testing><string_26list><value>__&lt; &amp; &gt; ; /</value><default_value>&lt; &amp; &gt; ; /</default_value><documentation>docs 1</documentation><pattern>4</pattern><pattern_description>[Anything]</pattern_description></string_26list><int_2aint><value>2</value><default_value>2</default_value><documentation/><pattern>5</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int_2aint><double_2bdouble><value>7.1415926</value><default_value>6.1415926</default_value><documentation>docs 3</documentation><pattern>6</pattern><pattern_description>[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]</pattern_description></double_2bdouble></Testing_25testing></ParameterHandler>
index 817fb72ea8197963670891c4aedfc5dfb6743af2..112eb08986162738679c1e083b50b605dcdcd3b3 100644 (file)
@@ -24,7 +24,7 @@
             "default_value": "1.234",
             "documentation": "doc 3",
             "pattern": "2",
-            "pattern_description": "[Double -1.79769e+308...1.79769e+308 (inclusive)]"
+            "pattern_description": "[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]"
         },
         "ss2":
         {
@@ -34,7 +34,7 @@
                 "default_value": "4.321",
                 "documentation": "doc 4",
                 "pattern": "3",
-                "pattern_description": "[Double -1.79769e+308...1.79769e+308 (inclusive)]"
+                "pattern_description": "[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]"
             }
         }
     },
@@ -62,7 +62,7 @@
             "default_value": "6.1415926",
             "documentation": "docs 3",
             "pattern": "6",
-            "pattern_description": "[Double -1.79769e+308...1.79769e+308 (inclusive)]"
+            "pattern_description": "[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]"
         }
     }
 }
index d9345a9d22fc712700ac0b890c076f6756e827c1..98f71460514c7e8c70ec1c9ba8167312633096fb 100644 (file)
@@ -1,3 +1,3 @@
 
 <?xml version="1.0" encoding="utf-8"?>
-<ParameterHandler><ss1><Testing_25testing><double_202><value>4.321</value><default_value>4.321</default_value><documentation>doc 4</documentation><pattern>2</pattern><pattern_description>[Double -1.79769e+308...1.79769e+308 (inclusive)]</pattern_description></double_202><string_26list><value>&lt; &amp; &gt; ; /</value><default_value>&lt; &amp; &gt; ; /</default_value><documentation>docs 1</documentation><pattern>3</pattern><pattern_description>[Anything]</pattern_description></string_26list><int_2aint><value>2</value><default_value>2</default_value><documentation/><pattern>4</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int_2aint><double_2bdouble><value>6.1415926</value><default_value>6.1415926</default_value><documentation>docs 3</documentation><pattern>5</pattern><pattern_description>[Double -1.79769e+308...1.79769e+308 (inclusive)]</pattern_description></double_2bdouble></Testing_25testing></ss1></ParameterHandler>
+<ParameterHandler><ss1><Testing_25testing><double_202><value>4.321</value><default_value>4.321</default_value><documentation>doc 4</documentation><pattern>2</pattern><pattern_description>[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]</pattern_description></double_202><string_26list><value>&lt; &amp; &gt; ; /</value><default_value>&lt; &amp; &gt; ; /</default_value><documentation>docs 1</documentation><pattern>3</pattern><pattern_description>[Anything]</pattern_description></string_26list><int_2aint><value>2</value><default_value>2</default_value><documentation/><pattern>4</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int_2aint><double_2bdouble><value>6.1415926</value><default_value>6.1415926</default_value><documentation>docs 3</documentation><pattern>5</pattern><pattern_description>[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]</pattern_description></double_2bdouble></Testing_25testing></ss1></ParameterHandler>
index 79a196757724471d6ceef4a46d3e2536bfa022ab..2f87f6668002d6b45c589c6d157da17b1bf6d86b 100644 (file)
@@ -1,3 +1,3 @@
 
 <?xml version="1.0" encoding="utf-8"?>
-<ParameterHandler><int1><value>1</value><default_value>1</default_value><documentation>doc 1</documentation><pattern>0</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int1><int2><value>2</value><default_value>2</default_value><documentation>doc 2</documentation><pattern>1</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int2><ss1><double_201><value>1.234</value><default_value>1.234</default_value><documentation>doc 3</documentation><pattern>2</pattern><pattern_description>[Double -1.79769e+308...1.79769e+308 (inclusive)]</pattern_description></double_201><ss2><double_202><value>4.321</value><default_value>4.321</default_value><documentation>doc 4</documentation><pattern>3</pattern><pattern_description>[Double -1.79769e+308...1.79769e+308 (inclusive)]</pattern_description></double_202></ss2></ss1><Testing_25testing><string_26list><value>&lt; &amp; &gt; ; /</value><default_value>&lt; &amp; &gt; ; /</default_value><documentation>docs 1</documentation><pattern>4</pattern><pattern_description>[Anything]</pattern_description></string_26list><int_2aint><value>2</value><default_value>2</default_value><documentation/><pattern>5</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int_2aint><double_2bdouble><value>6.1415926</value><default_value>6.1415926</default_value><documentation>docs 3</documentation><pattern>6</pattern><pattern_description>[Double -1.79769e+308...1.79769e+308 (inclusive)]</pattern_description></double_2bdouble></Testing_25testing></ParameterHandler>
+<ParameterHandler><int1><value>1</value><default_value>1</default_value><documentation>doc 1</documentation><pattern>0</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int1><int2><value>2</value><default_value>2</default_value><documentation>doc 2</documentation><pattern>1</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int2><ss1><double_201><value>1.234</value><default_value>1.234</default_value><documentation>doc 3</documentation><pattern>2</pattern><pattern_description>[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]</pattern_description></double_201><ss2><double_202><value>4.321</value><default_value>4.321</default_value><documentation>doc 4</documentation><pattern>3</pattern><pattern_description>[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]</pattern_description></double_202></ss2></ss1><Testing_25testing><string_26list><value>&lt; &amp; &gt; ; /</value><default_value>&lt; &amp; &gt; ; /</default_value><documentation>docs 1</documentation><pattern>4</pattern><pattern_description>[Anything]</pattern_description></string_26list><int_2aint><value>2</value><default_value>2</default_value><documentation/><pattern>5</pattern><pattern_description>[Integer range -2147483648...2147483647 (inclusive)]</pattern_description></int_2aint><double_2bdouble><value>6.1415926</value><default_value>6.1415926</default_value><documentation>docs 3</documentation><pattern>6</pattern><pattern_description>[Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]</pattern_description></double_2bdouble></Testing_25testing></ParameterHandler>
index c5415d42fb71752174af30d0612188707a5a0e59..5122ebb5d624a84cedecdfc313f949cb8c25f4bc 100644 (file)
@@ -1,6 +1,6 @@
 
-DEAL::0 0 0 0 0 0 4 0 0 0 4 int1 5 0 5 value 0 0 1 1 13 default_value 0 0 1 1 13 documentation 0 0 5 doc 1 7 pattern 0 0 1 0 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  4 int2 5 0 5 value 0 0 1 2 13 default_value 0 0 1 2 13 documentation 0 0 5 doc 2 7 pattern 0 0 1 1 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  3 ss1 2 0 10 double_201 5 0 5 value 0 0 5 1.234 13 default_value 0 0 5 1.234 13 documentation 0 0 5 doc 3 7 pattern 0 0 1 2 19 pattern_description 0 0 49 [Double -1.79769e+308...1.79769e+308 (inclusive)] 0  3 ss2 1 0 10 double_202 5 0 5 value 0 0 5 4.321 13 default_value 0 0 5 4.321 13 documentation 0 0 5 doc 4 7 pattern 0 0 1 3 19 pattern_description 0 0 49 [Double -1.79769e+308...1.79769e+308 (inclusive)] 0  0  0  17 Testing_25testing 3 0 13 string_26list 5 0 5 value 0 0 9 < & > ; / 13 default_value 0 0 9 < & > ; / 13 documentation 0 0 6 docs 1 7 pattern 0 0 1 4 19 pattern_description 0 0 10 [Anything] 0  9 int_2aint 5 0 5 value 0 0 1 2 13 default_value 0 0 1 2 13 documentation 0 0 0  7 pattern 0 0 1 5 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  15 double_2bdouble 5 0 5 value 0 0 9 6.1415926 13 default_value 0 0 9 6.1415926 13 documentation 0 0 6 docs 3 7 pattern 0 0 1 6 19 pattern_description 0 0 49 [Double -1.79769e+308...1.79769e+308 (inclusive)] 0  0  0  0 0 7 0 52 [Integer range -2147483648...2147483647 (inclusive)] 52 [Integer range -2147483648...2147483647 (inclusive)] 49 [Double -1.79769e+308...1.79769e+308 (inclusive)] 49 [Double -1.79769e+308...1.79769e+308 (inclusive)] 10 [Anything] 52 [Integer range -2147483648...2147483647 (inclusive)] 49 [Double -1.79769e+308...1.79769e+308 (inclusive)]
+DEAL::0 0 0 0 0 0 4 0 0 0 4 int1 5 0 5 value 0 0 1 1 13 default_value 0 0 1 1 13 documentation 0 0 5 doc 1 7 pattern 0 0 1 0 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  4 int2 5 0 5 value 0 0 1 2 13 default_value 0 0 1 2 13 documentation 0 0 5 doc 2 7 pattern 0 0 1 1 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  3 ss1 2 0 10 double_201 5 0 5 value 0 0 5 1.234 13 default_value 0 0 5 1.234 13 documentation 0 0 5 doc 3 7 pattern 0 0 1 2 19 pattern_description 0 0 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] 0  3 ss2 1 0 10 double_202 5 0 5 value 0 0 5 4.321 13 default_value 0 0 5 4.321 13 documentation 0 0 5 doc 4 7 pattern 0 0 1 3 19 pattern_description 0 0 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] 0  0  0  17 Testing_25testing 3 0 13 string_26list 5 0 5 value 0 0 9 < & > ; / 13 default_value 0 0 9 < & > ; / 13 documentation 0 0 6 docs 1 7 pattern 0 0 1 4 19 pattern_description 0 0 10 [Anything] 0  9 int_2aint 5 0 5 value 0 0 1 2 13 default_value 0 0 1 2 13 documentation 0 0 0  7 pattern 0 0 1 5 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  15 double_2bdouble 5 0 5 value 0 0 9 6.1415926 13 default_value 0 0 9 6.1415926 13 documentation 0 0 6 docs 3 7 pattern 0 0 1 6 19 pattern_description 0 0 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] 0  0  0  0 0 7 0 52 [Integer range -2147483648...2147483647 (inclusive)] 52 [Integer range -2147483648...2147483647 (inclusive)] 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] 10 [Anything] 52 [Integer range -2147483648...2147483647 (inclusive)] 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
 
-DEAL::0 0 0 0 0 0 4 0 0 0 4 int1 5 0 5 value 0 0 1 1 13 default_value 0 0 1 1 13 documentation 0 0 5 doc 1 7 pattern 0 0 1 0 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  4 int2 5 0 5 value 0 0 1 2 13 default_value 0 0 1 2 13 documentation 0 0 5 doc 2 7 pattern 0 0 1 1 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  3 ss1 2 0 10 double_201 5 0 5 value 0 0 5 1.234 13 default_value 0 0 5 1.234 13 documentation 0 0 5 doc 3 7 pattern 0 0 1 2 19 pattern_description 0 0 49 [Double -1.79769e+308...1.79769e+308 (inclusive)] 0  3 ss2 1 0 10 double_202 5 0 5 value 0 0 5 4.321 13 default_value 0 0 5 4.321 13 documentation 0 0 5 doc 4 7 pattern 0 0 1 3 19 pattern_description 0 0 49 [Double -1.79769e+308...1.79769e+308 (inclusive)] 0  0  0  17 Testing_25testing 3 0 13 string_26list 5 0 5 value 0 0 9 < & > ; / 13 default_value 0 0 9 < & > ; / 13 documentation 0 0 6 docs 1 7 pattern 0 0 1 4 19 pattern_description 0 0 10 [Anything] 0  9 int_2aint 5 0 5 value 0 0 1 2 13 default_value 0 0 1 2 13 documentation 0 0 0  7 pattern 0 0 1 5 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  15 double_2bdouble 5 0 5 value 0 0 9 6.1415926 13 default_value 0 0 9 6.1415926 13 documentation 0 0 6 docs 3 7 pattern 0 0 1 6 19 pattern_description 0 0 49 [Double -1.79769e+308...1.79769e+308 (inclusive)] 0  0  0  0 0 7 0 52 [Integer range -2147483648...2147483647 (inclusive)] 52 [Integer range -2147483648...2147483647 (inclusive)] 49 [Double -1.79769e+308...1.79769e+308 (inclusive)] 49 [Double -1.79769e+308...1.79769e+308 (inclusive)] 10 [Anything] 52 [Integer range -2147483648...2147483647 (inclusive)] 49 [Double -1.79769e+308...1.79769e+308 (inclusive)]
+DEAL::0 0 0 0 0 0 4 0 0 0 4 int1 5 0 5 value 0 0 1 1 13 default_value 0 0 1 1 13 documentation 0 0 5 doc 1 7 pattern 0 0 1 0 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  4 int2 5 0 5 value 0 0 1 2 13 default_value 0 0 1 2 13 documentation 0 0 5 doc 2 7 pattern 0 0 1 1 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  3 ss1 2 0 10 double_201 5 0 5 value 0 0 5 1.234 13 default_value 0 0 5 1.234 13 documentation 0 0 5 doc 3 7 pattern 0 0 1 2 19 pattern_description 0 0 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] 0  3 ss2 1 0 10 double_202 5 0 5 value 0 0 5 4.321 13 default_value 0 0 5 4.321 13 documentation 0 0 5 doc 4 7 pattern 0 0 1 3 19 pattern_description 0 0 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] 0  0  0  17 Testing_25testing 3 0 13 string_26list 5 0 5 value 0 0 9 < & > ; / 13 default_value 0 0 9 < & > ; / 13 documentation 0 0 6 docs 1 7 pattern 0 0 1 4 19 pattern_description 0 0 10 [Anything] 0  9 int_2aint 5 0 5 value 0 0 1 2 13 default_value 0 0 1 2 13 documentation 0 0 0  7 pattern 0 0 1 5 19 pattern_description 0 0 52 [Integer range -2147483648...2147483647 (inclusive)] 0  15 double_2bdouble 5 0 5 value 0 0 9 6.1415926 13 default_value 0 0 9 6.1415926 13 documentation 0 0 6 docs 3 7 pattern 0 0 1 6 19 pattern_description 0 0 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] 0  0  0  0 0 7 0 52 [Integer range -2147483648...2147483647 (inclusive)] 52 [Integer range -2147483648...2147483647 (inclusive)] 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)] 10 [Anything] 52 [Integer range -2147483648...2147483647 (inclusive)] 45 [Double -MAX_DOUBLE...MAX_DOUBLE (inclusive)]
 
 DEAL::OK

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.