2019-03-19 20:43:48 +00:00
|
|
|
# coding: utf-8
|
2019-03-19 16:39:35 +00:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
from spacy.kb import KnowledgeBase
|
|
|
|
|
|
|
|
|
|
|
|
def test_kb_valid_entities():
|
2019-03-19 20:43:48 +00:00
|
|
|
"""Test the valid construction of a KB with 3 entities and one alias"""
|
2019-03-19 16:39:35 +00:00
|
|
|
mykb = KnowledgeBase()
|
|
|
|
|
|
|
|
# adding entities
|
2019-03-19 20:43:48 +00:00
|
|
|
mykb.add_entity(entity_id="Q1", prob=0.9)
|
|
|
|
mykb.add_entity(entity_id="Q2", prob=0.2)
|
2019-03-19 16:39:35 +00:00
|
|
|
mykb.add_entity(entity_id="Q3", prob=0.5)
|
|
|
|
|
|
|
|
# adding aliases
|
|
|
|
mykb.add_alias(alias="douglassss", entities=["Q2", "Q3"], probabilities=[0.8, 0.2])
|
|
|
|
|
|
|
|
|
|
|
|
def test_kb_invalid_entities():
|
2019-03-19 20:43:48 +00:00
|
|
|
"""Test the invalid construction of a KB with an alias linked to a non-existing entity"""
|
2019-03-19 16:39:35 +00:00
|
|
|
mykb = KnowledgeBase()
|
|
|
|
|
|
|
|
# adding entities
|
2019-03-19 20:43:48 +00:00
|
|
|
mykb.add_entity(entity_id="Q1", prob=0.9)
|
|
|
|
mykb.add_entity(entity_id="Q2", prob=0.2)
|
2019-03-19 16:39:35 +00:00
|
|
|
mykb.add_entity(entity_id="Q3", prob=0.5)
|
|
|
|
|
|
|
|
# adding aliases - should fail because one of the given IDs is not valid
|
|
|
|
with pytest.raises(ValueError):
|
|
|
|
mykb.add_alias(alias="douglassss", entities=["Q2", "Q342"], probabilities=[0.8, 0.2])
|
|
|
|
|
2019-03-19 20:43:48 +00:00
|
|
|
|
|
|
|
def test_kb_invalid_probabilities():
|
|
|
|
"""Test the invalid construction of a KB with wrong prior probabilities"""
|
|
|
|
mykb = KnowledgeBase()
|
|
|
|
|
|
|
|
# adding entities
|
|
|
|
mykb.add_entity(entity_id="Q1", prob=0.9)
|
|
|
|
mykb.add_entity(entity_id="Q2", prob=0.2)
|
|
|
|
mykb.add_entity(entity_id="Q3", prob=0.5)
|
|
|
|
|
|
|
|
# adding aliases - should fail because the sum of the probabilities exceeds 1
|
|
|
|
with pytest.raises(ValueError):
|
|
|
|
mykb.add_alias(alias="douglassss", entities=["Q2", "Q3"], probabilities=[0.8, 0.4])
|
|
|
|
|