Fixed #43 : BnfNodeParser: I can recognize when multiple level of ISA

Fixed #44 : BnfNodeParser: I must simplify results when multiple levels of ISA
Fixed #45 : Dynamic variables cannot be parsed at restart
Fixed #46 : Concepts variables values are transformed into list by default
Fixed #47 : SheerkaAdmin. Add min, max, mean time when restoring files
This commit is contained in:
2021-03-08 17:35:30 +01:00
parent bd8e027827
commit 031bd0274e
20 changed files with 303 additions and 33 deletions
@@ -1,4 +1,5 @@
from core.builtin_concepts_ids import BuiltinConcepts
from core.concept import get_concept_attrs, Concept, ALL_ATTRIBUTES
from core.sheerka.services.SheerkaConceptManager import SheerkaConceptManager
from parsers.BnfNodeParser import OrderedChoice, StrMatch, Sequence, ConceptExpression, Optional
from tests.TestUsingFileBasedSheerka import TestUsingFileBasedSheerka
@@ -86,7 +87,7 @@ class TestSheerkaNonRegFile(TestUsingFileBasedSheerka):
"set_isa(thirties, number)",
])
sheerka = self.get_sheerka() # another instance
sheerka = self.new_sheerka_instance()
assert sheerka.evaluate_user_input("eval twenty one")[0].body == 21
assert sheerka.evaluate_user_input("eval thirty one")[0].body == 31
@@ -95,10 +96,29 @@ class TestSheerkaNonRegFile(TestUsingFileBasedSheerka):
sheerka = self.get_sheerka()
sheerka.evaluate_user_input("push_ontology('test')")
sheerka = self.new_sheerka_instance(False)
sheerka = self.new_sheerka_instance()
res = sheerka.evaluate_user_input("pop_ontology()")
assert len(res) == 1
assert res[0].status
assert sheerka.isinstance(res[0].body, BuiltinConcepts.ONTOLOGY_REMOVED)
def test_i_can_read_concept_with_dynamic_variables_at_restart(self):
sheerka = self.init_scenario([
"def concept foo",
"def concept prop_name",
"def concept prop_value",
"eval foo",
"set_attr(foo, prop_name, prop_value)",
])
ALL_ATTRIBUTES.clear()
res = sheerka.evaluate_user_input("in_memory()")
res = sheerka.evaluate_user_input("memory(foo)")
assert len(res) == 1
assert res[0].status
assert get_concept_attrs(Concept("foo")) == []
assert get_concept_attrs(res[0].body) == ['c:prop_name|1002:']