def test_that_general_time_masking_is_applied(self): data_info = self._build_data_info() mask_builder = get_mask_builder(data_info) # Expected_spectra bin_mask_general_start = [30000., 67000.] bin_mask_general_stop = [35000., 75000.] mask_builder.set_bin_mask_general_start(bin_mask_general_start) mask_builder.set_bin_mask_general_stop(bin_mask_general_stop) mask_info = mask_builder.build() test_director = TestDirector() test_director.set_states(data_state=data_info, mask_state=mask_info) state = test_director.construct() workspace = Load("SANS2D00028827") tof_spectra_10_original = workspace.getSpectrum(10).getTofs() tof_spectra_11_original = workspace.getSpectrum(11).getTofs() # Act workspace = mask_workspace(state=state, workspace=workspace, component_as_string="LAB") # Assert # Confirm that everything in the ranges 30000-35000 and 67000-75000 is removed from the event list tof_spectra_10_masked = workspace.getSpectrum(10).getTofs() tof_spectra_11_masked = workspace.getSpectrum(11).getTofs() # Spectrum 10 # Three events should have been removed self.assertEqual(len(tof_spectra_10_masked), len(tof_spectra_10_original) - 3) # One event should have been removed self.assertEqual(len(tof_spectra_11_masked), len(tof_spectra_11_original) - 1) # Make sure that there are no elements for start, stop in zip(bin_mask_general_start, bin_mask_general_stop): self.assertFalse( any(elements_in_range(start, stop, tof_spectra_10_masked))) self.assertFalse( any(elements_in_range(start, stop, tof_spectra_11_masked)))
def test_that_detector_specific_time_masking_is_applied(self): data_info = self._build_data_info() mask_builder = get_mask_builder(data_info) # Expected_spectra bin_mask_start = [27000., 58000.] bin_mask_stop = [45000., 61000.] mask_builder.set_LAB_bin_mask_start(bin_mask_start) mask_builder.set_LAB_bin_mask_stop(bin_mask_stop) mask_info = mask_builder.build() test_director = TestDirector() test_director.set_states(data_state=data_info, mask_state=mask_info) state = test_director.construct() workspace = Load("SANS2D00028827") # Is part of LAB tof_spectra_23813_original = workspace.getSpectrum(23813).getTofs() # Act workspace = mask_workspace(state=state, component_as_string='LAB', workspace=workspace) # Assert # Confirm that everything in the ranges 27000-45000 and 58000-61000 is removed from the event list tof_spectra_23813_masked = workspace.getSpectrum(23813).getTofs() # Spectrum 23813 # Five events should have been removed self.assertEqual(len(tof_spectra_23813_masked), len(tof_spectra_23813_original) - 5) # Make sure that there are no elements for start, stop in zip(bin_mask_start, bin_mask_stop): self.assertFalse( any(elements_in_range(start, stop, tof_spectra_23813_masked)))