예제 #1
0
def test_get_data_incompatible_args():
    """
    check if the get_data method works as expected and raises an error when
    data is ungrouped but index is not an int
    """
    dir_path = "./data/test/nifti/paired/test"
    name = "fixed_images"

    loader = NiftiFileLoader(dir_path=dir_path, name=name, grouped=False)
    index = (0, 1)
    with pytest.raises(AssertionError):
        loader.get_data(index)
예제 #2
0
def test_get_data_out_of_range_sample_index():
    """
    check if the get_data method works as expected and raises error when
    incorrect group index is supplied
    """
    dir_path = "./data/test/nifti/grouped/test"
    name = "images"

    loader = NiftiFileLoader(dir_path=dir_path, name=name, grouped=True)
    index = (0, 32)
    with pytest.raises(AssertionError):
        loader.get_data(index)
예제 #3
0
def test_get_data_incorrect_args():
    """
    check if the get_data method works as expected and raises an error when
    an incorrect data type is fed in
    """
    dir_path = "./data/test/nifti/paired/test"
    name = "fixed_images"

    loader = NiftiFileLoader(dir_path=dir_path, name=name, grouped=False)
    index = "abc"
    with pytest.raises(ValueError) as execinfo:
        loader.get_data(index)
    msg = " ".join(execinfo.value.args[0].split())
    assert "must be int, or tuple" in msg
예제 #4
0
def test_get_data_grouped():
    """
    check if the get_data method works as expected and returns array
    as expected
    """
    dir_path = "./data/test/nifti/grouped/test"
    name = "images"

    loader = NiftiFileLoader(dir_path=dir_path, name=name, grouped=True)
    index = (0, 1)
    array = loader.get_data(index)
    got = [
        np.shape(array),
        [np.amax(array), np.amin(array), np.mean(array), np.std(array)],
    ]
    expected = [(64, 64, 60), [255.0, 0.0, 85.67942, 49.193127]]
    loader.close()
    if got[0] == expected[0]:
        assert check_equal(np.array(got[1]), np.array(expected[1])).all()
    else:
        raise AssertionError
예제 #5
0
def test_get_data():
    """
    check if the get_data method works as expected and returns array
    as expected
    """
    dir_path = "./data/test/nifti/paired/test"
    name = "fixed_images"

    loader = NiftiFileLoader(dir_path=dir_path, name=name, grouped=False)
    index = 0
    array = loader.get_data(index)
    got = [
        np.shape(array),
        [np.amax(array), np.amin(array), np.mean(array), np.std(array)],
    ]
    expected = [(44, 59, 41), [255.0, 0.0, 68.359276, 65.84009]]
    loader.close()
    if got[0] == expected[0]:
        assert check_equal(np.array(got[1]), np.array(expected[1])).all()
    else:
        raise AssertionError
예제 #6
0
def test_get_data_ids():
    """
    check if the get_data_ids method works as expected
    """
    # paired
    dir_paths = ["./data/test/nifti/paired/test"]
    name = "fixed_images"
    loader = NiftiFileLoader(dir_paths=dir_paths, name=name, grouped=False)
    got = loader.get_data_ids()
    expected = [
        ("./data/test/nifti/paired/test", "case000025"),
        ("./data/test/nifti/paired/test", "case000026"),
    ]
    loader.close()
    assert got == expected

    # unpaired
    dir_paths = ["./data/test/nifti/unpaired/test"]
    name = "images"
    loader = NiftiFileLoader(dir_paths=dir_paths, name=name, grouped=False)
    got = loader.get_data_ids()
    expected = [
        ("./data/test/nifti/unpaired/test", "case000025"),
        ("./data/test/nifti/unpaired/test", "case000026"),
    ]
    loader.close()
    assert got == expected

    # grouped
    dir_paths = ["./data/test/nifti/grouped/test"]
    name = "images"
    loader = NiftiFileLoader(dir_paths=dir_paths, name=name, grouped=True)
    got = loader.get_data_ids()
    expected = [
        ("./data/test/nifti/grouped/test", "group1", "case000025"),
        ("./data/test/nifti/grouped/test", "group1", "case000026"),
    ]
    loader.close()
    assert got == expected

    # multi dirs
    dir_paths = [
        "./data/test/nifti/grouped/train", "./data/test/nifti/grouped/test"
    ]
    name = "images"
    loader = NiftiFileLoader(dir_paths=dir_paths, name=name, grouped=True)
    got = loader.get_data_ids()
    expected = [
        ("./data/test/nifti/grouped/test", "group1", "case000025"),
        ("./data/test/nifti/grouped/test", "group1", "case000026"),
        ("./data/test/nifti/grouped/train", "group1", "case000000"),
        ("./data/test/nifti/grouped/train", "group1", "case000001"),
        ("./data/test/nifti/grouped/train", "group1", "case000003"),
        ("./data/test/nifti/grouped/train", "group1", "case000008"),
        ("./data/test/nifti/grouped/train", "group2", "case000009"),
        ("./data/test/nifti/grouped/train", "group2", "case000011"),
        ("./data/test/nifti/grouped/train", "group2", "case000012"),
    ]
    loader.close()
    assert got == expected

    # wrong index for paired
    dir_paths = ["./data/test/nifti/paired/test"]
    name = "fixed_images"
    loader = NiftiFileLoader(dir_paths=dir_paths, name=name, grouped=False)
    with pytest.raises(AssertionError):
        loader.get_data(index=(0, 1))
    with pytest.raises(ValueError) as err_info:
        loader.get_data(index=[0])
    assert "must be int, or tuple" in str(err_info.value)

    # wrong index for grouped
    dir_paths = ["./data/test/nifti/grouped/test"]
    name = "images"
    loader = NiftiFileLoader(dir_paths=dir_paths, name=name, grouped=True)
    with pytest.raises(AssertionError):
        # negative group_index
        loader.get_data(index=(-1, 1))
    with pytest.raises(IndexError):
        # out of range group_index
        loader.get_data(index=(32, 1))
    with pytest.raises(AssertionError):
        # negative in_group_data_index
        loader.get_data(index=(0, -1))
    with pytest.raises(IndexError):
        # out of range in_group_data_index
        loader.get_data(index=(0, 32))
예제 #7
0
def test_get_data():
    """
    test get_data method by verifying returns' shape and value stats
    """
    # paired
    dir_paths = ["./data/test/nifti/paired/test"]
    name = "fixed_images"
    loader = NiftiFileLoader(dir_paths=dir_paths, name=name, grouped=False)
    index = 0
    array = loader.get_data(index)
    got = [
        np.shape(array),
        [np.amax(array),
         np.amin(array),
         np.mean(array),
         np.std(array)],
    ]
    expected = [(44, 59, 41), [255.0, 0.0, 68.359276, 65.84009]]
    loader.close()
    assert got[0] == expected[0]
    assert is_equal_np(got[1], expected[1])

    # unpaired
    dir_paths = ["./data/test/nifti/unpaired/test"]
    name = "images"
    loader = NiftiFileLoader(dir_paths=dir_paths, name=name, grouped=False)
    index = 0
    array = loader.get_data(index)
    got = [
        np.shape(array),
        [np.amax(array),
         np.amin(array),
         np.mean(array),
         np.std(array)],
    ]
    expected = [(64, 64, 60), [255.0, 0.0, 60.073948, 47.27648]]
    loader.close()
    assert got[0] == expected[0]
    assert is_equal_np(got[1], expected[1])

    # grouped
    dir_paths = ["./data/test/nifti/grouped/test"]
    name = "images"
    loader = NiftiFileLoader(dir_paths=dir_paths, name=name, grouped=True)
    index = (0, 1)
    array = loader.get_data(index)
    got = [
        np.shape(array),
        [np.amax(array),
         np.amin(array),
         np.mean(array),
         np.std(array)],
    ]
    expected = [(64, 64, 60), [255.0, 0.0, 85.67942, 49.193127]]
    loader.close()
    assert got[0] == expected[0]
    assert is_equal_np(got[1], expected[1])

    # multi dirs
    dir_paths = [
        "./data/test/nifti/grouped/train", "./data/test/nifti/grouped/test"
    ]
    name = "images"
    loader = NiftiFileLoader(dir_paths=dir_paths, name=name, grouped=True)
    index = (0, 1)
    array = loader.get_data(index)
    got = [
        np.shape(array),
        [np.amax(array),
         np.amin(array),
         np.mean(array),
         np.std(array)],
    ]
    expected = [(64, 64, 60), [255.0, 0.0, 85.67942, 49.193127]]
    loader.close()
    assert got[0] == expected[0]
    assert is_equal_np(got[1], expected[1])