Fixed #109 : Mix python and concept. List comprehension

Fixed #110 : SheerkaDebugManager: add list_debug_settings
Fixed #111 : SheerkaDebugManager: Implement ListDebugLogger
Fixed #112 : SyaNodeParser: rewrite this parser
Fixed #113 : Sheerka.: Add enable_parser_caching to disable parsers caching
Fixed #114 : SyaNodeParser : Implement fast cache to resolve unrecognized tokens requests
Fixed #115 : BnfNodeParser : Implement fast cache to resolve unrecognized tokens requests
Fixed #116 : SequenceNodeParser : Implement fast cache to resolve unrecognized tokens requests
Fixed #117 : ResolveMultiplePluralAmbiguityEvaluator: Resolve Multiple plural ambiguity
This commit is contained in:
2021-09-06 11:51:50 +02:00
parent 71d1b1d1ca
commit 54e5681c5a
57 changed files with 5179 additions and 3125 deletions
+31 -9
View File
@@ -45,13 +45,35 @@ class TestSheerkaNonRegMemory2(TestUsingMemoryBasedSheerka):
assert res[0].status
assert sheerka.isa(sheerka.new("one"), sheerka.new("number"))
# def test_i_can_define_plural(self):
# init = [
# "def concept man",
# "def concept men as set_plural(man) ret man auto_eval True",
# ]
# sheerka = self.init_scenario(init)
#
# res = sheerka.evaluate_user_input("men")
# assert res[0].status
def test_i_can_get_sequence_when_evaluation_plural(self):
init = [
"def concept one",
"def concept two",
"def concept number",
"global_truth(set_isa(one, number))",
"global_truth(set_isa(two, number))",
]
sheerka = self.init_scenario(init)
res = sheerka.evaluate_user_input("eval numbers")
assert res[0].status
assert set(res[0].body) == {sheerka.new("one"), sheerka.new("two")}
def test_i_can_use_list_comprehension(self):
init = [
"def concept rex",
"def concept rantanplan",
"def concept dog",
"def concept x is a y as set_isa(x, y)",
]
sheerka = self.init_scenario(init)
res = sheerka.evaluate_user_input("global_truth([ x is a dog for x in [rex, rantanplan]])")
assert len(res) == 1
assert res[0].status
rex = sheerka.new("rex")
dog = sheerka.new("dog")
assert sheerka.isa(rex, dog)
+21
View File
@@ -180,3 +180,24 @@ two: (1002)two
captured = capsys.readouterr()
assert " : test()" in captured.out
assert " : history()" in captured.out
def test_i_can_list_debug_settings(self, capsys):
init = [
"set_debug_var('Sya.parsers.*', 45)",
"set_debug_concept('c:|1015', '13+')",
"set_debug_rule('Out')",
]
sheerka = self.init_scenario(init)
capsys.readouterr()
sheerka.enable_process_return_values = True
res = sheerka.evaluate_user_input(f"list_debug_settings()")
assert len(res) == 1
assert res[0].status
captured = capsys.readouterr()
assert captured.out == """DebugItem(type=vars, setting=Sya.parsers.*, context_id=45, debug_id=None, context_children=False, debug_children=False (enabled=True))
DebugItem(type=concepts, setting=c:|1015.*.*, context_id=13, debug_id=None, context_children=True, debug_children=False (enabled=True))
DebugItem(type=rules, setting=Out.*.*, context_id=None, debug_id=None, context_children=False, debug_children=False (enabled=True))
"""