Skip to content

Commit c25a501

Browse files
Julien MarabottoJulien Marabotto
authored andcommitted
enh: added tests for codecov
1 parent 2384469 commit c25a501

File tree

2 files changed

+51
-6
lines changed

2 files changed

+51
-6
lines changed

docs/notebooks/Visualizing transforms.ipynb

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@
302302
},
303303
{
304304
"cell_type": "code",
305-
"execution_count": 10,
305+
"execution_count": 16,
306306
"metadata": {},
307307
"outputs": [
308308
{
@@ -325,6 +325,7 @@
325325
" zslice=zslice,\n",
326326
" lw=0.25,\n",
327327
" show_brain=False,\n",
328+
" show_grid=True,\n",
328329
")\n",
329330
"plt.show()"
330331
]
@@ -453,24 +454,36 @@
453454
},
454455
{
455456
"cell_type": "code",
456-
"execution_count": 12,
457+
"execution_count": 17,
457458
"metadata": {},
458459
"outputs": [
459460
{
460461
"ename": "TypeError",
461-
"evalue": "PlotDenseField.plot_coeffs() missing 1 required positional argument: 'axes'",
462+
"evalue": "'list' object cannot be interpreted as an integer",
462463
"output_type": "error",
463464
"traceback": [
464465
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
465466
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
466-
"Cell \u001b[0;32mIn[12], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mpdf_3d\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot_coeffs\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43mxslice\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mxslice\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43myslice\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43myslice\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mzslice\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mzslice\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m)\u001b[49m\n\u001b[1;32m 6\u001b[0m plt\u001b[38;5;241m.\u001b[39mshow()\n",
467-
"\u001b[0;31mTypeError\u001b[0m: PlotDenseField.plot_coeffs() missing 1 required positional argument: 'axes'"
467+
"Cell \u001b[0;32mIn[17], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m fig, axes \u001b[38;5;241m=\u001b[39m plt\u001b[38;5;241m.\u001b[39msubplots(\u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m3\u001b[39m, figsize\u001b[38;5;241m=\u001b[39m(\u001b[38;5;241m12\u001b[39m, \u001b[38;5;241m4\u001b[39m), tight_layout\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m----> 2\u001b[0m \u001b[43mpdf_3d\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot_coeffs\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43maxes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxes\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mxslice\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mxslice\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43myslice\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43myslice\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43mzslice\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mzslice\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[43m)\u001b[49m\n\u001b[1;32m 8\u001b[0m plt\u001b[38;5;241m.\u001b[39mshow()\n",
468+
"File \u001b[0;32m~/workspace/nitransforms/nitransforms/vis.py:398\u001b[0m, in \u001b[0;36mPlotDenseField.plot_coeffs\u001b[0;34m(self, axes, xslice, yslice, zslice, show_titles)\u001b[0m\n\u001b[1;32m 395\u001b[0m xslice, yslice, zslice \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtest_slices(xslice, yslice, zslice)\n\u001b[1;32m 396\u001b[0m planes, titles \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_planes(xslice, yslice, zslice)\n\u001b[0;32m--> 398\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m index, (ax, plane) \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28;43menumerate\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43maxes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mplanes\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 399\u001b[0m x, y, z, u, v, w \u001b[38;5;241m=\u001b[39m plane\n\u001b[1;32m 401\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m index \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n",
469+
"\u001b[0;31mTypeError\u001b[0m: 'list' object cannot be interpreted as an integer"
468470
]
471+
},
472+
{
473+
"data": {
474+
"image/png": "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",
475+
"text/plain": [
476+
"<Figure size 1200x400 with 3 Axes>"
477+
]
478+
},
479+
"metadata": {},
480+
"output_type": "display_data"
469481
}
470482
],
471483
"source": [
472484
"fig, axes = plt.subplots(1, 3, figsize=(12, 4), tight_layout=True)\n",
473485
"pdf_3d.plot_coeffs(\n",
486+
" fig=fig,\n",
474487
" axes=axes,\n",
475488
" xslice=xslice,\n",
476489
" yslice=yslice,\n",

nitransforms/tests/test_vis.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import nibabel as nb
66
from nitransforms.nonlinear import DenseFieldTransform
7-
from nitransforms.vis import PlotDenseField
7+
from nitransforms.vis import PlotDenseField, format_axes
88

99

1010
def test_read_path(data_path):
@@ -81,6 +81,19 @@ def test_plot_distortion(data_path, output_path):
8181
plt.show()
8282

8383

84+
def test_empty_quiver():
85+
fig, axes = plt.subplots(1, 3, figsize=(12, 4), tight_layout=True)
86+
PlotDenseField(
87+
transform=np.zeros((10, 10, 10, 3)),
88+
reference=nb.Nifti1Image(np.zeros((10, 10, 10, 3)), np.eye(4), None),
89+
).plot_quiverdsm(
90+
axes=axes,
91+
xslice=5,
92+
yslice=5,
93+
zslice=5,
94+
)
95+
96+
8497
def test_plot_quiverdsm(data_path, output_path):
8598
fig, axes = plt.subplots(1, 3, figsize=(12, 4))
8699
PlotDenseField(
@@ -111,13 +124,32 @@ def test_3dquiver(data_path, output_path):
111124
zslice=None,
112125
three_D=True
113126
)
127+
format_axes(axes)
114128

115129
if output_path is not None:
116130
plt.savefig(output_path / "plot_3dquiver.svg", bbox_inches="tight")
117131
else:
118132
plt.show()
119133

120134

135+
def test_coeffs(data_path, output_path):
136+
fig, axes = plt.subplots(3, 3, figsize=(10, 9))
137+
PlotDenseField(
138+
transform=data_path / "ds-005_sub-01_from-OASIS_to-T1_warp_fsl.nii.gz"
139+
).plot_coeffs(
140+
fig=fig,
141+
axes=axes,
142+
xslice=50,
143+
yslice=50,
144+
zslice=50,
145+
)
146+
147+
if output_path is not None:
148+
plt.savefig(output_path / "plot_coeffs.svg", bbox_inches="tight")
149+
else:
150+
plt.show()
151+
152+
121153
def test_plot_jacobian(data_path, output_path):
122154
fig, axes = plt.subplots(1, 3, figsize=(12, 5))
123155
PlotDenseField(

0 commit comments

Comments
 (0)