From 472f38603cb597cfc6dc3e5a6982b8cd9bc4be65 Mon Sep 17 00:00:00 2001
From: Thomas <purcell@fhi-berlin.mpg.de>
Date: Sun, 21 Feb 2021 09:30:42 +0100
Subject: [PATCH] More percision ofr outputted parameters

Set to scientific with 13 percsison
---
 src/feature_creation/node/ModelNode.cpp       |  1 +
 .../node/operator_nodes/OperatorNode.hpp      | 23 -------------------
 .../abs/parameterized_absolute_value.hpp      |  4 ++--
 .../parameterized_absolute_difference.hpp     |  4 ++--
 .../add/parameterized_add.hpp                 |  4 ++--
 .../cb/parameterized_cube.hpp                 |  4 ++--
 .../cbrt/parameterized_cube_root.hpp          |  4 ++--
 .../cos/parameterized_cos.hpp                 |  4 ++--
 .../div/parameterized_divide.hpp              |  4 ++--
 .../exp/parameterized_exponential.hpp         |  4 ++--
 .../inv/parameterized_inverse.hpp             |  4 ++--
 .../log/parameterized_log.hpp                 |  4 ++--
 .../mult/parameterized_multiply.hpp           |  4 ++--
 .../parameterized_negative_exponential.hpp    |  4 ++--
 .../sin/parameterized_sin.hpp                 |  4 ++--
 .../six_pow/parameterized_sixth_power.hpp     |  4 ++--
 .../sq/parameterized_square.hpp               |  4 ++--
 .../sqrt/parameterized_square_root.hpp        |  4 ++--
 .../sub/parameterized_subtract.hpp            |  4 ++--
 .../parameterization/test_abs_diff_node.cc    |  2 +-
 .../parameterization/test_abs_node.cc         |  2 +-
 .../parameterization/test_add_node.cc         |  2 +-
 .../parameterization/test_cb_node.cc          |  2 +-
 .../parameterization/test_cbrt_node.cc        |  2 +-
 .../parameterization/test_cos_node.cc         |  2 +-
 .../parameterization/test_div_node.cc         |  2 +-
 .../parameterization/test_exp_node.cc         |  2 +-
 .../parameterization/test_inv_node.cc         |  2 +-
 .../parameterization/test_log_node.cc         |  2 +-
 .../parameterization/test_mult_node.cc        |  2 +-
 .../parameterization/test_neg_exp_node.cc     |  2 +-
 .../parameterization/test_sin_node.cc         |  2 +-
 .../parameterization/test_six_pow_node.cc     |  2 +-
 .../parameterization/test_sq_node.cc          |  2 +-
 .../parameterization/test_sqrt_node.cc        |  2 +-
 .../parameterization/test_sub_node.cc         |  2 +-
 36 files changed, 52 insertions(+), 74 deletions(-)

diff --git a/src/feature_creation/node/ModelNode.cpp b/src/feature_creation/node/ModelNode.cpp
index d3ce3d18..177d0c1f 100644
--- a/src/feature_creation/node/ModelNode.cpp
+++ b/src/feature_creation/node/ModelNode.cpp
@@ -432,6 +432,7 @@ void ModelNode::generate_fxn_list()
             }
             else
             {
+                std::cout << term << '\t' << _expr_postfix << std::endl;
                 throw std::logic_error("Term in postfix expression does not represent a node");
             }
         }
diff --git a/src/feature_creation/node/operator_nodes/OperatorNode.hpp b/src/feature_creation/node/operator_nodes/OperatorNode.hpp
index 05bac62a..5f653503 100644
--- a/src/feature_creation/node/operator_nodes/OperatorNode.hpp
+++ b/src/feature_creation/node/operator_nodes/OperatorNode.hpp
@@ -426,29 +426,6 @@ public:
          */
         virtual std::string get_latex_expr(double* params, int depth=1) = 0;
 
