|
@@ -8,12 +8,12 @@ set_inheritance = [
|
|
|
]
|
|
|
|
|
|
do_instantiate_simple = [
|
|
|
- '"new"', '"PetriNets"', '"abc"',
|
|
|
- '"instantiate"', '"Transition"', '"t1"',
|
|
|
- '"instantiate"', '"Place"', '"p1"', '"attr_add"', '"p1"', '"tokens"', '5',
|
|
|
- '"instantiate"', '"Place"', '"p2"', '"attr_add"', '"p2"', '"tokens"', '0',
|
|
|
- '"instantiate"', '"P2T"', '"p2t"', '"p1"', '"t1"', '"attr_add"', '"p2t"', '"weight"', '2',
|
|
|
- '"instantiate"', '"T2P"', '"t2p"', '"t1"', '"p2"', '"attr_add"', '"t2p"', '"weight"', '1']
|
|
|
+ "new", "PetriNets", "abc",
|
|
|
+ "instantiate", "Transition", "t1",
|
|
|
+ "instantiate", "Place", "p1", "attr_add", "p1", "tokens", 5,
|
|
|
+ "instantiate", "Place", "p2", "attr_add", "p2", "tokens", 0,
|
|
|
+ "instantiate", "P2T", "p2t", "p1", "t1", "attr_add", "p2t", "weight", 2,
|
|
|
+ "instantiate", "T2P", "t2p", "t1", "p2", "attr_add", "t2p", "weight", 1]
|
|
|
|
|
|
instantiate_node = ["Type to instantiate?",
|
|
|
"Name of new element?",
|
|
@@ -145,17 +145,17 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_manage(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- ['"list"',
|
|
|
- '"new"', '"PetriNets"', '"abc"', '"exit"',
|
|
|
- '"list"',
|
|
|
- '"new"', '"PetriNets"', '"def"', '"exit"',
|
|
|
- '"list"',
|
|
|
- '"delete"', '"def"',
|
|
|
- '"list"',
|
|
|
- '"rename"', '"abc"', '"a"',
|
|
|
- '"list"',
|
|
|
- '"delete"', '"a"',
|
|
|
- '"list"',
|
|
|
+ ["list",
|
|
|
+ "new", "PetriNets", "abc", "exit",
|
|
|
+ "list",
|
|
|
+ "new", "PetriNets", "def", "exit",
|
|
|
+ "list",
|
|
|
+ "delete", "def",
|
|
|
+ "list",
|
|
|
+ "rename", "abc", "a",
|
|
|
+ "list",
|
|
|
+ "delete", "a",
|
|
|
+ "list",
|
|
|
],
|
|
|
init + \
|
|
|
list_menu([]) + prompt + \
|
|
@@ -174,7 +174,7 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_new_reload(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- ['"new"', '"PetriNets"', '"abc"', '"exit"', '"load"', '"abc"'],
|
|
|
+ ["new", "PetriNets", "abc", "exit", "load", "abc"],
|
|
|
init + new + loaded + prompt + load + loaded,
|
|
|
mode))
|
|
|
|
|
@@ -186,14 +186,14 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_instantiate_place(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- ['"new"', '"PetriNets"', '"abc"',
|
|
|
- '"instantiate"', '"Place"', '"p1"',
|
|
|
- '"attr_add"', '"p1"', '"tokens"', '5',
|
|
|
- '"list"',
|
|
|
- '"read"', '"p1"',
|
|
|
- '"instantiate"', '"Transition"', '"t1"',
|
|
|
- '"list"',
|
|
|
- '"read"', '"t1"'],
|
|
|
+ ["new", "PetriNets", "abc",
|
|
|
+ "instantiate", "Place", "p1",
|
|
|
+ "attr_add", "p1", "tokens", 5,
|
|
|
+ "list",
|
|
|
+ "read", "p1",
|
|
|
+ "instantiate", "Transition", "t1",
|
|
|
+ "list",
|
|
|
+ "read", "t1"],
|
|
|
init + new + loaded + \
|
|
|
instantiate_node + prompt + \
|
|
|
attr_add + prompt + \
|
|
@@ -213,11 +213,11 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
def pn_interface_instantiate_arcs(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
do_instantiate_simple + [
|
|
|
- '"read"', '"p1"',
|
|
|
- '"read"', '"p2"',
|
|
|
- '"read"', '"t1"',
|
|
|
- '"read"', '"p2t"',
|
|
|
- '"read"', '"t2p"',
|
|
|
+ "read", "p1",
|
|
|
+ "read", "p2",
|
|
|
+ "read", "t1",
|
|
|
+ "read", "p2t",
|
|
|
+ "read", "t2p",
|
|
|
],
|
|
|
did_instantiate_simple + \
|
|
|
read_node("p1", "Place", [], [("tokens", "Natural", 5)]) + prompt + \
|
|
@@ -235,7 +235,7 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_verify_OK(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- do_instantiate_simple + ['"verify"'],
|
|
|
+ do_instantiate_simple + ["verify"],
|
|
|
did_instantiate_simple + ["OK"], mode))
|
|
|
|
|
|
def test_po_pn_interface_verify_fail_tokens(self):
|
|
@@ -246,7 +246,7 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_verify_fail_tokens(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- do_instantiate_simple + ['"modify"', '"p1"', '"tokens"', '-5', '"verify"'],
|
|
|
+ do_instantiate_simple + ["modify", "p1", "tokens", -5, "verify"],
|
|
|
did_instantiate_simple + modify + prompt + verify_fail_tokens + prompt, mode))
|
|
|
|
|
|
def test_po_pn_interface_verify_fail_weight(self):
|
|
@@ -257,7 +257,7 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_verify_fail_weight(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- do_instantiate_simple + ['"modify"', '"p2t"', '"weight"', '-2', '"verify"'],
|
|
|
+ do_instantiate_simple + ["modify", "p2t", "weight", -2, "verify"],
|
|
|
did_instantiate_simple + modify + prompt + verify_fail_weight + prompt, mode))
|
|
|
|
|
|
def test_po_pn_interface_verify_fail_structure(self):
|
|
@@ -268,10 +268,10 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_verify_fail_structure(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- ['"new"', '"PetriNets"', '"abc"',
|
|
|
- '"instantiate"', '"Transition"', '"t1"',
|
|
|
- '"instantiate"', '"Place"', '"p1"', '"attr_add"', '"p1"', '"tokens"', '5',
|
|
|
- '"instantiate"', '"P2T"', '"p2t"', '"t1"', '"p1"', '"attr_add"', '"p2t"', '"weight"', '2', '"verify"'],
|
|
|
+ ["new", "PetriNets", "abc",
|
|
|
+ "instantiate", "Transition", "t1",
|
|
|
+ "instantiate", "Place", "p1", "attr_add", "p1", "tokens", 5,
|
|
|
+ "instantiate", "P2T", "p2t", "t1", "p1", "attr_add", "p2t", "weight", 2, "verify"],
|
|
|
init + new + loaded + \
|
|
|
instantiate_node + prompt + \
|
|
|
instantiate_node + prompt + attr_add + prompt + \
|
|
@@ -287,7 +287,7 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_types(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- ['"new"', '"PetriNets"', '"abc"', '"types"'],
|
|
|
+ ["new", "PetriNets", "abc", "types"],
|
|
|
init + new + loaded + list_types([("Place", "Class"), ("Transition", "Class"), ("P2T", "Association"), ("T2P", "Association"), ("Natural", "Class")]),
|
|
|
mode))
|
|
|
|
|
@@ -299,10 +299,10 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_modify_place(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- ['"new"', '"PetriNets"', '"abc"',
|
|
|
- '"instantiate"', '"Place"', '"p1"', '"attr_add"', '"p1"', '"tokens"', '5',
|
|
|
- '"read"', '"p1"',
|
|
|
- '"modify"', '"p1"', '"tokens"', '1', '"read"', '"p1"'],
|
|
|
+ ["new", "PetriNets", "abc",
|
|
|
+ "instantiate", "Place", "p1", "attr_add", "p1", "tokens", 5,
|
|
|
+ "read", "p1",
|
|
|
+ "modify", "p1", "tokens", 1, "read", "p1"],
|
|
|
init + new + loaded + \
|
|
|
instantiate_node + prompt + attr_add + prompt + \
|
|
|
read_node("p1", "Place", [], [("tokens", "Natural", 5)]) + prompt + \
|
|
@@ -318,7 +318,7 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_verify_fail_attr_lower_cardinality(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- do_instantiate_simple + ['"instantiate"', '"Place"', '"p999"', '"verify"'],
|
|
|
+ do_instantiate_simple + ["instantiate", "Place", "p999", "verify"],
|
|
|
did_instantiate_simple + instantiate_node + prompt + ["Lower cardinality violation for outgoing edge of type Place_tokens at p999"] + prompt,
|
|
|
mode))
|
|
|
|
|
@@ -330,7 +330,7 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_verify_fail_attr_upper_cardinality(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- do_instantiate_simple + ['"attr_add"', '"p1"', '"tokens"', '5', '"verify"'],
|
|
|
+ do_instantiate_simple + ["attr_add", "p1", "tokens", 5, "verify"],
|
|
|
did_instantiate_simple + attr_add + prompt + ["Upper cardinality violation for outgoing edge of type Place_tokens at p1"] + prompt,
|
|
|
mode))
|
|
|
|
|
@@ -342,12 +342,12 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_verify_natural(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- ['"new"', '"PetriNets"', '"abc"',
|
|
|
- '"instantiate"', '"Place"', '"p1"',
|
|
|
- '"attr_add"', '"p1"', '"tokens"', '-5',
|
|
|
- '"attr_del"', '"p1"', '"tokens"',
|
|
|
- '"attr_add"', '"p1"', '"tokens"', '4',
|
|
|
- '"verify"'],
|
|
|
+ ["new", "PetriNets", "abc",
|
|
|
+ "instantiate", "Place", "p1",
|
|
|
+ "attr_add", "p1", "tokens", -5,
|
|
|
+ "attr_del", "p1", "tokens",
|
|
|
+ "attr_add", "p1", "tokens", 4,
|
|
|
+ "verify"],
|
|
|
init + new + loaded + \
|
|
|
instantiate_node + prompt + \
|
|
|
attr_add + prompt + \
|
|
@@ -364,7 +364,7 @@ class TestPetrinetInterface(unittest.TestCase):
|
|
|
|
|
|
def pn_interface_verify_PN_OK(self, mode):
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- ['"load"', '"PetriNets"', '"verify"'],
|
|
|
+ ["load", "PetriNets", "verify"],
|
|
|
init + load + loaded + ["OK"], mode))
|
|
|
|
|
|
def test_po_rpgame(self):
|
|
@@ -440,68 +440,68 @@ Element function constraint(model : Element, name : String):
|
|
|
print(constructors)
|
|
|
|
|
|
self.assertTrue(run_file(all_files,
|
|
|
- ['"new"', '"SimpleClassDiagrams"', '"RPGame"',
|
|
|
- '"set_inheritance"', '"Inheritance"',
|
|
|
- '"instantiate"', '"Class"', '"Scene"',
|
|
|
- '"instantiate"', '"Class"', '"Tile"',
|
|
|
- '"instantiate"', '"Class"', '"Item"',
|
|
|
- '"instantiate"', '"Class"', '"Goal"',
|
|
|
- '"instantiate"', '"Class"', '"Character"',
|
|
|
- '"instantiate"', '"Class"', '"Hero"',
|
|
|
- '"instantiate"', '"Association"', '"scene_has_tiles"', '"Scene"', '"Tile"',
|
|
|
- '"instantiate"', '"Association"', '"tile_left"', '"Tile"', '"Tile"',
|
|
|
- '"instantiate"', '"Association"', '"tile_right"', '"Tile"', '"Tile"',
|
|
|
- '"instantiate"', '"Association"', '"tile_top"', '"Tile"', '"Tile"',
|
|
|
- '"instantiate"', '"Association"', '"tile_bottom"', '"Tile"', '"Tile"',
|
|
|
- '"instantiate"', '"Association"', '"character_on"', '"Character"', '"Tile"',
|
|
|
- '"instantiate"', '"Association"', '"item_on"', '"Item"', '"Tile"',
|
|
|
- '"instantiate"', '"Inheritance"', '"hero_is_character"', '"Hero"', '"Character"',
|
|
|
- '"instantiate"', '"Inheritance"', '"goal_is_item"', '"Goal"', '"Item"',
|
|
|
- '"attr_add"', '"Scene"', '"lower_cardinality"', '1',
|
|
|
- '"attr_add"', '"Scene"', '"upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"Goal"', '"lower_cardinality"', '1',
|
|
|
- '"attr_add"', '"scene_has_tiles"', '"source_lower_cardinality"', '1',
|
|
|
- '"attr_add"', '"scene_has_tiles"', '"source_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"scene_has_tiles"', '"target_lower_cardinality"', '1',
|
|
|
- '"attr_add"', '"item_on"', '"target_lower_cardinality"', '1',
|
|
|
- '"attr_add"', '"item_on"', '"target_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"item_on"', '"source_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"character_on"', '"target_lower_cardinality"', '1',
|
|
|
- '"attr_add"', '"character_on"', '"target_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"character_on"', '"source_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"tile_left"', '"source_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"tile_left"', '"target_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"tile_right"', '"source_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"tile_right"', '"target_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"tile_top"', '"source_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"tile_top"', '"target_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"tile_bottom"', '"source_upper_cardinality"', '1',
|
|
|
- '"attr_add"', '"tile_bottom"', '"target_upper_cardinality"', '1',
|
|
|
- '"constrain"', '"Tile"',
|
|
|
- ] + constructors + ['"verify"'] + ['"exit"'] + [
|
|
|
- '"new"', '"RPGame"', '"my_game"',
|
|
|
- '"instantiate"', '"Scene"', '"scene"',
|
|
|
- '"instantiate"', '"Hero"', '"Link"',
|
|
|
- '"instantiate"', '"Goal"', '"goal"',
|
|
|
- '"instantiate"', '"Tile"', '"tile_00"',
|
|
|
- '"instantiate"', '"Tile"', '"tile_01"',
|
|
|
- '"instantiate"', '"Tile"', '"tile_10"',
|
|
|
- '"instantiate"', '"Tile"', '"tile_11"',
|
|
|
- '"instantiate"', '"scene_has_tiles"', '""', '"scene"', '"tile_00"',
|
|
|
- '"instantiate"', '"scene_has_tiles"', '""', '"scene"', '"tile_01"',
|
|
|
- '"instantiate"', '"scene_has_tiles"', '""', '"scene"', '"tile_10"',
|
|
|
- '"instantiate"', '"scene_has_tiles"', '""', '"scene"', '"tile_11"',
|
|
|
- '"instantiate"', '"character_on"', '""', '"Link"', '"tile_00"',
|
|
|
- '"instantiate"', '"item_on"', '""', '"goal"', '"tile_11"',
|
|
|
- '"instantiate"', '"tile_left"', '""', '"tile_01"', '"tile_00"',
|
|
|
- '"instantiate"', '"tile_left"', '""', '"tile_11"', '"tile_10"',
|
|
|
- '"instantiate"', '"tile_right"', '""', '"tile_00"', '"tile_01"',
|
|
|
- '"instantiate"', '"tile_right"', '""', '"tile_10"', '"tile_11"',
|
|
|
- '"instantiate"', '"tile_top"', '""', '"tile_10"', '"tile_00"',
|
|
|
- '"instantiate"', '"tile_top"', '""', '"tile_11"', '"tile_01"',
|
|
|
- '"instantiate"', '"tile_bottom"', '""', '"tile_00"', '"tile_10"',
|
|
|
- '"instantiate"', '"tile_bottom"', '""', '"tile_01"', '"tile_11"',
|
|
|
- '"verify"',
|
|
|
+ ["new", "SimpleClassDiagrams", "RPGame",
|
|
|
+ "set_inheritance", "Inheritance",
|
|
|
+ "instantiate", "Class", "Scene",
|
|
|
+ "instantiate", "Class", "Tile",
|
|
|
+ "instantiate", "Class", "Item",
|
|
|
+ "instantiate", "Class", "Goal",
|
|
|
+ "instantiate", "Class", "Character",
|
|
|
+ "instantiate", "Class", "Hero",
|
|
|
+ "instantiate", "Association", "scene_has_tiles", "Scene", "Tile",
|
|
|
+ "instantiate", "Association", "tile_left", "Tile", "Tile",
|
|
|
+ "instantiate", "Association", "tile_right", "Tile", "Tile",
|
|
|
+ "instantiate", "Association", "tile_top", "Tile", "Tile",
|
|
|
+ "instantiate", "Association", "tile_bottom", "Tile", "Tile",
|
|
|
+ "instantiate", "Association", "character_on", "Character", "Tile",
|
|
|
+ "instantiate", "Association", "item_on", "Item", "Tile",
|
|
|
+ "instantiate", "Inheritance", "hero_is_character", "Hero", "Character",
|
|
|
+ "instantiate", "Inheritance", "goal_is_item", "Goal", "Item",
|
|
|
+ "attr_add", "Scene", "lower_cardinality", 1,
|
|
|
+ "attr_add", "Scene", "upper_cardinality", 1,
|
|
|
+ "attr_add", "Goal", "lower_cardinality", 1,
|
|
|
+ "attr_add", "scene_has_tiles", "source_lower_cardinality", 1,
|
|
|
+ "attr_add", "scene_has_tiles", "source_upper_cardinality", 1,
|
|
|
+ "attr_add", "scene_has_tiles", "target_lower_cardinality", 1,
|
|
|
+ "attr_add", "item_on", "target_lower_cardinality", 1,
|
|
|
+ "attr_add", "item_on", "target_upper_cardinality", 1,
|
|
|
+ "attr_add", "item_on", "source_upper_cardinality", 1,
|
|
|
+ "attr_add", "character_on", "target_lower_cardinality", 1,
|
|
|
+ "attr_add", "character_on", "target_upper_cardinality", 1,
|
|
|
+ "attr_add", "character_on", "source_upper_cardinality", 1,
|
|
|
+ "attr_add", "tile_left", "source_upper_cardinality", 1,
|
|
|
+ "attr_add", "tile_left", "target_upper_cardinality", 1,
|
|
|
+ "attr_add", "tile_right", "source_upper_cardinality", 1,
|
|
|
+ "attr_add", "tile_right", "target_upper_cardinality", 1,
|
|
|
+ "attr_add", "tile_top", "source_upper_cardinality", 1,
|
|
|
+ "attr_add", "tile_top", "target_upper_cardinality", 1,
|
|
|
+ "attr_add", "tile_bottom", "source_upper_cardinality", 1,
|
|
|
+ "attr_add", "tile_bottom", "target_upper_cardinality", 1,
|
|
|
+ "constrain", "Tile",
|
|
|
+ ] + constructors + ["verify"] + ["exit"] + [
|
|
|
+ "new", "RPGame", "my_game",
|
|
|
+ "instantiate", "Scene", "scene",
|
|
|
+ "instantiate", "Hero", "Link",
|
|
|
+ "instantiate", "Goal", "goal",
|
|
|
+ "instantiate", "Tile", "tile_00",
|
|
|
+ "instantiate", "Tile", "tile_01",
|
|
|
+ "instantiate", "Tile", "tile_10",
|
|
|
+ "instantiate", "Tile", "tile_11",
|
|
|
+ "instantiate", "scene_has_tiles", "", "scene", "tile_00",
|
|
|
+ "instantiate", "scene_has_tiles", "", "scene", "tile_01",
|
|
|
+ "instantiate", "scene_has_tiles", "", "scene", "tile_10",
|
|
|
+ "instantiate", "scene_has_tiles", "", "scene", "tile_11",
|
|
|
+ "instantiate", "character_on", "", "Link", "tile_00",
|
|
|
+ "instantiate", "item_on", "", "goal", "tile_11",
|
|
|
+ "instantiate", "tile_left", "", "tile_01", "tile_00",
|
|
|
+ "instantiate", "tile_left", "", "tile_11", "tile_10",
|
|
|
+ "instantiate", "tile_right", "", "tile_00", "tile_01",
|
|
|
+ "instantiate", "tile_right", "", "tile_10", "tile_11",
|
|
|
+ "instantiate", "tile_top", "", "tile_10", "tile_00",
|
|
|
+ "instantiate", "tile_top", "", "tile_11", "tile_01",
|
|
|
+ "instantiate", "tile_bottom", "", "tile_00", "tile_10",
|
|
|
+ "instantiate", "tile_bottom", "", "tile_01", "tile_11",
|
|
|
+ "verify",
|
|
|
],
|
|
|
init + new + loaded + \
|
|
|
set_inheritance + prompt + \
|