|
@@ -6,51 +6,54 @@ import sys
|
|
|
sys.path.append("wrappers")
|
|
|
from modelverse import *
|
|
|
|
|
|
-expected_model_list = set([("SimpleClassDiagrams", "SimpleClassDiagrams"),
|
|
|
- ("CoreFormalism", "SimpleClassDiagrams"),
|
|
|
- ("ManualOperation", "SimpleClassDiagrams"),
|
|
|
- ("ActionLanguage", "SimpleClassDiagrams"),
|
|
|
- ("ProcessModel", "SimpleClassDiagrams"),
|
|
|
- ("Tracability", "SimpleClassDiagrams"),
|
|
|
- ("conformance_mv", "ActionLanguage"),
|
|
|
- ("bottom", "SimpleClassDiagrams"),
|
|
|
- ("core", "CoreFormalism"),
|
|
|
- ('TypeMapping', 'SimpleClassDiagrams'),
|
|
|
- ('TM_SimpleClassDiagrams', 'TypeMapping'),
|
|
|
- ('TM_TypeMapping', 'TypeMapping'),
|
|
|
- ('TM_Tracability', 'TypeMapping'),
|
|
|
- ('TM_ProcessModel', 'TypeMapping'),
|
|
|
- ('TM_ActionLanguage', 'TypeMapping'),
|
|
|
- ('TM_ManualOperation', 'TypeMapping'),
|
|
|
- ('TM_conformance_mv', 'TypeMapping'),
|
|
|
- ('TM_CoreFormalism', 'TypeMapping'),
|
|
|
- ('TM_core', 'TypeMapping'),
|
|
|
- ('TM_bottom', 'TypeMapping'),
|
|
|
- ])
|
|
|
-
|
|
|
-expected_model_full_list = set([("SimpleClassDiagrams", "SimpleClassDiagrams", "admin", "admin", "221"),
|
|
|
- ("CoreFormalism", "SimpleClassDiagrams", "admin", "admin", "221"),
|
|
|
- ("ManualOperation", "SimpleClassDiagrams", "admin", "admin", "221"),
|
|
|
- ("ActionLanguage", "SimpleClassDiagrams", "admin", "admin", "221"),
|
|
|
- ("ProcessModel", "SimpleClassDiagrams", "admin", "admin", "221"),
|
|
|
- ("Tracability", "SimpleClassDiagrams", "admin", "admin", "221"),
|
|
|
- ("bottom", "SimpleClassDiagrams", "admin", "admin", "221"),
|
|
|
- ("conformance_mv", "ActionLanguage", "admin", "admin", "221"),
|
|
|
- ("core", "CoreFormalism", "admin", "admin", "220"),
|
|
|
- ('TypeMapping', 'SimpleClassDiagrams', "admin", "admin", "221"),
|
|
|
- ('TM_SimpleClassDiagrams', 'TypeMapping', "admin", "admin", "221"),
|
|
|
- ('TM_TypeMapping', 'TypeMapping', "admin", "admin", "221"),
|
|
|
- ('TM_Tracability', 'TypeMapping', "admin", "admin", "221"),
|
|
|
- ('TM_ProcessModel', 'TypeMapping', "admin", "admin", "221"),
|
|
|
- ('TM_ActionLanguage', 'TypeMapping', "admin", "admin", "221"),
|
|
|
- ('TM_ManualOperation', 'TypeMapping', "admin", "admin", "221"),
|
|
|
- ('TM_conformance_mv', 'TypeMapping', "admin", "admin", "221"),
|
|
|
- ('TM_CoreFormalism', 'TypeMapping', "admin", "admin", "221"),
|
|
|
- ('TM_core', 'TypeMapping', "admin", "admin", "220"),
|
|
|
- ('TM_bottom', 'TypeMapping', "admin", "admin", "221"),
|
|
|
- ])
|
|
|
-
|
|
|
-expected_transformation_list = set([("ActionLanguage", "conformance_mv")])
|
|
|
+model_hierarchy = \
|
|
|
+ {"formalisms/": {"SimpleClassDiagrams": {},
|
|
|
+ "TypeMapping": {},
|
|
|
+ "Tracability": {},
|
|
|
+ "ProcessModel": {},
|
|
|
+ "ActionLanguage": {},
|
|
|
+ "ManualOperation": {},
|
|
|
+ "Bottom": {},
|
|
|
+ },
|
|
|
+ "models/": {"conformance_mv": {},
|
|
|
+ },
|
|
|
+ "administration/": {"core": {},
|
|
|
+ "CoreFormalism": {},
|
|
|
+ },
|
|
|
+ "users/": {"admin/": {}
|
|
|
+ },
|
|
|
+ "type mappings/": {"formalisms/": {"SimpleClassDiagrams": {},
|
|
|
+ "TypeMapping": {},
|
|
|
+ "Tracability": {},
|
|
|
+ "ProcessModel": {},
|
|
|
+ "ActionLanguage": {},
|
|
|
+ "ManualOperation": {},
|
|
|
+ "Bottom": {},
|
|
|
+ },
|
|
|
+ "models/": {"conformance_mv": {},
|
|
|
+ },
|
|
|
+ "administration/": {"core": {},
|
|
|
+ "CoreFormalism": {},
|
|
|
+ },
|
|
|
+ "users/": {"admin/": {}
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+def get_model_list(location):
|
|
|
+ try:
|
|
|
+ location_parts = location.split("/")
|
|
|
+ current = model_hierarchy
|
|
|
+ while location_parts:
|
|
|
+ l = location_parts.pop(0)
|
|
|
+ if l != "":
|
|
|
+ current = current[l + "/"]
|
|
|
+ return set(current.keys())
|
|
|
+ except:
|
|
|
+ return set([])
|
|
|
+
|
|
|
+def compare_locations(location, extra_to_default):
|
|
|
+ assert model_list(location) == get_model_list(location) | set(extra_to_default)
|
|
|
|
|
|
class TestModelverseCore(unittest.TestCase):
|
|
|
def setUp(self):
|
|
@@ -65,56 +68,71 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
print("Got exception during teardown.")
|
|
|
|
|
|
def test_list(self):
|
|
|
- assert model_list() == expected_model_list
|
|
|
+ compare_locations("", set())
|
|
|
+ compare_locations("formalisms", set())
|
|
|
+ compare_locations("models", set())
|
|
|
+ compare_locations("administration", set())
|
|
|
+ compare_locations("type mappings", set())
|
|
|
+ compare_locations("type mappings/formalisms", set())
|
|
|
+ compare_locations("type mappings/administration", set())
|
|
|
+ compare_locations("type mappings/models", set())
|
|
|
|
|
|
def test_list_full(self):
|
|
|
- assert model_list_full() == expected_model_full_list
|
|
|
+ assert model_list_full("") == set([("formalisms/", "admin", "admin", "221"),
|
|
|
+ ("models/", "admin", "admin", "221"),
|
|
|
+ ("administration/", "admin", "admin", "110"),
|
|
|
+ ("type mappings/", "admin", "admin", "221"),
|
|
|
+ ("users/", "admin", "admin", "221"),
|
|
|
+ ])
|
|
|
|
|
|
def test_model_add_empty(self):
|
|
|
- model_add("Empty", "SimpleClassDiagrams")
|
|
|
- assert model_list() == set(list(expected_model_list) + [("Empty", "SimpleClassDiagrams"), ("TM_Empty", "TypeMapping")])
|
|
|
- assert model_list_full() == set(list(expected_model_full_list) + [("Empty", "SimpleClassDiagrams", "admin", "nobody", "200"),
|
|
|
- ("TM_Empty", "TypeMapping", "admin", "nobody", "200"),
|
|
|
- ])
|
|
|
+ model_add("formalisms/Empty", "formalisms/SimpleClassDiagrams")
|
|
|
+ compare_locations("formalisms", set(["Empty"]))
|
|
|
+ compare_locations("type mappings/formalisms", set(["Empty"]))
|
|
|
+ assert model_list_full("formalisms") == set([(name, "admin", "admin", "221") for name in get_model_list("formalisms")]) | \
|
|
|
+ set([("Empty", "admin", "nobody", "200")])
|
|
|
+ assert model_list_full("type mappings/formalisms") == set([(name, "admin", "admin", "221") for name in get_model_list("type mappings/formalisms")]) | \
|
|
|
+ set([("Empty", "admin", "nobody", "200")])
|
|
|
|
|
|
def test_model_verify(self):
|
|
|
- assert verify("SimpleClassDiagrams", "SimpleClassDiagrams") == "OK"
|
|
|
+ assert verify("formalisms/SimpleClassDiagrams", "formalisms/SimpleClassDiagrams") == "OK"
|
|
|
|
|
|
def test_model_empty_instantiate(self):
|
|
|
- model_add("Empty", "SimpleClassDiagrams")
|
|
|
- assert model_list() == set(list(expected_model_list) + [("Empty", "SimpleClassDiagrams"), ("TM_Empty", "TypeMapping")])
|
|
|
- assert element_list("Empty") == set([])
|
|
|
- instantiate("Empty", "Class", ID="A")
|
|
|
- assert element_list("Empty") == set([("A", "Class")])
|
|
|
- assert model_list() == set(list(expected_model_list) + [("Empty", "SimpleClassDiagrams"), ("TM_Empty", "TypeMapping")])
|
|
|
+ model_add("formalisms/Empty", "formalisms/SimpleClassDiagrams")
|
|
|
+ instantiate("formalisms/Empty", "Class", ID="A")
|
|
|
+ assert element_list("formalisms/Empty") == set([("A", "Class")])
|
|
|
+ compare_locations("formalisms", set(["Empty"]))
|
|
|
+ compare_locations("type mappings/formalisms", set(["Empty"]))
|
|
|
|
|
|
def test_model_overwrite(self):
|
|
|
- model_add("Empty", "SimpleClassDiagrams")
|
|
|
- assert model_list() == set(list(expected_model_list) + [("Empty", "SimpleClassDiagrams"), ("TM_Empty", "TypeMapping")])
|
|
|
- assert element_list("Empty") == set([])
|
|
|
- instantiate("Empty", "Class", ID="A")
|
|
|
- assert element_list("Empty") == set([("A", "Class")])
|
|
|
- model_overwrite("Empty")
|
|
|
- assert element_list("Empty") == set([])
|
|
|
- assert model_list() == set(list(expected_model_list) + [("Empty", "SimpleClassDiagrams"), ("TM_Empty", "TypeMapping")])
|
|
|
- instantiate("Empty", "Class", ID="B")
|
|
|
- assert element_list("Empty") == set([("B", "Class")])
|
|
|
+ model_add("formalisms/Empty", "formalisms/SimpleClassDiagrams")
|
|
|
+ assert element_list("formalisms/Empty") == set([])
|
|
|
+ instantiate("formalisms/Empty", "Class", ID="A")
|
|
|
+ assert element_list("formalisms/Empty") == set([("A", "Class")])
|
|
|
+ model_overwrite("formalisms/Empty")
|
|
|
+ assert element_list("formalisms/Empty") == set([])
|
|
|
+ compare_locations("formalisms", set(["Empty"]))
|
|
|
+ compare_locations("type mappings/formalisms", set(["Empty"]))
|
|
|
+ assert element_list("formalisms/Empty") == set([])
|
|
|
+
|
|
|
+ instantiate("formalisms/Empty", "Class", ID="B")
|
|
|
+ compare_locations("formalisms", set(["Empty"]))
|
|
|
+ compare_locations("type mappings/formalisms", set(["Empty"]))
|
|
|
|
|
|
def test_transform_add_MT(self):
|
|
|
- model_add("PetriNet", "SimpleClassDiagrams", open("integration/code/petrinets.mvc", "r").read())
|
|
|
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams"),
|
|
|
- ("TM_PetriNet", "TypeMapping"),
|
|
|
- ])
|
|
|
- transformation_add_MT({"PetriNet": "PetriNet"}, {}, "print_pn", open("integration/code/pn_print.mvc").read())
|
|
|
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams"),
|
|
|
- ("TM_PetriNet", "TypeMapping"),
|
|
|
- ("__RAM_print_pn", "SimpleClassDiagrams"),
|
|
|
- ("TM___RAM_print_pn", "TypeMapping"),
|
|
|
- ("__merged_print_pn", "SimpleClassDiagrams"),
|
|
|
- ("TM___merged_print_pn", "TypeMapping"),
|
|
|
- ("print_pn", "__RAM_print_pn"),
|
|
|
- ("TM_print_pn", "TypeMapping")])
|
|
|
- assert transformation_list() == set(list(expected_transformation_list) + [("ModelTransformation", "print_pn")])
|
|
|
+ model_add("formalisms/PetriNet", "formalisms/SimpleClassDiagrams", open("integration/code/petrinets.mvc", "r").read())
|
|
|
+ compare_location("formalisms", set(["PetriNet"]))
|
|
|
+ compare_location("type mappings/formalisms", set(["PetriNet"]))
|
|
|
+ transformation_add_MT({"PetriNet": "formalisms/PetriNet"}, {}, "models/print_pn", open("integration/code/pn_print.mvc").read())
|
|
|
+
|
|
|
+ compare_locations("formalisms", set(["PetriNet"]))
|
|
|
+ compare_locations("models", set(["print_pn"]))
|
|
|
+ compare_locations("RAMified/formalisms", set(["print_pn"]))
|
|
|
+ compare_locations("merged/formalisms", set(["print_pn"]))
|
|
|
+ compare_locations("type mappings/formalisms", set(["PetriNet"]))
|
|
|
+ compare_locations("type mappings/models", set(["print_pn"]))
|
|
|
+ compare_locations("type mappings/RAMified/formalisms", set(["print_pn"]))
|
|
|
+ compare_locations("type mappings/merged/formalisms", set(["print_pn"]))
|
|
|
|
|
|
def test_transform_add_MT_pn_print_exec(self):
|
|
|
log = []
|
|
@@ -122,26 +140,16 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
def callback(value):
|
|
|
log.append(value)
|
|
|
|
|
|
- model_add("PetriNet", "SimpleClassDiagrams", open("integration/code/pn_runtime.mvc", "r").read())
|
|
|
- model_add("my_pn", "PetriNet", open("integration/code/pn_runtime_model.mvc", "r").read())
|
|
|
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams"),
|
|
|
- ("TM_PetriNet", "TypeMapping"),
|
|
|
- ("my_pn", "PetriNet"),
|
|
|
- ("TM_my_pn", "TypeMapping"),
|
|
|
- ])
|
|
|
- transformation_add_MT({"PetriNet": "PetriNet"}, {}, "print_pn", open("integration/code/pn_print.mvc").read())
|
|
|
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams"),
|
|
|
- ("TM_PetriNet", "TypeMapping"),
|
|
|
- ("my_pn", "PetriNet"),
|
|
|
- ("TM_my_pn", "TypeMapping"),
|
|
|
- ("__RAM_print_pn", "SimpleClassDiagrams"),
|
|
|
- ("TM___RAM_print_pn", "TypeMapping"),
|
|
|
- ("__merged_print_pn", "SimpleClassDiagrams"),
|
|
|
- ("TM___merged_print_pn", "TypeMapping"),
|
|
|
- ("print_pn", "__RAM_print_pn"),
|
|
|
- ("TM_print_pn", "TypeMapping")])
|
|
|
- assert transformation_list() == set(list(expected_transformation_list) + [("ModelTransformation", "print_pn")])
|
|
|
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
|
|
|
+ model_add("formalisms/PetriNet", "formalisms/SimpleClassDiagrams", open("integration/code/pn_runtime.mvc", "r").read())
|
|
|
+ model_add("models/my_pn", "formalisms/PetriNet", open("integration/code/pn_runtime_model.mvc", "r").read())
|
|
|
+ compare_location("models", set(["my_pn"]))
|
|
|
+ compare_location("type mappings/models", set(["my_pn"]))
|
|
|
+
|
|
|
+ transformation_add_MT({"PetriNet": "formalisms/PetriNet"}, {}, "models/print_pn", open("integration/code/pn_print.mvc").read())
|
|
|
+ compare_location("models", set(["my_pn", "print_pn"]))
|
|
|
+ compare_location("type mappings/models", set(["my_pn", "print_pn"]))
|
|
|
+
|
|
|
+ assert transformation_execute_MT("models/print_pn", {"PetriNet": "models/my_pn"}, {}, callback) == True
|
|
|
|
|
|
assert set(log) == set(['"p1" --> 1',
|
|
|
'"p2" --> 2',
|
|
@@ -166,10 +174,10 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
def callback(value):
|
|
|
log.append(value)
|
|
|
|
|
|
- model_add("PetriNet", "SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())
|
|
|
- model_add("PetriNet_Runtime", "SimpleClassDiagrams", open("integration/code/pn_runtime.mvc", "r").read())
|
|
|
+ model_add("formalisms/PetriNet", "formalisms/SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())
|
|
|
+ model_add("formalisms/PetriNet_Runtime", "formalisms/SimpleClassDiagrams", open("integration/code/pn_runtime.mvc", "r").read())
|
|
|
|
|
|
- model_add("my_pn", "PetriNet", open("integration/code/pn_design_model.mvc", "r").read())
|
|
|
+ model_add("models/my_pn", "PetriNet", open("integration/code/pn_design_model.mvc", "r").read())
|
|
|
|
|
|
def add_tracability_D2R():
|
|
|
instantiate(None, "Association", ("PetriNet/Place", "PetriNet_Runtime/Place"), ID="D2R_PlaceLink")
|
|
@@ -179,23 +187,23 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
instantiate(None, "Association", ("PetriNet_Runtime/Place", "PetriNet/Place"), ID="R2D_PlaceLink")
|
|
|
instantiate(None, "Association", ("PetriNet_Runtime/Transition", "PetriNet/Transition"), ID="R2D_TransitionLink")
|
|
|
|
|
|
- transformation_add_MT({"PetriNet": "PetriNet"}, {}, "print_pn", open("integration/code/pn_print.mvc").read())
|
|
|
- transformation_add_MT({"PetriNet": "PetriNet"}, {"PetriNet_Runtime": "PetriNet_Runtime"}, "pn_design_to_runtime", open("integration/code/pn_design_to_runtime.mvc").read(), add_tracability_D2R)
|
|
|
- transformation_add_MT({"PetriNet_Runtime": "PetriNet_Runtime"}, {"PetriNet_Runtime": "PetriNet_Runtime"}, "pn_simulate", open("integration/code/pn_simulate.mvc").read())
|
|
|
- transformation_add_MT({"PetriNet_Runtime": "PetriNet_Runtime"}, {"PetriNet": "PetriNet"}, "pn_runtime_to_design", open("integration/code/pn_runtime_to_design.mvc").read(), add_tracability_R2D)
|
|
|
+ transformation_add_MT({"PetriNet": "formalisms/PetriNet"}, {}, "models/print_pn", open("integration/code/pn_print.mvc").read())
|
|
|
+ transformation_add_MT({"PetriNet": "formalisms/PetriNet"}, {"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, "models/pn_design_to_runtime", open("integration/code/pn_design_to_runtime.mvc").read(), add_tracability_D2R)
|
|
|
+ transformation_add_MT({"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, {"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, "models/pn_simulate", open("integration/code/pn_simulate.mvc").read())
|
|
|
+ transformation_add_MT({"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, {"PetriNet": "formalisms/PetriNet"}, "models/pn_runtime_to_design", open("integration/code/pn_runtime_to_design.mvc").read(), add_tracability_R2D)
|
|
|
|
|
|
log = []
|
|
|
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
|
|
|
+ assert transformation_execute_MT("models/print_pn", {"PetriNet": "models/my_pn"}, {}, callback) == True
|
|
|
assert set(log) == set(['"p1" --> 1',
|
|
|
'"p2" --> 2',
|
|
|
'"p3" --> 3'])
|
|
|
|
|
|
- assert transformation_execute_MT("pn_design_to_runtime", {"PetriNet": "my_pn"}, {"PetriNet_Runtime": "my_pn_RT"}) == True
|
|
|
- assert transformation_execute_MT("pn_simulate", {"PetriNet_Runtime": "my_pn_RT"}, {"PetriNet_Runtime": "my_pn_RT"}) == True
|
|
|
- assert transformation_execute_MT("pn_runtime_to_design", {"PetriNet_Runtime": "my_pn_RT"}, {"PetriNet": "my_pn"}) == True
|
|
|
+ assert transformation_execute_MT("models/pn_design_to_runtime", {"PetriNet": "models/my_pn"}, {"PetriNet_Runtime": "models/my_pn_RT"}) == True
|
|
|
+ assert transformation_execute_MT("models/pn_simulate", {"PetriNet_Runtime": "models/my_pn_RT"}, {"PetriNet_Runtime": "models/my_pn_RT"}) == True
|
|
|
+ assert transformation_execute_MT("models/pn_runtime_to_design", {"PetriNet_Runtime": "models/my_pn_RT"}, {"PetriNet": "models/my_pn"}) == True
|
|
|
|
|
|
log = []
|
|
|
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
|
|
|
+ assert transformation_execute_MT("models/print_pn", {"PetriNet": "models/my_pn"}, {}, callback) == True
|
|
|
assert set(log) == set(['"p1" --> 0',
|
|
|
'"p2" --> 1',
|
|
|
'"p3" --> 5'])
|
|
@@ -206,10 +214,10 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
def callback(value):
|
|
|
log.append(value)
|
|
|
|
|
|
- model_add("PetriNet", "SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())
|
|
|
- model_add("PetriNet_Runtime", "SimpleClassDiagrams", open("integration/code/pn_runtime.mvc", "r").read())
|
|
|
+ model_add("formalisms/PetriNet", "formalisms/SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())
|
|
|
+ model_add("formalisms/PetriNet_Runtime", "formalisms/SimpleClassDiagrams", open("integration/code/pn_runtime.mvc", "r").read())
|
|
|
|
|
|
- model_add("my_pn", "PetriNet", open("integration/code/pn_design_model.mvc", "r").read())
|
|
|
+ model_add("models/my_pn", "formalisms/PetriNet", open("integration/code/pn_design_model.mvc", "r").read())
|
|
|
|
|
|
def add_tracability_D2R():
|
|
|
instantiate(None, "Association", ("PetriNet/Place", "PetriNet_Runtime/Place"), ID="D2R_PlaceLink")
|
|
@@ -219,23 +227,23 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
instantiate(None, "Association", ("PetriNet_Runtime/Place", "PetriNet/Place"), ID="R2D_PlaceLink")
|
|
|
instantiate(None, "Association", ("PetriNet_Runtime/Transition", "PetriNet/Transition"), ID="R2D_TransitionLink")
|
|
|
|
|
|
- transformation_add_MT({"PetriNet": "PetriNet"}, {}, "print_pn", open("integration/code/pn_print.mvc").read())
|
|
|
- transformation_add_MT({"PetriNet": "PetriNet"}, {"PetriNet_Runtime": "PetriNet_Runtime"}, "pn_design_to_runtime", open("integration/code/pn_design_to_runtime.mvc").read(), add_tracability_D2R)
|
|
|
- transformation_add_AL({"PetriNet_Runtime": "PetriNet_Runtime"}, {"PetriNet_Runtime": "PetriNet_Runtime"}, "pn_simulate", open("integration/code/pn_simulate.alc").read())
|
|
|
- transformation_add_MT({"PetriNet_Runtime": "PetriNet_Runtime"}, {"PetriNet": "PetriNet"}, "pn_runtime_to_design", open("integration/code/pn_runtime_to_design.mvc").read(), add_tracability_R2D)
|
|
|
+ transformation_add_MT({"PetriNet": "formalisms/PetriNet"}, {}, "models/print_pn", open("integration/code/pn_print.mvc").read())
|
|
|
+ transformation_add_MT({"PetriNet": "formalisms/PetriNet"}, {"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, "models/pn_design_to_runtime", open("integration/code/pn_design_to_runtime.mvc").read(), add_tracability_D2R)
|
|
|
+ transformation_add_AL({"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, {"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, "models/pn_simulate", open("integration/code/pn_simulate.alc").read())
|
|
|
+ transformation_add_MT({"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, {"PetriNet": "formalisms/PetriNet"}, "models/pn_runtime_to_design", open("integration/code/pn_runtime_to_design.mvc").read(), add_tracability_R2D)
|
|
|
|
|
|
log = []
|
|
|
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
|
|
|
+ assert transformation_execute_MT("models/print_pn", {"PetriNet": "models/my_pn"}, {}, callback) == True
|
|
|
assert set(log) == set(['"p1" --> 1',
|
|
|
'"p2" --> 2',
|
|
|
'"p3" --> 3'])
|
|
|
|
|
|
- assert transformation_execute_MT("pn_design_to_runtime", {"PetriNet": "my_pn"}, {"PetriNet_Runtime": "my_pn_RT"}) == True
|
|
|
- assert transformation_execute_AL("pn_simulate", {"PetriNet_Runtime": "my_pn_RT"}, {"PetriNet_Runtime": "my_pn_RT"}) == True
|
|
|
- assert transformation_execute_MT("pn_runtime_to_design", {"PetriNet_Runtime": "my_pn_RT"}, {"PetriNet": "my_pn"}) == True
|
|
|
+ assert transformation_execute_MT("models/pn_design_to_runtime", {"PetriNet": "models/my_pn"}, {"PetriNet_Runtime": "models/my_pn_RT"}) == True
|
|
|
+ assert transformation_execute_AL("models/pn_simulate", {"PetriNet_Runtime": "models/my_pn_RT"}, {"PetriNet_Runtime": "models/my_pn_RT"}) == True
|
|
|
+ assert transformation_execute_MT("models/pn_runtime_to_design", {"PetriNet_Runtime": "models/my_pn_RT"}, {"PetriNet": "models/my_pn"}) == True
|
|
|
|
|
|
log = []
|
|
|
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
|
|
|
+ assert transformation_execute_MT("models/print_pn", {"PetriNet": "models/my_pn"}, {}, callback) == True
|
|
|
assert set(log) == set(['"p1" --> 0',
|
|
|
'"p2" --> 1',
|
|
|
'"p3" --> 5'])
|
|
@@ -266,10 +274,10 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
t2p1 = instantiate(None, "PetriNet_Runtime/T2P", (t1, p3))
|
|
|
attr_assign(None, t2p1, "weight", 2)
|
|
|
|
|
|
- model_add("PetriNet", "SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())
|
|
|
- model_add("PetriNet_Runtime", "SimpleClassDiagrams", open("integration/code/pn_runtime.mvc", "r").read())
|
|
|
+ model_add("formalisms/PetriNet", "formalisms/SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())
|
|
|
+ model_add("formalisms/PetriNet_Runtime", "formalisms/SimpleClassDiagrams", open("integration/code/pn_runtime.mvc", "r").read())
|
|
|
|
|
|
- model_add("my_pn", "PetriNet", open("integration/code/pn_design_model.mvc", "r").read())
|
|
|
+ model_add("models/my_pn", "formalisms/PetriNet", open("integration/code/pn_design_model.mvc", "r").read())
|
|
|
|
|
|
def add_tracability_D2R():
|
|
|
instantiate(None, "Association", ("PetriNet/Place", "PetriNet_Runtime/Place"), ID="D2R_PlaceLink")
|
|
@@ -279,35 +287,35 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
instantiate(None, "Association", ("PetriNet_Runtime/Place", "PetriNet/Place"), ID="R2D_PlaceLink")
|
|
|
instantiate(None, "Association", ("PetriNet_Runtime/Transition", "PetriNet/Transition"), ID="R2D_TransitionLink")
|
|
|
|
|
|
- transformation_add_MT({"PetriNet": "PetriNet"}, {}, "print_pn", open("integration/code/pn_print.mvc").read())
|
|
|
- transformation_add_MANUAL({"PetriNet": "PetriNet"}, {"PetriNet_Runtime": "PetriNet_Runtime"}, "pn_design_to_runtime", add_tracability_D2R)
|
|
|
- transformation_add_AL({"PetriNet_Runtime": "PetriNet_Runtime"}, {"PetriNet_Runtime": "PetriNet_Runtime"}, "pn_simulate", open("integration/code/pn_simulate.alc").read())
|
|
|
- transformation_add_MT({"PetriNet_Runtime": "PetriNet_Runtime"}, {"PetriNet": "PetriNet"}, "pn_runtime_to_design", open("integration/code/pn_runtime_to_design.mvc").read(), add_tracability_R2D)
|
|
|
+ transformation_add_MT({"PetriNet": "formalisms/PetriNet"}, {}, "models/print_pn", open("integration/code/pn_print.mvc").read())
|
|
|
+ transformation_add_MANUAL({"PetriNet": "formalisms/PetriNet"}, {"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, "models/pn_design_to_runtime", add_tracability_D2R)
|
|
|
+ transformation_add_AL({"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, {"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, "models/pn_simulate", open("integration/code/pn_simulate.alc").read())
|
|
|
+ transformation_add_MT({"PetriNet_Runtime": "formalisms/PetriNet_Runtime"}, {"PetriNet": "formalisms/PetriNet"}, "models/pn_runtime_to_design", open("integration/code/pn_runtime_to_design.mvc").read(), add_tracability_R2D)
|
|
|
|
|
|
log = []
|
|
|
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
|
|
|
+ assert transformation_execute_MT("models/print_pn", {"PetriNet": "models/my_pn"}, {}, callback) == True
|
|
|
assert set(log) == set(['"p1" --> 1',
|
|
|
'"p2" --> 2',
|
|
|
'"p3" --> 3'])
|
|
|
|
|
|
- assert transformation_execute_MANUAL("pn_design_to_runtime", {"PetriNet": "my_pn"}, {"PetriNet_Runtime": "my_pn_RT"}, manual_callback) == True
|
|
|
- assert transformation_execute_AL("pn_simulate", {"PetriNet_Runtime": "my_pn_RT"}, {"PetriNet_Runtime": "my_pn_RT"}) == True
|
|
|
- assert transformation_execute_MT("pn_runtime_to_design", {"PetriNet_Runtime": "my_pn_RT"}, {"PetriNet": "my_pn"}) == True
|
|
|
+ assert transformation_execute_MANUAL("models/pn_design_to_runtime", {"PetriNet": "models/my_pn"}, {"PetriNet_Runtime": "models/my_pn_RT"}, manual_callback) == True
|
|
|
+ assert transformation_execute_AL("models/pn_simulate", {"PetriNet_Runtime": "models/my_pn_RT"}, {"PetriNet_Runtime": "models/my_pn_RT"}) == True
|
|
|
+ assert transformation_execute_MT("models/pn_runtime_to_design", {"PetriNet_Runtime": "models/my_pn_RT"}, {"PetriNet": "models/my_pn"}) == True
|
|
|
|
|
|
log = []
|
|
|
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
|
|
|
+ assert transformation_execute_MT("models/print_pn", {"PetriNet": "models/my_pn"}, {}, callback) == True
|
|
|
assert set(log) == set(['"p1" --> 0',
|
|
|
'"p2" --> 1',
|
|
|
'"p3" --> 5'])
|
|
|
|
|
|
def test_process_model_trivial_pn_bigmain(self):
|
|
|
- model_add("PetriNet", "SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())
|
|
|
- model_add("ReachabilityGraph", "SimpleClassDiagrams", open("integration/code/reachability_graph.mvc", "r").read())
|
|
|
- model_add("pn_reachability", "ProcessModel", open("integration/code/pm_pn_reachability.mvc", "r").read())
|
|
|
- transformation_add_MT({}, {"PetriNet": "PetriNet"}, "initialize_PN", open("integration/code/initialize_PN.mvc", "r").read())
|
|
|
- transformation_add_MANUAL({"PetriNet": "PetriNet"}, {"PetriNet": "PetriNet"}, "refine_PN")
|
|
|
- transformation_add_AL({"PetriNet": "PetriNet"}, {"ReachabilityGraph": "ReachabilityGraph"}, "reachability", open("integration/code/reachability.alc", "r").read())
|
|
|
- transformation_add_MT({"ReachabilityGraph": "ReachabilityGraph"}, {}, "reachability_print", open("integration/code/reachabilitygraph_print.mvc", 'r').read())
|
|
|
+ model_add("formalisms/PetriNet", "formalisms/SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())
|
|
|
+ model_add("formalisms/ReachabilityGraph", "formalisms/SimpleClassDiagrams", open("integration/code/reachability_graph.mvc", "r").read())
|
|
|
+ model_add("models/pn_reachability", "formalisms/ProcessModel", open("integration/code/pm_pn_reachability.mvc", "r").read())
|
|
|
+ transformation_add_MT({}, {"PetriNet": "formalisms/PetriNet"}, "models/initialize_PN", open("integration/code/initialize_PN.mvc", "r").read())
|
|
|
+ transformation_add_MANUAL({"PetriNet": "formalisms/PetriNet"}, {"PetriNet": "formalisms/PetriNet"}, "models/refine_PN")
|
|
|
+ transformation_add_AL({"PetriNet": "formalisms/PetriNet"}, {"ReachabilityGraph": "formalisms/ReachabilityGraph"}, "models/reachability", open("integration/code/reachability.alc", "r").read())
|
|
|
+ transformation_add_MT({"ReachabilityGraph": "formalisms/ReachabilityGraph"}, {}, "models/reachability_print", open("integration/code/reachabilitygraph_print.mvc", 'r').read())
|
|
|
|
|
|
def callback_refine_PN():
|
|
|
p1 = instantiate(None, "PetriNet/Place")
|
|
@@ -324,20 +332,20 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
def callback_print(value):
|
|
|
log.add(value)
|
|
|
|
|
|
- process_execute("pn_reachability", "my_", {"refine_PN": callback_refine_PN, "reachability_print": callback_print})
|
|
|
+ process_execute("models/pn_reachability", "my_", {"models/refine_PN": callback_refine_PN, "models/reachability_print": callback_print})
|
|
|
|
|
|
assert log == set(['"0": {"p1": 1, }',
|
|
|
'"1": {"p1": 0, }',
|
|
|
'"0" --["t1"]--> "1"'])
|
|
|
|
|
|
def test_process_model_trivial_pn_subfunction(self):
|
|
|
- model_add("PetriNet", "SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())
|
|
|
- model_add("ReachabilityGraph", "SimpleClassDiagrams", open("integration/code/reachability_graph.mvc", "r").read())
|
|
|
- model_add("pn_reachability", "ProcessModel", open("integration/code/pm_pn_reachability.mvc", "r").read())
|
|
|
- transformation_add_MT({}, {"PetriNet": "PetriNet"}, "initialize_PN", open("integration/code/initialize_PN.mvc", "r").read())
|
|
|
- transformation_add_MANUAL({"PetriNet": "PetriNet"}, {"PetriNet": "PetriNet"}, "refine_PN")
|
|
|
- transformation_add_AL({"PetriNet": "PetriNet"}, {"ReachabilityGraph": "ReachabilityGraph"}, "reachability", open("integration/code/reachability_subfunction.alc", "r").read())
|
|
|
- transformation_add_MT({"ReachabilityGraph": "ReachabilityGraph"}, {}, "reachability_print", open("integration/code/reachabilitygraph_print.mvc", 'r').read())
|
|
|
+ model_add("formalisms/PetriNet", "formalisms/SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())
|
|
|
+ model_add("formalisms/ReachabilityGraph", "formalisms/SimpleClassDiagrams", open("integration/code/reachability_graph.mvc", "r").read())
|
|
|
+ model_add("models/pn_reachability", "formalisms/ProcessModel", open("integration/code/pm_pn_reachability.mvc", "r").read())
|
|
|
+ transformation_add_MT({}, {"PetriNet": "formalisms/PetriNet"}, "models/initialize_PN", open("integration/code/initialize_PN.mvc", "r").read())
|
|
|
+ transformation_add_MANUAL({"PetriNet": "formalisms/PetriNet"}, {"PetriNet": "formalisms/PetriNet"}, "models/refine_PN")
|
|
|
+ transformation_add_AL({"PetriNet": "formalisms/PetriNet"}, {"ReachabilityGraph": "formalisms/ReachabilityGraph"}, "models/reachability", open("integration/code/reachability_subfunction.alc", "r").read())
|
|
|
+ transformation_add_MT({"ReachabilityGraph": "formalisms/ReachabilityGraph"}, {}, "models/reachability_print", open("integration/code/reachabilitygraph_print.mvc", 'r').read())
|
|
|
|
|
|
def callback_refine_PN():
|
|
|
p1 = instantiate(None, "PetriNet/Place")
|
|
@@ -354,20 +362,20 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
def callback_print(value):
|
|
|
log.add(value)
|
|
|
|
|
|
- process_execute("pn_reachability", "my_", {"refine_PN": callback_refine_PN, "reachability_print": callback_print})
|
|
|
+ process_execute("models/pn_reachability", "my_", {"models/refine_PN": callback_refine_PN, "models/reachability_print": callback_print})
|
|
|
|
|
|
assert log == set(['"0": {"p1": 1, }',
|
|
|
'"1": {"p1": 0, }',
|
|
|
'"0" --["t1"]--> "1"'])
|
|
|
|
|
|
def test_render(self):
|
|
|
- model_add("CausalBlockDiagrams", "SimpleClassDiagrams", open("integration/code/cbd_design.mvc", 'r').read())
|
|
|
- model_add("MM_rendered_graphical", "SimpleClassDiagrams", open("models/MM_rendered_graphical.mvc", 'r').read())
|
|
|
- model_add("my_CBD", "CausalBlockDiagrams", open("integration/code/my_cbd.mvc", 'r').read())
|
|
|
+ model_add("formalisms/CausalBlockDiagrams", "formalisms/SimpleClassDiagrams", open("integration/code/cbd_design.mvc", 'r').read())
|
|
|
+ model_add("formalisms/MM_rendered_graphical", "formalisms/SimpleClassDiagrams", open("models/MM_rendered_graphical.mvc", 'r').read())
|
|
|
+ model_add("models/my_CBD", "formalisms/CausalBlockDiagrams", open("integration/code/my_cbd.mvc", 'r').read())
|
|
|
|
|
|
def add_tracability():
|
|
|
instantiate(None, "Association", ("abstract/Block", "rendered/Group"), ID="TracabilityLink")
|
|
|
|
|
|
- transformation_add_MT({"abstract": "CausalBlockDiagrams", "rendered": "MM_rendered_graphical"}, {"abstract": "CausalBlockDiagrams", "rendered": "MM_rendered_graphical"}, "render_graphical_CBD", open("models/CBD_mapper.mvc", 'r').read(), add_tracability)
|
|
|
- result = model_render("my_CBD", "render_graphical_CBD")
|
|
|
+ transformation_add_MT({"abstract": "formalisms/CausalBlockDiagrams", "rendered": "formalisms/MM_rendered_graphical"}, {"abstract": "formalisms/CausalBlockDiagrams", "rendered": "formalisms/MM_rendered_graphical"}, "models/render_graphical_CBD", open("models/CBD_mapper.mvc", 'r').read(), add_tracability)
|
|
|
+ result = model_render("models/my_CBD", "models/render_graphical_CBD")
|
|
|
assert len(result) == 23
|