Parcourir la source

Add the two new items in trace

Eric Ramat il y a 5 ans
Parent
commit
038989041f

+ 19 - 6
src/tests/dtss/models.hpp

@@ -68,7 +68,9 @@ namespace artis {
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                                     get_name(), t,
                                     get_name(), t,
-                                    artis::common::TraceType::TRANSITION);
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::TRANSITION,
+                                    common::LevelType::USER);
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -85,7 +87,9 @@ namespace artis {
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                                     get_name(), t,
                                     get_name(), t,
-                                    artis::common::TraceType::START);
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::START,
+                                    common::LevelType::USER);
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -107,7 +111,9 @@ namespace artis {
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                                     get_name(), t,
                                     get_name(), t,
-                                    artis::common::TraceType::LAMBDA)
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::LAMBDA,
+                                    common::LevelType::USER)
                             << "messages = " << msgs.to_string();
                             << "messages = " << msgs.to_string();
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -155,7 +161,9 @@ namespace artis {
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                                     get_name(), t,
                                     get_name(), t,
-                                    artis::common::TraceType::TRANSITION)
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::TRANSITION,
+                                    common::LevelType::USER)
                             << "x = " << x.to_string();
                             << "x = " << x.to_string();
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -172,7 +180,9 @@ namespace artis {
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                                     get_name(), t,
                                     get_name(), t,
-                                    artis::common::TraceType::START);
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::START,
+                                    common::LevelType::USER);
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -194,7 +204,10 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                     artis::common::Trace<artis::common::DoubleTime>::trace()
                             << artis::common::TraceElement<artis::common::DoubleTime>(
                             << artis::common::TraceElement<artis::common::DoubleTime>(
-                                    get_name(), t, artis::common::TraceType::LAMBDA)
+                                    get_name(), t,
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::LAMBDA,
+                                    common::LevelType::USER)
                             << "messages = " << msgs.to_string();
                             << "messages = " << msgs.to_string();
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
                     artis::common::Trace<artis::common::DoubleTime>::trace().flush();
 #endif
 #endif

+ 12 - 9
src/tests/dtss/tests.cpp

@@ -54,16 +54,17 @@ TEST_CASE("dtss/only_one", "run")
 
 
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a").
             filter_model_name("a").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     for (double t = 0; t <= 10; ++t) {
     for (double t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("a").filter_time(t).
                         filter_model_name("a").filter_time(t).
-                        filter_type(artis::common::TraceType::TRANSITION).size() == 1);
+                        filter_function_type(artis::common::FunctionType::TRANSITION).size() == 1);
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("a").filter_time(t).
                         filter_model_name("a").filter_time(t).
-                        filter_type(artis::common::TraceType::LAMBDA).size() == 1);
+                        filter_level_type(artis::common::LevelType::USER).
+                        filter_function_type(artis::common::FunctionType::LAMBDA).size() == 1);
     }
     }
 }
 }
 
 
@@ -86,30 +87,32 @@ TEST_CASE("dtss/two", "run")
     REQUIRE(artis::common::Trace<
     REQUIRE(artis::common::Trace<
             DoubleTime > ::trace().elements().
             DoubleTime > ::trace().elements().
                     filter_model_name("a").
                     filter_model_name("a").
-                    filter_type(artis::common::TraceType::START).size() == 1);
+                    filter_function_type(artis::common::FunctionType::START).size() == 1);
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("a").filter_time(t).
                         filter_model_name("a").filter_time(t).
-                        filter_type(artis::common::TraceType::TRANSITION).size() == 1);
+                        filter_function_type(artis::common::FunctionType::TRANSITION).size() == 1);
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("a").filter_time(t).
                         filter_model_name("a").filter_time(t).
