def test_get_fit_workspace_names_from_groups_and_runs_when_fit_to_raw_is_true(self): self.model.fit_to_raw = True self.model.context.data_context.instrument = "MUSR" self.model.context.group_pair_context.add_pair(MuonPair("long", "f", "b", 1.0)) self.model.context.group_pair_context.add_pair(MuonPair("long2", "f", "b", 2.0)) self.model.context.group_pair_context.add_pair(MuonBasePair("phase_Re_")) self.model.context.group_pair_context.add_pair(MuonBasePair("phase_Im_")) self.model.context.group_pair_context.add_pair(MuonBasePair("phase2_Re_")) self.model.context.group_pair_context.add_pair(MuonBasePair("phase2_Im_")) self.model.context.group_pair_context.add_pair_to_selected_pairs("long") self.model.context.group_pair_context.add_pair_to_selected_pairs("phase_Re_") self.model.context.group_pair_context.add_pair_to_selected_pairs("phase2_Im_") selection = ["long", "long2", "phase_Re_", "phase_Im_", "phase2_Re_", "phase2_Im_"] result = self.model.get_fit_workspace_names_from_groups_and_runs([1, 2, 3], selection) self.assertEqual(["MUSR1; Pair Asym; long; MA", "MUSR1; PhaseQuad; phase_Re_; MA", "MUSR1; PhaseQuad; phase2_Im_; MA", "MUSR2; Pair Asym; long; MA", "MUSR2; PhaseQuad; phase_Re_; MA", "MUSR2; PhaseQuad; phase2_Im_; MA", "MUSR3; Pair Asym; long; MA", "MUSR3; PhaseQuad; phase_Re_; MA", "MUSR3; PhaseQuad; phase2_Im_; MA"], result)
def test_that_AttributeError_thrown_if_setting_workspace_to_non_MuonWorkspace_object( self): pair = MuonBasePair(pair_name="pair1") self.assertEqual(pair.workspace, {}) with self.assertRaises(AttributeError): pair.workspace = [1, 2, 3] self.assertEqual(pair.workspace, {})
def test_that_can_only_set_workspace_if_MuonWorkspace_object(self): pair = MuonBasePair(pair_name="pair1") self.assertEqual(pair.workspace, {}) dataX = [0, 1, 2, 3, 4, 5] dataY = [10, 20, 30, 20, 10] input_workspace = CreateWorkspace(dataX, dataY) workspace_wrapper = MuonWorkspaceWrapper(input_workspace) pair.workspace = workspace_wrapper self.assertEqual(pair.workspace, workspace_wrapper)
def test_that_find_pairs_containing_groups_does_not_raise_if_one_of_the_pairs_is_a_MuonBasePair( self): self.group_pair_context.add_pair(MuonBasePair("PhaseQuad_Re_")) groups = ["bwd"] pairs = self.context.find_pairs_containing_groups(groups) self.assertEqual(len(pairs), 1) self.assertEqual(pairs[0].name, "long")
class MuonPhasequad(object): """ Simple structure to store information on a phasequad. - The name is set at initialization and after that cannot be changed. - The phasquad has two pairs associated to it and are stored as MuonBasePairs. - The workspaces associated with the pairs can be set, but must be of type MuonWorkspaceWrapper. """ def __init__(self, phasequad_name, phase_table): self._phasequad_name = phasequad_name self._phase_table = phase_table self._Re = MuonBasePair(phasequad_name + "_Re_") self._Im = MuonBasePair(phasequad_name + "_Im_") @property def Re(self): return self._Re @property def Im(self): return self._Im @property def name(self): return self._phasequad_name @property def phase_table(self): return self._phase_table @phase_table.setter def phase_table(self, new_table): self._phase_table = new_table def update_asymmetry_workspaces(self, ws_list, run, rebin=False): self._Re.update_asymmetry_workspace(ws_list[0], run, rebin=rebin) self._Im.update_asymmetry_workspace(ws_list[1], run, rebin=rebin)
def __init__(self, phasequad_name, phase_table): self._phasequad_name = phasequad_name self._phase_table = phase_table self._Re = MuonBasePair(phasequad_name + "_Re_") self._Im = MuonBasePair(phasequad_name + "_Im_")
def test_that_cannot_initialize_MuonBasePair_without_name(self): with self.assertRaises(TypeError): MuonBasePair()