diff options
author | Picca Frédéric-Emmanuel <picca@debian.org> | 2018-03-04 10:20:27 +0100 |
---|---|---|
committer | Picca Frédéric-Emmanuel <picca@debian.org> | 2018-03-04 10:20:27 +0100 |
commit | 270d5ddc31c26b62379e3caa9044dd75ccc71847 (patch) | |
tree | 55c5bfc851dfce7172d335cd2405b214323e3caf /silx/gui/data/test | |
parent | e19c96eff0c310c06c4f268c8b80cb33bd08996f (diff) |
New upstream version 0.7.0+dfsg
Diffstat (limited to 'silx/gui/data/test')
-rw-r--r-- | silx/gui/data/test/test_dataviewer.py | 87 | ||||
-rw-r--r-- | silx/gui/data/test/test_numpyaxesselector.py | 16 | ||||
-rw-r--r-- | silx/gui/data/test/test_textformatter.py | 13 |
3 files changed, 83 insertions, 33 deletions
diff --git a/silx/gui/data/test/test_dataviewer.py b/silx/gui/data/test/test_dataviewer.py index dd3114a..274df92 100644 --- a/silx/gui/data/test/test_dataviewer.py +++ b/silx/gui/data/test/test_dataviewer.py @@ -1,7 +1,7 @@ # coding: utf-8 # /*########################################################################## # -# Copyright (c) 2016-2017 European Synchrotron Radiation Facility +# Copyright (c) 2016-2018 European Synchrotron Radiation Facility # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -24,7 +24,7 @@ # ###########################################################################*/ __authors__ = ["V. Valls"] __license__ = "MIT" -__date__ = "22/08/2017" +__date__ = "22/02/2018" import os import tempfile @@ -67,7 +67,8 @@ class _DataViewMock(DataView): class AbstractDataViewerTests(TestCaseQt): def create_widget(self): - raise NotImplementedError() + # Avoid to raise an error when testing the full module + self.skipTest("Not implemented") @contextmanager def h5_temporary_file(self): @@ -89,7 +90,7 @@ class AbstractDataViewerTests(TestCaseQt): widget = self.create_widget() for data in data_list: widget.setData(data) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) def test_plot_1d_data(self): data = numpy.arange(3 ** 1) @@ -97,35 +98,35 @@ class AbstractDataViewerTests(TestCaseQt): widget = self.create_widget() widget.setData(data) availableModes = set([v.modeId() for v in widget.currentAvailableViews()]) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) - self.assertIn(DataViewer.PLOT1D_MODE, availableModes) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) + self.assertIn(DataViews.PLOT1D_MODE, availableModes) - def test_plot_2d_data(self): + def test_image_data(self): data = numpy.arange(3 ** 2) data.shape = [3] * 2 widget = self.create_widget() widget.setData(data) availableModes = set([v.modeId() for v in widget.currentAvailableViews()]) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) - self.assertIn(DataViewer.PLOT2D_MODE, availableModes) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) + self.assertIn(DataViews.IMAGE_MODE, availableModes) - def test_plot_2d_bool(self): + def test_image_bool(self): data = numpy.zeros((10, 10), dtype=numpy.bool) data[::2, ::2] = True widget = self.create_widget() widget.setData(data) availableModes = set([v.modeId() for v in widget.currentAvailableViews()]) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) - self.assertIn(DataViewer.PLOT2D_MODE, availableModes) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) + self.assertIn(DataViews.IMAGE_MODE, availableModes) - def test_plot_2d_complex_data(self): + def test_image_complex_data(self): data = numpy.arange(3 ** 2, dtype=numpy.complex) data.shape = [3] * 2 widget = self.create_widget() widget.setData(data) availableModes = set([v.modeId() for v in widget.currentAvailableViews()]) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) - self.assertIn(DataViewer.PLOT2D_MODE, availableModes) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) + self.assertIn(DataViews.IMAGE_MODE, availableModes) def test_plot_3d_data(self): data = numpy.arange(3 ** 3) @@ -135,38 +136,38 @@ class AbstractDataViewerTests(TestCaseQt): availableModes = set([v.modeId() for v in widget.currentAvailableViews()]) try: import silx.gui.plot3d # noqa - self.assertIn(DataViewer.PLOT3D_MODE, availableModes) + self.assertIn(DataViews.PLOT3D_MODE, availableModes) except ImportError: - self.assertIn(DataViewer.STACK_MODE, availableModes) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) + self.assertIn(DataViews.STACK_MODE, availableModes) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) def test_array_1d_data(self): data = numpy.array(["aaa"] * (3 ** 1)) data.shape = [3] * 1 widget = self.create_widget() widget.setData(data) - self.assertEqual(DataViewer.RAW_MODE, widget.displayedView().modeId()) + self.assertEqual(DataViews.RAW_MODE, widget.displayedView().modeId()) def test_array_2d_data(self): data = numpy.array(["aaa"] * (3 ** 2)) data.shape = [3] * 2 widget = self.create_widget() widget.setData(data) - self.assertEqual(DataViewer.RAW_MODE, widget.displayedView().modeId()) + self.assertEqual(DataViews.RAW_MODE, widget.displayedView().modeId()) def test_array_4d_data(self): data = numpy.array(["aaa"] * (3 ** 4)) data.shape = [3] * 4 widget = self.create_widget() widget.setData(data) - self.assertEqual(DataViewer.RAW_MODE, widget.displayedView().modeId()) + self.assertEqual(DataViews.RAW_MODE, widget.displayedView().modeId()) def test_record_4d_data(self): data = numpy.zeros(3 ** 4, dtype='3int8, float32, (2,3)float64') data.shape = [3] * 4 widget = self.create_widget() widget.setData(data) - self.assertEqual(DataViewer.RAW_MODE, widget.displayedView().modeId()) + self.assertEqual(DataViews.RAW_MODE, widget.displayedView().modeId()) def test_3d_h5_dataset(self): if h5py is None: @@ -191,7 +192,7 @@ class AbstractDataViewerTests(TestCaseQt): widget.setData(10) widget.setData(None) modes = [v.modeId() for v in listener.arguments(argumentIndex=0)] - self.assertEquals(modes, [DataViewer.RAW_MODE, DataViewer.EMPTY_MODE]) + self.assertEquals(modes, [DataViews.RAW_MODE, DataViews.EMPTY_MODE]) listener.clear() def test_change_display_mode(self): @@ -199,14 +200,15 @@ class AbstractDataViewerTests(TestCaseQt): data.shape = [10] * 4 widget = self.create_widget() widget.setData(data) - widget.setDisplayMode(DataViewer.PLOT1D_MODE) - self.assertEquals(widget.displayedView().modeId(), DataViewer.PLOT1D_MODE) - widget.setDisplayMode(DataViewer.PLOT2D_MODE) - self.assertEquals(widget.displayedView().modeId(), DataViewer.PLOT2D_MODE) - widget.setDisplayMode(DataViewer.RAW_MODE) - self.assertEquals(widget.displayedView().modeId(), DataViewer.RAW_MODE) - widget.setDisplayMode(DataViewer.EMPTY_MODE) - self.assertEquals(widget.displayedView().modeId(), DataViewer.EMPTY_MODE) + widget.setDisplayMode(DataViews.PLOT1D_MODE) + self.assertEquals(widget.displayedView().modeId(), DataViews.PLOT1D_MODE) + widget.setDisplayMode(DataViews.IMAGE_MODE) + self.assertEquals(widget.displayedView().modeId(), DataViews.IMAGE_MODE) + widget.setDisplayMode(DataViews.RAW_MODE) + self.assertEquals(widget.displayedView().modeId(), DataViews.RAW_MODE) + widget.setDisplayMode(DataViews.EMPTY_MODE) + self.assertEquals(widget.displayedView().modeId(), DataViews.EMPTY_MODE) + DataView._cleanUpCache() def test_create_default_views(self): widget = self.create_widget() @@ -228,6 +230,26 @@ class AbstractDataViewerTests(TestCaseQt): self.assertTrue(view not in widget.availableViews()) self.assertTrue(view not in widget.currentAvailableViews()) + def test_replace_view(self): + widget = self.create_widget() + view = _DataViewMock(widget) + widget.replaceView(DataViews.RAW_MODE, + view) + self.assertIsNone(widget.getViewFromModeId(DataViews.RAW_MODE)) + self.assertTrue(view in widget.availableViews()) + self.assertTrue(view in widget.currentAvailableViews()) + + def test_replace_view_in_composite(self): + # replace a view that is a child of a composite view + widget = self.create_widget() + view = _DataViewMock(widget) + widget.replaceView(DataViews.NXDATA_INVALID_MODE, + view) + nxdata_view = widget.getViewFromModeId(DataViews.NXDATA_MODE) + self.assertNotIn(DataViews.NXDATA_INVALID_MODE, + [v.modeId() for v in nxdata_view.availableViews()]) + self.assertTrue(view in nxdata_view.availableViews()) + class TestDataViewer(AbstractDataViewerTests): def create_widget(self): @@ -265,6 +287,7 @@ class TestDataView(TestCaseQt): dataViewClass = DataViews._Plot2dView widget = self.createDataViewWithData(dataViewClass, data[0]) self.qWaitForWindowExposed(widget) + DataView._cleanUpCache() def testCubeWithComplex(self): self.skipTest("OpenGL widget not yet tested") @@ -276,12 +299,14 @@ class TestDataView(TestCaseQt): dataViewClass = DataViews._Plot3dView widget = self.createDataViewWithData(dataViewClass, data) self.qWaitForWindowExposed(widget) + DataView._cleanUpCache() def testImageStackWithComplex(self): data = self.createComplexData() dataViewClass = DataViews._StackView widget = self.createDataViewWithData(dataViewClass, data) self.qWaitForWindowExposed(widget) + DataView._cleanUpCache() def suite(): diff --git a/silx/gui/data/test/test_numpyaxesselector.py b/silx/gui/data/test/test_numpyaxesselector.py index cc15f83..6ce5119 100644 --- a/silx/gui/data/test/test_numpyaxesselector.py +++ b/silx/gui/data/test/test_numpyaxesselector.py @@ -24,7 +24,7 @@ # ###########################################################################*/ __authors__ = ["V. Valls"] __license__ = "MIT" -__date__ = "15/12/2016" +__date__ = "29/01/2018" import os import tempfile @@ -70,6 +70,20 @@ class TestNumpyAxesSelector(TestCaseQt): result = widget.selectedData() self.assertTrue(numpy.array_equal(result, expectedResult)) + def test_output_moredim(self): + data = numpy.arange(3 * 3 * 3 * 3) + data.shape = 3, 3, 3, 3 + expectedResult = data + + widget = NumpyAxesSelector() + widget.setAxisNames(["x", "y", "z", "boum"]) + widget.setData(data[0]) + result = widget.selectedData() + self.assertEqual(result, None) + widget.setData(data) + result = widget.selectedData() + self.assertTrue(numpy.array_equal(result, expectedResult)) + def test_output_lessdim(self): data = numpy.arange(3 * 3 * 3) data.shape = 3, 3, 3 diff --git a/silx/gui/data/test/test_textformatter.py b/silx/gui/data/test/test_textformatter.py index 2a7a66b..06a29ba 100644 --- a/silx/gui/data/test/test_textformatter.py +++ b/silx/gui/data/test/test_textformatter.py @@ -24,7 +24,7 @@ # ###########################################################################*/ __authors__ = ["V. Valls"] __license__ = "MIT" -__date__ = "27/09/2017" +__date__ = "12/12/2017" import unittest import shutil @@ -91,6 +91,17 @@ class TestTextFormatter(TestCaseQt): result = formatter.toString("toto") self.assertEquals(result, '"toto"') + def test_numpy_void(self): + formatter = TextFormatter() + result = formatter.toString(numpy.void(b"\xFF")) + self.assertEquals(result, 'b"\\xFF"') + + def test_char_cp1252(self): + # degree character in cp1252 + formatter = TextFormatter() + result = formatter.toString(numpy.bytes_(b"\xB0")) + self.assertEquals(result, u'"\u00B0"') + class TestTextFormatterWithH5py(TestCaseQt): |