-                        filter_type(artis::common::TraceType::LAMBDA).size() == 1);
+                        filter_level_type(artis::common::LevelType::USER).
+                        filter_function_type(artis::common::FunctionType::LAMBDA).size() == 1);
     }
     }
 
 
     REQUIRE(artis::common::Trace<
     REQUIRE(artis::common::Trace<
             DoubleTime > ::trace().elements().
             DoubleTime > ::trace().elements().
                     filter_model_name("b").
                     filter_model_name("b").
-                    filter_type(artis::common::TraceType::START).size() == 1);
+                    filter_function_type(artis::common::FunctionType::START).size() == 1);
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("b").filter_time(t).
                         filter_model_name("b").filter_time(t).
-                        filter_type(artis::common::TraceType::TRANSITION).size() == 1);
+                        filter_function_type(artis::common::FunctionType::TRANSITION).size() == 1);
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("b").filter_time(t).
                         filter_model_name("b").filter_time(t).
-                        filter_type(artis::common::TraceType::LAMBDA).size() == 1);
+                        filter_level_type(artis::common::LevelType::USER).
+                        filter_function_type(artis::common::FunctionType::LAMBDA).size() == 1);
     }
     }
 }
 }

+ 76 - 24
src/tests/mixed/models.hpp

@@ -70,7 +70,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_INT);
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_INT,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -92,7 +94,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_EXT)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_EXT,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -113,7 +117,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_CONF)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_CONF,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -130,7 +136,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::START);
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::START,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
                     _phase = WAIT;
                     _phase = WAIT;
@@ -146,7 +154,10 @@ namespace artis {
 
 
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
-                            << common::TraceElement<common::DoubleTime>(get_name(), t, common::TraceType::TA);
+                            << common::TraceElement<common::DoubleTime>(get_name(), t,
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::TA,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
                     if (_phase == WAIT) {
                     if (_phase == WAIT) {
@@ -171,7 +182,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::LAMBDA)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::LAMBDA,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -219,7 +232,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_INT);
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_INT,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -236,7 +251,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_EXT)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_EXT,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -261,7 +278,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_CONF)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_CONF,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -282,7 +301,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::START);
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::START,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -301,7 +322,10 @@ namespace artis {
 
 
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
-                            << common::TraceElement<common::DoubleTime>(get_name(), t, common::TraceType::TA);
+                            << common::TraceElement<common::DoubleTime>(get_name(), t,
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::TA,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -326,7 +350,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::LAMBDA)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::LAMBDA,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -378,7 +404,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::TRANSITION)
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::TRANSITION,
+                                    common::LevelType::USER)
                             << "x = " << x.to_string();
                             << "x = " << x.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -396,7 +424,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::START);
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::START,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -417,7 +447,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::LAMBDA)
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::LAMBDA,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -464,7 +496,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::TRANSITION)
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::TRANSITION,
+                                    common::LevelType::USER)
                             << "x = " << x.to_string();
                             << "x = " << x.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -482,7 +516,10 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(
                             << common::TraceElement<common::DoubleTime>(
-                                    get_name(), t, common::TraceType::START);
+                                    get_name(), t,
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::START,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -503,7 +540,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::LAMBDA)
+                                    common::FormalismType::DTSS,
+                                    common::FunctionType::LAMBDA,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -546,7 +585,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_INT);
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_INT,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -568,7 +609,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_EXT)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_EXT,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -589,7 +632,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_CONF)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_CONF,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -607,7 +652,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::START);
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::START,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -625,7 +672,10 @@ namespace artis {
 
 
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
-                            << common::TraceElement<common::DoubleTime>(get_name(), t, common::TraceType::TA);
+                            << common::TraceElement<common::DoubleTime>(get_name(), t,
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::TA,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -650,7 +700,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::LAMBDA)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::LAMBDA,
+                                    common::LevelType::USER)
                             << "messages = " << bag.to_string();
                             << "messages = " << bag.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif

+ 28 - 24
src/tests/mixed/tests.cpp

@@ -51,115 +51,119 @@ TEST_CASE("mixed/hierachical", "run")
 
 
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a1").
             filter_model_name("a1").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("b1").
             filter_model_name("b1").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a2").
             filter_model_name("a2").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("b2").
             filter_model_name("b2").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
 
 
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a1").
             filter_model_name("a1").
