Source code for tests.test_preprocess
from mdai.utils.common_utils import train_test_split
[docs]def test_project(p):
# label groups
label_groups = p.get_label_groups()
assert label_groups[0].id == "G_L3dP31"
assert label_groups[1].id == "G_WVRrVJ"
[docs]def test_dataset(p):
# two datasets
datasets = p.get_datasets()
assert len(datasets) == 2
labels_dict = {
"L_egJRyg": 1, # bounding box
"L_MgevP2": 2, # polygon
"L_D21YL2": 3, # freeform
"L_lg7klg": 4, # line
"L_eg69RZ": 5, # location
"L_GQoaJg": 6, # global_image
"L_JQVWjZ": 7, # global_series
"L_3QEOpg": 8, # global_exam
}
p.set_labels_dict(labels_dict)
assert p.get_label_id_annotation_mode("L_MgevP2") == "polygon"
assert p.get_label_id_annotation_mode("L_3QEOpg") is None
ct_dataset = p.get_dataset_by_id("D_qGQdpN")
ct_dataset.prepare()
xray_dataset = p.get_dataset_by_id("D_0Z4nDG")
xray_dataset.prepare()
assert ct_dataset.classes_dict == xray_dataset.classes_dict
image_ids = ct_dataset.get_image_ids()
assert len(image_ids) == len(ct_dataset.imgs_anns_dict.keys())
image_id = ct_dataset.get_image_ids()[7]
ann_mode = [
(ct_dataset.label_id_to_class_annotation_mode(ann["labelId"]), ann["labelId"])
for ann in ct_dataset.imgs_anns_dict[image_id]
]
assert ann_mode == [
("line", "L_lg7klg"),
("polygon", "L_MgevP2"),
("freeform", "L_D21YL2"),
("bbox", "L_egJRyg"),
("location", "L_eg69RZ"),
(None, "L_3QEOpg"),
]
train_ds, valid_ds = train_test_split(ct_dataset, shuffle=False, validation_split=0.2)
assert len(train_ds.get_image_ids()) == 9
assert len(valid_ds.get_image_ids()) == 3