Implemented ConceptManager with concept creation, modification and deletion
This commit is contained in:
@@ -48,7 +48,7 @@ class TestBaseNodeParser(TestUsingMemoryBasedSheerka):
|
||||
|
||||
bar = Concept("bar").init_key()
|
||||
sheerka.set_id_if_needed(bar, False)
|
||||
sheerka.add_in_cache(bar)
|
||||
sheerka.test_only_add_in_cache(bar)
|
||||
|
||||
concept = Concept("foo").init_key()
|
||||
concept.set_bnf(bnf)
|
||||
@@ -65,11 +65,11 @@ class TestBaseNodeParser(TestUsingMemoryBasedSheerka):
|
||||
|
||||
bar = Concept("bar").init_key()
|
||||
sheerka.set_id_if_needed(bar, False)
|
||||
sheerka.add_in_cache(bar)
|
||||
sheerka.test_only_add_in_cache(bar)
|
||||
|
||||
baz = Concept("baz").init_key()
|
||||
sheerka.set_id_if_needed(baz, False)
|
||||
sheerka.add_in_cache(baz)
|
||||
sheerka.test_only_add_in_cache(baz)
|
||||
|
||||
foo = Concept("foo").init_key()
|
||||
foo.set_bnf(OrderedChoice(ConceptExpression("bar"), ConceptExpression("baz"), StrMatch("qux")))
|
||||
@@ -96,7 +96,7 @@ class TestBaseNodeParser(TestUsingMemoryBasedSheerka):
|
||||
|
||||
bar = Concept("bar").init_key()
|
||||
sheerka.set_id_if_needed(bar, False)
|
||||
sheerka.add_in_cache(bar)
|
||||
sheerka.test_only_add_in_cache(bar)
|
||||
|
||||
foo = Concept("foo").init_key()
|
||||
foo.set_bnf(OrderedChoice(ConceptExpression("one"), ConceptExpression("bar"), StrMatch("qux")))
|
||||
|
||||
@@ -503,6 +503,15 @@ from give me the date !
|
||||
assert context.sheerka.isinstance(res.value, BuiltinConcepts.UNKNOWN_CONCEPT)
|
||||
assert res.value.body == ("key", "unknown")
|
||||
|
||||
def test_i_cannot_parse_bnf_definition_referencing_multiple_concepts_sharing_the_same_name(self):
|
||||
text = "def concept twenty one from bnf 'twenty' one"
|
||||
sheerka, context, parser, *concepts = self.init_parser(Concept("one", body="1"), Concept("one", body="1.0"))
|
||||
res = parser.parse(context, ParserInput(text))
|
||||
|
||||
assert not res.status
|
||||
assert context.sheerka.isinstance(res.value, BuiltinConcepts.CANNOT_RESOLVE_CONCEPT)
|
||||
assert res.value.body == ("key", "one")
|
||||
|
||||
@pytest.mark.parametrize("text", [
|
||||
'def concept "def concept x"',
|
||||
'def concept "def concept x" as x',
|
||||
|
||||
@@ -210,7 +210,7 @@ class TestExactConceptParser(TestUsingMemoryBasedSheerka):
|
||||
# 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)
|
||||
# context.sheerka.test_only_add_in_cache(concept)
|
||||
#
|
||||
# source = "hello world"
|
||||
# results = ExactConceptParser().parse(context, list(Tokenizer(source)))
|
||||
|
||||
@@ -66,7 +66,7 @@ class TestSyaNodeParser(TestUsingMemoryBasedSheerka):
|
||||
cmap["minus"],
|
||||
CONCEPT_COMPARISON_CONTEXT)
|
||||
|
||||
# TestSyaNodeParser.sheerka.force_sya_def(context, [
|
||||
# TestSyaNodeParser.sheerka.test_only_force_sya_def(context, [
|
||||
# (cmap["plus"].id, 5, SyaAssociativity.Right),
|
||||
# (cmap["mult"].id, 10, SyaAssociativity.Right),
|
||||
# (cmap["minus"].id, 5, SyaAssociativity.Right)])
|
||||
|
||||
@@ -76,7 +76,7 @@ class TestUnrecognizedNodeParser(TestUsingMemoryBasedSheerka):
|
||||
def setup_class(cls):
|
||||
t = TestUnrecognizedNodeParser()
|
||||
TestUnrecognizedNodeParser.sheerka, context, _ = t.init_parser(concepts_map, create_new=True)
|
||||
TestUnrecognizedNodeParser.sheerka.force_sya_def(context, [
|
||||
TestUnrecognizedNodeParser.sheerka.test_only_force_sya_def(context, [
|
||||
(concepts_map["mult"].id, 20, SyaAssociativity.Right),
|
||||
(concepts_map["plus"].id, 10, SyaAssociativity.Right),
|
||||
])
|
||||
|
||||
Reference in New Issue
Block a user