|
@@ -485,6 +485,19 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
]))
|
|
|
|
|
|
def test_transform_add_MT_pn_simulate(self):
|
|
|
+ """
|
|
|
+ This method tests the execution of a somewhat realistic use of the Modelverse and its core functions, through the use of a simple Petri nets example.
|
|
|
+ First, Petri net metamodels are created for both the design language and the runtime language.
|
|
|
+ Both languages only differ marginally from each other, with the runtime language only adding information on the currently selected transition for execution.
|
|
|
+ Afterwards, a trivial Petri net model is created in the design language.
|
|
|
+ This part tests the domain-specific and meta-modelling concepts of the Modelverse.
|
|
|
+
|
|
|
+ After all models are created, transformations are defined to map between both languages: from design to runtime, and vice versa.
|
|
|
+ Additional transformations are created for in-place model simulation and the printing of a Petri net model.
|
|
|
+ This tests the modification of models, through the use of model transformations.
|
|
|
+ Due to the use of a separate design and runtime language, we test exogenous transformations.
|
|
|
+ The simulation transformation takes a single step in the Petri net model, by firing one of the applicable transitions, and therefore tests endogenous transformations.
|
|
|
+ """
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
[ "root", "root", "root",
|
|
|
"model_add",
|