Implemented SheerkaOntology

This commit is contained in:
2021-01-11 15:36:03 +01:00
parent e3c2adb533
commit e26c83a825
119 changed files with 6876 additions and 2002 deletions
@@ -51,7 +51,7 @@ class TestAddConceptInSetEvaluator(TestUsingMemoryBasedSheerka):
assert res.value.body == "bar"
def test_i_can_add_concept_to_a_set_of_concept(self):
sheerka, context, foo, bar = self.init_concepts("foo", "bar", create_new=True)
sheerka, context, foo, bar = self.init_test().with_concepts("foo", "bar", create_new=True).unpack()
ret_val = get_isa_ret_val("foo", "bar")
res = AddConceptInSetEvaluator().eval(context, ret_val)
@@ -72,12 +72,12 @@ class TestAddConceptInSetEvaluator(TestUsingMemoryBasedSheerka):
So 'foo' cannot be put is set
:return:
"""
sheerka, context, one, two, foo, bar = self.init_concepts(
sheerka, context, one, two, foo, bar = self.init_test().with_concepts(
"one",
"two",
Concept("foo", definition="(one|two)=a 'plus' (one|two)=b", body="a + b").def_var("a").def_var("b"),
"bar",
create_new=True)
create_new=True).unpack()
ret_val = get_isa_ret_val("foo", "bar")
res = AddConceptInSetEvaluator().eval(context, ret_val)
@@ -107,7 +107,7 @@ class TestAddConceptInSetEvaluator(TestUsingMemoryBasedSheerka):
assert context.sheerka.isinstance(res.value, BuiltinConcepts.SUCCESS)
def test_i_cannot_add_the_same_concept_twice(self):
sheerka, context, foo, bar = self.init_concepts("foo", "bar", create_new=True)
sheerka, context, foo, bar = self.init_test().with_concepts("foo", "bar", create_new=True).unpack()
ret_val = get_isa_ret_val("foo", "bar")
AddConceptInSetEvaluator().eval(context, ret_val)
+1 -1
View File
@@ -158,7 +158,7 @@ class TestDefConceptEvaluator(TestUsingMemoryBasedSheerka):
assert created_concept.get_metadata().variables == [("x", None), ("y", None)]
def test_other_concepts_are_not_variables(self):
sheerka, context, *concepts = self.init_concepts("little", "size", create_new=True)
sheerka, context, *concepts = self.init_test().with_concepts("little", "size", create_new=True).unpack()
def_concept_node = self.get_def_concept_node_from_name_only("little x")
name_to_use = DefConceptEvaluator.get_name_to_use(def_concept_node)
+2 -2
View File
@@ -1,7 +1,7 @@
import pytest
from core.builtin_concepts import ReturnValueConcept, BuiltinConcepts
from core.concept import Concept
from core.sheerka.services.SheerkaSetsManager import SheerkaSetsManager
from core.sheerka.services.SheerkaIsAManager import SheerkaIsAManager
from evaluators.ReturnBodyEvaluator import ReturnBodyEvaluator
from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka
@@ -89,7 +89,7 @@ class TestEvalEvaluator(TestUsingMemoryBasedSheerka):
Concept("bar"),
Concept("baz"),
Concept("number"))
sets_handler = sheerka.services[SheerkaSetsManager.NAME]
sets_handler = sheerka.services[SheerkaIsAManager.NAME]
sets_handler.add_concepts_to_set(context, [foo, bar, baz], number)
evaluated = ReturnBodyEvaluator().eval(context, [retval(number)])
+1 -1
View File
@@ -55,7 +55,7 @@ class TestLexerNodeEvaluator(TestUsingMemoryBasedSheerka):
assert LexerNodeEvaluator().matches(context, ret_val) == expected
def test_concept_is_returned_when_only_one_in_the_list(self):
sheerka, context, foo = self.init_concepts(self.bnf_concept("foo"), singleton=True)
sheerka, context, foo = self.init_concepts(self.bnf_concept("foo"))
ret_val = self.init_from_concepts(context, [foo], "foo")
evaluator = LexerNodeEvaluator()
+6 -6
View File
@@ -68,8 +68,8 @@ class TestPythonEvaluator(TestUsingMemoryBasedSheerka):
assert PythonEvaluator().matches(context, ret_val) == expected
@pytest.mark.parametrize("text, expected", [
# ("1 + 1", 2),
# ("test()", "I have access to Sheerka !"),
("1 + 1", 2),
("test()", "I have access to Sheerka !"),
("sheerka.test()", "I have access to Sheerka !"),
("a=10\na", 10),
("Concept('foo')", Concept('foo')),
@@ -131,7 +131,7 @@ class TestPythonEvaluator(TestUsingMemoryBasedSheerka):
assert evaluated.value == "I have access to Sheerka ! param='value for param', event='xxx'."
def test_i_can_eval_using_context_when_self_is_not_sheerka(self):
sheerka, context = self.init_concepts()
sheerka, context = self.init_test().unpack()
parsed = PythonParser().parse(context, ParserInput("create_new_concept(Concept('foo'))"))
evaluated = PythonEvaluator().eval(context, parsed)
@@ -230,7 +230,7 @@ class TestPythonEvaluator(TestUsingMemoryBasedSheerka):
'c:__var__0 mult __var__1|1002:': 2}
def test_i_can_define_variables(self):
sheerka, context = self.init_concepts()
sheerka, context = self.init_test().unpack()
parsed = PythonParser().parse(context, ParserInput("a=10"))
python_evaluator = PythonEvaluator()
@@ -293,7 +293,7 @@ class TestPythonEvaluator(TestUsingMemoryBasedSheerka):
assert error1.concepts == {'foo': 'string'}
def test_i_can_use_sheerka_locals(self):
sheerka, context = self.init_concepts()
sheerka, context = self.init_test().unpack()
def func(i):
return i + 1
@@ -318,7 +318,7 @@ class TestPythonEvaluator(TestUsingMemoryBasedSheerka):
assert evaluated.value == "I have access to Sheerka ! param=(1001)one, event='xxx'."
def test_i_can_eval_rules_from_python_parser(self):
sheerka, context = self.init_concepts()
sheerka, context = self.init_test().unpack()
parsed_ret_val = PythonParser().parse(context, ParserInput("r:|1:.id"))
assert parsed_ret_val.status