def setUp(self): self.sensor = GaussianSensorModel(0.05) energies = [40, 116, 130] # 3 total peaks self.peaks = [] for erg in energies: self.peaks.append(Peak(erg, 1000, 0)) channels = np.arange(0, 100) es = EnergyScale(np.arange(0, 303, 3)) # 3 keV per channel counts = channels * -0.5 + 100 for peak in self.peaks: response = self.sensor.getResponse(peak.energy, peak.intensity, es.getEdges()) counts += response self.spectrum = Spectrum(counts, es) self.mu = 1 self.lld = 40 self.baseline, self.smooth = spa.computeBaseline( self.spectrum.counts, self.mu) self.responsed_peaks = spa.responsePeaks(self.peaks, self.sensor, self.spectrum.energyScale) self.id_input = IdentificationInput(self.spectrum, intrinsic=self.spectrum) self.analysis = spa.SmoothPeakAnalysis() self.analysis.setSensor(self.sensor) self.result = self.analysis.analyze(self.id_input)
class EnergyScaleTestCase(unittest.TestCase): def setUp(self): self.energy_scale = EnergyScale([0, 1, 2, 3, 4, 5]) def test_newScale(self): es = EnergyScale.newScale(0, 5, 1, 1) self.assertSequenceEqual(tuple(es.getEdges()), tuple(self.energy_scale.getEdges())) def test_getCenter(self): self.assertEqual(self.energy_scale.getCenter(4), 4.5) def test_getCenters(self): self.assertSequenceEqual(tuple(self.energy_scale.getCenters()), tuple([0.5,1.5,2.5,3.5,4.5])) def test_findBin(self): self.assertEqual(self.energy_scale.findBin(5), 4) self.assertEqual(self.energy_scale.findBin(6), 5) self.assertEqual(self.energy_scale.findBin(-1), 0) def test_Length(self): self.assertEqual(len(self.energy_scale), 6) def test_findEnergy(self): self.assertEqual(self.energy_scale.findEnergy(1.5), 1.5) def test_toXml(self): """ Write and read to temporaty file and compare """ os.makedirs("build/test", exist_ok=True) with open("build/test/bins.test","w") as fp: self.energy_scale.write(fp.name) es = loadXml(fp.name) self.assertSequenceEqual(tuple(es.getEdges()), tuple(self.energy_scale.getEdges()))
def test_toXml(self): counts = (1, 1, 1) edges = (0, 1, 2, 3) energyScale = EnergyScale(edges) rt = 1 lt = 1 distance = 10. gamma_dose = 100. title = "test" spectrum = Spectrum(counts, energyScale, rt, lt, distance, gamma_dose, title) sp_list = SpectrumList() sp_list.addSpectrum(spectrum) sp_list.addSpectrum(spectrum) os.makedirs("build/test", exist_ok=True) with open("build/test/spectrum.test", "w") as fp: sp_list.write(fp.name) sp_list2 = loadXml(fp.name) for sp in sp_list2: self.assertSequenceEqual(tuple(sp.energyScale.getEdges()), edges) self.assertSequenceEqual(tuple(sp.counts), counts) self.assertEqual(sp.realtime, rt) self.assertEqual(sp.livetime, lt) self.assertEqual(sp.distance, distance) self.assertEqual(sp.gamma_dose, gamma_dose) self.assertEqual(sp.title, title)
def test_toXml(self): counts = (1,1,1) edges = (0,1,2,3) energyScale = EnergyScale(edges) rt = 1 lt = 1 distance = 10. gamma_dose = 100. title = "test" spectrum = Spectrum(counts, energyScale, rt, lt, distance, gamma_dose, title) sp_list = SpectrumList() sp_list.addSpectrum(spectrum) sp_list.addSpectrum(spectrum) with tempfile.NamedTemporaryFile() as fp: sp_list.write(fp.name) sp_list2 = loadXml(fp.name) for sp in sp_list2: self.assertSequenceEqual(tuple(sp.energyScale.getEdges()), edges) self.assertSequenceEqual(tuple(sp.counts), counts) self.assertEqual(sp.realtime, rt) self.assertEqual(sp.livetime, lt) self.assertEqual(sp.distance, distance) self.assertEqual(sp.gamma_dose, gamma_dose) self.assertEqual(sp.title, title)
def setUp(self): self.counts = (1, 1, 1) self.edges = (0, 1, 2, 3) self.energyScale = EnergyScale(self.edges) self.realtime = 1 self.livetime = 1 self.distance = 10. self.gamma_dose = 100. self.title = "test" self.spectrum = Spectrum(self.counts, self.energyScale, self.realtime, self.livetime, self.distance, self.gamma_dose, self.title)
def test_newScale(self): es = EnergyScale.newScale(0, 5, 1, 1) self.assertSequenceEqual(tuple(es.getEdges()), tuple(self.energy_scale.getEdges()))
def setUp(self): self.energy_scale = EnergyScale([0, 1, 2, 3, 4, 5])
def test_getNormedCounts(self): self.assertSequenceEqual(tuple(self.spectrum.getNormedCounts()), (1, 1, 1)) sp2 = Spectrum([1, 1, 1, 1, 1], EnergyScale([0, 1, 2, 4, 8, 8.5])) self.assertSequenceEqual(tuple(sp2.getNormedCounts()), (1., 1., 0.5, 0.25, 2.))