123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533 |
- import unittest
- from utils import *
- 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"),
- ("core", "CoreFormalism")])
- 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"),
- ("core", "CoreFormalism", "admin", "admin", "200")])
- class TestModelverseCore(unittest.TestCase):
- @classmethod
- def setup_class(self):
- self.proc, self.address = start_mvc()
- init(self.address)
- login("admin", "admin")
- @classmethod
- def teardown_class(self):
- kill(self.proc)
- def test_list(self):
- assert model_list() == expected_model_list
-
- def test_list_full(self):
- assert model_list_full() == expected_model_full_list
- def test_model_add_empty(self):
- model_add("Empty", "SimpleClassDiagrams")
- assert model_list() == set(list(expected_model_list) + [("Empty", "SimpleClassDiagrams")])
- assert model_list_full() == set(list(expected_model_full_list) + [("Empty", "SimpleClassDiagrams", "admin", "nobody", "200")])
- def test_model_empty_instantiate(self):
- model_add("Empty", "SimpleClassDiagrams")
- assert model_list() == set(list(expected_model_list) + [("Empty", "SimpleClassDiagrams")])
- assert model_list_full() == set(list(expected_model_full_list) + [("Empty", "SimpleClassDiagrams", "admin", "nobody", "200")])
- 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")])
- assert model_list_full() == set(list(expected_model_full_list) + [("Empty", "SimpleClassDiagrams", "admin", "nobody", "200")])
- def test_model_overwrite(self):
- model_add("Empty", "SimpleClassDiagrams")
- assert model_list() == set(list(expected_model_list) + [("Empty", "SimpleClassDiagrams")])
- assert model_list_full() == set(list(expected_model_full_list) + [("Empty", "SimpleClassDiagrams", "admin", "nobody", "200")])
- 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")])
- assert model_list_full() == set(list(expected_model_full_list) + [("Empty", "SimpleClassDiagrams", "admin", "nobody", "200")])
- instantiate("Empty", "Class", ID="B")
- assert element_list("Empty") == set([("B", "Class")])
- def test_transform_add_MT_language(self):
- model_add("PetriNet", "SimpleClassDiagrams", open("integration/code/petrinets.mvc", "r").read())
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams")])
- transformation_add_MT_language(["PetriNet"], "PetriNet_RAM")
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams"),
- ("PetriNet_RAM", "SimpleClassDiagrams"),
- ("__merged_PetriNet_RAM", "SimpleClassDiagrams")])
- def test_transform_add_MT_instance(self):
- model_add("PetriNet", "SimpleClassDiagrams", open("integration/code/petrinets.mvc", "r").read())
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams")])
- transformation_add_MT_language(["PetriNet"], "PetriNet_RAM")
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams"),
- ("PetriNet_RAM", "SimpleClassDiagrams"),
- ("__merged_PetriNet_RAM", "SimpleClassDiagrams")])
- transformation_add_MT("PetriNet_RAM", ["PetriNet"], [], "print_pn", open("integration/code/pn_print.mvc").read())
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams"),
- ("PetriNet_RAM", "SimpleClassDiagrams"),
- ("__merged_PetriNet_RAM", "SimpleClassDiagrams"),
- ("print_pn", "PetriNet_RAM")])
- assert transformation_list() == set([("ModelTransformation", "print_pn")])
- def test_transform_add_MT_pn_print_exec(self):
- log = []
- 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"),
- ("my_pn", "PetriNet")])
- transformation_add_MT_language(["PetriNet"], "PetriNet_RAM")
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams"),
- ("my_pn", "PetriNet"),
- ("PetriNet_RAM", "SimpleClassDiagrams"),
- ("__merged_PetriNet_RAM", "SimpleClassDiagrams")])
- transformation_add_MT("PetriNet_RAM", ["PetriNet"], [], "print_pn", open("integration/code/pn_print.mvc").read())
- assert model_list() == set(list(expected_model_list) + [("PetriNet", "SimpleClassDiagrams"),
- ("my_pn", "PetriNet"),
- ("PetriNet_RAM", "SimpleClassDiagrams"),
- ("__merged_PetriNet_RAM", "SimpleClassDiagrams"),
- ("print_pn", "PetriNet_RAM")])
- assert transformation_list() == set([("ModelTransformation", "print_pn")])
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
- assert set(log) == set(['"p1" --> 1',
- '"p2" --> 2',
- '"p3" --> 3'])
- 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.
- """
- log = []
- 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("my_pn", "PetriNet", open("integration/code/pn_design_model.mvc", "r").read())
- transformation_add_MT_language(["PetriNet", "PetriNet_Runtime"], "PetriNet_RAM")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet/Place", "PetriNet_Runtime/Place"), ID="D2R_PlaceLink")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet/Transition", "PetriNet_Runtime/Transition"), ID="D2R_TransitionLink")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet_Runtime/Place", "PetriNet/Place"), ID="R2D_PlaceLink")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet_Runtime/Transition", "PetriNet/Transition"), ID="R2D_TransitionLink")
- transformation_RAMify("__merged_PetriNet_RAM", "PetriNet_RAM")
- transformation_add_MT("PetriNet_RAM", ["PetriNet"], [], "print_pn", open("integration/code/pn_print.mvc").read())
- transformation_add_MT("PetriNet_RAM", ["PetriNet"], ["PetriNet_Runtime"], "pn_design_to_runtime", open("integration/code/pn_design_to_runtime.mvc").read())
- transformation_add_MT("PetriNet_RAM", ["PetriNet_Runtime"], ["PetriNet_Runtime"], "pn_simulate", open("integration/code/pn_simulate.mvc").read())
- transformation_add_MT("PetriNet_RAM", ["PetriNet_Runtime"], ["PetriNet"], "pn_runtime_to_design", open("integration/code/pn_runtime_to_design.mvc").read())
- log = []
- assert transformation_execute_MT("print_pn", {"PetriNet": "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
- log = []
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
- assert set(log) == set(['"p1" --> 0',
- '"p2" --> 1',
- '"p3" --> 5'])
- def test_transform_add_AL_pn_simulate(self):
- log = []
- 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("my_pn", "PetriNet", open("integration/code/pn_design_model.mvc", "r").read())
- transformation_add_MT_language(["PetriNet", "PetriNet_Runtime"], "PetriNet_RAM")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet/Place", "PetriNet_Runtime/Place"), ID="D2R_PlaceLink")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet/Transition", "PetriNet_Runtime/Transition"), ID="D2R_TransitionLink")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet_Runtime/Place", "PetriNet/Place"), ID="R2D_PlaceLink")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet_Runtime/Transition", "PetriNet/Transition"), ID="R2D_TransitionLink")
- transformation_RAMify("__merged_PetriNet_RAM", "PetriNet_RAM")
- transformation_add_MT("PetriNet_RAM", ["PetriNet"], [], "print_pn", open("integration/code/pn_print.mvc").read())
- transformation_add_MT("PetriNet_RAM", ["PetriNet"], ["PetriNet_Runtime"], "pn_design_to_runtime", open("integration/code/pn_design_to_runtime.mvc").read())
- transformation_add_AL(["PetriNet_Runtime"], ["PetriNet_Runtime"], "pn_simulate", open("integration/code/pn_simulate.alc").read())
- transformation_add_MT("PetriNet_RAM", ["PetriNet_Runtime"], ["PetriNet"], "pn_runtime_to_design", open("integration/code/pn_runtime_to_design.mvc").read())
- log = []
- assert transformation_execute_MT("print_pn", {"PetriNet": "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
- log = []
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
- assert set(log) == set(['"p1" --> 0',
- '"p2" --> 1',
- '"p3" --> 5'])
- def test_transform_add_MANUAL_pn_simulate(self):
- log = []
- def callback(value):
- log.append(value)
- def manual_callback():
- p1 = instantiate(None, "PetriNet_Runtime/Place")
- attr_assign(None, p1, "tokens", 1)
- attr_assign(None, p1, "name", "p1")
- p2 = instantiate(None, "PetriNet_Runtime/Place")
- attr_assign(None, p2, "tokens", 2)
- attr_assign(None, p2, "name", "p2")
- p3 = instantiate(None, "PetriNet_Runtime/Place")
- attr_assign(None, p3, "tokens", 3)
- attr_assign(None, p3, "name", "p3")
- t1 = instantiate(None, "PetriNet_Runtime/Transition")
- attr_assign(None, t1, "name", "t1")
- attr_assign(None, t1, "executing", False)
- p2t1 = instantiate(None, "PetriNet_Runtime/P2T", (p1, t1))
- attr_assign(None, p2t1, "weight", 1)
- p2t2 = instantiate(None, "PetriNet_Runtime/P2T", (p2, t1))
- attr_assign(None, p2t2, "weight", 1)
- 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("my_pn", "PetriNet", open("integration/code/pn_design_model.mvc", "r").read())
- transformation_add_MT_language(["PetriNet", "PetriNet_Runtime"], "PetriNet_RAM")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet/Place", "PetriNet_Runtime/Place"), ID="D2R_PlaceLink")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet/Transition", "PetriNet_Runtime/Transition"), ID="D2R_TransitionLink")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet_Runtime/Place", "PetriNet/Place"), ID="R2D_PlaceLink")
- instantiate("__merged_PetriNet_RAM", "Association", ("PetriNet_Runtime/Transition", "PetriNet/Transition"), ID="R2D_TransitionLink")
- transformation_RAMify("__merged_PetriNet_RAM", "PetriNet_RAM")
- transformation_add_MT("PetriNet_RAM", ["PetriNet"], [], "print_pn", open("integration/code/pn_print.mvc").read())
- transformation_add_MANUAL(["PetriNet"], ["PetriNet_Runtime"], "pn_design_to_runtime")
- transformation_add_AL(["PetriNet_Runtime"], ["PetriNet_Runtime"], "pn_simulate", open("integration/code/pn_simulate.alc").read())
- transformation_add_MT("PetriNet_RAM", ["PetriNet_Runtime"], ["PetriNet"], "pn_runtime_to_design", open("integration/code/pn_runtime_to_design.mvc").read())
- log = []
- assert transformation_execute_MT("print_pn", {"PetriNet": "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
- log = []
- assert transformation_execute_MT("print_pn", {"PetriNet": "my_pn"}, {}, callback) == True
- assert set(log) == set(['"p1" --> 0',
- '"p2" --> 1',
- '"p3" --> 5'])
- def test_process_model_trivial_pn(self):
- self.assertTrue(run_file(all_files,
- [ "admin", "admin", "admin",
- "model_add",
- "SimpleClassDiagrams",
- "PetriNet",
- ] + get_model_constructor(open("integration/code/pn_design.mvc", "r").read()) + [
- "model_add",
- "SimpleClassDiagrams",
- "ReachabilityGraph",
- ] + get_model_constructor(open("integration/code/reachability_graph.mvc", "r").read()) + [
- "model_list",
- "transformation_add_MT_language",
- "PetriNet",
- "",
- "PetriNet_RAM",
- "transformation_add_MT_language",
- "ReachabilityGraph",
- "",
- "ReachabilityGraph_RAM",
- "transformation_add_MT",
- "PetriNet_RAM",
- "",
- "PetriNet",
- "",
- "initialize_PN",
- ] + get_model_constructor(open("integration/code/initialize_PN.mvc", "r").read()) + [
- "transformation_add_MANUAL",
- "PetriNet",
- "",
- "PetriNet",
- "",
- "refine_PN",
- "transformation_add_AL",
- "PetriNet",
- "",
- "ReachabilityGraph",
- "",
- "reachability",
- ] + get_constructor(open("integration/code/reachability.alc", "r").read()) + [
- "transformation_add_MT",
- "ReachabilityGraph_RAM",
- "ReachabilityGraph",
- "",
- "",
- "reachability_print",
- ] + get_model_constructor(open("integration/code/reachabilitygraph_print.mvc", "r").read()) + [
- "model_add",
- "ProcessModel",
- "pn_reachability",
- ] + get_model_constructor(open("integration/code/pm_pn_reachability.mvc", "r").read()) + [
- "model_list",
- "process_execute",
- "pn_reachability",
- "my_",
- "instantiate",
- "PetriNet/Place",
- "p1",
- "attr_add",
- "p1",
- "name",
- "p1",
- "attr_add",
- "p1",
- "tokens",
- 1,
- "instantiate",
- "PetriNet/Transition",
- "t1",
- "attr_add",
- "t1",
- "name",
- "t1",
- "instantiate",
- "PetriNet/P2T",
- "p2t",
- "p1",
- "t1",
- "attr_add",
- "p2t",
- "weight",
- 1,
- "exit",
- "model_list",
- ],
- [ # bootup phase
- "Desired username for admin user?",
- "Desired password for admin user?",
- "Please repeat the password",
- "Passwords match!",
- "Welcome to the Model Management Interface v2.0!",
- "Use the 'help' command for a list of possible commands",
- "Ready for command...",
- # model_add
- "Creating new model!",
- "Model type?",
- "Model name?",
- "Waiting for model constructors...",
- "Model upload success!",
- "Ready for command...",
- # model_add
- "Creating new model!",
- "Model type?",
- "Model name?",
- "Waiting for model constructors...",
- "Model upload success!",
- "Ready for command...",
- # model_list
- set(model_list) |
- set([
- " PetriNet : SimpleClassDiagrams",
- " ReachabilityGraph : SimpleClassDiagrams",]),
- "Ready for command...",
- # transformation_add_MT_language
- "Formalisms to include (terminate with empty string)?",
- "Name of the RAMified transformation metamodel?",
- "Ready for command...",
- # transformation_add_MT_language
- "Formalisms to include (terminate with empty string)?",
- "Name of the RAMified transformation metamodel?",
- "Ready for command...",
- # transformation_add_MT
- "RAMified metamodel to use?",
- "Supported metamodels:",
- set([" PetriNet",]),
- "Which metamodels do you want to use as source for the operation (empty string to finish)?",
- "Which metamodels do you want to use as target for the operation (empty string to finish)?",
- "Name of new operation?",
- "Waiting for model constructors...",
- "Ready for command...",
- # transformation_add_MANUAL
- "Which metamodels do you want to use as source for the operation (empty string to finish)?",
- "Which metamodels do you want to use as target for the operation (empty string to finish)?",
- "Name of operation model?",
- "Ready for command...",
- # transformation_add_AL
- "Which metamodels do you want to use as source for the operation (empty string to finish)?",
- "Which metamodels do you want to use as target for the operation (empty string to finish)?",
- "Name of operation model?",
- "Waiting for model constructors...",
- "Ready for command...",
- # transformation_add_MT
- "RAMified metamodel to use?",
- "Supported metamodels:",
- set([" ReachabilityGraph",]),
- "Which metamodels do you want to use as source for the operation (empty string to finish)?",
- "Which metamodels do you want to use as target for the operation (empty string to finish)?",
- "Name of new operation?",
- "Waiting for model constructors...",
- "Ready for command...",
- # model_add
- "Creating new model!",
- "Model type?",
- "Model name?",
- "Waiting for model constructors...",
- "Model upload success!",
- "Ready for command...",
- # model_list
- set(model_list) |
- set([
- " PetriNet : SimpleClassDiagrams",
- " ReachabilityGraph : SimpleClassDiagrams",
- " initialize_PN : PetriNet_RAM",
- " refine_PN : ManualOperation",
- " reachability : ActionLanguage",
- " reachability_print : ReachabilityGraph_RAM",
- " pn_reachability : ProcessModel",
- " PetriNet_RAM : SimpleClassDiagrams",
- " ReachabilityGraph_RAM : SimpleClassDiagrams",
- " __merged_PetriNet_RAM : SimpleClassDiagrams",
- " __merged_ReachabilityGraph_RAM : SimpleClassDiagrams",
- " __merged_refine_PN : SimpleClassDiagrams",
- " __merged_reachability : SimpleClassDiagrams",
- ]),
- "Ready for command...",
- # process_execute
- "Which process model do you want to execute?",
- "Model prefix to use?",
- "Please perform manual operation \"refine_PN\"",
- "Model loaded, ready for commands!",
- "Mode: r/w",
- "Use 'help' command for a list of possible commands",
- "Please give your command.",
- # instantiate p1
- "Type to instantiate?",
- "Name of new element?",
- "Instantiation successful!",
- None,
- "Please give your command.",
- "Which element do you want to assign an attribute to?",
- "Which attribute do you wish to assign?",
- "Value of attribute?",
- "Added attribute!",
- "Please give your command.",
- "Which element do you want to assign an attribute to?",
- "Which attribute do you wish to assign?",
- "Value of attribute?",
- "Added attribute!",
- "Please give your command.",
- # instantiate t1
- "Type to instantiate?",
- "Name of new element?",
- "Instantiation successful!",
- None,
- "Please give your command.",
- "Which element do you want to assign an attribute to?",
- "Which attribute do you wish to assign?",
- "Value of attribute?",
- "Added attribute!",
- "Please give your command.",
- # instantiate p2t
- "Type to instantiate?",
- "Name of new element?",
- "Source name?",
- "Destination name?",
- "Instantiation successful!",
- None,
- "Please give your command.",
- "Which element do you want to assign an attribute to?",
- "Which attribute do you wish to assign?",
- "Value of attribute?",
- "Added attribute!",
- "Please give your command.",
- set(['"0": {"p1": 1, }',
- '"1": {"p1": 0, }',
- ]),
- set(['"0" --["t1"]--> "1"',
- ]),
- "Ready for command...",
- # model_list
- set(model_list) |
- set([
- " PetriNet : SimpleClassDiagrams",
- " ReachabilityGraph : SimpleClassDiagrams",
- " initialize_PN : PetriNet_RAM",
- " refine_PN : ManualOperation",
- " reachability : ActionLanguage",
- " reachability_print : ReachabilityGraph_RAM",
- " pn_reachability : ProcessModel",
- " PetriNet_RAM : SimpleClassDiagrams",
- " ReachabilityGraph_RAM : SimpleClassDiagrams",
- " my_pn : PetriNet",
- " my_reachability : ReachabilityGraph",
- " __merged_PetriNet_RAM : SimpleClassDiagrams",
- " __merged_ReachabilityGraph_RAM : SimpleClassDiagrams",
- " __merged_refine_PN : SimpleClassDiagrams",
- " __merged_reachability : SimpleClassDiagrams",
- ]),
- "Ready for command...",
- ]))
- 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())
- transformation_add_MT_language(["CausalBlockDiagrams", "MM_rendered_graphical"], "CBD_RAM")
- instantiate("__merged_CBD_RAM", "Association", ("CausalBlockDiagrams/Block", "MM_rendered_graphical/Group"), ID="TracabilityLink")
- transformation_RAMify("__merged_CBD_RAM", "CBD_RAM")
- transformation_add_MT("CBD_RAM", ["CausalBlockDiagrams", "MM_rendered_graphical"], ["MM_rendered_graphical"], "render_graphical_CBD", open("models/CBD_mapper.mvc", 'r').read())
- model_render("my_CBD", "render_graphical_CBD")
|