Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions emannotationschemas/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@
ProofreadingBoolStatusUser,
ProofreadStatus,
)
from emannotationschemas.schemas.reference_float import (
ReferenceDoubleFloat,
ReferenceTripleFloat,
)
from emannotationschemas.schemas.reference_text_float import (
ReferenceTagFloat,
)
Expand Down Expand Up @@ -138,6 +142,8 @@
"pt_bool_valid": SpatialPointBoolWithValid,
"reference_integer": ReferenceInteger,
"reference_tag_float": ReferenceTagFloat,
"reference_double_float": ReferenceDoubleFloat,
"reference_triple_float": ReferenceTripleFloat,
"compartment_proofread_status_strategy": CompartmentProofreadStatusStrategy,
"reference_tag_with_confidence": ReferenceTagWithConfidence,
"digital_twin_properties": DigitalTwinPropertiesBCM,
Expand Down
24 changes: 24 additions & 0 deletions emannotationschemas/schemas/reference_float.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import marshmallow as mm

from emannotationschemas.schemas.base import ReferenceAnnotation


class ReferenceDoubleFloat(ReferenceAnnotation):
value = mm.fields.Float(
required=True, description="First float value attached to the annotation"
)
value2 = mm.fields.Float(
required=True, description="Second float value attached to the annotation"
)


class ReferenceTripleFloat(ReferenceAnnotation):
value = mm.fields.Float(
required=True, description="First float value attached to the annotation"
)
value2 = mm.fields.Float(
required=True, description="Second float value attached to the annotation"
)
value3 = mm.fields.Float(
required=True, description="Third float value attached to the annotation"
)
40 changes: 40 additions & 0 deletions tests/test_reference_float_schema.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import pytest
from marshmallow import ValidationError

from emannotationschemas import get_schema, get_types
from emannotationschemas.schemas.reference_float import (
ReferenceDoubleFloat,
ReferenceTripleFloat,
)

target_id = 1


def test_reference_double_float():
result = ReferenceDoubleFloat().load(
{"target_id": target_id, "value": 0.5, "value2": 1.5}
)
assert result["target_id"] == target_id
assert result["value"] == 0.5
assert result["value2"] == 1.5


def test_reference_triple_float():
result = ReferenceTripleFloat().load(
{"target_id": target_id, "value": 0.1, "value2": 0.2, "value3": 0.3}
)
assert result["value"] == 0.1
assert result["value2"] == 0.2
assert result["value3"] == 0.3


def test_reference_double_float_missing_value():
with pytest.raises(ValidationError):
ReferenceDoubleFloat().load({"target_id": target_id, "value": 0.5})


def test_registered_in_type_mapping():
assert get_schema("reference_double_float") is ReferenceDoubleFloat
assert get_schema("reference_triple_float") is ReferenceTripleFloat
assert "reference_double_float" in get_types()
assert "reference_triple_float" in get_types()