Skip to content
Snippets Groups Projects
Commit c29ef540 authored by WHITFIELDRE email's avatar WHITFIELDRE email Committed by Peterson, Peter
Browse files

Add unittests

parent 98c0d28a
No related merge requests found
......@@ -90,6 +90,8 @@ if(ENABLE_WORKBENCH)
mantidqt/widgets/test/test_fitpropertybrowser.py
mantidqt/widgets/samplelogs/test/test_samplelogs_model.py
mantidqt/widgets/samplelogs/test/test_samplelogs_presenter.py
mantidqt/widgets/sliceviewer/test/test_sliceviewer_model.py
mantidqt/widgets/sliceviewer/test/test_sliceviewer_presenter.py
mantidqt/widgets/observers/test/test_ads_observer.py
mantidqt/widgets/observers/test/test_observing_presenter.py
mantidqt/widgets/observers/test/test_observing_view.py
......@@ -122,6 +124,7 @@ if(ENABLE_WORKBENCH)
mantidqt/widgets/instrumentview/test/test_instrumentview_io.py
mantidqt/widgets/instrumentview/test/test_instrumentview_view.py
mantidqt/widgets/samplelogs/test/test_samplelogs_view.py
mantidqt/widgets/sliceviewer/test/test_sliceviewer_view.py
mantidqt/widgets/test/test_jupyterconsole.py
mantidqt/widgets/workspacedisplay/matrix/test/test_matrixworkspacedisplay_io.py
mantidqt/widgets/workspacedisplay/table/test/test_tableworkspacedisplay_io.py
......
......@@ -7,3 +7,13 @@
# This file is part of the mantid workbench.
#
#
# Can be launch from python by _e.g_
#
#
# from mantidqt.widgets.sliceviewer.presenter import SliceViewer
# from mantid.simpleapi import LoadMD
# from qtpy.QtWidgets import QApplication
# ws = LoadMD('ExternalData/Testing/SystemTests/tests/analysis/reference/ConvertWANDSCDtoQTest_HKL.nxs')
# app = QApplication([])
# window = SliceViewer(ws)
# app.exec_()
......@@ -13,10 +13,10 @@ from .view import SliceViewerView
class SliceViewer(object):
def __init__(self, ws, parent=None):
self.model = SliceViewerModel(ws)
self.view = SliceViewerView(self, self.model.get_dimensions_info(), parent)
def __init__(self, ws, parent=None, model=None, view=None):
# Create model and view, or accept mocked versions
self.model = model if model else SliceViewerModel(ws)
self.view = view if view else SliceViewerView(self, self.model.get_dimensions_info(), parent)
self.new_plot()
......
# Mantid Repository : https://github.com/mantidproject/mantid
#
# Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
# NScD Oak Ridge National Laboratory, European Spallation Source
# & Institut Laue - Langevin
# SPDX - License - Identifier: GPL - 3.0 +
# This file is part of the mantid workbench.
#
#
from __future__ import (absolute_import, division, print_function)
from mantid.simpleapi import CreateMDHistoWorkspace
from mantidqt.widgets.sliceviewer.model import SliceViewerModel
from numpy.testing import assert_equal
import numpy as np
import unittest
class SliceViewerModelTest(unittest.TestCase):
@classmethod
def setUpClass(self):
self.ws_MD_3D = CreateMDHistoWorkspace(Dimensionality=3,
Extents='-3,3,-10,10,-1,1',
SignalInput=range(100),
ErrorInput=range(100),
NumberOfBins='5,5,4',
Names='Dim1,Dim2,Dim3',
Units='MomentumTransfer,EnergyTransfer,Angstrom',
OutputWorkspace='ws_MD_2d')
def test_model_MDH(self):
model = SliceViewerModel(self.ws_MD_3D)
self.assertEqual(model.get_ws(), self.ws_MD_3D)
assert_equal(model.get_data((None, 2, 2)), range(90,95))
assert_equal(model.get_data((1, 2, None)), range(18,118,25))
assert_equal(model.get_data((None, None, 0)), np.reshape(range(50,75), (5,5)).T)
dim_info = model.get_dim_info(0)
self.assertEqual(dim_info['minimum'], -3)
self.assertEqual(dim_info['maximum'], 3)
self.assertEqual(dim_info['number_of_bins'], 5)
self.assertAlmostEqual(dim_info['width'], 1.2)
self.assertEqual(dim_info['name'], 'Dim1')
self.assertEqual(dim_info['units'], 'MomentumTransfer')
dim_infos = model.get_dimensions_info()
self.assertEqual(len(dim_infos), 3)
dim_info = dim_infos[2]
self.assertEqual(dim_info['minimum'], -1)
self.assertEqual(dim_info['maximum'], 1)
self.assertEqual(dim_info['number_of_bins'], 4)
self.assertAlmostEqual(dim_info['width'], 0.5)
self.assertEqual(dim_info['name'], 'Dim3')
self.assertEqual(dim_info['units'], 'Angstrom')
if __name__ == '__main__':
unittest.main()
# Mantid Repository : https://github.com/mantidproject/mantid
#
# Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
# NScD Oak Ridge National Laboratory, European Spallation Source
# & Institut Laue - Langevin
# SPDX - License - Identifier: GPL - 3.0 +
# This file is part of the mantid workbench.
#
#
from __future__ import (absolute_import, division, print_function)
import matplotlib
matplotlib.use('Agg') # noqa: E402
import unittest
from mantid.py3compat import mock
from mantidqt.widgets.sliceviewer.model import SliceViewerModel
from mantidqt.widgets.sliceviewer.presenter import SliceViewer
from mantidqt.widgets.sliceviewer.view import SliceViewerView
class SliceViewerTest(unittest.TestCase):
def setUp(self):
self.view = mock.Mock(spec=SliceViewerView)
self.view.dimensions = mock.Mock()
self.model = mock.Mock(spec=SliceViewerModel)
def test_sliceviewer(self):
presenter = SliceViewer(None, model=self.model, view=self.view)
# setup calls
self.assertEqual(self.model.get_dimensions_info.call_count, 0)
self.assertEqual(self.model.get_ws.call_count, 1)
self.assertEqual(self.view.dimensions.get_slicepoint.call_count, 1)
self.assertEqual(self.view.plot.call_count, 1)
# new_plot
self.model.reset_mock()
self.view.reset_mock()
presenter.new_plot()
self.assertEqual(self.model.get_ws.call_count, 1)
self.assertEqual(self.view.dimensions.get_slicepoint.call_count, 1)
self.assertEqual(self.view.plot.call_count, 1)
# update_plot_data
self.model.reset_mock()
self.view.reset_mock()
presenter.update_plot_data()
self.assertEqual(self.model.get_data.call_count, 1)
self.assertEqual(self.view.dimensions.get_slicepoint.call_count, 1)
self.assertEqual(self.view.update_plot_data.call_count, 1)
if __name__ == '__main__':
unittest.main()
# Mantid Repository : https://github.com/mantidproject/mantid
#
# Copyright © 2019 ISIS Rutherford Appleton Laboratory UKRI,
# NScD Oak Ridge National Laboratory, European Spallation Source
# & Institut Laue - Langevin
# SPDX - License - Identifier: GPL - 3.0 +
# This file is part of the mantid workbench.
from qtpy.QtWidgets import QApplication
import matplotlib as mpl
mpl.use('Agg') # noqa
from mantid.simpleapi import CreateMDHistoWorkspace
from mantidqt.utils.qt.testing import GuiTest
from mantidqt.utils.qt.testing.qt_widget_finder import QtWidgetFinder
from mantidqt.widgets.sliceviewer.presenter import SliceViewer
class SliceViewerViewTest(GuiTest, QtWidgetFinder):
def test_deleted_on_close(self):
ws = CreateMDHistoWorkspace(Dimensionality=3,
Extents='-3,3,-10,10,-1,1',
SignalInput=range(100),
ErrorInput=range(100),
NumberOfBins='5,5,4',
Names='Dim1,Dim2,Dim3',
Units='MomentumTransfer,EnergyTransfer,Angstrom',
OutputWorkspace='ws_MD_2d')
pres = SliceViewer(ws)
self.assert_widget_created()
pres.view.close()
QApplication.processEvents()
self.assert_no_toplevel_widgets()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment