Skip to content

Commit 9882958

Browse files
committed
basic tests fixed
1 parent 8ee8d16 commit 9882958

File tree

5 files changed

+25
-117
lines changed

5 files changed

+25
-117
lines changed

tests/test_prep/stripe_cpu_reference.py

Lines changed: 0 additions & 53 deletions
This file was deleted.

tests/test_prep/test_normalize.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def test_dark_flat_field_performance(ensure_clean_memory):
7474

7575
# run code and time it
7676
# do a cold run for warmup
77-
dark_flat_field(
77+
dark_flat_field_correction(
7878
cp.copy(data),
7979
flats,
8080
darks,
@@ -85,7 +85,7 @@ def test_dark_flat_field_performance(ensure_clean_memory):
8585
start = time.perf_counter_ns()
8686
nvtx.RangePush("Core")
8787
for _ in range(10):
88-
normalize(
88+
dark_flat_field_correction(
8989
cp.copy(data),
9090
flats,
9191
darks,

tests/test_prep/test_stripe.py

Lines changed: 11 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
raven_filter,
1313
)
1414
from numpy.testing import assert_allclose
15-
from .stripe_cpu_reference import raven_filter_numpy
1615

1716

1817
def test_remove_stripe_ti_on_data(data, flats, darks):
@@ -62,45 +61,17 @@ def test_stripe_removal_sorting_cupy(data, flats, darks):
6261

6362

6463
def test_stripe_raven_cupy(data, flats, darks):
65-
# --- testing the CuPy port of TomoPy's implementation ---#
66-
67-
data = normalize(data, flats, darks, cutoff=10, minus_log=True)
68-
69-
data_after_raven_gpu = raven_filter(cp.copy(data)).get()
70-
data_after_raven_cpu = raven_filter_numpy(cp.copy(data).get())
71-
72-
assert_allclose(data_after_raven_cpu, data_after_raven_gpu, rtol=0, atol=4e-01)
64+
data_norm = dark_flat_field_correction(cp.copy(data), flats, darks, cutoff=10)
65+
data_norm = minus_log(data_norm)
7366

67+
data_after_raven_gpu = cp.asnumpy(raven_filter(data_norm))
68+
7469
data = None #: free up GPU memory
70+
assert_allclose(np.mean(data_after_raven_gpu), 0.2892464, rtol=1e-06)
71+
7572
# make sure the output is float32
7673
assert data_after_raven_gpu.dtype == np.float32
77-
assert data_after_raven_gpu.shape == data_after_raven_cpu.shape
78-
79-
80-
@pytest.mark.parametrize("uvalue", [20, 50, 100])
81-
@pytest.mark.parametrize("nvalue", [2, 4, 6])
82-
@pytest.mark.parametrize("vvalue", [2, 4])
83-
@pytest.mark.parametrize("pad_x", [0, 10, 20])
84-
@pytest.mark.parametrize("pad_y", [0, 10, 20])
85-
@cp.testing.numpy_cupy_allclose(rtol=0, atol=3e-01)
86-
def test_stripe_raven_parameters_cupy(
87-
ensure_clean_memory, xp, uvalue, nvalue, vvalue, pad_x, pad_y
88-
):
89-
# because it's random, we explicitly seed and use numpy only, to match the data
90-
np.random.seed(12345)
91-
data = np.random.random_sample(size=(256, 5, 512)).astype(np.float32) * 2.0 + 0.001
92-
data = xp.asarray(data)
93-
94-
if xp.__name__ == "numpy":
95-
results = raven_filter_numpy(
96-
data, uvalue=uvalue, nvalue=nvalue, vvalue=vvalue, pad_x=pad_x, pad_y=pad_y
97-
).astype(np.float32)
98-
else:
99-
results = raven_filter(
100-
data, uvalue=uvalue, nvalue=nvalue, vvalue=vvalue, pad_x=pad_x, pad_y=pad_y
101-
).get()
102-
103-
return xp.asarray(results)
74+
assert data_after_raven_gpu.shape == (180, 128, 160)
10475

10576

10677
@pytest.mark.perf
@@ -180,9 +151,11 @@ def test_raven_filter_performance(ensure_clean_memory):
180151

181152
def test_remove_all_stripe_on_data(data, flats, darks):
182153
# --- testing the CuPy implementation from TomoCupy ---#
183-
data = normalize(data, flats, darks, cutoff=10, minus_log=True)
154+
data_norm = dark_flat_field_correction(cp.copy(data), flats, darks, cutoff=10)
155+
data_norm = minus_log(data_norm)
156+
184157

185-
data_after_stripe_removal = remove_all_stripe(cp.copy(data)).get()
158+
data_after_stripe_removal = cp.asnumpy(remove_all_stripe(data_norm))
186159

187160
assert_allclose(np.mean(data_after_stripe_removal), 0.266914, rtol=1e-05)
188161
assert_allclose(

tests/test_recon/test_algorithm.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,11 @@ def test_reconstruct_FBP3d_tomobar_2(data, flats, darks, ensure_clean_memory):
9292
)
9393

9494
recon_data = recon_data.get()
95-
assert_allclose(np.mean(recon_data), -0.00015, rtol=1e-07, atol=1e-6)
95+
assert_allclose(np.mean(recon_data), 0.000265, rtol=1e-07, atol=1e-6)
9696
assert_allclose(
97-
np.mean(recon_data, axis=(0, 2)).sum(), -0.019142, rtol=1e-06, atol=1e-5
97+
np.mean(recon_data, axis=(0, 2)).sum(), 0.03396, rtol=1e-06, atol=1e-5
9898
)
99-
assert_allclose(np.std(recon_data), 0.003561, rtol=1e-07, atol=1e-6)
99+
assert_allclose(np.std(recon_data), 0.006599, rtol=1e-07, atol=1e-6)
100100
assert recon_data.dtype == np.float32
101101

102102

@@ -114,9 +114,9 @@ def test_reconstruct_FBP3d_tomobar_3_detpad_true(data, flats, darks, ensure_clea
114114
)
115115

116116
recon_data = recon_data.get()
117-
assert_allclose(np.mean(recon_data), -0.00041842036, atol=1e-6)
117+
assert_allclose(np.mean(recon_data), 0.000692, atol=1e-6)
118118
assert_allclose(
119-
np.mean(recon_data, axis=(0, 2)).sum(), -0.05355779, rtol=1e-06, atol=1e-5
119+
np.mean(recon_data, axis=(0, 2)).sum(), 0.088599, rtol=1e-06, atol=1e-5
120120
)
121121
assert recon_data.dtype == np.float32
122122
assert recon_data.shape == (210, 128, 210)

tests/test_recon/test_rotation.py

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
import math
2-
import random
31
import time
42
from unittest import mock
53
import cupy as cp
64
from cupy.cuda import nvtx
75
from cupyx.scipy.ndimage import shift
86
import numpy as np
97
import pytest
10-
from httomolibgpu.prep.normalize import normalize
8+
from httomolibgpu.prep.normalize import dark_flat_field_correction, minus_log
119
from httomolibgpu.recon.rotation import (
1210
_calculate_chunks,
1311
find_center_360,
@@ -18,11 +16,11 @@
1816

1917

2018
def test_find_center_vo(data, flats, darks):
21-
data = normalize(data, flats, darks)
19+
data_normalize = dark_flat_field_correction(cp.copy(data), flats, darks)
2220

2321
# --- testing the center of rotation on tomo_standard ---#
2422
cor = find_center_vo(
25-
data.copy(),
23+
data_normalize,
2624
average_radius=0,
2725
)
2826

@@ -147,20 +145,10 @@ def test_find_center_360_performance(ensure_clean_memory):
147145
assert "performance in ms" == duration_ms
148146

149147

150-
def test_find_center_pc(data, flats, darks, ensure_clean_memory):
151-
data = normalize(data, flats, darks)[:, :, 3]
152-
shifted_data = shift(cp.fliplr(data), (0, 18.75), mode="reflect")
153-
154-
# --- testing the center of rotation on tomo_standard ---#
155-
cor = find_center_pc(data, shifted_data)
156-
157-
assert_allclose(cor, 73.0, rtol=1e-7)
158-
159-
160-
def test_find_center_pc2(data, flats, darks, ensure_clean_memory):
161-
data = normalize(data, flats, darks)
162-
proj1 = data[0, :, :]
163-
proj2 = data[179, :, :]
148+
def test_find_center_pc(data, flats, darks, ensure_clean_memory):
149+
data_normalize = dark_flat_field_correction(cp.copy(data), flats, darks)
150+
proj1 = data_normalize[0, :, :]
151+
proj2 = data_normalize[179, :, :]
164152

165153
# --- testing the center of rotation on tomo_standard ---#
166154
cor = find_center_pc(proj1, proj2)

0 commit comments

Comments
 (0)