From 53f51ba18264b739df95bde8d9445721bae7501b Mon Sep 17 00:00:00 2001
From: Nick Draper <nick.draper@stfc.ac.uk>
Date: Mon, 30 Mar 2020 17:39:24 +0100
Subject: [PATCH] Add unit tests for spectraselectiondialog

---
 .../test/test_spectraselectiondialog.py       | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/qt/python/mantidqt/dialogs/test/test_spectraselectiondialog.py b/qt/python/mantidqt/dialogs/test/test_spectraselectiondialog.py
index b42fac458c2..fc789fece69 100644
--- a/qt/python/mantidqt/dialogs/test/test_spectraselectiondialog.py
+++ b/qt/python/mantidqt/dialogs/test/test_spectraselectiondialog.py
@@ -64,6 +64,30 @@ class SpectraSelectionDialogTest(unittest.TestCase):
         self.assertEqual("valid range: 51-100", dlg._ui.specNums.placeholderText())
         self.assertEqual("valid range: 0-49", dlg._ui.wkspIndices.placeholderText())
 
+    def test_filling_workspace_details_single_workspace_with_spectra_gaps(self):
+        gappy_ws = WorkspaceFactory.Instance().create("Workspace2D", NVectors=50, XLength=1, YLength=1)
+        for i in range(10):
+            gappy_ws.getSpectrum(i).setSpectrumNo(1 + i)
+        for i in range(10, 16):
+            gappy_ws.getSpectrum(i).setSpectrumNo(1 + (2*i))
+        for i in range(17, 20):
+            gappy_ws.getSpectrum(i).setSpectrumNo(1 + i)
+        for i in range(20, gappy_ws.getNumberHistograms()):
+            gappy_ws.getSpectrum(i).setSpectrumNo(51 + i)
+        dlg = SpectraSelectionDialog([gappy_ws])
+        self.assertEqual("valid range: 1-10, 17-21, 23, 25, 27, 29, 31, 71-100", dlg._ui.specNums.placeholderText())
+        self.assertEqual("valid range: 0-49", dlg._ui.wkspIndices.placeholderText())
+
+    def test_filling_workspace_details_multiple_workspace_with_spectra_gaps(self):
+        gappy_ws = WorkspaceFactory.Instance().create("Workspace2D", NVectors=50, XLength=1, YLength=1)
+        for i in range(20):
+            gappy_ws.getSpectrum(i).setSpectrumNo(1 + i)
+        for i in range(20,gappy_ws.getNumberHistograms()):
+            gappy_ws.getSpectrum(i).setSpectrumNo(161 + i)
+        dlg = SpectraSelectionDialog([gappy_ws, self._multi_spec_ws])
+        self.assertEqual("valid range: 1-20, 181-200", dlg._ui.specNums.placeholderText())
+        self.assertEqual("valid range: 0-49", dlg._ui.wkspIndices.placeholderText())
+
     def test_valid_text_in_boxes_activates_ok(self):
         dlg = SpectraSelectionDialog([self._multi_spec_ws])
 
-- 
GitLab