Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)