Skip to content

Commit 87d9a4f

Browse files
committed
adding new zenodo tests and fixing the rest of tests
1 parent b896e49 commit 87d9a4f

File tree

6 files changed

+143
-54
lines changed

6 files changed

+143
-54
lines changed

httomolibgpu/recon/rotation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ def find_center_360(
474474
(overlap, side, overlap_position) = _find_overlap(
475475
sino_top, sino_bot, win_width, side, denoise, norm, use_overlap
476476
)
477-
cor = ncol - overlap / 2.0 - 1.0
477+
cor = ncol - overlap / 2
478478

479479
return cor, overlap, side, overlap_position
480480

tests/test_recon/test_rotation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@ def test_find_center_360_data(data):
9696
eps = 1e-5
9797
(cor, overlap, side, overlap_pos) = find_center_360(data, norm=True, denoise=False)
9898

99-
assert_allclose(cor, 132.45317, rtol=eps)
99+
assert_allclose(cor, 133.453167, rtol=eps)
100100
assert_allclose(overlap, 53.093666, rtol=eps)
101-
assert side == 'right'
101+
assert side == "right"
102102
assert_allclose(overlap_pos, 111.906334, rtol=eps)
103103

104104

zenodo-tests/conftest.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,22 @@ def i12_dataset4(i12_dataset4_file):
105105
)
106106

107107

108+
@pytest.fixture(scope="session")
109+
def i12_dataset5_file(test_data_path):
110+
in_file = os.path.join(test_data_path, "i12_dataset5.npz")
111+
return np.load(in_file)
112+
113+
114+
@pytest.fixture
115+
def i12_dataset5(i12_dataset5_file):
116+
return (
117+
cp.asarray(i12_dataset5_file["projdata"]),
118+
i12_dataset5_file["angles"],
119+
cp.asarray(i12_dataset5_file["flats"]),
120+
cp.asarray(i12_dataset5_file["darks"]),
121+
)
122+
123+
108124
@pytest.fixture(scope="session")
109125
def i13_dataset1_file(test_data_path):
110126
in_file = os.path.join(test_data_path, "i13_dataset1.npz")

zenodo-tests/test_misc/test_morph.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,24 @@ def test_sino_360_to_180_i13_dataset3(i13_dataset3):
4949
assert stiched_data_180degrees.shape == (3000, 3, 4682)
5050
assert stiched_data_180degrees.dtype == np.float32
5151
assert stiched_data_180degrees.flags.c_contiguous
52+
53+
54+
def test_sino_360_to_180_i12_dataset5(i12_dataset5):
55+
projdata = i12_dataset5[0]
56+
flats = i12_dataset5[2]
57+
darks = i12_dataset5[3]
58+
del i12_dataset5
59+
60+
data_normalised = normalize(projdata, flats, darks, minus_log=True)
61+
del flats, darks, projdata
62+
force_clean_gpu_memory()
63+
64+
stiched_data_180degrees = sino_360_to_180(
65+
data_normalised, overlap=186.66, side="left"
66+
)
67+
stiched_data_180degrees = stiched_data_180degrees.get()
68+
69+
assert_allclose(np.sum(stiched_data_180degrees), 145920580.0, rtol=1e-07, atol=1e-6)
70+
assert stiched_data_180degrees.shape == (1800, 15, 4933)
71+
assert stiched_data_180degrees.dtype == np.float32
72+
assert stiched_data_180degrees.flags.c_contiguous

zenodo-tests/test_recon/test_algorithm.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,37 @@ def test_reconstruct_FBP3d_tomobar_i13_dataset3(i13_dataset3):
277277

278278
assert recon_data.flags.c_contiguous
279279
recon_data = recon_data.get()
280-
280+
281281
assert recon_data.dtype == np.float32
282282
assert recon_data.shape == (4682, 3, 4682)
283+
284+
285+
def test_reconstruct_FBP3d_tomobar_i12_dataset5(i12_dataset5):
286+
force_clean_gpu_memory()
287+
projdata = i12_dataset5[0]
288+
angles = i12_dataset5[1]
289+
flats = i12_dataset5[2]
290+
darks = i12_dataset5[3]
291+
del i12_dataset5
292+
293+
data_normalised = normalize(projdata, flats, darks, minus_log=True)
294+
del flats, darks, projdata
295+
force_clean_gpu_memory()
296+
297+
stiched_data_180degrees = sino_360_to_180(
298+
data_normalised, overlap=186.66, side="left"
299+
)
300+
force_clean_gpu_memory()
301+
302+
recon_data = FBP3d_tomobar(
303+
stiched_data_180degrees,
304+
np.deg2rad(angles[0:1800]),
305+
center=2466,
306+
filter_freq_cutoff=0.35,
307+
)
308+
309+
assert recon_data.flags.c_contiguous
310+
recon_data = recon_data.get()
311+
312+
assert recon_data.dtype == np.float32
313+
assert recon_data.shape == (4933, 15, 4933)

zenodo-tests/test_recon/test_rotation.py

Lines changed: 71 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -124,27 +124,6 @@ def test_center_pc_i12_dataset3(i12_dataset3, ensure_clean_memory):
124124
assert cor_pc.dtype == np.float32
125125

