Skip to content

[PLT-1463] Removed ND deserialize from some unit test part 1 #1804

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Sep 16, 2024

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

20 changes: 0 additions & 20 deletions libs/labelbox/tests/data/serialization/ndjson/test_checklist.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,6 @@ def test_serialization_min():
res.pop("uuid")
assert res == expected

deserialized = NDJsonConverter.deserialize([res])
res = next(deserialized)
for i, annotation in enumerate(res.annotations):
annotation.extra.pop("uuid")
assert annotation.value == label.annotations[i].value
assert annotation.name == label.annotations[i].name


def test_serialization_with_classification():
label = Label(
Expand Down Expand Up @@ -117,10 +110,6 @@ def test_serialization_with_classification():
res.pop("uuid")
assert res == expected

deserialized = NDJsonConverter.deserialize([res])
res = next(deserialized)
assert label.model_dump(exclude_none=True) == label.model_dump(exclude_none=True)


def test_serialization_with_classification_double_nested():
label = Label(
Expand Down Expand Up @@ -200,11 +189,6 @@ def test_serialization_with_classification_double_nested():
res.pop("uuid")
assert res == expected

deserialized = NDJsonConverter.deserialize([res])
res = next(deserialized)
res.annotations[0].extra.pop("uuid")
assert label.model_dump(exclude_none=True) == label.model_dump(exclude_none=True)


def test_serialization_with_classification_double_nested_2():
label = Label(
Expand Down Expand Up @@ -278,7 +262,3 @@ def test_serialization_with_classification_double_nested_2():
res = next(serialized)
res.pop("uuid")
assert res == expected

deserialized = NDJsonConverter.deserialize([res])
res = next(deserialized)
assert label.model_dump(exclude_none=True) == label.model_dump(exclude_none=True)
114 changes: 106 additions & 8 deletions libs/labelbox/tests/data/serialization/ndjson/test_classification.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,119 @@
import json

from labelbox.data.annotation_types.classification.classification import (
Checklist,
Radio,
Text,
)
from labelbox.data.serialization.ndjson.converter import NDJsonConverter

from labelbox.types import (
Label,
ClassificationAnnotation,
ClassificationAnswer,
GenericDataRowData,
)
from labelbox.data.mixins import CustomMetric


def test_classification():
with open('tests/data/assets/ndjson/classification_import.json',
'r') as file:
with open("tests/data/assets/ndjson/classification_import.json", "r") as file:
data = json.load(file)
res = list(NDJsonConverter.deserialize(data))
res = list(NDJsonConverter.serialize(res))

label = Label(
data=GenericDataRowData(
uid="ckrb1sf1i1g7i0ybcdc6oc8ct",
),
annotations=[
ClassificationAnnotation(
feature_schema_id="ckrb1sfjx099a0y914hl319ie",
extra={"uuid": "f6879f59-d2b5-49c2-aceb-d9e8dc478673"},
value=Radio(
answer=ClassificationAnswer(
custom_metrics=[
CustomMetric(name="customMetric1", value=0.5),
CustomMetric(name="customMetric2", value=0.3),
],
confidence=0.8,
feature_schema_id="ckrb1sfl8099g0y91cxbd5ftb",
),
),
),
ClassificationAnnotation(
feature_schema_id="ckrb1sfkn099c0y910wbo0p1a",
extra={"uuid": "d009925d-91a3-4f67-abd9-753453f5a584"},
value=Checklist(
answer=[
ClassificationAnswer(
custom_metrics=[
CustomMetric(name="customMetric1", value=0.5),
CustomMetric(name="customMetric2", value=0.3),
],
confidence=0.82,
feature_schema_id="ckrb1sfl8099e0y919v260awv",
)
],
),
),
ClassificationAnnotation(
feature_schema_id="ckrb1sfkn099c0y910wbo0p1a",
extra={"uuid": "78ff6a23-bebe-475c-8f67-4c456909648f"},
value=Text(answer="a value"),
),
],
)

res = list(NDJsonConverter.serialize([label]))
assert res == data


def test_classification_with_name():
with open('tests/data/assets/ndjson/classification_import_name_only.json',
'r') as file:
with open(
"tests/data/assets/ndjson/classification_import_name_only.json", "r"
) as file:
data = json.load(file)
res = list(NDJsonConverter.deserialize(data))
res = list(NDJsonConverter.serialize(res))
label = Label(
data=GenericDataRowData(
uid="ckrb1sf1i1g7i0ybcdc6oc8ct",
),
annotations=[
ClassificationAnnotation(
name="classification a",
extra={"uuid": "f6879f59-d2b5-49c2-aceb-d9e8dc478673"},
value=Radio(
answer=ClassificationAnswer(
custom_metrics=[
CustomMetric(name="customMetric1", value=0.5),
CustomMetric(name="customMetric2", value=0.3),
],
confidence=0.99,
name="choice 1",
),
),
),
ClassificationAnnotation(
name="classification b",
extra={"uuid": "d009925d-91a3-4f67-abd9-753453f5a584"},
value=Checklist(
answer=[
ClassificationAnswer(
custom_metrics=[
CustomMetric(name="customMetric1", value=0.5),
CustomMetric(name="customMetric2", value=0.3),
],
confidence=0.945,
name="choice 2",
)
],
),
),
ClassificationAnnotation(
name="classification c",
extra={"uuid": "150d60de-30af-44e4-be20-55201c533312"},
value=Text(answer="a value"),
),
],
)

res = list(NDJsonConverter.serialize([label]))
assert res == data
Loading
Loading