-            filter_type(artis::common::TraceType::DELTA_EXT).size() == 0);
+            filter_function_type(artis::common::FunctionType::DELTA_EXT).size() == 0);
     for (double t = 0; t <= 100; t = t + 3) {
     for (double t = 0; t <= 100; t = t + 3) {
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("a1").filter_time(t).
                         filter_model_name("a1").filter_time(t).
-                        filter_type(artis::common::TraceType::LAMBDA).size() == 1);
+                        filter_level_type(artis::common::LevelType::USER).
+                        filter_function_type(artis::common::FunctionType::LAMBDA).size() == 1);
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("a1").filter_time(t).
                         filter_model_name("a1").filter_time(t).
-                        filter_type(artis::common::TraceType::DELTA_INT).size() == 1);
+                        filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 1);
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("a1").filter_time(t).
                         filter_model_name("a1").filter_time(t).
-                        filter_type(artis::common::TraceType::TA).size() == 1);
+                        filter_function_type(artis::common::FunctionType::TA).size() == 1);
     }
     }
 
 
     for (double t = 0; t <= 100; t = t + 3) {
     for (double t = 0; t <= 100; t = t + 3) {
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("b1").filter_time(t).
                         filter_model_name("b1").filter_time(t).
-                        filter_type(artis::common::TraceType::LAMBDA).size() == 1);
+                        filter_level_type(artis::common::LevelType::USER).
+                        filter_function_type(artis::common::FunctionType::LAMBDA).size() == 1);
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("b1").filter_time(t).
                         filter_model_name("b1").filter_time(t).
-                        filter_type(artis::common::TraceType::DELTA_INT).size() == 1);
+                        filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 1);
         if (t == 0) {
         if (t == 0) {
             REQUIRE(artis::common::Trace<
             REQUIRE(artis::common::Trace<
                     DoubleTime > ::trace().elements().
                     DoubleTime > ::trace().elements().
                             filter_model_name("b1").filter_time(t).
                             filter_model_name("b1").filter_time(t).
-                            filter_type(artis::common::TraceType::TA).size() == 1);
+                            filter_function_type(artis::common::FunctionType::TA).size() == 1);
         } else {
         } else {
             REQUIRE(artis::common::Trace<
             REQUIRE(artis::common::Trace<
                     DoubleTime > ::trace().elements().
                     DoubleTime > ::trace().elements().
                             filter_model_name("b1").filter_time(t).
                             filter_model_name("b1").filter_time(t).
-                            filter_type(artis::common::TraceType::TA).size() == 2);
+                            filter_function_type(artis::common::FunctionType::TA).size() == 2);
         }
         }
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("b1").filter_time(t).
                         filter_model_name("b1").filter_time(t).
-                        filter_type(artis::common::TraceType::DELTA_EXT).size() == 1);
+                        filter_function_type(artis::common::FunctionType::DELTA_EXT).size() == 1);
     }
     }
 
 
     for (unsigned int t = 0; t <= 100; t += 2) {
     for (unsigned int t = 0; t <= 100; t += 2) {
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("a2").filter_time(t).
                         filter_model_name("a2").filter_time(t).
-                        filter_type(artis::common::TraceType::LAMBDA).size() == 1);
+                        filter_level_type(artis::common::LevelType::USER).
+                        filter_function_type(artis::common::FunctionType::LAMBDA).size() == 1);
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("a2").filter_time(t).
                         filter_model_name("a2").filter_time(t).
