Ver código fonte

Even more fixes

Yentl Van Tendeloo 8 anos atrás
pai
commit
20bef7497e
1 arquivos alterados com 74 adições e 65 exclusões
  1. 74 65
      integration/test_constructors_models.py

+ 74 - 65
integration/test_constructors_models.py

@@ -68,6 +68,7 @@ bottom = [
 action_language = [
         "model",
         "instantiate_model", "2", "1",
+        "instantiate_node", "2", "Class", "Element",
         "instantiate_node", "2", "Class", "Action",
         "instantiate_node", "2", "Class", "Statement",
         "instantiate_node", "2", "Class", "Expression",
@@ -111,55 +112,68 @@ action_language = [
         "instantiate_link", "2", "Inheritance", "", "access", "Expression",
         "instantiate_link", "2", "Inheritance", "", "constant", "Expression",
         "instantiate_link", "2", "Inheritance", "", "input", "Expression",
+        "instantiate_link", "2", "Inheritance", "", "Natural", "Element",
+        "instantiate_link", "2", "Inheritance", "", "String", "Element",
+        "instantiate_link", "2", "Inheritance", "", "Boolean", "Element",
 
-        "model_define_attribute", "2", "Statement", "next", True, "Statement",
-        "model_define_attribute", "2", "if", "cond", False, "Expression",
-        "model_define_attribute", "2", "if", "then", False, "Statement",
-        "model_define_attribute", "2", "if", "else", True, "Statement",
-        "model_define_attribute", "2", "while", "cond", False, "Expression",
-        "model_define_attribute", "2", "while", "body", False, "Statement",
-        "model_define_attribute", "2", "assign", "var", False, "resolve",
-        "model_define_attribute", "2", "assign", "value", False, "Expression",
-        "model_define_attribute", "2", "break", "while", False, "while",
-        "model_define_attribute", "2", "continue", "while", False, "while",
-        "model_define_attribute", "2", "return", "value", True, "Expression",
-        "model_define_attribute", "2", "resolve", "var", False, "PrimitiveType",
-        "model_define_attribute", "2", "access", "var", False, "resolve",
-        "model_define_attribute", "2", "constant", "node", False, "PrimitiveType",
-        "model_define_attribute", "2", "output", "node", False, "Expression",
-        "model_define_attribute", "2", "global", "var", False, "String",
-        "model_define_attribute", "2", "param", "name", False, "String",
-        "model_define_attribute", "2", "param", "value", False, "Expression",
-        "model_define_attribute", "2", "param", "next_param", True, "param",
-        "model_define_attribute", "2", "funcdef", "body", False, "Statement",
-        "model_define_attribute", "2", "call", "func", False, "Expression",
-        "model_define_attribute", "2", "call", "params", True, "param",
-        "model_define_attribute", "2", "call", "last_param", True, "param",
-
-        # TODO these Strings are actually supposed to be more restricted!
-        "model_define_attribute", "2", "Statement_next", "name", False, "String",
-        "model_define_attribute", "2", "if_cond", "name", False, "String",
-        "model_define_attribute", "2", "if_then", "name", False, "String",
-        "model_define_attribute", "2", "if_else", "name", False, "String",
-        "model_define_attribute", "2", "while_cond", "name", False, "String",
-        "model_define_attribute", "2", "while_body", "name", False, "String",
-        "model_define_attribute", "2", "assign_var", "name", False, "String",
-        "model_define_attribute", "2", "assign_value", "name", False, "String",
-        "model_define_attribute", "2", "break_while", "name", False, "String",
-        "model_define_attribute", "2", "continue_while", "name", False, "String",
-        "model_define_attribute", "2", "return_value", "name", False, "String",
-        "model_define_attribute", "2", "resolve_var", "name", False, "String",
-        "model_define_attribute", "2", "access_var", "name", False, "String",
-        "model_define_attribute", "2", "constant_node", "name", False, "String",
-        "model_define_attribute", "2", "output_node", "name", False, "String",
-        "model_define_attribute", "2", "global_var", "name", False, "String",
-        "model_define_attribute", "2", "param_name", "name", False, "String",
-        "model_define_attribute", "2", "param_value", "name", False, "String",
-        "model_define_attribute", "2", "param_next_param", "name", False, "String",
-        "model_define_attribute", "2", "funcdef_body", "name", False, "String",
-        "model_define_attribute", "2", "call_func", "name", False, "String",
-        "model_define_attribute", "2", "call_params", "name", False, "String",
-        "model_define_attribute", "2", "call_last_param", "name", False, "String",
+        "instantiate_link", "2", "Association", "dict_link", "Any", "Any",
+        "model_define_attribute", "2", "dict_link", "name", False, "String",
+        "instantiate_attribute", "2", "dict_link", "target_upper_cardinality", 1,
+
+        "instantiate_link", "2", "Association", "Statement_next", "Statement", "Statement",
+        "instantiate_link", "2", "Association", "if_cond", "if", "Expression",
+        "instantiate_link", "2", "Association", "if_then", "if", "Statement",
+        "instantiate_link", "2", "Association", "if_else", "if", "Statement",
+        "instantiate_link", "2", "Association", "while_cond", "while", "Expression",
+        "instantiate_link", "2", "Association", "while_body", "while", "Statement",
+        "instantiate_link", "2", "Association", "assign_var", "assign", "resolve",
+        "instantiate_link", "2", "Association", "assign_value", "assign", "Expression",
+        "instantiate_link", "2", "Association", "break_while", "break", "while",
+        "instantiate_link", "2", "Association", "continue_while", "continue", "while",
+        "instantiate_link", "2", "Association", "return_value", "return", "Expression",
+        "instantiate_link", "2", "Association", "resolve_var", "resolve", "Element",
+        "instantiate_link", "2", "Association", "access_var", "access", "resolve",
+        "instantiate_link", "2", "Association", "constant_node", "constant", "Element",
+        "instantiate_link", "2", "Association", "output_node", "output", "Expression",
+        "instantiate_link", "2", "Association", "global_var", "global", "String",
+        "instantiate_link", "2", "Association", "param_name", "param", "String",
+        "instantiate_link", "2", "Association", "param_value", "param", "Expression",
+        "instantiate_link", "2", "Association", "param_next_param", "param", "param",
+        "instantiate_link", "2", "Association", "funcdef_body", "funcdef", "Statement",
+        "instantiate_link", "2", "Association", "call_func", "call", "Expression",
+        "instantiate_link", "2", "Association", "call_params", "call", "param",
+        "instantiate_link", "2", "Association", "call_last_param", "call", "param",
+
+        "instantiate_link", "2", "Inheritance", "", "Statement_next", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "if_cond", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "if_then", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "if_else", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "while_cond", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "while_body", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "assign_var", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "assign_value", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "break_while", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "continue_while", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "return_value", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "resolve_var", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "access_var", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "constant_node", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "output_node", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "global_var", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "param_name", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "param_value", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "param_next_param", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "funcdef_body", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "call_func", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "call_params", "dict_link",
+        "instantiate_link", "2", "Inheritance", "", "call_last_param", "dict_link",
+
+        "instantiate_attribute", "2", "Statement_next", "target_lower_cardinality", 1,
+        "instantiate_attribute", "2", "if_else", "target_lower_cardinality", 1,
+        "instantiate_attribute", "2", "return_value", "target_lower_cardinality", 1,
+        "instantiate_attribute", "2", "param_next_param", "target_lower_cardinality", 1,
+        "instantiate_attribute", "2", "call_params", "target_lower_cardinality", 1,
+        "instantiate_attribute", "2", "call_last_param", "target_lower_cardinality", 1,
 
         "model_define_attribute", "2", "Element", "constraint", True, "funcdef",
         "model_define_attribute", "2", "AttributeValue", "to_string", True, "funcdef",
@@ -244,16 +258,17 @@ instantiate_example = [
         "instantiate_node", "2", "Class", "B",
         "instantiate_node", "2", "SimpleAttribute", "C",
         "instantiate_link", "2", "Inheritance", "b_inherits_a", "B", "A",
-        "instantiate_link", "2", "Association", "a_to_b", "A", "B",
+        "instantiate_link", "2", "Association", "A_to_B", "A", "B",
         "model_define_attribute", "2", "A", "tokens", False, "C",
         "export_node", "2", "models/example_MM",
         "exit",
         "model",
         "instantiate_model", "2", "3",
         "instantiate_node", "3", "A", "a",
-        "instantiate_link", "3", "a_to_b", "a", "b",
         "instantiate_node", "3", "B", "b",
-        "instantiate_attribute", "3", "a", "tokens", "c",
+        "instantiate_link", "3", "A_to_B", "a_to_b", "a", "b",
+        "instantiate_attribute", "3", "a", "tokens", 123,
+        "instantiate_attribute", "3", "b", "tokens", 234,
         "export_node", "3", "models/example_M",
         "exit",
     ]
@@ -274,24 +289,18 @@ def conformance_call(operation, model, metamodel):
 is_direct_instance = \
     conformance_call("is_direct_instance", "a", "A") + \
     conformance_call("is_direct_instance", "b", "A") + \
-    conformance_call("is_direct_instance", "c", "A") + \
     conformance_call("is_direct_instance", "a", "B") + \
     conformance_call("is_direct_instance", "b", "B") + \
-    conformance_call("is_direct_instance", "c", "B") + \
     conformance_call("is_direct_instance", "a", "C") + \
-    conformance_call("is_direct_instance", "b", "C") + \
-    conformance_call("is_direct_instance", "c", "C")
+    conformance_call("is_direct_instance", "b", "C")
 
 is_nominal_instance = \
     conformance_call("is_nominal_instance", "a", "A") + \
     conformance_call("is_nominal_instance", "b", "A") + \
-    conformance_call("is_nominal_instance", "c", "A") + \
     conformance_call("is_nominal_instance", "a", "B") + \
     conformance_call("is_nominal_instance", "b", "B") + \
-    conformance_call("is_nominal_instance", "c", "B") + \
     conformance_call("is_nominal_instance", "a", "C") + \
-    conformance_call("is_nominal_instance", "b", "C") + \
-    conformance_call("is_nominal_instance", "c", "C")
+    conformance_call("is_nominal_instance", "b", "C")
 
 def conformance_check(node):
     return [
@@ -335,14 +344,14 @@ class TestConstructorsModels(unittest.TestCase):
 
     def test_constructors_is_direct_instance(self):
         commands = bottom + instantiate_example + is_direct_instance + ["return", False]
-        expected = [True, False, False,
-                    False, True, False,
-                    False, False, True]
+        expected = [True, False,
+                    False, True,
+                    False, False]
         self.assertTrue(run_barebone(commands, expected, 1))
 
     def test_constructors_is_nominal_instance(self):
         commands = bottom + instantiate_example + is_nominal_instance + ["return", False]
-        expected = [True, True, False,
-                    False, True, False,
-                    False, False, True]
+        expected = [True, True, 
+                    False, True,
+                    False, False]
         self.assertTrue(run_barebone(commands, expected, 1))