Implemented a first and basic version of a Rete rule engine

This commit is contained in:
2021-02-09 16:06:32 +01:00
parent 821dbed189
commit a2a8d5c5e5
110 changed files with 7301 additions and 1654 deletions
+10 -2
View File
@@ -31,6 +31,14 @@ class Obj:
class TestSheerkaPickler(TestUsingMemoryBasedSheerka):
user_input_id = 0
return_value_id = 0
@classmethod
def setup(cls):
sheerka = cls().get_sheerka()
cls.user_input_id = sheerka.get_by_key("__USER_INPUT").id
cls.return_value_id = sheerka.get_by_key("__RETURN_VALUE").id
@pytest.mark.parametrize("obj, expected", [
(1, 1),
@@ -194,13 +202,13 @@ class TestSheerkaPickler(TestUsingMemoryBasedSheerka):
sheerka, context = self.init_test().unpack()
sheerka.push_ontology(context, "new ontology")
ontology = sheerka.pop_ontology().body.body
ontology = sheerka.pop_ontology(context).body.body
obj = sheerka.ret(sheerka.name, True, ontology)
flatten = SheerkaPickler(sheerka).flatten(obj)
assert flatten == {
'_sheerka/obj': 'core.builtin_concepts.ReturnValueConcept',
'concept/id': ('__RETURN_VALUE', '43'),
'concept/id': ('__RETURN_VALUE', self.return_value_id),
'status': True,
'value': 'new ontology',
'who': '__SHEERKA'}