-                        filter_type(artis::common::TraceType::TRANSITION).size() == 1);
+                        filter_function_type(artis::common::FunctionType::TRANSITION).size() == 1);
     }
     }
     REQUIRE(artis::common::Trace<
     REQUIRE(artis::common::Trace<
             DoubleTime > ::trace().elements().
             DoubleTime > ::trace().elements().
                     filter_model_name("a2").filter_time(0).
                     filter_model_name("a2").filter_time(0).
-                    filter_type(artis::common::TraceType::TRANSITION).at(0).get_comment()
+                    filter_function_type(artis::common::FunctionType::TRANSITION).at(0).get_comment()
                     == "x = { ( 0 , a2 , 0 ) }");
                     == "x = { ( 0 , a2 , 0 ) }");
     REQUIRE(artis::common::Trace<
     REQUIRE(artis::common::Trace<
             DoubleTime > ::trace().elements().
             DoubleTime > ::trace().elements().
                     filter_model_name("a2").filter_time(2).
                     filter_model_name("a2").filter_time(2).
-                    filter_type(artis::common::TraceType::TRANSITION).at(0).get_comment()
+                    filter_function_type(artis::common::FunctionType::TRANSITION).at(0).get_comment()
                     == "x = { }");
                     == "x = { }");
     REQUIRE(artis::common::Trace<
     REQUIRE(artis::common::Trace<
             DoubleTime > ::trace().elements().
             DoubleTime > ::trace().elements().
                     filter_model_name("a2").filter_time(4).
                     filter_model_name("a2").filter_time(4).
-                    filter_type(artis::common::TraceType::TRANSITION).at(0).get_comment()
+                    filter_function_type(artis::common::FunctionType::TRANSITION).at(0).get_comment()
                     == "x = { ( 0 , a2 , 2 ) }");
                     == "x = { ( 0 , a2 , 2 ) }");
     REQUIRE(artis::common::Trace<
     REQUIRE(artis::common::Trace<
             DoubleTime > ::trace().elements().
             DoubleTime > ::trace().elements().
                     filter_model_name("a2").filter_time(6).
                     filter_model_name("a2").filter_time(6).
-                    filter_type(artis::common::TraceType::TRANSITION).at(0).get_comment()
+                    filter_function_type(artis::common::FunctionType::TRANSITION).at(0).get_comment()
                     == "x = { }");
                     == "x = { }");
     REQUIRE(artis::common::Trace<
     REQUIRE(artis::common::Trace<
             DoubleTime > ::trace().elements().
             DoubleTime > ::trace().elements().
                     filter_model_name("a2").filter_time(8).
                     filter_model_name("a2").filter_time(8).
-                    filter_type(artis::common::TraceType::TRANSITION).at(0).get_comment()
+                    filter_function_type(artis::common::FunctionType::TRANSITION).at(0).get_comment()
                     == "x = { ( 0 , a2 , 3 ) }");
                     == "x = { ( 0 , a2 , 3 ) }");
     REQUIRE(artis::common::Trace<
     REQUIRE(artis::common::Trace<
             DoubleTime > ::trace().elements().
             DoubleTime > ::trace().elements().
                     filter_model_name("a2").filter_time(10).
                     filter_model_name("a2").filter_time(10).
-                    filter_type(artis::common::TraceType::TRANSITION).at(0).get_comment()
+                    filter_function_type(artis::common::FunctionType::TRANSITION).at(0).get_comment()
                     == "x = { ( 0 , a2 , 4 ) }");
                     == "x = { ( 0 , a2 , 4 ) }");
     REQUIRE(artis::common::Trace<
     REQUIRE(artis::common::Trace<
             DoubleTime > ::trace().elements().
             DoubleTime > ::trace().elements().
                     filter_model_name("a2").filter_time(12).
                     filter_model_name("a2").filter_time(12).
-                    filter_type(artis::common::TraceType::TRANSITION).at(0).get_comment()
+                    filter_function_type(artis::common::FunctionType::TRANSITION).at(0).get_comment()
                     == "x = { }");
                     == "x = { }");
 
 
     for (unsigned int t = 0; t <= 100; t += 2) {
     for (unsigned int t = 0; t <= 100; t += 2) {
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("b2").filter_time(t).
                         filter_model_name("b2").filter_time(t).
-                        filter_type(artis::common::TraceType::LAMBDA).size() == 1);
+                        filter_level_type(artis::common::LevelType::USER).
+                        filter_function_type(artis::common::FunctionType::LAMBDA).size() == 1);
         REQUIRE(artis::common::Trace<
         REQUIRE(artis::common::Trace<
                 DoubleTime > ::trace().elements().
                 DoubleTime > ::trace().elements().
                         filter_model_name("b2").filter_time(t).
                         filter_model_name("b2").filter_time(t).
-                        filter_type(artis::common::TraceType::TRANSITION).size() == 1);
+                        filter_function_type(artis::common::FunctionType::TRANSITION).size() == 1);
     }
     }
 }
 }

