def test_generate_dummy_labels_descriptor_wrong_input2():
    with pytest.raises(IOError):
        generate_dummy_label_descriptor(
            jph(pfo_tmp_test, 'labels_descriptor.txt'),
            list_labels=range(5),
            list_roi_names=['1', '2', '3', '4', '5'],
            list_colors_triplets=[[0, 0, 0], [1, 1, 1]])
def test_generate_none_list_colour_triples():
    generate_dummy_label_descriptor(jph(pfo_tmp_test, 'labels_descriptor.txt'),
                                    list_labels=range(5),
                                    list_roi_names=['1', '2', '3', '4', '5'],
                                    list_colors_triplets=None)
    loaded_dummy_ldm = LabelsDescriptorManager(
        jph(pfo_tmp_test, 'labels_descriptor.txt'))
    for k in loaded_dummy_ldm.dict_label_descriptor.keys():
        assert len(loaded_dummy_ldm.dict_label_descriptor[k][0]) == 3
        for k_rgb in loaded_dummy_ldm.dict_label_descriptor[k][0]:
            assert 0 <= k_rgb < 256
def test_generate_labels_descriptor_list_colors_triplets_None():
    d = generate_dummy_label_descriptor(jph(pfo_tmp_test,
                                            'dummy_labels_descriptor.txt'),
                                        list_labels=range(5),
                                        list_roi_names=None,
                                        list_colors_triplets=[
                                            [1, 1, 1],
                                        ] * 5)
    for k in d.keys():
        assert len(d[k][1]) == 3
def test_generate_labels_descriptor_general():
    list_labels = [1, 2, 3, 4, 5]
    list_color_triplets = [[1, 1, 1], [2, 2, 2], [3, 3, 3], [4, 4, 4],
                           [5, 5, 5]]
    list_roi_names = ['one', 'two', 'three', 'four', 'five']

    d = generate_dummy_label_descriptor(
        jph(pfo_tmp_test, 'dummy_label_descriptor.txt'),
        list_labels=list_labels,
        list_roi_names=list_roi_names,
        list_colors_triplets=list_color_triplets)
    for k_num, k in enumerate(d.keys()):
        assert int(k) == list_labels[k_num]
        assert d[k][0] == list_color_triplets[k_num]
        assert d[k][-1] == list_roi_names[k_num]
def test_generate_dummy_labels_descriptor_wrong_input1():
    with pytest.raises(IOError):
        generate_dummy_label_descriptor(jph(pfo_tmp_test,
                                            'labels_descriptor.txt'),
                                        list_labels=range(5),
                                        list_roi_names=['1', '2'])
        'C': False,
        'Planetaruim': False,
        'Buckle ellipsoids': True,
        'Ellipsoids family': False,
        'Cubes in the sky': False,
        'Sandwich': False,
        'Four-folds': False
    }

    gen.generate_figures(creation_list)

# ---- PATH MANAGER ----

pfi_input_segm = jph(root_dir, 'data_examples', 'ellipsoids_seg.nii.gz')

# ---- CREATE LABELS DESCRIPTOR FOR PHANTOM ellipsoids with 0 to 6 labels ----

pfi_labels_descriptor = jph(root_dir, 'data_examples',
                            'labels_descriptor_ellipsoids.txt')
generate_dummy_label_descriptor(pfi_labels_descriptor,
                                list_labels=[0, 1, 4, 5, 6, 7,
                                             8])  # add extra labels to test

# ---- PERFORM the check ----

la = NiL()
in_descriptor_not_delineated, delineated_not_in_descriptor = la.check.missing_labels(
    pfi_input_segm, pfi_labels_descriptor, pfi_where_to_save_the_log_file=None)

# Print expected to be seen in the terminal: set([8, 7]) set([2, 3])