def test_cannot_update_context_register_from_lists(self): left = Fact( predicate="$shooter shot $victim", terms=[Entity(name="Alice"), Entity(name="Bob")], ) right = Fact( predicate="$shooter shot $victim", terms=[Entity(name="Craig"), Entity(name="Dan")], ) update = left.update_context_register( right, context=[[Entity(name="Alice")], [Entity(name="Craig")]], comparison=means, ) with pytest.raises(AttributeError): next(update)
def test_entity_consistency_identity_not_equality(self): left = Fact( predicate=Predicate(content="$shooter shot $victim"), terms=[Entity(name="Alice"), Entity(name="Bob")], ) right = Fact( predicate=Predicate(content="$shooter shot $victim"), terms=[Entity(name="Craig"), Entity(name="Dan")], ) register = ContextRegister.from_lists([Entity(name="Dan")], [Entity(name="Dan")]) update = left.update_context_register(right, register, comparison=means) assert not any(register is not None for register in update)
def test_check_entity_consistency_type_error(self, make_entity, make_factor, make_predicate): """ There would be no TypeError if it used "means" instead of .gt. The comparison would just return False. """ right = Fact( predicate=Predicate(content="$shooter shot $victim"), terms=[Entity(name="Craig"), Entity(name="Dan")], ) register = ContextRegister.from_lists([Entity(name="Dan")], [Entity(name="Dan")]) update = right.update_context_register( right.predicate, register, operator.gt, ) with pytest.raises(TypeError): any(register is not None for register in update)