|
@@ -852,3 +852,315 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"Ready for command...",
|
|
|
],
|
|
|
mode))
|
|
|
+
|
|
|
+ def test_po_transform_add_MT_pn_simulate_larger(self):
|
|
|
+ self.transform_add_MT_pn_simulate_larger("PO")
|
|
|
+
|
|
|
+ def transform_add_MT_pn_simulate_larger(self, mode):
|
|
|
+ def step_and_print():
|
|
|
+ return [ \
|
|
|
+ # transformation_execute (pn_step)
|
|
|
+ "Which transformation do you want to execute?",
|
|
|
+ "Which model to bind for source element PetriNets_Runtime",
|
|
|
+ "Which model to create for target element PetriNets_Runtime",
|
|
|
+ "Transformation executed with result: True",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_execute (pn_runtime_to_design)
|
|
|
+ "Which transformation do you want to execute?",
|
|
|
+ "Which model to bind for source element PetriNets_Runtime",
|
|
|
+ "Which model to create for target element PetriNets",
|
|
|
+ "Transformation executed with result: True",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_execute (pn_print)
|
|
|
+ "Which transformation do you want to execute?",
|
|
|
+ "Which model to bind for source element PetriNets",
|
|
|
+ None,
|
|
|
+ None,
|
|
|
+ None,
|
|
|
+ "Transformation executed with result: True",
|
|
|
+ "Ready for command...",
|
|
|
+ ]
|
|
|
+
|
|
|
+ self.assertTrue(run_file(all_files,
|
|
|
+ [ "root", "root", "root",
|
|
|
+ "model_add",
|
|
|
+ "SimpleClassDiagrams",
|
|
|
+ "PetriNets",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_design.mvc", "r").read()) + [
|
|
|
+ "model_add",
|
|
|
+ "SimpleClassDiagrams",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_runtime.mvc", "r").read()) + [
|
|
|
+ "model_add",
|
|
|
+ "PetriNets",
|
|
|
+ "my_pn",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_design_model_larger.mvc", "r").read()) + [
|
|
|
+ "model_list",
|
|
|
+ "transformation_add_MT_language",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ "PetriNets",
|
|
|
+ "",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "model_list",
|
|
|
+ "model_modify",
|
|
|
+ "__merged_PetriNets_RAM",
|
|
|
+ "instantiate",
|
|
|
+ "Association",
|
|
|
+ "D2R_PlaceLink",
|
|
|
+ "PetriNets/Place",
|
|
|
+ "PetriNets_Runtime/Place",
|
|
|
+ "instantiate",
|
|
|
+ "Association",
|
|
|
+ "D2R_TransitionLink",
|
|
|
+ "PetriNets/Transition",
|
|
|
+ "PetriNets_Runtime/Transition",
|
|
|
+ "instantiate",
|
|
|
+ "Association",
|
|
|
+ "R2D_PlaceLink",
|
|
|
+ "PetriNets_Runtime/Place",
|
|
|
+ "PetriNets/Place",
|
|
|
+ "instantiate",
|
|
|
+ "Association",
|
|
|
+ "R2D_TransitionLink",
|
|
|
+ "PetriNets_Runtime/Transition",
|
|
|
+ "PetriNets/Transition",
|
|
|
+ "exit",
|
|
|
+ "transformation_RAMify",
|
|
|
+ "__merged_PetriNets_RAM",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "transformation_add_MT",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "PetriNets",
|
|
|
+ "",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ "",
|
|
|
+ "pn_design_to_runtime",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_design_to_runtime.mvc", "r").read()) + [
|
|
|
+ "transformation_add_MT",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ "",
|
|
|
+ "PetriNets",
|
|
|
+ "",
|
|
|
+ "pn_runtime_to_design",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_runtime_to_design.mvc", "r").read()) + [
|
|
|
+ "transformation_add_MT",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ "",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ "",
|
|
|
+ "pn_step",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_simulate.mvc", "r").read()) + [
|
|
|
+ "transformation_add_MT",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "PetriNets",
|
|
|
+ "",
|
|
|
+ "",
|
|
|
+ "pn_print",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_print.mvc", "r").read()) + [
|
|
|
+ "model_list",
|
|
|
+ "transformation_list",
|
|
|
+ "transformation_execute",
|
|
|
+ "pn_print",
|
|
|
+ "my_pn",
|
|
|
+ "transformation_execute",
|
|
|
+ "pn_design_to_runtime",
|
|
|
+ "my_pn",
|
|
|
+ "my_pn_runtime", ] + [
|
|
|
+ "transformation_execute",
|
|
|
+ "pn_step",
|
|
|
+ "my_pn_runtime",
|
|
|
+ "my_pn_runtime",
|
|
|
+ "transformation_execute",
|
|
|
+ "pn_runtime_to_design",
|
|
|
+ "my_pn_runtime",
|
|
|
+ "my_pn",
|
|
|
+ "transformation_execute",
|
|
|
+ "pn_print",
|
|
|
+ "my_pn",
|
|
|
+ ] * 10 + [
|
|
|
+ ],
|
|
|
+ [ # 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_add
|
|
|
+ "Creating new model!",
|
|
|
+ "Model type?",
|
|
|
+ "Model name?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Model upload success!",
|
|
|
+ "Ready for command...",
|
|
|
+ # model_list
|
|
|
+ set([" SimpleClassDiagrams : SimpleClassDiagrams",
|
|
|
+ " CoreFormalism : SimpleClassDiagrams",
|
|
|
+ " PetriNets : SimpleClassDiagrams",
|
|
|
+ " my_pn : PetriNets",
|
|
|
+ " PetriNets_Runtime : SimpleClassDiagrams",
|
|
|
+ " core : CoreFormalism"]),
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_add_MT_language
|
|
|
+ "Formalisms to include (terminate with empty string)?",
|
|
|
+ "Name of the RAMified transformation metamodel?",
|
|
|
+ "Ready for command...",
|
|
|
+ # model_list
|
|
|
+ set([" SimpleClassDiagrams : SimpleClassDiagrams",
|
|
|
+ " CoreFormalism : SimpleClassDiagrams",
|
|
|
+ " PetriNets_Runtime : SimpleClassDiagrams",
|
|
|
+ " PetriNets : SimpleClassDiagrams",
|
|
|
+ " __merged_PetriNets_RAM : SimpleClassDiagrams",
|
|
|
+ " PetriNets_RAM : SimpleClassDiagrams",
|
|
|
+ " my_pn : PetriNets",
|
|
|
+ " core : CoreFormalism"]),
|
|
|
+ "Ready for command...",
|
|
|
+ # model_modify
|
|
|
+ "Which model do you want to modify?",
|
|
|
+ "Model loaded, ready for commands!",
|
|
|
+ "Use 'help' command for a list of possible commands",
|
|
|
+ "Please give your command.",
|
|
|
+ # instantiate 1
|
|
|
+ "Type to instantiate?",
|
|
|
+ "Name of new element?",
|
|
|
+ "Source name?",
|
|
|
+ "Destination name?",
|
|
|
+ "Instantiation successful!",
|
|
|
+ "Please give your command.",
|
|
|
+ # instantiate 2
|
|
|
+ "Type to instantiate?",
|
|
|
+ "Name of new element?",
|
|
|
+ "Source name?",
|
|
|
+ "Destination name?",
|
|
|
+ "Instantiation successful!",
|
|
|
+ "Please give your command.",
|
|
|
+ # instantiate 3
|
|
|
+ "Type to instantiate?",
|
|
|
+ "Name of new element?",
|
|
|
+ "Source name?",
|
|
|
+ "Destination name?",
|
|
|
+ "Instantiation successful!",
|
|
|
+ "Please give your command.",
|
|
|
+ # instantiate 4
|
|
|
+ "Type to instantiate?",
|
|
|
+ "Name of new element?",
|
|
|
+ "Source name?",
|
|
|
+ "Destination name?",
|
|
|
+ "Instantiation successful!",
|
|
|
+ "Please give your command.",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_RAMify
|
|
|
+ "Which metamodel do you want to RAMify?",
|
|
|
+ "Where do you want to store the RAMified metamodel?",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_add_MT
|
|
|
+ "RAMified metamodel to use?",
|
|
|
+ "Supported metamodels:",
|
|
|
+ set([" PetriNets",
|
|
|
+ " PetriNets_Runtime",
|
|
|
+ ]),
|
|
|
+ "",
|
|
|
+ "Which ones do you want to use as source (empty string to finish)?",
|
|
|
+ "Model added as source",
|
|
|
+ "Which ones do you want to use as target (empty string to finish)?",
|
|
|
+ "Model added as target",
|
|
|
+ "Name of new transformation?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_add_MT
|
|
|
+ "RAMified metamodel to use?",
|
|
|
+ "Supported metamodels:",
|
|
|
+ set([" PetriNets",
|
|
|
+ " PetriNets_Runtime",
|
|
|
+ ]),
|
|
|
+ "",
|
|
|
+ "Which ones do you want to use as source (empty string to finish)?",
|
|
|
+ "Model added as source",
|
|
|
+ "Which ones do you want to use as target (empty string to finish)?",
|
|
|
+ "Model added as target",
|
|
|
+ "Name of new transformation?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_add_MT
|
|
|
+ "RAMified metamodel to use?",
|
|
|
+ "Supported metamodels:",
|
|
|
+ set([" PetriNets",
|
|
|
+ " PetriNets_Runtime",
|
|
|
+ ]),
|
|
|
+ "",
|
|
|
+ "Which ones do you want to use as source (empty string to finish)?",
|
|
|
+ "Model added as source",
|
|
|
+ "Which ones do you want to use as target (empty string to finish)?",
|
|
|
+ "Model added as target",
|
|
|
+ "Name of new transformation?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_add_MT
|
|
|
+ "RAMified metamodel to use?",
|
|
|
+ "Supported metamodels:",
|
|
|
+ set([" PetriNets",
|
|
|
+ " PetriNets_Runtime",
|
|
|
+ ]),
|
|
|
+ "",
|
|
|
+ "Which ones do you want to use as source (empty string to finish)?",
|
|
|
+ "Model added as source",
|
|
|
+ "Which ones do you want to use as target (empty string to finish)?",
|
|
|
+ "Name of new transformation?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Ready for command...",
|
|
|
+ # model_list
|
|
|
+ set([" SimpleClassDiagrams : SimpleClassDiagrams",
|
|
|
+ " CoreFormalism : SimpleClassDiagrams",
|
|
|
+ " PetriNets_Runtime : SimpleClassDiagrams",
|
|
|
+ " PetriNets : SimpleClassDiagrams",
|
|
|
+ " pn_print : PetriNets_RAM",
|
|
|
+ " pn_design_to_runtime : PetriNets_RAM",
|
|
|
+ " pn_runtime_to_design : PetriNets_RAM",
|
|
|
+ " pn_step : PetriNets_RAM",
|
|
|
+ " __merged_PetriNets_RAM : SimpleClassDiagrams",
|
|
|
+ " PetriNets_RAM : SimpleClassDiagrams",
|
|
|
+ " my_pn : PetriNets",
|
|
|
+ " core : CoreFormalism"]),
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_list
|
|
|
+ set(["[ModelTransformation] pn_print : PetriNets_RAM",
|
|
|
+ "[ModelTransformation] pn_design_to_runtime : PetriNets_RAM",
|
|
|
+ "[ModelTransformation] pn_runtime_to_design : PetriNets_RAM",
|
|
|
+ "[ModelTransformation] pn_step : PetriNets_RAM"]),
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_execute (pn_print)
|
|
|
+ "Which transformation do you want to execute?",
|
|
|
+ "Which model to bind for source element PetriNets",
|
|
|
+ set(['"lock_available" --> 1',
|
|
|
+ '"critical_section_1" --> 0',
|
|
|
+ '"critical_section_2" --> 0',
|
|
|
+ ]),
|
|
|
+ "Transformation executed with result: True",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_execute (pn_design_to_runtime)
|
|
|
+ "Which transformation do you want to execute?",
|
|
|
+ "Which model to bind for source element PetriNets",
|
|
|
+ "Which model to create for target element PetriNets_Runtime",
|
|
|
+ "Transformation executed with result: True",
|
|
|
+ "Ready for command...",
|
|
|
+ ] + \
|
|
|
+ step_and_print() * 10 +
|
|
|
+ [],
|
|
|
+ mode))
|