From e9abea925b42fe6f3857574df6bc6e3328a9dec8 Mon Sep 17 00:00:00 2001 From: ruaridhg Date: Fri, 2 Jun 2023 12:03:44 +0100 Subject: [PATCH 1/8] Added 3D scatter test with different z-axis from default --- src/napari_matplotlib/scatter.py | 3 +++ .../scatter/baseline/test_scatter_3D.png | Bin 0 -> 15061 bytes .../tests/scatter/test_scatter.py | 24 ++++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 src/napari_matplotlib/tests/scatter/baseline/test_scatter_3D.png diff --git a/src/napari_matplotlib/scatter.py b/src/napari_matplotlib/scatter.py index c439677b..6f7f3835 100644 --- a/src/napari_matplotlib/scatter.py +++ b/src/napari_matplotlib/scatter.py @@ -2,6 +2,7 @@ import napari import numpy.typing as npt +from numpy import array from qtpy.QtWidgets import QComboBox, QLabel, QVBoxLayout, QWidget from .base import NapariMPLWidget @@ -93,6 +94,8 @@ def _get_data(self) -> Tuple[npt.NDArray[Any], npt.NDArray[Any], str, str]: """ x = self.layers[0].data[self.current_z] y = self.layers[1].data[self.current_z] + print("x data size = ", array(x).shape) + print("y data size = ", array(y).shape) x_axis_name = self.layers[0].name y_axis_name = self.layers[1].name diff --git a/src/napari_matplotlib/tests/scatter/baseline/test_scatter_3D.png b/src/napari_matplotlib/tests/scatter/baseline/test_scatter_3D.png new file mode 100644 index 0000000000000000000000000000000000000000..6238d89db67ddd0af94dec109b89f3333b5db403 GIT binary patch literal 15061 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 Date: Fri, 2 Jun 2023 14:39:48 +0100 Subject: [PATCH 2/8] Changed default slice to 9 for test histrogram and slice --- .../tests/baseline/test_histogram_3D.png | Bin 16948 -> 17091 bytes .../tests/baseline/test_slice_3D.png | Bin 12825 -> 12791 bytes src/napari_matplotlib/tests/test_histogram.py | 3 +++ src/napari_matplotlib/tests/test_slice.py | 3 +++ 4 files changed, 6 insertions(+) diff --git a/src/napari_matplotlib/tests/baseline/test_histogram_3D.png b/src/napari_matplotlib/tests/baseline/test_histogram_3D.png index f93200226f9756b2dd8f0a56c4a97d4c08cc15af..484092b1ba0dbc9bfd876667fcd153f878d284c6 100644 GIT binary patch literal 17091 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 literal 16948 zcmeHvcU)83)@`gPf_M}UNLN4*P(Vd`6Dgrd3snM0lioo(iol@@ND%@^htNwvx{6Yz zLxLb60*2m03GJ-_o^tQ`?)Toi-(T3>cN#0Rka2ApCbMTQtiI0ufJv zJ`h)XikKgE4N2E9*w`NB?^K5kkK283WM4Eo9@t`Zv3M#pE`)_RIPpdEFXGqF869uD zAM=)JfFb3a6w`&z_LrG_$=^*Vypv%_&2>HXoJoem9%A_LBG)Edf9}nhQSOm9+=kT_ zu4sq-?2OzhqNQ^{s$p=hJkRb zx#~kWEcrtSAHSnMeg>j%t?NFIy4`4rUmS5?OvEuChd8q$aHk*;TLIp$w!R&r`#Z%e z(b1RpDNaE67*Ae+y!%?c+(?b`-rv*GI}Q29p?~IAh`#jt;%NP3QMN^4tus3I3?$BQ z4g8ezL?g9LUyf>4W2@-?R_E+O^`d%OH{WdMmLI2w_(P%P7ta~GICpzErzJVvB02;Y zYfAToAU@M~=3bnK@TuzIdt%qN>-V<@>%Hq2s%CHH=jBZaj&6mCY=7xo$WEfRsj)LE zXhLD&xeq8qBgxE^eZ4WQb1hE$=kxN$17F4gb z)$g=LrVm+HD-^o6TR5v>$hG9)^8&+^M zhb7rVg?@KR+G!VuNp6ol0g1Z}=I`4L_sy{Yr>U;1!uY8){7P(n9;0;FQ`ZsiJ*+pH ze&;>?6Juk^aG{moo--`1)IfahG%-0s-l_Ij-gCnBYs@|)qU&lB-Ltb9lZY&+!<*|m ze=*k9)$QM?-}kiXJO|-(kiSm^nbXvY!S{;pst$W@47+VqkLGLCe7|higb3wl&~Y8? zP0A#q_fTp#aggpj28p}ruYU~UJjc1e!ijV7-f*b`bGH`0zZrfhoS)i3?B43;c=+u1 zU{3Y;OgF;dyCo^+r(7YBQVGa0$Xqj#$kMUeFn({RbN^BD?wqMpKTKmfSa0XMS`s~kiNN&Ptopm>^b@B`WGh_*eafmXxACfsRgqyL6 zAKM4LGwFH@i#To(-FH!PY*X!(S>IU*-<^$7?|QFg3U9kML-_8D#%%eJHMp(Yw`W9- ztL?nAqWi0&xOXSWra-)!-=%UxmnLO^p=7u

;M3c3(#tIW(0ikQu5>Zf2FA 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 diff --git a/src/napari_matplotlib/tests/baseline/test_slice_3D.png b/src/napari_matplotlib/tests/baseline/test_slice_3D.png index f5077ea4ec472b2f7b8254e38c4cb6c90141750d..30b02e937c49be29d00201bebbc5d1aab01cf394 100644 GIT binary patch literal 12791 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 literal 12825 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 TpMB5=k3qE5b#YmzEPwr9mFNAZ diff --git a/src/napari_matplotlib/tests/test_histogram.py b/src/napari_matplotlib/tests/test_histogram.py index 14375887..802f1771 100644 --- a/src/napari_matplotlib/tests/test_histogram.py +++ b/src/napari_matplotlib/tests/test_histogram.py @@ -23,6 +23,9 @@ def test_histogram_2D(make_napari_viewer, astronaut_data): def test_histogram_3D(make_napari_viewer, brain_data): viewer = make_napari_viewer() viewer.add_image(brain_data[0], **brain_data[1]) + axis = viewer.dims.last_used + slice_no = 9 + viewer.dims.set_current_step(axis, slice_no) fig = HistogramWidget(viewer).figure # Need to return a copy, as original figure is too eagerley garbage # collected by the widget diff --git a/src/napari_matplotlib/tests/test_slice.py b/src/napari_matplotlib/tests/test_slice.py index 500d5ec0..f6fdddd3 100644 --- a/src/napari_matplotlib/tests/test_slice.py +++ b/src/napari_matplotlib/tests/test_slice.py @@ -9,6 +9,9 @@ def test_slice_3D(make_napari_viewer, brain_data): viewer = make_napari_viewer() viewer.add_image(brain_data[0], **brain_data[1]) + axis = viewer.dims.last_used + slice_no = 9 + viewer.dims.set_current_step(axis, slice_no) fig = SliceWidget(viewer).figure # Need to return a copy, as original figure is too eagerley garbage # collected by the widget From 040b614906b53e8bcc0f6132bddde7e63a08f311 Mon Sep 17 00:00:00 2001 From: ruaridhg Date: Fri, 2 Jun 2023 14:50:22 +0100 Subject: [PATCH 3/8] Changed hard-coded slice 9 to z-dimension - 1 --- src/napari_matplotlib/scatter.py | 3 --- src/napari_matplotlib/tests/scatter/test_scatter.py | 3 ++- src/napari_matplotlib/tests/test_histogram.py | 3 ++- src/napari_matplotlib/tests/test_slice.py | 3 ++- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/napari_matplotlib/scatter.py b/src/napari_matplotlib/scatter.py index 6f7f3835..c439677b 100644 --- a/src/napari_matplotlib/scatter.py +++ b/src/napari_matplotlib/scatter.py @@ -2,7 +2,6 @@ import napari import numpy.typing as npt -from numpy import array from qtpy.QtWidgets import QComboBox, QLabel, QVBoxLayout, QWidget from .base import NapariMPLWidget @@ -94,8 +93,6 @@ def _get_data(self) -> Tuple[npt.NDArray[Any], npt.NDArray[Any], str, str]: """ x = self.layers[0].data[self.current_z] y = self.layers[1].data[self.current_z] - print("x data size = ", array(x).shape) - print("y data size = ", array(y).shape) x_axis_name = self.layers[0].name y_axis_name = self.layers[1].name diff --git a/src/napari_matplotlib/tests/scatter/test_scatter.py b/src/napari_matplotlib/tests/scatter/test_scatter.py index f6a7685f..4af580de 100644 --- a/src/napari_matplotlib/tests/scatter/test_scatter.py +++ b/src/napari_matplotlib/tests/scatter/test_scatter.py @@ -1,6 +1,7 @@ from copy import deepcopy import pytest +from numpy import array from napari_matplotlib import ScatterWidget @@ -40,7 +41,7 @@ def test_scatter_3D(make_napari_viewer, brain_data): viewer.layers.selection.clear() # pdb.set_trace() axis = viewer.dims.last_used - slice_no = 9 + slice_no = array(brain_data[0]).shape[0] - 1 viewer.dims.set_current_step(axis, slice_no) # Select images viewer.layers.selection.add(viewer.layers[0]) diff --git a/src/napari_matplotlib/tests/test_histogram.py b/src/napari_matplotlib/tests/test_histogram.py index 802f1771..f9397405 100644 --- a/src/napari_matplotlib/tests/test_histogram.py +++ b/src/napari_matplotlib/tests/test_histogram.py @@ -1,6 +1,7 @@ from copy import deepcopy import pytest +from numpy import array from napari_matplotlib import HistogramWidget from napari_matplotlib.tests.helpers import ( @@ -24,7 +25,7 @@ def test_histogram_3D(make_napari_viewer, brain_data): viewer = make_napari_viewer() viewer.add_image(brain_data[0], **brain_data[1]) axis = viewer.dims.last_used - slice_no = 9 + slice_no = array(brain_data[0]).shape[0] - 1 viewer.dims.set_current_step(axis, slice_no) fig = HistogramWidget(viewer).figure # Need to return a copy, as original figure is too eagerley garbage diff --git a/src/napari_matplotlib/tests/test_slice.py b/src/napari_matplotlib/tests/test_slice.py index f6fdddd3..c6e2af7e 100644 --- a/src/napari_matplotlib/tests/test_slice.py +++ b/src/napari_matplotlib/tests/test_slice.py @@ -1,6 +1,7 @@ from copy import deepcopy import pytest +from numpy import array from napari_matplotlib import SliceWidget @@ -10,7 +11,7 @@ def test_slice_3D(make_napari_viewer, brain_data): viewer = make_napari_viewer() viewer.add_image(brain_data[0], **brain_data[1]) axis = viewer.dims.last_used - slice_no = 9 + slice_no = array(brain_data[0]).shape[0] - 1 viewer.dims.set_current_step(axis, slice_no) fig = SliceWidget(viewer).figure # Need to return a copy, as original figure is too eagerley garbage From 360f8f17f8d7f15c2882642b685eaf29290f9791 Mon Sep 17 00:00:00 2001 From: ruaridhg <32329546+ruaridhg@users.noreply.github.com> Date: Fri, 2 Jun 2023 15:18:51 +0100 Subject: [PATCH 4/8] Update src/napari_matplotlib/tests/scatter/test_scatter.py Co-authored-by: David Stansby --- src/napari_matplotlib/tests/scatter/test_scatter.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/napari_matplotlib/tests/scatter/test_scatter.py b/src/napari_matplotlib/tests/scatter/test_scatter.py index 4af580de..48187d3e 100644 --- a/src/napari_matplotlib/tests/scatter/test_scatter.py +++ b/src/napari_matplotlib/tests/scatter/test_scatter.py @@ -39,7 +39,6 @@ def test_scatter_3D(make_napari_viewer, brain_data): ) # De-select existing selection viewer.layers.selection.clear() - # pdb.set_trace() axis = viewer.dims.last_used slice_no = array(brain_data[0]).shape[0] - 1 viewer.dims.set_current_step(axis, slice_no) From 17f105e8f8e7afb9262f67591537a87bf98ccd88 Mon Sep 17 00:00:00 2001 From: ruaridhg <32329546+ruaridhg@users.noreply.github.com> Date: Fri, 2 Jun 2023 15:20:52 +0100 Subject: [PATCH 5/8] Update src/napari_matplotlib/tests/scatter/test_scatter.py Co-authored-by: David Stansby --- src/napari_matplotlib/tests/scatter/test_scatter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/napari_matplotlib/tests/scatter/test_scatter.py b/src/napari_matplotlib/tests/scatter/test_scatter.py index 48187d3e..1ed4569f 100644 --- a/src/napari_matplotlib/tests/scatter/test_scatter.py +++ b/src/napari_matplotlib/tests/scatter/test_scatter.py @@ -1,7 +1,7 @@ from copy import deepcopy import pytest -from numpy import array +import numpy as np from napari_matplotlib import ScatterWidget From 7255c9922b8879b86e53065993280d09ab1e93cd Mon Sep 17 00:00:00 2001 From: ruaridhg <32329546+ruaridhg@users.noreply.github.com> Date: Fri, 2 Jun 2023 15:20:59 +0100 Subject: [PATCH 6/8] Update src/napari_matplotlib/tests/scatter/test_scatter.py Co-authored-by: David Stansby --- src/napari_matplotlib/tests/scatter/test_scatter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/napari_matplotlib/tests/scatter/test_scatter.py b/src/napari_matplotlib/tests/scatter/test_scatter.py index 1ed4569f..ae45bc2c 100644 --- a/src/napari_matplotlib/tests/scatter/test_scatter.py +++ b/src/napari_matplotlib/tests/scatter/test_scatter.py @@ -40,7 +40,7 @@ def test_scatter_3D(make_napari_viewer, brain_data): # De-select existing selection viewer.layers.selection.clear() axis = viewer.dims.last_used - slice_no = array(brain_data[0]).shape[0] - 1 + slice_no = brain_data[0].shape[0] - 1 viewer.dims.set_current_step(axis, slice_no) # Select images viewer.layers.selection.add(viewer.layers[0]) From eef068d18f08af575d3bf3b4348c75b46be791d2 Mon Sep 17 00:00:00 2001 From: ruaridhg Date: Fri, 2 Jun 2023 15:23:12 +0100 Subject: [PATCH 7/8] removed brain_data casting to an array --- src/napari_matplotlib/tests/test_histogram.py | 3 +-- src/napari_matplotlib/tests/test_slice.py | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/napari_matplotlib/tests/test_histogram.py b/src/napari_matplotlib/tests/test_histogram.py index f9397405..9ecc0f01 100644 --- a/src/napari_matplotlib/tests/test_histogram.py +++ b/src/napari_matplotlib/tests/test_histogram.py @@ -1,7 +1,6 @@ from copy import deepcopy import pytest -from numpy import array from napari_matplotlib import HistogramWidget from napari_matplotlib.tests.helpers import ( @@ -25,7 +24,7 @@ def test_histogram_3D(make_napari_viewer, brain_data): viewer = make_napari_viewer() viewer.add_image(brain_data[0], **brain_data[1]) axis = viewer.dims.last_used - slice_no = array(brain_data[0]).shape[0] - 1 + slice_no = brain_data[0].shape[0] - 1 viewer.dims.set_current_step(axis, slice_no) fig = HistogramWidget(viewer).figure # Need to return a copy, as original figure is too eagerley garbage diff --git a/src/napari_matplotlib/tests/test_slice.py b/src/napari_matplotlib/tests/test_slice.py index c6e2af7e..b14d8e38 100644 --- a/src/napari_matplotlib/tests/test_slice.py +++ b/src/napari_matplotlib/tests/test_slice.py @@ -1,7 +1,6 @@ from copy import deepcopy import pytest -from numpy import array from napari_matplotlib import SliceWidget @@ -11,7 +10,7 @@ def test_slice_3D(make_napari_viewer, brain_data): viewer = make_napari_viewer() viewer.add_image(brain_data[0], **brain_data[1]) axis = viewer.dims.last_used - slice_no = array(brain_data[0]).shape[0] - 1 + slice_no = brain_data[0].shape[0] - 1 viewer.dims.set_current_step(axis, slice_no) fig = SliceWidget(viewer).figure # Need to return a copy, as original figure is too eagerley garbage From e0b3acf12bb38f78e576513cb0cc2e93d4bedebb Mon Sep 17 00:00:00 2001 From: ruaridhg Date: Fri, 2 Jun 2023 15:27:33 +0100 Subject: [PATCH 8/8] Fix pre-commit issues --- src/napari_matplotlib/tests/scatter/test_scatter.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/napari_matplotlib/tests/scatter/test_scatter.py b/src/napari_matplotlib/tests/scatter/test_scatter.py index ae45bc2c..493e9ab8 100644 --- a/src/napari_matplotlib/tests/scatter/test_scatter.py +++ b/src/napari_matplotlib/tests/scatter/test_scatter.py @@ -1,7 +1,6 @@ from copy import deepcopy import pytest -import numpy as np from napari_matplotlib import ScatterWidget