+ 38 - 12
src/tests/pdevs/models.hpp

@@ -82,7 +82,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_INT);
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_INT,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -108,7 +110,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_EXT)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_EXT,
+                                    common::LevelType::USER)
                             << "messages = " << msgs.to_string();
                             << "messages = " << msgs.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -129,7 +133,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_CONF)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_CONF,
+                                    common::LevelType::USER)
                             << "messages = " << msgs.to_string();
                             << "messages = " << msgs.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -147,7 +153,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::START);
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::START,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -165,7 +173,10 @@ namespace artis {
 
 
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
-                            << common::TraceElement<common::DoubleTime>(get_name(), t, common::TraceType::TA);
+                            << common::TraceElement<common::DoubleTime>(get_name(), t,
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::TA,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -192,7 +203,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::LAMBDA)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::LAMBDA,
+                                    common::LevelType::USER)
                             << "messages = " << msgs.to_string();
                             << "messages = " << msgs.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -240,7 +253,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_INT);
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_INT,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -262,7 +277,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_EXT)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_EXT,
+                                    common::LevelType::USER)
                             << "messages = " << msgs.to_string();
                             << "messages = " << msgs.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -285,7 +302,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::DELTA_CONF)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::DELTA_CONF,
+                                    common::LevelType::USER)
                             << "messages = " << msgs.to_string();
                             << "messages = " << msgs.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
@@ -303,7 +322,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::START);
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::START,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -321,7 +342,10 @@ namespace artis {
 
 
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
-                            << common::TraceElement<common::DoubleTime>(get_name(), t, common::TraceType::TA);
+                            << common::TraceElement<common::DoubleTime>(get_name(), t,
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::TA,
+                                    common::LevelType::USER);
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif
 
 
@@ -348,7 +372,9 @@ namespace artis {
 #ifdef WITH_TRACE
 #ifdef WITH_TRACE
                     common::Trace<common::DoubleTime>::trace()
                     common::Trace<common::DoubleTime>::trace()
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
                             << common::TraceElement<common::DoubleTime>(get_name(), t,
-                                    common::TraceType::LAMBDA)
+                                    common::FormalismType::PDEVS,
+                                    common::FunctionType::LAMBDA,
+                                    common::LevelType::USER)
                             << "messages = " << msgs.to_string();
                             << "messages = " << msgs.to_string();
                     common::Trace<common::DoubleTime>::trace().flush();
                     common::Trace<common::DoubleTime>::trace().flush();
 #endif
 #endif

+ 48 - 48
src/tests/pdevs/tests.cpp

@@ -50,23 +50,23 @@ TEST_CASE("pdevs/only_one", "run")
 
 
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a").
             filter_model_name("a").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a").
             filter_model_name("a").
-            filter_type(artis::common::TraceType::DELTA_EXT).size() == 0);
+            filter_function_type(artis::common::FunctionType::DELTA_EXT).empty());
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a").
             filter_model_name("a").
-            filter_type(artis::common::TraceType::DELTA_CONF).size() == 0);
+            filter_function_type(artis::common::FunctionType::DELTA_CONF).empty());
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a").filter_time(t).
                 filter_model_name("a").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_INT).size() == 2);
+                filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a").filter_time(t).
                 filter_model_name("a").filter_time(t).
-                filter_type(artis::common::TraceType::TA).size() == 2);
+                filter_function_type(artis::common::FunctionType::TA).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a").filter_time(t).
                 filter_model_name("a").filter_time(t).
