Fixed #20: I can parse simple concepts

This commit is contained in:
2023-07-09 18:08:47 +02:00
parent ba397b0b72
commit 57f9ce2bbb
44 changed files with 2462 additions and 149 deletions
+52 -2
View File
@@ -1,4 +1,6 @@
from base import BaseTest
from conftest import NewOntology
from core.BuiltinConcepts import BuiltinConcepts
def get_ret_val(res):
@@ -17,9 +19,9 @@ class TestNonReg1(BaseTest):
def test_i_cannot_evaluate_variable_that_is_not_defined(self, sheerka, user):
res = sheerka.evaluate_user_input("a", user)
ret_val = get_ret_val(res)
assert ret_val.status is False
assert len(res) == 2
assert all([not ret_val.status for ret_val in res])
def test_i_can_remember_variables(self, sheerka, user):
sheerka.evaluate_user_input("a = 10", user)
@@ -28,3 +30,51 @@ class TestNonReg1(BaseTest):
ret_val = get_ret_val(res)
assert ret_val.value == 10
def test_i_can_define_a_new_concept(self, context, sheerka, user):
with NewOntology(context, "test_i_can_define_a_new_concept"):
res = sheerka.evaluate_user_input("def concept one as 1", user)
ret_val = get_ret_val(res)
assert ret_val.status
assert sheerka.isinstance(ret_val.value, BuiltinConcepts.NEW_CONCEPT)
def test_i_can_define_a_new_concept_and_use_it(self, context, sheerka, user):
with NewOntology(context, "test_i_can_define_a_new_concept_and_use_it"):
sheerka.evaluate_user_input("def concept one as 1", user)
res = sheerka.evaluate_user_input("one", user)
ret_val = get_ret_val(res)
assert ret_val.status
assert sheerka.isinstance(ret_val.value, "one")
assert not ret_val.value.get_runtime_info().is_evaluated
def test_i_can_get_i_concept_using_c_name_form(self, context, sheerka, user):
with NewOntology(context):
sheerka.evaluate_user_input("def concept one as 1", user)
res = sheerka.evaluate_user_input("c:one:", user)
ret_val = get_ret_val(res)
assert ret_val.status
assert sheerka.isinstance(ret_val.value, "one")
assert not ret_val.value.get_runtime_info().is_evaluated
def test_i_can_get_i_concept_using_c_id_form(self, context, sheerka, user):
with NewOntology(context):
sheerka.evaluate_user_input("def concept one as 1", user)
res = sheerka.evaluate_user_input("c:#1001:", user)
ret_val = get_ret_val(res)
assert ret_val.status
assert sheerka.isinstance(ret_val.value, "one")
assert not ret_val.value.get_runtime_info().is_evaluated
def test_i_can_recognize_concepts_with_long_name(self, context, sheerka, user):
with NewOntology(context):
sheerka.evaluate_user_input("def concept i am a concept", user)
res = sheerka.evaluate_user_input("i am a concept", user)
ret_val = get_ret_val(res)
assert ret_val.status
assert sheerka.isinstance(ret_val.value, "i am a concept")
assert not ret_val.value.get_runtime_info().is_evaluated