Fixed #43 : BnfNodeParser: I can recognize when multiple level of ISA
Fixed #44 : BnfNodeParser: I must simplify results when multiple levels of ISA Fixed #45 : Dynamic variables cannot be parsed at restart Fixed #46 : Concepts variables values are transformed into list by default Fixed #47 : SheerkaAdmin. Add min, max, mean time when restoring files
This commit is contained in:
@@ -798,6 +798,34 @@ class TestSheerkaConceptManager(TestUsingMemoryBasedSheerka):
|
||||
|
||||
assert sheerka.get_attr(foo, prop) == bar
|
||||
|
||||
def test_i_setting_twice_the_same_property_creates_a_list(self):
|
||||
sheerka, context = self.init_concepts()
|
||||
foo = Concept("foo")
|
||||
prop = Concept("property")
|
||||
bar = Concept("bar")
|
||||
baz = Concept("baz")
|
||||
qux = Concept("qux")
|
||||
|
||||
res = sheerka.set_attr(foo, prop, bar)
|
||||
assert res.status
|
||||
assert sheerka.isinstance(res.body, BuiltinConcepts.SUCCESS)
|
||||
assert sheerka.get_attr(foo, prop) == bar
|
||||
|
||||
res = sheerka.set_attr(foo, prop, bar) # again, same value as no effect
|
||||
assert res.status
|
||||
assert sheerka.isinstance(res.body, BuiltinConcepts.SUCCESS)
|
||||
assert sheerka.get_attr(foo, prop) == bar
|
||||
|
||||
res = sheerka.set_attr(foo, prop, baz)
|
||||
assert res.status
|
||||
assert sheerka.isinstance(res.body, BuiltinConcepts.SUCCESS)
|
||||
assert sheerka.get_attr(foo, prop) == [bar, baz]
|
||||
|
||||
res = sheerka.set_attr(foo, prop, qux)
|
||||
assert res.status
|
||||
assert sheerka.isinstance(res.body, BuiltinConcepts.SUCCESS)
|
||||
assert sheerka.get_attr(foo, prop) == [bar, baz, qux]
|
||||
|
||||
def test_i_cannot_remove_a_concept_which_has_reference(self):
|
||||
sheerka, context, one, twenty_one = self.init_test().with_concepts(
|
||||
Concept("one"),
|
||||
@@ -1067,6 +1095,27 @@ class TestSheerkaConceptManager(TestUsingMemoryBasedSheerka):
|
||||
'hundred': ['1005', '1007'],
|
||||
}
|
||||
|
||||
def test_i_can_resolve_when_concepts_have_multiple_levels_of_sets(self):
|
||||
sheerka, context, adjective, color, red, qualified_table = self.init_concepts(
|
||||
"adjective",
|
||||
"color",
|
||||
"red",
|
||||
Concept("qualified table", definition="adjective 'table'"),
|
||||
)
|
||||
|
||||
sheerka.set_isa(context, color, adjective)
|
||||
sheerka.set_isa(context, red, color)
|
||||
|
||||
by_first_token = compute_concepts_by_first_token(context, [adjective, color, red, qualified_table]).body
|
||||
resolved_ret_val = resolve_concepts_by_first_keyword(context, by_first_token)
|
||||
|
||||
assert resolved_ret_val.status
|
||||
assert resolved_ret_val.body == {
|
||||
'adjective': ['1001'],
|
||||
'color': ['1002'],
|
||||
'red': ['1003', '1004'],
|
||||
}
|
||||
|
||||
def test_concepts_are_defined_once(self):
|
||||
sheerka = self.get_sheerka()
|
||||
context = self.get_context(sheerka)
|
||||
|
||||
Reference in New Issue
Block a user