-                filter_type(artis::common::TraceType::LAMBDA).size() == 2);
+                filter_function_type(artis::common::FunctionType::LAMBDA).size() == 2);
     }
     }
 }
 }
 
 
@@ -84,78 +84,78 @@ TEST_CASE("pdevs/flat", "run")
 
 
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a1").
             filter_model_name("a1").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("b1").
             filter_model_name("b1").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a2").
             filter_model_name("a2").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("b2").
             filter_model_name("b2").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
 
 
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a1").
             filter_model_name("a1").
-            filter_type(artis::common::TraceType::DELTA_EXT).size() == 0);
+            filter_function_type(artis::common::FunctionType::DELTA_EXT).empty());
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a1").filter_time(t).
                 filter_model_name("a1").filter_time(t).
-                filter_type(artis::common::TraceType::LAMBDA).size() == 2);
+                filter_function_type(artis::common::FunctionType::LAMBDA).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a1").filter_time(t).
                 filter_model_name("a1").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_INT).size() == 2);
+                filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a1").filter_time(t).
                 filter_model_name("a1").filter_time(t).
-                filter_type(artis::common::TraceType::TA).size() == 2);
+                filter_function_type(artis::common::FunctionType::TA).size() == 2);
     }
     }
 
 
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b1").filter_time(t).
                 filter_model_name("b1").filter_time(t).
-                filter_type(artis::common::TraceType::LAMBDA).size() == 1);
+                filter_function_type(artis::common::FunctionType::LAMBDA).size() == 1);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b1").filter_time(t).
                 filter_model_name("b1").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_INT).size() == 1);
+                filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 1);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b1").filter_time(t).
                 filter_model_name("b1").filter_time(t).
-                filter_type(artis::common::TraceType::TA).size() == 2);
+                filter_function_type(artis::common::FunctionType::TA).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b1").filter_time(t).
                 filter_model_name("b1").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_EXT).size() == 1);
+                filter_function_type(artis::common::FunctionType::DELTA_EXT).size() == 1);
     }
     }
 
 
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a2").filter_time(t).
                 filter_model_name("a2").filter_time(t).
-                filter_type(artis::common::TraceType::LAMBDA).size() == 3);
+                filter_function_type(artis::common::FunctionType::LAMBDA).size() == 3);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a2").filter_time(t).
                 filter_model_name("a2").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_INT).size() == 3);
+                filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 3);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a2").filter_time(t).
                 filter_model_name("a2").filter_time(t).
-                filter_type(artis::common::TraceType::TA).size() == 4);
+                filter_function_type(artis::common::FunctionType::TA).size() == 4);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a2").filter_time(t).
                 filter_model_name("a2").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_EXT).size() == 1);
+                filter_function_type(artis::common::FunctionType::DELTA_EXT).size() == 1);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a2").filter_time(t).
                 filter_model_name("a2").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_CONF).size() == 0);
+                filter_function_type(artis::common::FunctionType::DELTA_CONF).empty());
     }
     }
 
 
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b2").filter_time(t).
                 filter_model_name("b2").filter_time(t).
-                filter_type(artis::common::TraceType::LAMBDA).size() == 2);
+                filter_function_type(artis::common::FunctionType::LAMBDA).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b2").filter_time(t).
                 filter_model_name("b2").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_INT).size() == 2);
+                filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b2").filter_time(t).
                 filter_model_name("b2").filter_time(t).
-                filter_type(artis::common::TraceType::TA).size() == 4);
+                filter_function_type(artis::common::FunctionType::TA).size() == 4);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b2").filter_time(t).
                 filter_model_name("b2").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_EXT).size() == 2);
+                filter_function_type(artis::common::FunctionType::DELTA_EXT).size() == 2);
     }
     }
 }
 }
 
 
@@ -173,77 +173,77 @@ TEST_CASE("pdevs/hierachical", "run")
 
 
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a1").
             filter_model_name("a1").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("b1").
             filter_model_name("b1").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a2").
             filter_model_name("a2").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("b2").
             filter_model_name("b2").
