Skip to content

Commit

Permalink
enh: added tests for codecov
Browse files Browse the repository at this point in the history
  • Loading branch information
Julien Marabotto authored and Julien Marabotto committed Jul 19, 2024
1 parent 2384469 commit c25a501
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 6 deletions.
23 changes: 18 additions & 5 deletions docs/notebooks/Visualizing transforms.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 16,
"metadata": {},
"outputs": [
{
Expand All @@ -325,6 +325,7 @@
" zslice=zslice,\n",
" lw=0.25,\n",
" show_brain=False,\n",
" show_grid=True,\n",
")\n",
"plt.show()"
]
Expand Down Expand Up @@ -453,24 +454,36 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 17,
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "PlotDenseField.plot_coeffs() missing 1 required positional argument: 'axes'",
"evalue": "'list' object cannot be interpreted as an integer",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"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",
"\u001b[0;31mTypeError\u001b[0m: PlotDenseField.plot_coeffs() missing 1 required positional argument: 'axes'"
"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",
"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",
"\u001b[0;31mTypeError\u001b[0m: 'list' object cannot be interpreted as an integer"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAjtElEQVR4nO3db2yd5Xk/8MtxsA0qNmFZnD8zzaCjtAUSmhDXUIQ6ebUESpsXUzNASRZRGCVFLNZWEkjjUtY4oxRlKqERKYxKK0taBKxqojDqNqoonqLmj0RHAkoDTVbVJlkXOw2tndjP7wU/fDiNw+E4Prft+PORzgs/uR+f67nlPF/p6+NzyrIsywIAAAAAEpow0gMAAAAAMP4opQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEiu6FLqpz/9acyfPz+mT58eZWVl8dxzzxU8Z/v27fHxj388Kisr40Mf+lA8+eSTQxgVgLFCVgBQiKwAoOhS6vjx4zFr1qxYv379+1r/+uuvx4033hif+tSnYs+ePfH3f//38fnPfz6ef/75oocFYGyQFQAUIisAKMuyLBvyyWVl8eyzz8aCBQtOu+aee+6JLVu2xC9+8YuBY3/zN38TR48ejW3btg31qQEYI2QFAIXICoDxqeTvKdXe3h6NjY15x5qamqK9vb3UTw3AGCErAChEVgCcfSaW+gk6OjqitrY271htbW10d3fH73//+zj33HNPOaenpyd6enoGvu7v74/f/va38Sd/8idRVlZW6pEBzipZlsWxY8di+vTpMWHC6Px8C1kBMLJkBQCFlCIrSl5KDUVra2vcf//9Iz0GwFnl0KFD8Wd/9mcjPcawkRUAw09WAFDIcGZFyUupqVOnRmdnZ96xzs7OqK6uHvS3GRERK1eujObm5oGvu7q64qKLLopDhw5FdXV1SecFONt0d3dHXV1dnH/++SM9ymnJCoCRJSsAKKQUWVHyUqqhoSG2bt2ad+yFF16IhoaG055TWVkZlZWVpxyvrq4WHgBDNJr/TEFWAIwOsgKAQoYzK4r+I8Df/e53sWfPntizZ09EvP3RrHv27ImDBw9GxNu/jVi8ePHA+jvuuCMOHDgQX/rSl2Lfvn3x6KOPxve+971Yvnz58FwBAKOOrACgEFkBQNGl1M9//vO46qqr4qqrroqIiObm5rjqqqti9erVERHxm9/8ZiBIIiL+/M//PLZs2RIvvPBCzJo1K77xjW/Et7/97WhqahqmSwBgtJEVABQiKwAoy7IsG+khCunu7o6ampro6uryMluAIo2Xe+h4uU6AUhgv99Dxcp0ApVCKe+jo/LxXAAAAAM5qSikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJDKqXWr18fM2fOjKqqqqivr48dO3a85/p169bFhz/84Tj33HOjrq4uli9fHn/4wx+GNDAAY4OsAKAQWQEwvhVdSm3evDmam5ujpaUldu3aFbNmzYqmpqZ48803B13/1FNPxYoVK6KlpSX27t0bjz/+eGzevDnuvffeMx4egNFJVgBQiKwAoOhS6uGHH47bbrstli5dGh/96Edjw4YNcd5558UTTzwx6PqXXnoprr322rj55ptj5syZ8elPfzpuuummgr8FAWDskhUAFCIrACiqlOrt7Y2dO3dGY2Nj7htMmBCNjY3R3t4+6DnXXHNN7Ny5cyAsDhw4EFu3bo0bbrjhDMYGYLSSFQAUIisAiIiYWMziI0eORF9fX9TW1uYdr62tjX379g16zs033xxHjhyJT37yk5FlWZw8eTLuuOOO93yZbU9PT/T09Ax83d3dXcyYAIwgWQFAIbICgIgEn763ffv2WLNmTTz66KOxa9eueOaZZ2LLli3xwAMPnPac1tbWqKmpGXjU1dWVekwARpCsAKAQWQFw9inLsix7v4t7e3vjvPPOi6effjoWLFgwcHzJkiVx9OjR+I//+I9TzrnuuuviE5/4RHz9618fOPZv//Zvcfvtt8fvfve7mDDh1F5ssN9o1NXVRVdXV1RXV7/fcQGIt++hNTU1ye6hsgJg7JEVABRSiqwo6pVSFRUVMWfOnGhraxs41t/fH21tbdHQ0DDoOW+99dYpAVFeXh4REafrwyorK6O6ujrvAcDYICsAKERWABBR5HtKRUQ0NzfHkiVLYu7cuTFv3rxYt25dHD9+PJYuXRoREYsXL44ZM2ZEa2trRETMnz8/Hn744bjqqquivr4+9u/fH1/+8pdj/vz5AyECwNlFVgBQiKwAoOhSauHChXH48OFYvXp1dHR0xOzZs2Pbtm0Db1J48ODBvN9grFq1KsrKymLVqlXx61//Ov70T/805s+fH1/72teG7yoAGFVkBQCFyAoAinpPqZGS+m/cAc4m4+UeOl6uE6AUxss9dLxcJ0ApjPh7SgEAAADAcFBKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSG1IptX79+pg5c2ZUVVVFfX197Nix4z3XHz16NJYtWxbTpk2LysrKuPTSS2Pr1q1DGhiAsUFWAFCIrAAY3yYWe8LmzZujubk5NmzYEPX19bFu3bpoamqKV199NaZMmXLK+t7e3virv/qrmDJlSjz99NMxY8aM+NWvfhUXXHDBcMwPwCgkKwAoRFYAUJZlWVbMCfX19XH11VfHI488EhER/f39UVdXF3fddVesWLHilPUbNmyIr3/967Fv374455xzhjRkd3d31NTURFdXV1RXVw/pewCMVyNxD5UVAGOLrACgkFLcQ4v6873e3t7YuXNnNDY25r7BhAnR2NgY7e3tg57zgx/8IBoaGmLZsmVRW1sbl19+eaxZsyb6+vrObHIARiVZAUAhsgKAiCL/fO/IkSPR19cXtbW1ecdra2tj3759g55z4MCB+PGPfxy33HJLbN26Nfbv3x933nlnnDhxIlpaWgY9p6enJ3p6ega+7u7uLmZMAEaQrACgEFkBQESCT9/r7++PKVOmxGOPPRZz5syJhQsXxn333RcbNmw47Tmtra1RU1Mz8Kirqyv1mACMIFkBQCGyAuDsU1QpNXny5CgvL4/Ozs68452dnTF16tRBz5k2bVpceumlUV5ePnDsIx/5SHR0dERvb++g56xcuTK6uroGHocOHSpmTABGkKwAoBBZAUBEkaVURUVFzJkzJ9ra2gaO9ff3R1tbWzQ0NAx6zrXXXhv79++P/v7+gWOvvfZaTJs2LSoqKgY9p7KyMqqrq/MeAIwNsgKAQmQFABFD+PO95ubm2LhxY3znO9+JvXv3xhe+8IU4fvx4LF26NCIiFi9eHCtXrhxY/4UvfCF++9vfxt133x2vvfZabNmyJdasWRPLli0bvqsAYFSRFQAUIisAKOqNziMiFi5cGIcPH47Vq1dHR0dHzJ49O7Zt2zbwJoUHDx6MCRNyXVddXV08//zzsXz58rjyyitjxowZcffdd8c999wzfFcBwKgiKwAoRFYAUJZlWTbSQxTS3d0dNTU10dXV5SW3AEUaL/fQ8XKdAKUwXu6h4+U6AUqhFPfQkn/6HgAAAAD8MaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACC5IZVS69evj5kzZ0ZVVVXU19fHjh073td5mzZtirKysliwYMFQnhaAMURWAFCIrAAY34oupTZv3hzNzc3R0tISu3btilmzZkVTU1O8+eab73neG2+8Ef/wD/8Q11133ZCHBWBskBUAFCIrACi6lHr44Yfjtttui6VLl8ZHP/rR2LBhQ5x33nnxxBNPnPacvr6+uOWWW+L++++Piy+++IwGBmD0kxUAFCIrACiqlOrt7Y2dO3dGY2Nj7htMmBCNjY3R3t5+2vO++tWvxpQpU+LWW28d+qQAjAmyAoBCZAUAERETi1l85MiR6Ovri9ra2rzjtbW1sW/fvkHPefHFF+Pxxx+PPXv2vO/n6enpiZ6enoGvu7u7ixkTgBEkKwAoRFYAEFHiT987duxYLFq0KDZu3BiTJ09+3+e1trZGTU3NwKOurq6EUwIwkmQFAIXICoCzU1GvlJo8eXKUl5dHZ2dn3vHOzs6YOnXqKet/+ctfxhtvvBHz588fONbf3//2E0+cGK+++mpccsklp5y3cuXKaG5uHvi6u7tbgACMEbICgEJkBQARRZZSFRUVMWfOnGhraxv4+NX+/v5oa2uLL37xi6esv+yyy+Lll1/OO7Zq1ao4duxY/Mu//MtpA6GysjIqKyuLGQ2AUUJWAFCIrAAgoshSKiKiubk5lixZEnPnzo158+bFunXr4vjx47F06dKIiFi8eHHMmDEjWltbo6qqKi6//PK88y+44IKIiFOOA3D2kBUAFCIrACi6lFq4cGEcPnw4Vq9eHR0dHTF79uzYtm3bwJsUHjx4MCZMKOlbVQEwyskKAAqRFQCUZVmWjfQQhXR3d0dNTU10dXVFdXX1SI8DMKaMl3voeLlOgFIYL/fQ8XKdAKVQinuoXz0AAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSGVEqtX78+Zs6cGVVVVVFfXx87duw47dqNGzfGddddF5MmTYpJkyZFY2Pje64H4OwgKwAoRFYAjG9Fl1KbN2+O5ubmaGlpiV27dsWsWbOiqakp3nzzzUHXb9++PW666ab4yU9+Eu3t7VFXVxef/vSn49e//vUZDw/A6CQrAChEVgBQlmVZVswJ9fX1cfXVV8cjjzwSERH9/f1RV1cXd911V6xYsaLg+X19fTFp0qR45JFHYvHixe/rObu7u6Ompia6urqiurq6mHEBxr2RuIfKCoCxRVYAUEgp7qFFvVKqt7c3du7cGY2NjblvMGFCNDY2Rnt7+/v6Hm+99VacOHEiLrzwwtOu6enpie7u7rwHAGODrACgEFkBQESRpdSRI0eir68vamtr847X1tZGR0fH+/oe99xzT0yfPj0vgP5Ya2tr1NTUDDzq6uqKGROAESQrAChEVgAQkfjT99auXRubNm2KZ599Nqqqqk67buXKldHV1TXwOHToUMIpARhJsgKAQmQFwNlhYjGLJ0+eHOXl5dHZ2Zl3vLOzM6ZOnfqe5z700EOxdu3a+NGPfhRXXnnle66trKyMysrKYkYDYJSQFQAUIisAiCjylVIVFRUxZ86caGtrGzjW398fbW1t0dDQcNrzHnzwwXjggQdi27ZtMXfu3KFPC8CoJysAKERWABBR5CulIiKam5tjyZIlMXfu3Jg3b16sW7cujh8/HkuXLo2IiMWLF8eMGTOitbU1IiL++Z//OVavXh1PPfVUzJw5c+BvxD/wgQ/EBz7wgWG8FABGC1kBQCGyAoCiS6mFCxfG4cOHY/Xq1dHR0RGzZ8+Obdu2DbxJ4cGDB2PChNwLsL71rW9Fb29v/PVf/3Xe92lpaYmvfOUrZzY9AKOSrACgEFkBQFmWZdlID1FId3d31NTURFdXV1RXV4/0OABjyni5h46X6wQohfFyDx0v1wlQCqW4hyb99D0AAAAAiFBKAQAAADAClFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQnFIKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAgOaUUAAAAAMkppQAAAABITikFAAAAQHJKKQAAAACSU0oBAAAAkJxSCgAAAIDklFIAAAAAJKeUAgAAACA5pRQAAAAAySmlAAAAAEhOKQUAAABAckopAAAAAJJTSgEAAACQ3JBKqfXr18fMmTOjqqoq6uvrY8eOHe+5/vvf/35cdtllUVVVFVdccUVs3bp1SMMCMHbICgAKkRUA41vRpdTmzZujubk5WlpaYteuXTFr1qxoamqKN998c9D1L730Utx0001x6623xu7du2PBggWxYMGC+MUvfnHGwwMwOskKAAqRFQCUZVmWFXNCfX19XH311fHII49ERER/f3/U1dXFXXfdFStWrDhl/cKFC+P48ePxwx/+cODYJz7xiZg9e3Zs2LDhfT1nd3d31NTURFdXV1RXVxczLsC4NxL3UFkBMLbICgAKKcU9dGIxi3t7e2Pnzp2xcuXKgWMTJkyIxsbGaG9vH/Sc9vb2aG5uzjvW1NQUzz333Gmfp6enJ3p6ega+7urqioi3NwCA4rxz7yzydxBDJisAxh5ZAUAhpciKokqpI0eORF9fX9TW1uYdr62tjX379g16TkdHx6DrOzo6Tvs8ra2tcf/9959yvK6urphxAXiX//3f/42ampqSP4+sABi7ZAUAhQxnVhRVSqWycuXKvN+CHD16ND74wQ/GwYMHk4TkaNbd3R11dXVx6NAhLzkO+/Fu9iKf/cjp6uqKiy66KC688MKRHmVYyYrT8/Ofz37k2It89iNHVow/fv7z2Y8ce5HPfuSUIiuKKqUmT54c5eXl0dnZmXe8s7Mzpk6dOug5U6dOLWp9RERlZWVUVlaecrympmbc/xC8o7q62l68i/3IsRf57EfOhAlD+sDVosmK0cPPfz77kWMv8tmPHFkx/vj5z2c/cuxFPvuRM5xZUdR3qqioiDlz5kRbW9vAsf7+/mhra4uGhoZBz2loaMhbHxHxwgsvnHY9AGObrACgEFkBQMQQ/nyvubk5lixZEnPnzo158+bFunXr4vjx47F06dKIiFi8eHHMmDEjWltbIyLi7rvvjuuvvz6+8Y1vxI033hibNm2Kn//85/HYY48N75UAMGrICgAKkRUAFF1KLVy4MA4fPhyrV6+Ojo6OmD17dmzbtm3gTQcPHjyY91Kua665Jp566qlYtWpV3HvvvfEXf/EX8dxzz8Xll1/+vp+zsrIyWlpaBn3p7XhjL/LZjxx7kc9+5IzEXsiKkWUv8tmPHHuRz37kyIrxx17ksx859iKf/cgpxV6UZak+9xUAAAAA/r8072QIAAAAAO+ilAIAAAAgOaUUAAAAAMkppQAAAABIbtSUUuvXr4+ZM2dGVVVV1NfXx44dO95z/fe///247LLLoqqqKq644orYunVroklLr5i92LhxY1x33XUxadKkmDRpUjQ2Nhbcu7Gm2J+Nd2zatCnKyspiwYIFpR0woWL34ujRo7Fs2bKYNm1aVFZWxqWXXnrW/F8pdi/WrVsXH/7wh+Pcc8+Nurq6WL58efzhD39ING1p/fSnP4358+fH9OnTo6ysLJ577rmC52zfvj0+/vGPR2VlZXzoQx+KJ598suRzDgdZkSMr8smKHFmRIytyZMXpyYq3yYrTkxWy4t1kRb4zzopsFNi0aVNWUVGRPfHEE9l///d/Z7fddlt2wQUXZJ2dnYOu/9nPfpaVl5dnDz74YPbKK69kq1atys4555zs5ZdfTjz58Ct2L26++eZs/fr12e7du7O9e/dmf/u3f5vV1NRk//M//5N48tIodj/e8frrr2czZszIrrvuuuyzn/1smmFLrNi96OnpyebOnZvdcMMN2Ysvvpi9/vrr2fbt27M9e/Yknnz4FbsX3/3ud7PKysrsu9/9bvb6669nzz//fDZt2rRs+fLliScvja1bt2b33Xdf9swzz2QRkT377LPvuf7AgQPZeeedlzU3N2evvPJK9s1vfjMrLy/Ptm3blmbgIZIVObIin6zIkRU5siKfrJAVskJWvENW5MiKfCORFaOilJo3b162bNmyga/7+vqy6dOnZ62trYOu/9znPpfdeOONecfq6+uzv/u7vyvpnCkUuxd/7OTJk9n555+ffec73ynViEkNZT9OnjyZXXPNNdm3v/3tbMmSJWdNeBS7F9/61reyiy++OOvt7U01YjLF7sWyZcuyv/zLv8w71tzcnF177bUlnXMkvJ/w+NKXvpR97GMfyzu2cOHCrKmpqYSTnTlZkSMr8smKHFmRIytOT1bkyIrTkxWy4h2yIkdW5BuOrBjxP9/r7e2NnTt3RmNj48CxCRMmRGNjY7S3tw96Tnt7e976iIimpqbTrh8rhrIXf+ytt96KEydOxIUXXliqMZMZ6n589atfjSlTpsStt96aYswkhrIXP/jBD6KhoSGWLVsWtbW1cfnll8eaNWuir68v1dglMZS9uOaaa2Lnzp0DL8U9cOBAbN26NW644YYkM482Y/EeKityZEU+WZEjK3JkxZkbi/dQWZEjK/LJihxZkSMrztxw3EMnDvdQxTpy5Ej09fVFbW1t3vHa2trYt2/foOd0dHQMur6jo6Nkc6YwlL34Y/fcc09Mnz79lB+MsWgo+/Hiiy/G448/Hnv27EkwYTpD2YsDBw7Ej3/847jlllti69atsX///rjzzjvjxIkT0dLSkmLskhjKXtx8881x5MiR+OQnPxlZlsXJkyfjjjvuiHvvvTfFyKPO6e6h3d3d8fvf/z7OPffcEZrs9GRFjqzIJytyZEWOrDhzskJWyApZ8Q5ZkSMr8g1HVoz4K6UYPmvXro1NmzbFs88+G1VVVSM9TnLHjh2LRYsWxcaNG2Py5MkjPc6I6+/vjylTpsRjjz0Wc+bMiYULF8Z9990XGzZsGOnRktu+fXusWbMmHn300di1a1c888wzsWXLlnjggQdGejRITlbIineTFTmyAnJkhax4N1mRIyuG34i/Umry5MlRXl4enZ2decc7Oztj6tSpg54zderUotaPFUPZi3c89NBDsXbt2vjRj34UV155ZSnHTKbY/fjlL38Zb7zxRsyfP3/gWH9/f0RETJw4MV599dW45JJLSjt0iQzlZ2PatGlxzjnnRHl5+cCxj3zkI9HR0RG9vb1RUVFR0plLZSh78eUvfzkWLVoUn//85yMi4oorrojjx4/H7bffHvfdd19MmDC++vnT3UOrq6tH5W++I2TFu8mKfLIiR1bkyIozJytkhayQFe+QFTmyIt9wZMWI71hFRUXMmTMn2traBo719/dHW1tbNDQ0DHpOQ0ND3vqIiBdeeOG068eKoexFRMSDDz4YDzzwQGzbti3mzp2bYtQkit2Pyy67LF5++eXYs2fPwOMzn/lMfOpTn4o9e/ZEXV1dyvGH1VB+Nq699trYv3//QIBGRLz22msxbdq0MRscEUPbi7feeuuUgHgnVN9+D7/xZSzeQ2VFjqzIJytyZEWOrDhzY/EeKityZEU+WZEjK3JkxZkblntoce+/XhqbNm3KKisrsyeffDJ75ZVXsttvvz274IILso6OjizLsmzRokXZihUrBtb/7Gc/yyZOnJg99NBD2d69e7OWlpaz6qNbi9mLtWvXZhUVFdnTTz+d/eY3vxl4HDt2bKQuYVgVux9/7Gz6lIxi9+LgwYPZ+eefn33xi1/MXn311eyHP/xhNmXKlOyf/umfRuoShk2xe9HS0pKdf/752b//+79nBw4cyP7zP/8zu+SSS7LPfe5zI3UJw+rYsWPZ7t27s927d2cRkT388MPZ7t27s1/96ldZlmXZihUrskWLFg2sf+ejW//xH/8x27t3b7Z+/fox8zHfsuJtsiKfrMiRFTmyIp+skBWyQla8Q1bkyIp8I5EVo6KUyrIs++Y3v5lddNFFWUVFRTZv3rzsv/7rvwb+7frrr8+WLFmSt/573/tedumll2YVFRXZxz72sWzLli2JJy6dYvbigx/8YBYRpzxaWlrSD14ixf5svNvZFB5ZVvxevPTSS1l9fX1WWVmZXXzxxdnXvva17OTJk4mnLo1i9uLEiRPZV77yleySSy7Jqqqqsrq6uuzOO+/M/u///i/94CXwk5/8ZND7wDt7sGTJkuz6668/5ZzZs2dnFRUV2cUXX5z967/+a/K5h0JW5MiKfLIiR1bkyIocWfE2WSErZMXbZEWOrMgZiawoy7Jx+BozAAAAAEbUiL+nFAAAAADjj1IKAAAAgOSUUgAAAAAkp5QCAAAAIDmlFAAAAADJKaUAAAAASE4pBQAAAEBySikAAAAAklNKAQAAAJCcUgoAAACA5JRSAAAAACSnlAIAAAAguf8HXgRiwuvYxRIAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1200x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axes = plt.subplots(1, 3, figsize=(12, 4), tight_layout=True)\n",
"pdf_3d.plot_coeffs(\n",
" fig=fig,\n",
" axes=axes,\n",
" xslice=xslice,\n",
" yslice=yslice,\n",
Expand Down
34 changes: 33 additions & 1 deletion nitransforms/tests/test_vis.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import nibabel as nb
from nitransforms.nonlinear import DenseFieldTransform
from nitransforms.vis import PlotDenseField
from nitransforms.vis import PlotDenseField, format_axes


def test_read_path(data_path):
Expand Down Expand Up @@ -81,6 +81,19 @@ def test_plot_distortion(data_path, output_path):
plt.show()


def test_empty_quiver():
fig, axes = plt.subplots(1, 3, figsize=(12, 4), tight_layout=True)
PlotDenseField(
transform=np.zeros((10, 10, 10, 3)),
reference=nb.Nifti1Image(np.zeros((10, 10, 10, 3)), np.eye(4), None),
).plot_quiverdsm(
axes=axes,
xslice=5,
yslice=5,
zslice=5,
)


def test_plot_quiverdsm(data_path, output_path):
fig, axes = plt.subplots(1, 3, figsize=(12, 4))
PlotDenseField(
Expand Down Expand Up @@ -111,13 +124,32 @@ def test_3dquiver(data_path, output_path):
zslice=None,
three_D=True
)
format_axes(axes)

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


def test_coeffs(data_path, output_path):
fig, axes = plt.subplots(3, 3, figsize=(10, 9))
PlotDenseField(
transform=data_path / "ds-005_sub-01_from-OASIS_to-T1_warp_fsl.nii.gz"
).plot_coeffs(
fig=fig,
axes=axes,
xslice=50,
yslice=50,
zslice=50,
)

if output_path is not None:
plt.savefig(output_path / "plot_coeffs.svg", bbox_inches="tight")
else:
plt.show()


def test_plot_jacobian(data_path, output_path):
fig, axes = plt.subplots(1, 3, figsize=(12, 5))
PlotDenseField(
Expand Down

0 comments on commit c25a501

Please sign in to comment.