Source code for src.tests.annotation

import unittest

from ..data_models import Annotation, Taxonomy, Label, Model, User


[docs] class AnnotationTests(unittest.TestCase):
[docs] def setUp(self) -> None: from ..sparql import RequestHandler from ..config import Config from ..utils import LoggingBase from datetime import datetime self.config = Config() self.logger = LoggingBase(self.config.logging).logger self.request_handler = RequestHandler(config=self.config, logger=self.logger) self.user_annotation = Annotation( date=1, config=self.config.data_models, logger=self.logger, taxonomy=Taxonomy( config=self.config.data_models, logger=self.logger, uri="<http://stad.gent/id/concepts/gent_words>"), labels=[ Label( config=self.config.data_models, logger=self.logger, taxonomy_node_uri="<https://stad.gent/id/concepts/gent_words/3>" ), Label( config=self.config.data_models, logger=self.logger, taxonomy_node_uri="<https://stad.gent/id/concepts/gent_words/148>") ], user=User( config=self.config.data_models, logger=self.logger, username="ruben", email="ruben@ml2grow.cloud" ) ) self.model_annotation = Annotation( date=1, config=self.config.data_models, logger=self.logger, taxonomy=Taxonomy( self.config.data_models, logger=self.logger, uri="<http://stad.gent/id/concepts/gent_words>"), labels=[ Label( self.config.data_models, logger=self.logger, taxonomy_node_uri="<https://stad.gent/id/concepts/gent_words/3>", score=0.71 ), Label( self.config.data_models, logger=self.logger, taxonomy_node_uri="<https://stad.gent/id/concepts/gent_words/148>", score=0.55 ) ], model=Model( self.config.data_models, logger=self.logger, name="test_model_name", mlflow_reference="http://mlflow.probe.ml2grow.cloud/models/test_model_name", category="zero-shot-model", registered_model="test_model_name" ) ) self.date_test_annotation = self.model_annotation self.date_test_annotation.date = datetime.now()
[docs] def test_annotation_subquery(self): generated_subquery = self.user_annotation.subquery generated_subquery = " ".join( [q.lstrip().rstrip() for q in generated_subquery.split("\n") if not q.lstrip().rstrip() == ""]) expected_subquery = "<https://lblod.data.gift/concepts/ml2grow/annotations/test> ext:withTaxonomy " \ "<http://stad.gent/id/concepts/gent_words> . " \ "<https://lblod.data.gift/concepts/ml2grow/annotations/test> ext:creationDate 1 ." \ " <https://lblod.data.gift/concepts/ml2grow/annotations/test> ext:hasLabel <https://lblod.data.gift/concepts/ml2grow/label/test>, " \ "<https://lblod.data.gift/concepts/ml2grow/label/test> . " \ "<https://lblod.data.gift/concepts/ml2grow/annotations/test> ext:withUser " \ "<https://classifications.ghent.com/ml2grow/user/test> . " \ "<https://lblod.data.gift/concepts/ml2grow/label/test> ext:isTaxonomy " \ "<https://stad.gent/id/concepts/gent_words/3> . " \ "<https://lblod.data.gift/concepts/ml2grow/label/test> ext:hasScore 1.0. " \ "<https://lblod.data.gift/concepts/ml2grow/label/test> ext:isTaxonomy " \ "<https://stad.gent/id/concepts/gent_words/148> . " \ "<https://lblod.data.gift/concepts/ml2grow/label/test> ext:hasScore 1.0." self.assertEqual(generated_subquery, expected_subquery)
[docs] def test_annotation_label_uris(self): generated_label_uris = self.user_annotation.label_uris expected_label_uris = ['<https://stad.gent/id/concepts/gent_words/3>', '<https://stad.gent/id/concepts/gent_words/148>'] self.assertEqual(generated_label_uris, expected_label_uris)
[docs] def test_annotation_label_type(self): self.assertTrue(isinstance(self.user_annotation.labels, list))
[docs] def test_annotation_model(self): self.assertTrue(self.user_annotation.model is None, "Model is not None when not provided") self.assertTrue(isinstance(self.model_annotation.model, Model), "Model is not of type Model")
[docs] def test_annotation_user(self): self.assertTrue(isinstance(self.user_annotation.user, User), "User is not of type User when filled in") self.assertTrue(self.user_annotation.model is None, "User is not None when not provided")
[docs] def test_annotation_date(self): self.assertTrue(isinstance(self.user_annotation.date, int), f"The date must be an integer value {self.user_annotation.date}") self.assertTrue(isinstance(self.date_test_annotation.date, int), "Datetime must be an integer value")
[docs] def test_annotation_labels(self): self.assertTrue(isinstance(self.user_annotation.labels, list), "Labels must be of type list") self.assertTrue(isinstance(self.user_annotation.labels[0], Label), "Element of labels must be of type Label")
[docs] def test_annotation_uri(self): self.assertEqual(self.user_annotation.uri, "<https://lblod.data.gift/concepts/ml2grow/annotations/test>", "Generated uri does not match expected uri")
[docs] def test_from_sparql(self): # todo: fix bug here and test annotation_obj = Annotation.from_sparql( config=self.config.data_models, logger=self.logger, request_handler=self.request_handler, annotation_uri="https://lblod.data.gift/concepts/ml2grow/annotations/4e7b7164-a5eb-4f19-8291-76da05a6e69b " ) self.assertEqual(annotation_obj.uri, "<https://lblod.data.gift/concepts/ml2grow/annotations/test>")