-            filter_type(artis::common::TraceType::START).size() == 1);
+            filter_function_type(artis::common::FunctionType::START).size() == 1);
 
 
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
     REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
             filter_model_name("a1").
             filter_model_name("a1").
-            filter_type(artis::common::TraceType::DELTA_EXT).size() == 0);
+            filter_function_type(artis::common::FunctionType::DELTA_EXT).empty());
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a1").filter_time(t).
                 filter_model_name("a1").filter_time(t).
-                filter_type(artis::common::TraceType::LAMBDA).size() == 2);
+                filter_function_type(artis::common::FunctionType::LAMBDA).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a1").filter_time(t).
                 filter_model_name("a1").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_INT).size() == 2);
+                filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a1").filter_time(t).
                 filter_model_name("a1").filter_time(t).
-                filter_type(artis::common::TraceType::TA).size() == 2);
+                filter_function_type(artis::common::FunctionType::TA).size() == 2);
     }
     }
 
 
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b1").filter_time(t).
                 filter_model_name("b1").filter_time(t).
-                filter_type(artis::common::TraceType::LAMBDA).size() == 1);
+                filter_function_type(artis::common::FunctionType::LAMBDA).size() == 1);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b1").filter_time(t).
                 filter_model_name("b1").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_INT).size() == 1);
+                filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 1);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b1").filter_time(t).
                 filter_model_name("b1").filter_time(t).
-                filter_type(artis::common::TraceType::TA).size() == 2);
+                filter_function_type(artis::common::FunctionType::TA).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b1").filter_time(t).
                 filter_model_name("b1").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_EXT).size() == 1);
+                filter_function_type(artis::common::FunctionType::DELTA_EXT).size() == 1);
     }
     }
 
 
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a2").filter_time(t).
                 filter_model_name("a2").filter_time(t).
-                filter_type(artis::common::TraceType::LAMBDA).size() == 3);
+                filter_function_type(artis::common::FunctionType::LAMBDA).size() == 3);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a2").filter_time(t).
                 filter_model_name("a2").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_INT).size() == 3);
+                filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 3);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a2").filter_time(t).
                 filter_model_name("a2").filter_time(t).
-                filter_type(artis::common::TraceType::TA).size() == 4);
+                filter_function_type(artis::common::FunctionType::TA).size() == 4);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a2").filter_time(t).
                 filter_model_name("a2").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_EXT).size() == 1);
+                filter_function_type(artis::common::FunctionType::DELTA_EXT).size() == 1);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("a2").filter_time(t).
                 filter_model_name("a2").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_CONF).size() == 0);
+                filter_function_type(artis::common::FunctionType::DELTA_CONF).empty());
     }
     }
 
 
     for (unsigned int t = 0; t <= 10; ++t) {
     for (unsigned int t = 0; t <= 10; ++t) {
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b2").filter_time(t).
                 filter_model_name("b2").filter_time(t).
-                filter_type(artis::common::TraceType::LAMBDA).size() == 2);
+                filter_function_type(artis::common::FunctionType::LAMBDA).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b2").filter_time(t).
                 filter_model_name("b2").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_INT).size() == 2);
+                filter_function_type(artis::common::FunctionType::DELTA_INT).size() == 2);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b2").filter_time(t).
                 filter_model_name("b2").filter_time(t).
-                filter_type(artis::common::TraceType::TA).size() == 4);
+                filter_function_type(artis::common::FunctionType::TA).size() == 4);
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
         REQUIRE(artis::common::Trace<DoubleTime>::trace().elements().
                 filter_model_name("b2").filter_time(t).
                 filter_model_name("b2").filter_time(t).
-                filter_type(artis::common::TraceType::DELTA_EXT).size() == 2);
+                filter_function_type(artis::common::FunctionType::DELTA_EXT).size() == 2);
     }
     }
 }
 }