def testDeSerialize(self): """ Test deserialization (i.e. construction from a file/string). """ # Setup geometry. geometry = DetectorGeometry(panels=[self.__panel0, self.__panel1]) # Serialize stream = io.StringIO() geometry.serialize(stream=stream) serialized_panel = stream.getvalue() stream.close() # Deserialize deserialized_geometry = _detectorGeometryFromString(serialized_panel) # Compare. for i, panel in enumerate(geometry.panels): self.assertAlmostEqual(panel.ranges, deserialized_geometry.panels[i].ranges) self.assertAlmostEqual(panel.corners, deserialized_geometry.panels[i].corners) self.assertEqual(panel.fast_scan_xyz, deserialized_geometry.panels[i].fast_scan_xyz) self.assertEqual(panel.slow_scan_xyz, deserialized_geometry.panels[i].slow_scan_xyz) self.assertAlmostEqual( panel.pixel_size.magnitude, deserialized_geometry.panels[i].pixel_size.magnitude) self.assertAlmostEqual( panel.distance_from_interaction_plane.magnitude, deserialized_geometry.panels[i]. distance_from_interaction_plane.magnitude)
def testSerializeHandle(self): """ Test the serialization of the DetectorGeometry. """ # Get panels panel0 = self.__panel0 panel1 = self.__panel1 # Setup the detector geometry. detector_geometry = DetectorGeometry(panels=[panel0, panel1]) # Serialize to stream geom_file = "simex.geom" self.__files_to_remove.append(geom_file) # Open for writing. with open("simex.geom", 'w') as stream: # Serialize into file handle. detector_geometry.serialize(stream) reference_string = self.__reference_serialization_string # Open for reading. with open(geom_file, 'r') as stream: lines = "".join(stream.readlines()) self.assertEqual(lines, reference_string)
def testSerializeFilename(self): """ Test the serialization of the DetectorGeometry. """ # Get panels panel0 = self.__panel0 panel1 = self.__panel1 # Setup the detector geometry. detector_geometry = DetectorGeometry(panels=[panel0, panel1]) # Serialize to stream geom_file = "simex.geom" #self.__files_to_remove.append(geom_file) # Serialize into file handle. detector_geometry.serialize(geom_file) reference_string = """;panel 0 panel0/min_fs = 0 panel0/max_fs = 511 panel0/min_ss = 512 panel0/max_ss = 1023 panel0/px = 512 panel0/py = 512 panel0/corner_x = -512 panel0/corner_y = -256 panel0/fs = 1.0x panel0/ss = 1.0y panel0/clen = 1.3000000e-01 panel0/res = 4.5454545e+03 panel0/pix_width = 2.2000000e-04 panel0/coffset = 0.0000000e+00 panel0/adu_per_photon= 1.0000000e+00 panel0/max_adu = 1.0000000e+04 ;panel 1 panel1/min_fs = 0 panel1/max_fs = 511 panel1/min_ss = 1024 panel1/max_ss = 1535 panel1/px = 512 panel1/py = 512 panel1/corner_x = -512 panel1/corner_y = 256 panel1/fs = 1.0x panel1/ss = 1.0y panel1/clen = 1.3000000e-01 panel1/res = 4.5454545e+03 panel1/pix_width = 2.2000000e-04 panel1/coffset = 0.0000000e+00 panel1/adu_per_photon= 1.0000000e+00 panel1/max_adu = 1.0000000e+04 """ # Open for reading. with open(geom_file, 'r') as stream: lines = "".join(stream.readlines()) self.assertEqual(lines, reference_string)
def testSerialize(self): """ Test the serialization of the DetectorGeometry. """ # Get panels panel0 = self.__panel0 panel1 = self.__panel1 # Setup the detector geometry. detector_geometry = DetectorGeometry(panels=[panel0, panel1]) # Serialize to stream stream = StringIO.StringIO() detector_geometry.serialize(stream) reference_string = """;panel 0 panel0/min_fs = 0 panel0/max_fs = 511 panel0/min_ss = 512 panel0/max_ss = 1023 panel0/px = 512 panel0/py = 512 panel0/corner_x = -512 panel0/corner_y = -256 panel0/fs = 1.0x panel0/ss = 1.0y panel0/clen = 1.3000000e-01 panel0/res = 4.5454545e+03 panel0/pix_width = 2.2000000e-04 panel0/coffset = 0.0000000e+00 panel0/adu_per_photon= 1.0000000e+00 panel0/max_adu = 1.0000000e+04 ;panel 1 panel1/min_fs = 0 panel1/max_fs = 511 panel1/min_ss = 1024 panel1/max_ss = 1535 panel1/px = 512 panel1/py = 512 panel1/corner_x = -512 panel1/corner_y = 256 panel1/fs = 1.0x panel1/ss = 1.0y panel1/clen = 1.3000000e-01 panel1/res = 4.5454545e+03 panel1/pix_width = 2.2000000e-04 panel1/coffset = 0.0000000e+00 panel1/adu_per_photon= 1.0000000e+00 panel1/max_adu = 1.0000000e+04 """ self.assertEqual(stream.getvalue(), reference_string)
def testSerialize(self): """ Test the serialization of the DetectorGeometry. """ # Get panels panel0 = self.__panel0 panel1 = self.__panel1 # Setup the detector geometry. detector_geometry = DetectorGeometry(panels=[panel0, panel1]) # Serialize to stream stream = io.StringIO() detector_geometry.serialize(stream) reference_string = self.__reference_serialization_string self.assertEqual(stream.getvalue(), reference_string)