-        /**
-         * @brief Converts a feature into a postfix expression (reverse polish notation)
-         *
-         * @details Recursively creates a postfix representation of the string
-         *
-         * @param cur_expr The current expression
-         * @return The current postfix expression of the feature
-         */
-        void update_postfix(std::string& cur_expr, double* params)
-        {
-            std::stringstream postfix;
-            postfix << get_postfix_term() << ":";
-            postfix << std::setprecision(13) << std::scientific << params[0] << ",";
-            postfix << std::setprecision(13) << std::scientific << params[1];
-            cur_expr = postfix.str() + "|" + cur_expr;
-            int n_used = 2;
-            for(int nn = N - 1; nn >= 0; --nn)
-            {
-                _feats[nn]->update_postfix(cur_expr, params + n_used);
-                n_used += _feats[nn]->n_params();
-            }
-        }
-
         /**
          * @brief Set the bounds for the nl parameterization
          *
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/parameterized_absolute_value.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/parameterized_absolute_value.hpp
index 232b94e2..ab5ae9af 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/parameterized_absolute_value.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/parameterized_absolute_value.hpp
@@ -182,9 +182,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/parameterized_absolute_difference.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/parameterized_absolute_difference.hpp
index c4e5a0a5..1414193b 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/parameterized_absolute_difference.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/parameterized_absolute_difference.hpp
@@ -172,9 +172,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[1]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/parameterized_add.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/parameterized_add.hpp
index ff09bf3a..e82661af 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/parameterized_add.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/parameterized_add.hpp
@@ -173,9 +173,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[1]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/parameterized_cube.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/parameterized_cube.hpp
index 9d6a5a1e..8c029ae5 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/parameterized_cube.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/parameterized_cube.hpp
@@ -172,9 +172,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/parameterized_cube_root.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/parameterized_cube_root.hpp
index 51ec212a..a8a24bba 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/parameterized_cube_root.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/parameterized_cube_root.hpp
@@ -180,9 +180,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/parameterized_cos.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/parameterized_cos.hpp
index e9f636c6..bac3a7b1 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/parameterized_cos.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/parameterized_cos.hpp
@@ -172,9 +172,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/parameterized_divide.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/parameterized_divide.hpp
index e5f1473c..4ba1fb4d 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/parameterized_divide.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/parameterized_divide.hpp
@@ -173,9 +173,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[1]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/parameterized_exponential.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/parameterized_exponential.hpp
index e918c0e2..0beb38e9 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/parameterized_exponential.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/parameterized_exponential.hpp
@@ -171,9 +171,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/parameterized_inverse.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/parameterized_inverse.hpp
index 00b03dd9..b8706b71 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/parameterized_inverse.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/parameterized_inverse.hpp
@@ -171,9 +171,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/parameterized_log.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/parameterized_log.hpp
index 7b54c7bd..53486f81 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/parameterized_log.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/parameterized_log.hpp
@@ -171,9 +171,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/parameterized_multiply.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/parameterized_multiply.hpp
index b083ee3f..55f5ecd1 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/parameterized_multiply.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/parameterized_multiply.hpp
@@ -171,9 +171,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[1]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/parameterized_negative_exponential.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/parameterized_negative_exponential.hpp
index 707295d1..8e439688 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/parameterized_negative_exponential.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/parameterized_negative_exponential.hpp
@@ -171,9 +171,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/parameterized_sin.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/parameterized_sin.hpp
index 78cc18ff..aab0ed15 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/parameterized_sin.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/parameterized_sin.hpp
@@ -171,9 +171,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/six_pow/parameterized_sixth_power.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/six_pow/parameterized_sixth_power.hpp
index e16c2d96..d7bd87d2 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/six_pow/parameterized_sixth_power.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/six_pow/parameterized_sixth_power.hpp
@@ -172,9 +172,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/parameterized_square.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/parameterized_square.hpp
index d84daa1f..a387ecba 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/parameterized_square.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/parameterized_square.hpp
@@ -171,9 +171,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/parameterized_square_root.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/parameterized_square_root.hpp
index c29dbe4d..ef693329 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/parameterized_square_root.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/parameterized_square_root.hpp
@@ -181,9 +181,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[0]->update_postfix(cur_expr, false);
diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/parameterized_subtract.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/parameterized_subtract.hpp
index c0385582..c4144e08 100644
--- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/parameterized_subtract.hpp
+++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/parameterized_subtract.hpp
@@ -173,9 +173,9 @@ public:
         postfix << get_postfix_term();
         if(add_params)
         {
-            postfix << ":" << _params[0];
+            postfix << ": " << std::setprecision(13) << std::scientific << _params[0];
             for(int pp = 1; pp < _params.size(); ++pp)
-                postfix << "," << _params[pp];
+                postfix << "," << std::setprecision(13) << std::scientific << _params[pp];
         }
         cur_expr = postfix.str() + "|" + cur_expr;
         _feats[1]->update_postfix(cur_expr, false);
diff --git a/tests/googletest/feature_creation/parameterization/test_abs_diff_node.cc b/tests/googletest/feature_creation/parameterization/test_abs_diff_node.cc
index 91dcfc9e..1b163477 100644
--- a/tests/googletest/feature_creation/parameterization/test_abs_diff_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_abs_diff_node.cc
@@ -135,7 +135,7 @@ namespace
         EXPECT_LT(std::abs(_abs_diff_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "0|1|abd:" <<_abs_diff_test->parameters()[0] << ',' << _abs_diff_test->parameters()[1];
+        postfix << "0|1|abd: " << std::setprecision(13) << std::scientific << _abs_diff_test->parameters()[0] << ',' << _abs_diff_test->parameters()[1];
         EXPECT_STREQ(_abs_diff_test->unit().toString().c_str(), "m");
         EXPECT_STREQ(_abs_diff_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_abs_node.cc b/tests/googletest/feature_creation/parameterization/test_abs_node.cc
index 5f699016..6e493cbf 100644
--- a/tests/googletest/feature_creation/parameterization/test_abs_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_abs_node.cc
@@ -116,7 +116,7 @@ namespace
         EXPECT_LT(std::abs(_abs_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "0|abs:" <<_abs_test->parameters()[0] << ',' << _abs_test->parameters()[1];
+        postfix << "0|abs: " << std::setprecision(13) << std::scientific <<_abs_test->parameters()[0] << ',' << _abs_test->parameters()[1];
         EXPECT_STREQ(_abs_test->unit().toString().c_str(), "m");
         EXPECT_STREQ(_abs_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_add_node.cc b/tests/googletest/feature_creation/parameterization/test_add_node.cc
index b3179554..bb5560ff 100644
--- a/tests/googletest/feature_creation/parameterization/test_add_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_add_node.cc
@@ -126,7 +126,7 @@ namespace
         EXPECT_LT(std::abs(_add_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "0|1|add:" <<_add_test->parameters()[0] << ',' << _add_test->parameters()[1];
+        postfix << "0|1|add: " << std::setprecision(13) << std::scientific <<_add_test->parameters()[0] << ',' << _add_test->parameters()[1];
         EXPECT_STREQ(_add_test->unit().toString().c_str(), "m");
         EXPECT_STREQ(_add_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_cb_node.cc b/tests/googletest/feature_creation/parameterization/test_cb_node.cc
index 3f2905ef..8f74c580 100644
--- a/tests/googletest/feature_creation/parameterization/test_cb_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_cb_node.cc
@@ -126,7 +126,7 @@ namespace
         EXPECT_LT(std::abs(_exp_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "1|cb:" <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
+        postfix << "1|cb: " << std::setprecision(13) << std::scientific <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
         EXPECT_STREQ(_exp_test->unit().toString().c_str(), "s^3");
         EXPECT_STREQ(_exp_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_cbrt_node.cc b/tests/googletest/feature_creation/parameterization/test_cbrt_node.cc
index 4516404a..b7f53456 100644
--- a/tests/googletest/feature_creation/parameterization/test_cbrt_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_cbrt_node.cc
@@ -126,7 +126,7 @@ namespace
         EXPECT_LT(std::abs(_cbrt_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "1|cbrt:" <<_cbrt_test->parameters()[0] << ',' << _cbrt_test->parameters()[1];
+        postfix << "1|cbrt: " << std::setprecision(13) << std::scientific <<_cbrt_test->parameters()[0] << ',' << _cbrt_test->parameters()[1];
         EXPECT_STREQ(_cbrt_test->unit().toString().c_str(), "s^0.333333");
         EXPECT_STREQ(_cbrt_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_cos_node.cc b/tests/googletest/feature_creation/parameterization/test_cos_node.cc
index db89672c..94042cfc 100644
--- a/tests/googletest/feature_creation/parameterization/test_cos_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_cos_node.cc
@@ -155,7 +155,7 @@ namespace
         EXPECT_LT(std::abs(_cos_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "1|cos:" <<_cos_test->parameters()[0] << ',' << _cos_test->parameters()[1];
+        postfix << "1|cos: " << std::setprecision(13) << std::scientific <<_cos_test->parameters()[0] << ',' << _cos_test->parameters()[1];
         EXPECT_STREQ(_cos_test->unit().toString().c_str(), "Unitless");
         EXPECT_STREQ(_cos_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_div_node.cc b/tests/googletest/feature_creation/parameterization/test_div_node.cc
index 6ff7cb31..042312b6 100644
--- a/tests/googletest/feature_creation/parameterization/test_div_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_div_node.cc
@@ -126,7 +126,7 @@ namespace
         EXPECT_LT(std::abs(_div_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "0|1|div:" <<_div_test->parameters()[0] << ',' << _div_test->parameters()[1];
+        postfix << "0|1|div: " << std::setprecision(13) << std::scientific <<_div_test->parameters()[0] << ',' << _div_test->parameters()[1];
         EXPECT_STREQ(_div_test->unit().toString().c_str(), "m * s^-1");
         EXPECT_STREQ(_div_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_exp_node.cc b/tests/googletest/feature_creation/parameterization/test_exp_node.cc
index 445275ed..dcbcabb7 100644
--- a/tests/googletest/feature_creation/parameterization/test_exp_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_exp_node.cc
@@ -168,7 +168,7 @@ namespace
         EXPECT_LT(std::abs(_exp_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "1|exp:" <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
+        postfix << "1|exp: " << std::setprecision(13) << std::scientific <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
         EXPECT_STREQ(_exp_test->unit().toString().c_str(), "Unitless");
         EXPECT_STREQ(_exp_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_inv_node.cc b/tests/googletest/feature_creation/parameterization/test_inv_node.cc
index abeadc8d..932b39d2 100644
--- a/tests/googletest/feature_creation/parameterization/test_inv_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_inv_node.cc
@@ -126,7 +126,7 @@ namespace
         EXPECT_LT(std::abs(_inv_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "1|inv:" <<_inv_test->parameters()[0] << ',' << _inv_test->parameters()[1];
+        postfix << "1|inv: " << std::setprecision(13) << std::scientific <<_inv_test->parameters()[0] << ',' << _inv_test->parameters()[1];
         EXPECT_STREQ(_inv_test->unit().toString().c_str(), "s^-1");
         EXPECT_STREQ(_inv_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_log_node.cc b/tests/googletest/feature_creation/parameterization/test_log_node.cc
index 28a4dd68..294771b4 100644
--- a/tests/googletest/feature_creation/parameterization/test_log_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_log_node.cc
@@ -169,7 +169,7 @@ namespace
         EXPECT_LT(std::abs(_exp_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "1|log:" <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
+        postfix << "1|log: " << std::setprecision(13) << std::scientific <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
         EXPECT_STREQ(_exp_test->unit().toString().c_str(), "Unitless");
         EXPECT_STREQ(_exp_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_mult_node.cc b/tests/googletest/feature_creation/parameterization/test_mult_node.cc
index 0562b85e..e2c65a89 100644
--- a/tests/googletest/feature_creation/parameterization/test_mult_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_mult_node.cc
@@ -126,7 +126,7 @@ namespace
         EXPECT_LT(std::abs(_mult_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "0|1|mult:" <<_mult_test->parameters()[0] << ',' << _mult_test->parameters()[1];
+        postfix << "0|1|mult: " << std::setprecision(13) << std::scientific <<_mult_test->parameters()[0] << ',' << _mult_test->parameters()[1];
         EXPECT_STREQ(_mult_test->unit().toString().c_str(), "m * s");
         EXPECT_STREQ(_mult_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_neg_exp_node.cc b/tests/googletest/feature_creation/parameterization/test_neg_exp_node.cc
index 34435238..3dd9c155 100644
--- a/tests/googletest/feature_creation/parameterization/test_neg_exp_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_neg_exp_node.cc
@@ -168,7 +168,7 @@ namespace
         EXPECT_LT(std::abs(_exp_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "1|nexp:" <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
+        postfix << "1|nexp: " << std::setprecision(13) << std::scientific <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
         EXPECT_STREQ(_exp_test->unit().toString().c_str(), "Unitless");
         EXPECT_STREQ(_exp_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_sin_node.cc b/tests/googletest/feature_creation/parameterization/test_sin_node.cc
index c3f220ca..8801de47 100644
--- a/tests/googletest/feature_creation/parameterization/test_sin_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_sin_node.cc
@@ -155,7 +155,7 @@ namespace
         EXPECT_LT(std::abs(_sin_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "0|sin:" <<_sin_test->parameters()[0] << ',' << _sin_test->parameters()[1];
+        postfix << "0|sin: " << std::setprecision(13) << std::scientific <<_sin_test->parameters()[0] << ',' << _sin_test->parameters()[1];
         EXPECT_STREQ(_sin_test->unit().toString().c_str(), "Unitless");
         EXPECT_STREQ(_sin_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_six_pow_node.cc b/tests/googletest/feature_creation/parameterization/test_six_pow_node.cc
index e37ab130..cbe2a311 100644
--- a/tests/googletest/feature_creation/parameterization/test_six_pow_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_six_pow_node.cc
@@ -126,7 +126,7 @@ namespace
         EXPECT_LT(std::abs(_exp_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "1|sp:" <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
+        postfix << "1|sp: " << std::setprecision(13) << std::scientific <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
         EXPECT_STREQ(_exp_test->unit().toString().c_str(), "s^6");
         EXPECT_STREQ(_exp_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_sq_node.cc b/tests/googletest/feature_creation/parameterization/test_sq_node.cc
index b4e1693e..943184d7 100644
--- a/tests/googletest/feature_creation/parameterization/test_sq_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_sq_node.cc
@@ -126,7 +126,7 @@ namespace
         EXPECT_LT(std::abs(_exp_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "1|sq:" <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
+        postfix << "1|sq: " << std::setprecision(13) << std::scientific <<_exp_test->parameters()[0] << ',' << _exp_test->parameters()[1];
         EXPECT_STREQ(_exp_test->unit().toString().c_str(), "s^2");
         EXPECT_STREQ(_exp_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_sqrt_node.cc b/tests/googletest/feature_creation/parameterization/test_sqrt_node.cc
index fe81ae41..211f977f 100644
--- a/tests/googletest/feature_creation/parameterization/test_sqrt_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_sqrt_node.cc
@@ -126,7 +126,7 @@ namespace
         EXPECT_LT(std::abs(_sqrt_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "1|sqrt:" <<_sqrt_test->parameters()[0] << ',' << _sqrt_test->parameters()[1];
+        postfix << "1|sqrt: " << std::setprecision(13) << std::scientific <<_sqrt_test->parameters()[0] << ',' << _sqrt_test->parameters()[1];
         EXPECT_STREQ(_sqrt_test->unit().toString().c_str(), "s^0.5");
         EXPECT_STREQ(_sqrt_test->postfix_expr().c_str(), postfix.str().c_str());
     }
diff --git a/tests/googletest/feature_creation/parameterization/test_sub_node.cc b/tests/googletest/feature_creation/parameterization/test_sub_node.cc
index 68d3ea62..0452e4b7 100644
--- a/tests/googletest/feature_creation/parameterization/test_sub_node.cc
+++ b/tests/googletest/feature_creation/parameterization/test_sub_node.cc
@@ -126,7 +126,7 @@ namespace
         EXPECT_LT(std::abs(_sub_test->test_value()[0] - expected_val[0]), 1e-10);
 
         std::stringstream postfix;
-        postfix << "0|1|sub:" <<_sub_test->parameters()[0] << ',' << _sub_test->parameters()[1];
+        postfix << "0|1|sub: " << std::setprecision(13) << std::scientific <<_sub_test->parameters()[0] << ',' << _sub_test->parameters()[1];
         EXPECT_STREQ(_sub_test->unit().toString().c_str(), "m");
         EXPECT_STREQ(_sub_test->postfix_expr().c_str(), postfix.str().c_str());
     }
-- 
GitLab