|
@@ -1189,3 +1189,311 @@ class TestModelverseCore(unittest.TestCase):
|
|
step_and_print() * 10 +
|
|
step_and_print() * 10 +
|
|
[],
|
|
[],
|
|
mode))
|
|
mode))
|
|
|
|
+
|
|
|
|
+ def test_po_transform_add_MT_pn_AL_simulate(self):
|
|
|
|
+ self.transform_add_MT_pn_AL_simulate("PO")
|
|
|
|
+
|
|
|
|
+ def transform_add_MT_pn_AL_simulate(self, mode):
|
|
|
|
+ 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.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_AL",
|
|
|
|
+ "PetriNets_Runtime",
|
|
|
|
+ "",
|
|
|
|
+ "PetriNets_Runtime",
|
|
|
|
+ "",
|
|
|
|
+ "pn_step",
|
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_simulate.alc", "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",
|
|
|
|
+ ],
|
|
|
|
+ [ # 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",
|
|
|
|
+ " ActionLanguage : 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",
|
|
|
|
+ " ActionLanguage : 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",
|
|
|
|
+ " ActionLanguage : SimpleClassDiagrams",
|
|
|
|
+ " 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(['"p1" --> 1',
|
|
|
|
+ '"p2" --> 2',
|
|
|
|
+ '"p3" --> 3',
|
|
|
|
+ ]),
|
|
|
|
+ "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...",
|
|
|
|
+ # 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",
|
|
|
|
+ set(['"p1" --> 0',
|
|
|
|
+ '"p2" --> 1',
|
|
|
|
+ '"p3" --> 5',
|
|
|
|
+ ]),
|
|
|
|
+ "Transformation executed with result: True",
|
|
|
|
+ "Ready for command...",
|
|
|
|
+ ],
|
|
|
|
+ mode))
|