Introduced ParserInput
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from core.builtin_concepts import BuiltinConcepts
|
||||
from core.concept import Concept, CMV
|
||||
from core.sheerka.services.SheerkaExecute import ParserInput
|
||||
from core.tokenizer import Tokenizer
|
||||
from parsers.ExactConceptParser import ExactConceptParser
|
||||
|
||||
@@ -55,7 +56,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
concept = self.create_and_add_in_cache_concept(sheerka, "hello world")
|
||||
|
||||
source = "hello world"
|
||||
results = ExactConceptParser().parse(context, source)
|
||||
results = ExactConceptParser().parse(context, ParserInput(source))
|
||||
concept_found = results[0].value.value
|
||||
|
||||
assert len(results) == 1
|
||||
@@ -71,7 +72,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
self.create_and_add_in_cache_concept(sheerka, "hello a", variables=["a"])
|
||||
|
||||
source = "hello world"
|
||||
results = ExactConceptParser().parse(context, source)
|
||||
results = ExactConceptParser().parse(context, ParserInput(source))
|
||||
|
||||
assert len(results) == 2
|
||||
results = sorted(results, key=lambda x: x.value.value.name) # because of the usage of sets
|
||||
@@ -91,7 +92,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
concept = self.create_and_add_in_cache_concept(sheerka, "a + b", ["a", "b"])
|
||||
|
||||
source = "10 + 5"
|
||||
results = ExactConceptParser().parse(context, source)
|
||||
results = ExactConceptParser().parse(context, ParserInput(source))
|
||||
|
||||
assert len(results) == 1
|
||||
assert results[0].status
|
||||
@@ -107,7 +108,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
concept = self.create_and_add_in_cache_concept(sheerka, "a + b + a", ["a", "b"])
|
||||
|
||||
source = "10 + 5 + 10"
|
||||
results = ExactConceptParser(max_word_size=5).parse(context, source)
|
||||
results = ExactConceptParser(max_word_size=5).parse(context, ParserInput(source))
|
||||
|
||||
assert len(results) == 1
|
||||
assert results[0].status
|
||||
@@ -122,7 +123,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
)
|
||||
|
||||
source = "10 + 5"
|
||||
results = ExactConceptParser().parse(context, source)
|
||||
results = ExactConceptParser().parse(context, ParserInput(source))
|
||||
concept_found = results[0].value.value
|
||||
|
||||
assert len(results) == 1
|
||||
@@ -135,7 +136,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
sheerka, context, foo = self.init_concepts("foo")
|
||||
|
||||
source = "c:foo:"
|
||||
results = ExactConceptParser().parse(context, source)
|
||||
results = ExactConceptParser().parse(context, ParserInput(source))
|
||||
concept_found = results[0].value.value
|
||||
|
||||
assert len(results) == 1
|
||||
@@ -152,7 +153,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
)
|
||||
|
||||
source = "c:one: plus c:two:"
|
||||
results = ExactConceptParser().parse(context, source)
|
||||
results = ExactConceptParser().parse(context, ParserInput(source))
|
||||
concept_found = results[0].value.value
|
||||
|
||||
assert len(results) == 1
|
||||
@@ -168,7 +169,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
)
|
||||
|
||||
source = "z is a concept"
|
||||
results = ExactConceptParser().parse(context, source)
|
||||
results = ExactConceptParser().parse(context, ParserInput(source))
|
||||
concept_found = results[0].value.value
|
||||
|
||||
assert len(results) == 1
|
||||
@@ -178,7 +179,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
assert not concept_found.metadata.is_evaluated
|
||||
|
||||
source = "def concept z"
|
||||
results = ExactConceptParser().parse(context, source)
|
||||
results = ExactConceptParser().parse(context, ParserInput(source))
|
||||
concept_found = results[0].value.value
|
||||
|
||||
assert len(results) == 1
|
||||
@@ -190,7 +191,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
def test_i_can_manage_unknown_concept(self):
|
||||
context = self.get_context(self.get_sheerka(singleton=True))
|
||||
source = "def concept hello" # this is not a concept by itself
|
||||
res = ExactConceptParser().parse(context, source)
|
||||
res = ExactConceptParser().parse(context, ParserInput(source))
|
||||
|
||||
assert not res.status
|
||||
assert context.sheerka.isinstance(res.value, BuiltinConcepts.UNKNOWN_CONCEPT)
|
||||
@@ -199,7 +200,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
def test_i_can_detect_concepts_too_long(self):
|
||||
context = self.get_context(self.get_sheerka(singleton=True))
|
||||
source = "a very but finally too long concept"
|
||||
res = ExactConceptParser().parse(context, source)
|
||||
res = ExactConceptParser().parse(context, ParserInput(source))
|
||||
|
||||
assert not res.status
|
||||
assert context.sheerka.isinstance(res.value, BuiltinConcepts.NOT_FOR_ME)
|
||||
@@ -207,15 +208,15 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
assert res.value.reason.body == source
|
||||
assert res.value.body == source
|
||||
|
||||
def test_i_can_detect_concept_from_tokens(self):
|
||||
context = self.get_context(self.get_sheerka(singleton=True))
|
||||
concept = get_concept("hello world", [])
|
||||
context.sheerka.add_in_cache(concept)
|
||||
|
||||
source = "hello world"
|
||||
results = ExactConceptParser().parse(context, list(Tokenizer(source)))
|
||||
|
||||
assert len(results) == 1
|
||||
assert results[0].status
|
||||
assert results[0].value.value == concept
|
||||
assert not results[0].value.value.metadata.need_validation
|
||||
# def test_i_can_detect_concept_from_tokens(self):
|
||||
# context = self.get_context(self.get_sheerka(singleton=True))
|
||||
# concept = get_concept("hello world", [])
|
||||
# context.sheerka.add_in_cache(concept)
|
||||
#
|
||||
# source = "hello world"
|
||||
# results = ExactConceptParser().parse(context, list(Tokenizer(source)))
|
||||
#
|
||||
# assert len(results) == 1
|
||||
# assert results[0].status
|
||||
# assert results[0].value.value == concept
|
||||
# assert not results[0].value.value.metadata.need_validation
|
||||
|
||||
Reference in New Issue
Block a user