참고소스 수정본
This commit is contained in:
61
참고/ontocast-main/test/aggregation/test_normalizer.py
Normal file
61
참고/ontocast-main/test/aggregation/test_normalizer.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from rdflib import RDF, RDFS, Literal, Namespace, URIRef
|
||||
|
||||
from ontocast.onto.constants import DEFAULT_IRI
|
||||
from ontocast.onto.rdfgraph import RDFGraph
|
||||
from ontocast.tool.agg.normalizer import EntityNormalizer
|
||||
|
||||
|
||||
def test_normalize_string_camel_case(normalizer: EntityNormalizer) -> None:
|
||||
assert normalizer.normalize_string("PLRedShift") == "pl red shift"
|
||||
|
||||
|
||||
def test_normalize_string_snake_case(normalizer: EntityNormalizer) -> None:
|
||||
assert normalizer.normalize_string("PL_red_shift_value") == "pl red shift value"
|
||||
|
||||
|
||||
def test_normalize_string_diacritics(normalizer: EntityNormalizer) -> None:
|
||||
assert normalizer.normalize_string("Café") == "cafe"
|
||||
|
||||
|
||||
def test_normalize_uri_variants(normalizer: EntityNormalizer) -> None:
|
||||
camel_uri = URIRef("http://example.org/PLRedShift")
|
||||
snake_uri = URIRef("http://example.org/PL_red_shift_value")
|
||||
assert normalizer.normalize_uri(camel_uri) == "pl red shift"
|
||||
assert normalizer.normalize_uri(snake_uri) == "pl red shift value"
|
||||
|
||||
|
||||
def test_is_ontology_entity(normalizer: EntityNormalizer) -> None:
|
||||
assert normalizer.is_ontology_entity(URIRef("http://ontology.org/Thing")) is True
|
||||
assert normalizer.is_ontology_entity(URIRef(f"{DEFAULT_IRI}/entity")) is False
|
||||
|
||||
|
||||
def test_create_representation_collects_metadata(normalizer: EntityNormalizer) -> None:
|
||||
graph = RDFGraph()
|
||||
ex = Namespace("http://example.org/")
|
||||
ont = Namespace("http://ontology.org/")
|
||||
|
||||
entity = ex.TestEntity
|
||||
graph.add((entity, RDF.type, ont.Thing))
|
||||
graph.add((entity, RDFS.label, Literal("Test Entity")))
|
||||
graph.add((entity, ex.hasValue, Literal("123")))
|
||||
|
||||
representation = normalizer.create_representation(entity, graph)
|
||||
|
||||
assert representation.entity == entity
|
||||
assert "test entity" in representation.normal_form
|
||||
assert representation.types == [ont.Thing]
|
||||
assert "Test Entity" in representation.labels
|
||||
assert ex.hasValue in representation.properties
|
||||
assert "type" in representation.representation
|
||||
|
||||
|
||||
def test_create_representation_marks_ontology_entity(
|
||||
normalizer: EntityNormalizer,
|
||||
) -> None:
|
||||
graph = RDFGraph()
|
||||
ont = Namespace("http://ontology.org/")
|
||||
entity = ont.SomeClass
|
||||
graph.add((entity, RDF.type, RDFS.Class))
|
||||
|
||||
representation = normalizer.create_representation(entity, graph)
|
||||
assert representation.is_ontology_entity is True
|
||||
Reference in New Issue
Block a user