126126

127-
# ----------------------------------------------------------#
128-
# i13_dataset1 tests
129-
# 360 degrees dataset
130-
def test_center_360_i13_dataset1(i13_dataset1, ensure_clean_memory):
131-
projdata = i13_dataset1[0]
132-
flats = i13_dataset1[2]
133-
darks = i13_dataset1[3]
134-
del i13_dataset1
135-
136-
data_normalised = normalize(projdata, flats, darks, minus_log=False)
137-
del flats, darks, projdata
138-
139-
ensure_clean_memory
140-
cor, overlap, side, overlap_position = find_center_360(data_normalised)
141-
142-
assert int(cor) == 2322
143-
assert side == "right"
144-
assert int(overlap) == 473 # actual 473.822265625
145-
assert cor.dtype == np.float64
146-
147-
148127
# ----------------------------------------------------------#
149128
# i13_dataset2 tests
150129
# 180 degrees dataset (2500 projections)
@@ -167,35 +146,6 @@ def test_center_vo_i13_dataset2(i13_dataset2, ensure_clean_memory):
167146
assert cor.dtype == np.float32
168147

169148

170-
# ----------------------------------------------------------#
171-
# i13_dataset3 tests
172-
# 360 degrees dataset
173-
def test_center_360_i13_dataset3(i13_dataset3, ensure_clean_memory):
174-
projdata = i13_dataset3[0]
175-
flats = i13_dataset3[2]
176-
darks = i13_dataset3[3]
177-
del i13_dataset3
178-
179-
data_normalised = normalize(projdata, flats, darks, minus_log=False)
180-
del flats, darks, projdata
181-
182-
ensure_clean_memory
183-
cor, overlap, side, overlap_position = find_center_360(
184-
data_normalised,
185-
ind=1,
186-
win_width=50,
187-
side=None,
188-
denoise=True,
189-
norm=True,
190-
use_overlap=True,
191-
)
192-
193-
assert int(cor) == 218 # actual 218.08 (not correct CoR actually, should be 2341)
194-
assert side == "left"
195-
assert int(overlap) == 438 # actual 438.173828
196-
assert cor.dtype == np.float64
197-
198-
199149
# ----------------------------------------------------------#
200150
# geant4_dataset1 tests
201151
def test_center_vo_geant4_dataset1(geant4_dataset1, ensure_clean_memory):
@@ -234,3 +184,74 @@ def test_center_vo_k11_dataset1(k11_dataset1, ensure_clean_memory):
234184

235185
assert cor == 1269.25
236186
assert cor.dtype == np.float32
187+
188+
189+
# ----------------------------------------------------------#
190+
# i12_dataset5 tests
191+
# 360 degrees dataset
192+
def test_center_360_i12_dataset5(i12_dataset5, ensure_clean_memory):
193+
projdata = i12_dataset5[0]
194+
flats = i12_dataset5[2]
195+
darks = i12_dataset5[3]
196+
del i12_dataset5
197+
198+
data_normalised = normalize(projdata, flats, darks, minus_log=True)
199+
del flats, darks, projdata
200+
201+
ensure_clean_memory
202+
cor, overlap, side, overlap_position = find_center_360(data_normalised)
203+
204+
assert int(cor) == 2466
205+
assert side == "left"
206+
assert int(overlap) == 186
207+
assert cor.dtype == np.float64
208+
209+
210+
# ----------------------------------------------------------#
211+
# i13_dataset1 tests
212+
# 360 degrees dataset
213+
def test_center_360_i13_dataset1(i13_dataset1, ensure_clean_memory):
214+
projdata = i13_dataset1[0]
215+
flats = i13_dataset1[2]
216+
darks = i13_dataset1[3]
217+
del i13_dataset1
218+
219+
data_normalised = normalize(projdata, flats, darks, minus_log=True)
220+
del flats, darks, projdata
221+
222+
ensure_clean_memory
223+
cor, overlap, side, overlap_position = find_center_360(data_normalised)
224+
225+
assert int(cor) == 2323
226+
assert side == "right"
227+
assert int(overlap) == 473 # actual 473.822265625
228+
assert cor.dtype == np.float64
229+
230+
231+
# ----------------------------------------------------------#
232+
# i13_dataset3 tests
233+
# 360 degrees dataset
234+
def test_center_360_i13_dataset3(i13_dataset3, ensure_clean_memory):
235+
projdata = i13_dataset3[0]
236+
flats = i13_dataset3[2]
237+
darks = i13_dataset3[3]
238+
del i13_dataset3
239+
240+
data_normalised = normalize(projdata, flats, darks, minus_log=True)
241+
del flats, darks, projdata
242+
243+
ensure_clean_memory
244+
cor, overlap, side, overlap_position = find_center_360(
245+
data_normalised,
246+
ind=1,
247+
win_width=50,
248+
side=None,
249+
denoise=True,
250+
norm=True,
251+
use_overlap=True,
252+
)
253+
254+
assert int(cor) == 2340
255+
assert side == "left"
256+
assert int(overlap) == 438 # actual 438.173828
257+
assert cor.dtype == np.float64

0 commit comments

Comments
 (0)