summaryrefslogtreecommitdiff
path: root/silx/gui/plot3d/test/testScalarFieldView.py
diff options
context:
space:
mode:
Diffstat (limited to 'silx/gui/plot3d/test/testScalarFieldView.py')
-rw-r--r--silx/gui/plot3d/test/testScalarFieldView.py139
1 files changed, 0 insertions, 139 deletions
diff --git a/silx/gui/plot3d/test/testScalarFieldView.py b/silx/gui/plot3d/test/testScalarFieldView.py
deleted file mode 100644
index d9c743b..0000000
--- a/silx/gui/plot3d/test/testScalarFieldView.py
+++ /dev/null
@@ -1,139 +0,0 @@
-# coding: utf-8
-# /*##########################################################################
-#
-# Copyright (c) 2017-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
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-# ###########################################################################*/
-"""Test ScalarFieldView widget"""
-
-__authors__ = ["T. Vincent"]
-__license__ = "MIT"
-__date__ = "17/01/2018"
-
-
-import logging
-import unittest
-
-import numpy
-
-from silx.utils.testutils import ParametricTestCase
-from silx.gui.utils.testutils import TestCaseQt
-from silx.gui import qt
-
-from silx.gui.plot3d.ScalarFieldView import ScalarFieldView
-from silx.gui.plot3d.SFViewParamTree import TreeView
-
-
-_logger = logging.getLogger(__name__)
-
-
-class TestScalarFieldView(TestCaseQt, ParametricTestCase):
- """Tests of ScalarFieldView widget."""
-
- def setUp(self):
- super(TestScalarFieldView, self).setUp()
- self.widget = ScalarFieldView()
- self.widget.show()
-
- paramTreeWidget = TreeView()
- paramTreeWidget.setSfView(self.widget)
-
- dock = qt.QDockWidget()
- dock.setWidget(paramTreeWidget)
- self.widget.addDockWidget(qt.Qt.BottomDockWidgetArea, dock)
-
- # Commented as it slows down the tests
- # self.qWaitForWindowExposed(self.widget)
-
- def tearDown(self):
- self.qapp.processEvents()
- self.widget.setAttribute(qt.Qt.WA_DeleteOnClose)
- self.widget.close()
- del self.widget
- super(TestScalarFieldView, self).tearDown()
-
- @staticmethod
- def _buildData(size):
- """Make a 3D dataset"""
- coords = numpy.linspace(-10, 10, size)
- z = coords.reshape(-1, 1, 1)
- y = coords.reshape(1, -1, 1)
- x = coords.reshape(1, 1, -1)
- return numpy.sin(x * y * z) / (x * y * z)
-
- def testSimple(self):
- """Set the data and an isosurface"""
- data = self._buildData(size=32)
-
- self.widget.setData(data)
- self.widget.addIsosurface(0.5, (1., 0., 0., 0.5))
- self.widget.addIsosurface(0.7, qt.QColor('green'))
- self.qapp.processEvents()
-
- def testNotFinite(self):
- """Test with NaN and inf in data set"""
-
- # Some NaNs and inf
- data = self._buildData(size=32)
- data[8, :, :] = numpy.nan
- data[16, :, :] = numpy.inf
- data[24, :, :] = - numpy.inf
-
- self.widget.addIsosurface(0.5, 'red')
- self.widget.setData(data, copy=True)
- self.qapp.processEvents()
- self.widget.setData(None)
-
- # All NaNs or inf
- data = numpy.empty((4, 4, 4), dtype=numpy.float32)
- for value in (numpy.nan, numpy.inf):
- with self.subTest(value=str(value)):
- data[:] = value
- self.widget.setData(data, copy=True)
- self.qapp.processEvents()
-
- def testIsoSliderNormalization(self):
- """Test set TreeView with a different isoslider normalization"""
- data = self._buildData(size=32)
-
- self.widget.setData(data)
- self.widget.addIsosurface(0.5, (1., 0., 0., 0.5))
- self.widget.addIsosurface(0.7, qt.QColor('green'))
- self.qapp.processEvents()
-
- # Add a second TreeView
- paramTreeWidget = TreeView(self.widget)
- paramTreeWidget.setIsoLevelSliderNormalization('arcsinh')
- paramTreeWidget.setSfView(self.widget)
-
- dock = qt.QDockWidget()
- dock.setWidget(paramTreeWidget)
- self.widget.addDockWidget(qt.Qt.BottomDockWidgetArea, dock)
-
-
-def suite():
- test_suite = unittest.TestSuite()
- loadTests = unittest.defaultTestLoader.loadTestsFromTestCase
- test_suite.addTest(loadTests(TestScalarFieldView))
- return test_suite
-
-
-if __name__ == '__main__':
- unittest.main(defaultTest='suite')