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
@@ -0,0 +1,48 @@
import pytest
from base import BaseParserTest
from conftest import NewOntology
from core.BuiltinConcepts import BuiltinConcepts
from evaluators.RecognizeSimpleConcept import RecognizeSimpleConcept
from evaluators.base_evaluator import NotForMe
from helpers import _rv, _rvf, get_concepts
from parsers.ParserInput import ParserInput
class TestRecognizeSimpleConcept(BaseParserTest):
@pytest.fixture()
def evaluator(self, sheerka):
return sheerka.evaluators[RecognizeSimpleConcept.NAME]
def test_i_can_match(self, sheerka, context, evaluator):
ret_val = _rv(sheerka.newn(BuiltinConcepts.PARSER_INPUT, pi=ParserInput("some text")))
assert evaluator.matches(context, ret_val).status is True
ret_val = _rv(sheerka.newn(BuiltinConcepts.UNKNOWN_CONCEPT)) # it responds to USER_INPUT only
assert evaluator.matches(context, ret_val).status is False
ret_val = _rvf(sheerka.newn(BuiltinConcepts.PARSER_INPUT, pi=ParserInput("some text"))) # status is false
assert evaluator.matches(context, ret_val).status is False
def test_i_can_recognize_a_concept(self, context, evaluator):
with NewOntology(context, "test_i_can_recognize_a_def_concept"):
concept, = get_concepts(context, "I am a new concept", use_sheerka=True)
ret_val_input = self.get_parser_input(context, "I am a new concept")
res = evaluator.eval(context, None, ret_val_input)
assert len(res.new) == 1
assert res.new[0].status
assert context.sheerka.isinstance(res.new[0].value, concept)
assert res.eaten == [ret_val_input]
def test_i_do_not_eat_when_not_for_me(self, context, evaluator):
with NewOntology(context, "test_i_can_recognize_a_def_concept"):
ret_val_input = self.get_parser_input(context, "unknown concept")
res = evaluator.eval(context, None, ret_val_input)
assert len(res.new) == 1
assert not res.new[0].status
assert isinstance(res.new[0].value, NotForMe)
assert len(res.eaten) == 0