Fixed memory() and RET usage
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import pytest
|
||||
from core.builtin_concepts import BuiltinConcepts
|
||||
from core.concept import Concept, PROPERTIES_TO_SERIALIZE, simplec, CMV, NotInit
|
||||
from core.concept import Concept, PROPERTIES_TO_SERIALIZE, simplec, CMV, NotInit, CC
|
||||
from evaluators.MutipleSameSuccessEvaluator import MultipleSameSuccessEvaluator
|
||||
from evaluators.OneSuccessEvaluator import OneSuccessEvaluator
|
||||
from evaluators.PythonEvaluator import PythonEvalError
|
||||
@@ -236,16 +236,16 @@ as:
|
||||
self.create_and_add_in_cache_concept(sheerka, Concept(name="hello b", body="'hello you ' + b").def_var("b"))
|
||||
self.create_and_add_in_cache_concept(sheerka, Concept(name="foo", body="'another value'"))
|
||||
|
||||
res = sheerka.evaluate_user_input("hello foo")
|
||||
res = sheerka.evaluate_user_input("eval hello foo")
|
||||
assert len(res) == 1
|
||||
assert not res[0].status
|
||||
assert sheerka.isinstance(res[0].value, BuiltinConcepts.TOO_MANY_SUCCESS)
|
||||
|
||||
concepts = res[0].value.body
|
||||
assert len(concepts) == 2
|
||||
sorted_values = sorted(concepts, key=lambda x: x.value.body)
|
||||
assert sorted_values[0].value.body == "hello another value"
|
||||
assert sorted_values[1].value.body == "hello you another value"
|
||||
sorted_values = sorted(concepts, key=lambda x: x.value)
|
||||
assert sorted_values[0].value == "hello another value"
|
||||
assert sorted_values[1].value == "hello you another value"
|
||||
|
||||
def test_i_can_manage_concepts_with_the_same_key_when_values_are_the_same(self):
|
||||
sheerka = self.get_sheerka()
|
||||
@@ -254,10 +254,10 @@ as:
|
||||
sheerka.create_new_concept(context, Concept(name="hello a", body="'hello ' + a").def_var("a"))
|
||||
sheerka.create_new_concept(context, Concept(name="hello b", body="'hello ' + b").def_var("b"))
|
||||
|
||||
res = sheerka.evaluate_user_input("hello 'foo'")
|
||||
res = sheerka.evaluate_user_input("eval hello 'foo'")
|
||||
assert len(res) == 1
|
||||
assert res[0].status
|
||||
assert res[0].value.body == "hello foo" # I don't know yet the one to choose
|
||||
assert res[0].value == "hello foo" # I don't know yet the one to choose
|
||||
assert res[0].who == sheerka.get_evaluator_name(MultipleSameSuccessEvaluator.NAME)
|
||||
|
||||
def test_i_can_create_concepts_with_python_code_as_body(self):
|
||||
@@ -574,7 +574,6 @@ as:
|
||||
assert res[0].status
|
||||
assert res[0].body == 3
|
||||
|
||||
|
||||
def test_eval_does_not_break_valid_result(self):
|
||||
sheerka = self.get_sheerka()
|
||||
sheerka.evaluate_user_input("def concept one as 1")
|
||||
@@ -981,13 +980,13 @@ as:
|
||||
sheerka = self.init_scenario(init)
|
||||
the = sheerka.get_by_name("the a")
|
||||
|
||||
# res = sheerka.evaluate_user_input("one plus the one")
|
||||
# assert res[0].status
|
||||
# plus = res[0].body
|
||||
# assert isinstance(plus, Concept)
|
||||
# assert plus.name == "plus"
|
||||
# assert plus.compiled["a"] == sheerka.new("one")
|
||||
# assert plus.compiled["b"] == CC(the, a=sheerka.new("one"))
|
||||
res = sheerka.evaluate_user_input("one plus the one")
|
||||
assert res[0].status
|
||||
plus = res[0].body
|
||||
assert isinstance(plus, Concept)
|
||||
assert plus.name == "plus"
|
||||
assert plus.compiled["a"] == sheerka.new("one")
|
||||
assert plus.compiled["b"] == CC(the, a=sheerka.new("one"))
|
||||
|
||||
res = sheerka.evaluate_user_input("eval one plus the one")
|
||||
assert res[0].status
|
||||
@@ -996,7 +995,7 @@ as:
|
||||
def test_i_can_evaluate_command(self):
|
||||
init = [
|
||||
"def concept command as 'Executed !'",
|
||||
"set_isa(c:command:, __COMMAND)",
|
||||
"set_isa(c:command:, __AUTO_EVAL)",
|
||||
]
|
||||
|
||||
# Since command is a __COMMAND, the body is auto evaluated
|
||||
@@ -1144,6 +1143,22 @@ as:
|
||||
assert res[0].status
|
||||
assert sheerka.isinstance(res[0].body, BuiltinConcepts.NEW_CONCEPT)
|
||||
|
||||
def test_bnf_node_parsers_are_updated_when_concepts_are_modified(self):
|
||||
init = [
|
||||
"def concept number",
|
||||
"def concept one",
|
||||
"def concept twenties from bnf 'twenty' number as 20 + number",
|
||||
]
|
||||
sheerka = self.init_scenario(init)
|
||||
|
||||
res = sheerka.evaluate_user_input("twenty one")
|
||||
assert len(res) > 1
|
||||
|
||||
sheerka.evaluate_user_input("set_isa(one, number)")
|
||||
res = sheerka.evaluate_user_input("twenty one")
|
||||
assert len(res) == 1
|
||||
assert res[0].status
|
||||
|
||||
|
||||
class TestSheerkaNonRegFile(TestUsingFileBasedSheerka):
|
||||
def test_i_can_def_several_concepts(self):
|
||||
|
||||
Reference in New Issue
Block a user