class CombinedDataTest(unittest.TestCase): def setUp(self): self.img_data = ImgData() self.img_data.load('Data/Mg2SiO4_ambient_001.tif') self.calibration_data = CalibrationData(self.img_data) self.calibration_data.load('Data/calibration.poni') self.mask_data = MaskData() self.mask_data.mask_ellipse(500, 500, 100, 100) self.spectrum_data = SpectrumData() def test_dependencies(self): tth1, int1 = self.calibration_data.integrate_1d() self.img_data.load_next_file() self.assertEqual(os.path.abspath(self.img_data.filename), os.path.abspath('Data/Mg2SiO4_ambient_002.tif')) tth2, int2 = self.calibration_data.integrate_1d() self.assertFalse(np.array_equal(int1, int2)) plt.figure(1) plt.plot(tth1, int1) plt.plot(tth2, int2) plt.savefig('Results/dependencies1.png') tth3, int3 = self.calibration_data.integrate_1d(mask=self.mask_data.get_mask()) self.assertFalse(np.array_equal(int2, int3)) plt.figure(2) plt.plot(tth2, int2) plt.plot(tth3, int3) plt.savefig('Results/dependencies2.png') tth4, int4 = self.calibration_data.integrate_1d(polarization_factor=0.90, mask=None) plt.figure(3) plt.plot(tth2, int2) plt.plot(tth4, int4) plt.savefig('Results/dependencies3.png') tth5, int5 = self.calibration_data.integrate_1d(polarization_factor=.5, mask=None) plt.figure(4) plt.plot(tth4, int4) plt.plot(tth5, int5) plt.savefig('Results/dependencies4.png') def test_automatism(self): def integrate_and_set_spectrum(): tth, I = self.calibration_data.integrate_1d() self.spectrum_data.set_spectrum(tth, I, self.img_data.filename) self.img_data.subscribe(integrate_and_set_spectrum) y1 = self.spectrum_data.spectrum.data[1] self.img_data.load_next_file() y2 = self.spectrum_data.spectrum.data[1] self.assertFalse(np.array_equal(y1, y2))
class SpectrumDataTest(unittest.TestCase): def setUp(self): self.spectrum = Spectrum() self.spectrum_data = SpectrumData() def test_spectrum_class(self): self.spectrum.save('Data/spec_test.txt') self.spectrum.save( 'Data/spec_test2.txt', header='This is not only ridiculous\n but more and more ' 'challenging...') self.spectrum.load('Data/spec_test.txt') self.spectrum.load('Data/spec_test2.txt') self.assertTrue( np.array_equal(self.spectrum.data[0], np.linspace(0, 30, 100))) self.assertTrue(self.spectrum.load('Data/test_001.tif') == -1) self.spectrum.data = (np.linspace(0, 30), np.linspace(0, 20)) self.spectrum.offset = 100 self.assertTrue( np.array_equal(self.spectrum.data[1], np.linspace(0, 20) + 100)) self.assertTrue( np.array_equal(self.spectrum.data[0], np.linspace(0, 30))) self.spectrum.scaling = 10 self.assertTrue( np.array_equal(self.spectrum.data[1], np.linspace(0, 20) * 10 + 100)) self.spectrum.data = (np.linspace(0, 20), np.linspace(0, 30)) self.assertTrue( np.array_equal(self.spectrum.data[1], np.linspace(0, 30))) self.spectrum.scaling = -100 self.assertTrue( np.array_equal(self.spectrum.data[1], np.zeros(self.spectrum.data[0].shape))) def test_spectrum_data_class(self): self.spectrum_data.set_spectrum(np.linspace(0, 10), np.linspace(0, 10)**2, 'SQUARED') self.spectrum_data.add_overlay(np.linspace(0, 10), np.linspace(0, 10)**3, 'CUBED') self.spectrum_data.add_overlay(np.linspace(0, 10), np.linspace(0, 10)**4, 'QUADRUPOLED') self.assertTrue(len(self.spectrum_data.overlays) == 2) self.spectrum_data.del_overlay(0) self.assertTrue(self.spectrum_data.overlays[0].name == 'QUADRUPOLED') self.spectrum_data.add_overlay_file('Data/spec_test2.txt') self.assertTrue(self.spectrum_data.overlays[-1].name == 'spec_test2')
class CombinedDataTest(unittest.TestCase): def setUp(self): self.img_data = ImgData() self.img_data.load('Data/Mg2SiO4_ambient_001.tif') self.calibration_data = CalibrationData(self.img_data) self.calibration_data.load('Data/calibration.poni') self.mask_data = MaskData() self.mask_data.load_mask('Data/test.mask') self.spectrum_data = SpectrumData() def test_dependencies(self): tth1, int1 = self.calibration_data.integrate_1d() self.img_data.load_next() tth2, int2 = self.calibration_data.integrate_1d() self.assertFalse(np.array_equal(int1, int2)) plt.figure(1) plt.plot(tth1, int1) plt.plot(tth2, int2) plt.savefig('Results/dependencies1.jpg') tth3, int3 = self.calibration_data.integrate_1d(mask=self.mask_data.get_mask()) self.assertFalse(np.array_equal(int2, int3)) plt.figure(2) plt.plot(tth2, int2) plt.plot(tth3, int3) plt.savefig('Results/dependencies2.jpg') tth4, int4 = self.calibration_data.integrate_1d(polarization_factor=0.90, mask=None) plt.figure(3) plt.plot(tth2, int2) plt.plot(tth4, int4) plt.savefig('Results/dependencies3.jpg') tth5, int5 = self.calibration_data.integrate_1d(polarization_factor=.5, mask=None) plt.figure(4) plt.plot(tth4, int4) plt.plot(tth5, int5) plt.savefig('Results/dependencies4.jpg') def test_automatism(self): def integrate_and_set_spectrum(): tth, I = self.calibration_data.integrate_1d() self.spectrum_data.set_spectrum(tth, I, self.img_data.filename) self.img_data.subscribe(integrate_and_set_spectrum) y1 = self.spectrum_data.spectrum.data[1] self.img_data.load_next() y2 = self.spectrum_data.spectrum.data[1] self.assertFalse(np.array_equal(y1, y2))
class SpectrumDataTest(unittest.TestCase): def setUp(self): self.spectrum = Spectrum() self.spectrum_data = SpectrumData() def test_spectrum_class(self): self.spectrum.save('Data/spec_test.txt') self.spectrum.save('Data/spec_test2.txt', header='This is not only ridiculous\n but more and more ' 'challenging...') self.spectrum.load('Data/spec_test.txt') self.spectrum.load('Data/spec_test2.txt') self.assertTrue(np.array_equal(self.spectrum.data[0], np.linspace(0, 30, 100))) self.assertTrue(self.spectrum.load('Data/test_001.tif') == -1) self.spectrum.data = (np.linspace(0, 30), np.linspace(0, 20)) self.spectrum.offset = 100 self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 20) + 100)) self.assertTrue(np.array_equal(self.spectrum.data[0], np.linspace(0, 30))) self.spectrum.scaling = 10 self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 20) * 10 + 100)) self.spectrum.data = (np.linspace(0, 20), np.linspace(0, 30)) self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 30))) self.spectrum.scaling = -100 self.assertTrue(np.array_equal(self.spectrum.data[1], np.zeros(self.spectrum.data[0].shape))) def test_spectrum_data_class(self): self.spectrum_data.set_spectrum(np.linspace(0, 10), np.linspace(0, 10) ** 2, 'SQUARED') self.spectrum_data.add_overlay(np.linspace(0, 10), np.linspace(0, 10) ** 3, 'CUBED') self.spectrum_data.add_overlay(np.linspace(0, 10), np.linspace(0, 10) ** 4, 'QUADRUPOLED') self.assertTrue(len(self.spectrum_data.overlays) == 2) self.spectrum_data.del_overlay(0) self.assertTrue(self.spectrum_data.overlays[0].name == 'QUADRUPOLED') self.spectrum_data.add_overlay_file('Data/spec_test2.txt') self.assertTrue(self.spectrum_data.overlays[-1].name == 'spec_test2')
class SpectrumDataTest(unittest.TestCase): def setUp(self): self.x = np.linspace(0.1, 15, 100) self.y = np.sin(self.x) self.spectrum = Spectrum(self.x, self.y) self.spectrum_data = SpectrumData() def test_spectrum_class(self): self.spectrum.save('Data/spec_test.txt') self.spectrum.save('Data/spec_test2.txt', header='This is not only ridiculous\n but more and more ' 'challenging...') self.spectrum.load('Data/spec_test.txt', 0) self.spectrum.load('Data/spec_test2.txt', 0) self.assertTrue(np.array_equal(self.spectrum.data[0], np.linspace(0.1, 15, 100))) self.assertTrue(self.spectrum.load('Data/test_001.tif') == -1) self.spectrum.data = (np.linspace(0, 30), np.linspace(0, 20)) self.spectrum.offset = 100 self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 20) + 100)) self.assertTrue(np.array_equal(self.spectrum.data[0], np.linspace(0, 30))) self.spectrum.scaling = 10 self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 20) * 10 + 100)) self.spectrum.data = (np.linspace(0, 20), np.linspace(0, 30)) self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 30))) self.spectrum.scaling = -100 self.assertTrue(np.array_equal(self.spectrum.data[1], np.zeros(self.spectrum.data[0].shape))) def test_spectrum_data_class(self): self.spectrum_data.set_spectrum(np.linspace(0, 10), np.linspace(0, 10) ** 2, 'SQUARED') self.spectrum_data.add_overlay(np.linspace(0, 10), np.linspace(0, 10) ** 3, 'CUBED') self.spectrum_data.add_overlay(np.linspace(0, 10), np.linspace(0, 10) ** 4, 'QUADRUPOLED') self.assertTrue(len(self.spectrum_data.overlays) == 2) self.spectrum_data.del_overlay(0) self.assertTrue(self.spectrum_data.overlays[0].name == 'QUADRUPOLED') self.spectrum_data.add_overlay_file('Data/spec_test2.txt') self.assertTrue(self.spectrum_data.overlays[-1].name == 'spec_test2') def test_background(self): x_spectrum = np.linspace(0,100,1001) y_spectrum = np.sin(x_spectrum) x_background = np.linspace(0,91, 1002) y_background = np.cos(x_background) spec = Spectrum(x_spectrum, y_spectrum) spec.set_background(Spectrum(x_background, y_background)) x, y = spec.data self.assertTrue(x[-1]<1000) self.assertEqual(len(x), 911) test_x = np.linspace(0,91, 911) test_y = np.sin(test_x) - np.cos(test_x) diff = abs(np.sum(test_y-y)) self.assertLess(diff, 1e-3) def test_background_not_in_spectrum_range(self): x_spectrum = np.linspace(0,30,101) y_spectrum = np.sin(x_spectrum) x_background = np.linspace(50,60, 102) y_background = np.cos(x_background) spec = Spectrum(x_spectrum, y_spectrum) spec.set_background(Spectrum(x_background, y_background)) self.assertRaises(BkgNotInRangeError)