Ejemplo n.º 1
0
 def setUp(self):
     self.testfile = self.get_input_file()
     parser = AstromParser()
     self.data = parser.parse(self.get_abs_path(self.testfile))
     self.progress_manager = Mock(spec=LocalProgressManager)
     self.progress_manager.get_processed_indices.return_value = []
     self.output_context = Mock(spec=WorkingContext)
Ejemplo n.º 2
0
 def setUp(self):
     self.testfile = "data/1584431p15.measure3.cands.astrom"
     parser = AstromParser()
     self.data = parser.parse(self.get_abs_path(self.testfile))
     self.progress_manager = Mock(spec=ProgressManager)
     self.progress_manager.get_processed_indices.return_value = []
     self.writer = Mock()
Ejemplo n.º 3
0
 def setUp(self):
     self.testfile = self.get_input_file()
     parser = AstromParser()
     self.data = parser.parse(self.get_abs_path(self.testfile))
     self.progress_manager = Mock(spec=LocalProgressManager)
     self.progress_manager.get_processed_indices.return_value = []
     self.output_context = Mock(spec=WorkingContext)
Ejemplo n.º 4
0
class ParserTest(FileReadingTestCase):
    def setUp(self):
        self.parser = AstromParser()

    def parse(self, filename):
        return self.parser.parse(self.get_abs_path(filename))

    def test_parse_observation_rawnames(self):
        astrom_data = self.parse(TEST_FILE_1)

        assert_that(astrom_data.observations, has_length(3))
        assert_that(astrom_data.observations[0].rawname, equal_to("1584431p15"))
        assert_that(astrom_data.observations[1].rawname, equal_to("1584449p15"))
        assert_that(astrom_data.observations[2].rawname, equal_to("1584453p15"))

    def test_parse_observation_basic_details(self):
        astrom_data = self.parse(TEST_FILE_1)

        obs0 = astrom_data.observations[0]
        obs1 = astrom_data.observations[1]
        obs2 = astrom_data.observations[2]

        assert_that(obs0.expnum, equal_to("1584431"))
        assert_that(obs0.ftype, equal_to("p"))
        assert_that(obs0.ccdnum, equal_to("15"))
        assert_that(obs0.is_fake(), equal_to(False))

        assert_that(obs1.expnum, equal_to("1584449"))
        assert_that(obs1.ftype, equal_to("p"))
        assert_that(obs1.ccdnum, equal_to("15"))
        assert_that(obs1.is_fake(), equal_to(False))

        assert_that(obs2.expnum, equal_to("1584453"))
        assert_that(obs2.ftype, equal_to("p"))
        assert_that(obs2.ccdnum, equal_to("15"))
        assert_that(obs2.is_fake(), equal_to(False))

    def test_parse_observation_headers(self):
        astrom_data = self.parse(TEST_FILE_1)

        obs0 = astrom_data.observations[0]
        obs1 = astrom_data.observations[1]
        obs2 = astrom_data.observations[2]

        assert_that(obs0.header, has_length(18))
        assert_that(
            obs0.header,
            has_entries(
                {
                    "MOPversion": "1.20",
                    "MJD_OBS_CENTER": "2012 10 21.40516",
                    "EXPTIME": "320.14",
                    "THRES": "2.70",
                    "FWHM": "2.90",
                    "MAXCOUNT": "30000.0",
                    "CRVAL1": "26.92871",
                    "CRVAL2": "29.01125",
                    "EXPNUM": "1584431",
                    "SCALE": "0.185",
                    "CHIP": "16",
                    "CRPIX1": "-3227.00",
                    "CRPIX2": "-75.96",
                    "NAX1": "2112",
                    "NAX2": "4644",
                    "DETECTOR": "MegaPrime",
                    "PHADU": "1.60",
                    "RDNOIS": "3.00",
                }
            ),
        )

        assert_that(obs1.header, has_length(18))
        assert_that(obs2.header, has_length(18))

    def test_parse_sys_header(self):
        astrom_data = self.parse(TEST_FILE_1)

        assert_that(astrom_data.sys_header, has_length(4))
        assert_that(
            astrom_data.sys_header, has_entries({"RMIN": "0.5", "RMAX": "10.3", "ANGLE": "-19.9", "AWIDTH": "22.3"})
        )

    def test_parse_sources(self):
        astrom_data = self.parse(TEST_FILE_1)

        assert_that(astrom_data.sources, has_length(3))

        ## Test source 0
        source0 = astrom_data.sources[0]
        assert_that(source0.num_readings(), equal_to(3))

        # Source 0 reading 0
        data00 = source0.get_reading(0)
        assert_that(data00.x, equal_to(911.00))
        assert_that(data00.y, equal_to(3967.12))
        assert_that(data00.x0, equal_to(911.00))
        assert_that(data00.y0, equal_to(3967.12))
        assert_that(data00.ra, equal_to(26.6833367))
        assert_that(data00.dec, equal_to(29.2203532))
        assert_that(data00.xref, equal_to(911.00))
        assert_that(data00.yref, equal_to(3967.12))

        # Source 0 reading 1
        data01 = source0.get_reading(1)
        assert_that(data01.x, equal_to(944.25))
        assert_that(data01.y, equal_to(3964.03))
        assert_that(data01.x0, equal_to(938.93))
        assert_that(data01.y0, equal_to(3965.78))
        assert_that(data01.ra, equal_to(26.6816808))
        assert_that(data01.dec, equal_to(29.2202748))
        assert_that(data01.xref, equal_to(911.00))
        assert_that(data01.yref, equal_to(3967.12))

        # Source 0 reading 2
        data02 = source0.get_reading(2)
        assert_that(data02.x, equal_to(949.76))
        assert_that(data02.y, equal_to(3963.12))
        assert_that(data02.x0, equal_to(943.91))
        assert_that(data02.y0, equal_to(3965.20))
        assert_that(data02.ra, equal_to(26.6813840))
        assert_that(data02.dec, equal_to(29.2202469))
        assert_that(data02.xref, equal_to(911.00))
        assert_that(data02.yref, equal_to(3967.12))

        ## Test source 1
        assert_that(astrom_data.sources[1].num_readings(), equal_to(3))

        ## Test source 2
        source2 = astrom_data.sources[2]
        assert_that(source2.num_readings(), equal_to(3))

        # Source 2 reading 2
        data22 = source2.get_reading(2)
        assert_that(data22.x, equal_to(1800.48))
        assert_that(data22.y, equal_to(1843.53))
        assert_that(data22.x0, equal_to(1795.10))
        assert_that(data22.y0, equal_to(1845.71))
        assert_that(data22.ra, equal_to(26.6311063))
        assert_that(data22.dec, equal_to(29.1102185))
        assert_that(data22.xref, equal_to(1698.04))
        assert_that(data22.yref, equal_to(1842.46))

    def test_parse_source_readings_have_observations(self):
        astrom_data = self.parse(TEST_FILE_1)

        obs0 = astrom_data.observations[0]
        obs1 = astrom_data.observations[1]
        obs2 = astrom_data.observations[2]

        source0 = astrom_data.sources[0]
        assert_that(source0.get_reading(0).obs, same_instance(obs0))
        assert_that(source0.get_reading(1).obs, same_instance(obs1))
        assert_that(source0.get_reading(2).obs, same_instance(obs2))

        source1 = astrom_data.sources[1]
        assert_that(source1.get_reading(0).obs, same_instance(obs0))
        assert_that(source1.get_reading(1).obs, same_instance(obs1))
        assert_that(source1.get_reading(2).obs, same_instance(obs2))

        source2 = astrom_data.sources[2]
        assert_that(source2.get_reading(0).obs, same_instance(obs0))
        assert_that(source2.get_reading(1).obs, same_instance(obs1))
        assert_that(source2.get_reading(2).obs, same_instance(obs2))

    def test_parse_file2_had_neg_crval2(self):
        astrom_data = self.parse(TEST_FILE_2)

        assert_that(astrom_data.sources, has_length(1))
        assert_that(astrom_data.observations, has_length(3))

        obs_names = [obs.rawname for obs in astrom_data.observations]
        assert_that(obs_names, contains("1616681p22", "1616692p22", "1616703p22"))

    def test_parse_source_reference_point(self):
        astrom_data = self.parse(TEST_FILE_2)
        source = astrom_data.get_sources()[0]

        reading0 = source.get_reading(0)
        reading1 = source.get_reading(1)
        reading2 = source.get_reading(2)

        delta = 0.00000001
        assert_that(reading0.reference_source_point[0], close_to(560.06, delta))
        assert_that(reading0.reference_source_point[1], close_to(406.51, delta))
        assert_that(reading1.reference_source_point[0], close_to(562.82, delta))
        assert_that(reading1.reference_source_point[1], close_to(406.68, delta))
        assert_that(reading2.reference_source_point[0], close_to(564.44, delta))
        assert_that(reading2.reference_source_point[1], close_to(406.03, delta))

    def test_reading_coordinate_offsets(self):
        astrom_data = self.parse(TEST_FILE_2)

        source = astrom_data.get_sources()[0]

        reading0 = source.get_reading(0)
        reading1 = source.get_reading(1)
        reading2 = source.get_reading(2)

        delta = 0.00000001
        assert_that(reading0.get_coordinate_offset(reading0)[0], close_to(0, delta))
        assert_that(reading0.get_coordinate_offset(reading0)[1], close_to(0, delta))
        assert_that(reading0.get_coordinate_offset(reading1)[0], close_to(-2.76, delta))
        assert_that(reading0.get_coordinate_offset(reading1)[1], close_to(-0.17, delta))
        assert_that(reading0.get_coordinate_offset(reading2)[0], close_to(-4.38, delta))
        assert_that(reading0.get_coordinate_offset(reading2)[1], close_to(0.48, delta))

    def test_parse_fake_file(self):
        astrom_data = self.parse(FK_FILE)

        assert_that(astrom_data.observations, has_length(3))
        assert_that(astrom_data.get_sources(), has_length(21))

        obs0 = astrom_data.observations[0]

        assert_that(obs0.rawname, equal_to("fk1616682s00"))
        assert_that(obs0.expnum, equal_to("1616682"))
        assert_that(obs0.ftype, equal_to("s"))
        assert_that(obs0.ccdnum, equal_to("00"))
        assert_that(obs0.is_fake(), equal_to(True))
Ejemplo n.º 5
0
class ParserTest(FileReadingTestCase):
    def setUp(self):
        self.parser = AstromParser()

    def parse(self, filename):
        return self.parser.parse(self.get_abs_path(filename))

    def test_parse_observation_rawnames(self):
        astrom_data = self.parse(TEST_FILE_1)

        assert_that(astrom_data.observations, has_length(3))
        assert_that(astrom_data.observations[0].rawname,
                    equal_to("1584431p15"))
        assert_that(astrom_data.observations[1].rawname,
                    equal_to("1584449p15"))
        assert_that(astrom_data.observations[2].rawname,
                    equal_to("1584453p15"))

    def test_parse_observation_basic_details(self):
        astrom_data = self.parse(TEST_FILE_1)

        obs0 = astrom_data.observations[0]
        obs1 = astrom_data.observations[1]
        obs2 = astrom_data.observations[2]

        assert_that(obs0.expnum, equal_to("1584431"))
        assert_that(obs0.ftype, equal_to("p"))
        assert_that(obs0.ccdnum, equal_to("15"))
        assert_that(obs0.is_fake(), equal_to(False))

        assert_that(obs1.expnum, equal_to("1584449"))
        assert_that(obs1.ftype, equal_to("p"))
        assert_that(obs1.ccdnum, equal_to("15"))
        assert_that(obs1.is_fake(), equal_to(False))

        assert_that(obs2.expnum, equal_to("1584453"))
        assert_that(obs2.ftype, equal_to("p"))
        assert_that(obs2.ccdnum, equal_to("15"))
        assert_that(obs2.is_fake(), equal_to(False))

    def test_parse_observation_headers(self):
        astrom_data = self.parse(TEST_FILE_1)

        obs0 = astrom_data.observations[0]
        obs1 = astrom_data.observations[1]
        obs2 = astrom_data.observations[2]

        assert_that(obs0.header, has_length(18))
        assert_that(obs0.header, has_entries(
            {"MOPversion": "1.20",
             "MJD_OBS_CENTER": "2012 10 21.40516",
             "EXPTIME": "320.14",
             "THRES": "2.70",
             "FWHM": "2.90",
             "MAXCOUNT": "30000.0",
             "CRVAL1": "26.92871",
             "CRVAL2": "29.01125",
             "EXPNUM": "1584431",
             "SCALE": "0.185",
             "CHIP": "16",
             "CRPIX1": "-3227.00",
             "CRPIX2": "-75.96",
             "NAX1": "2112",
             "NAX2": "4644",
             "DETECTOR": "MegaPrime",
             "PHADU": "1.60",
             "RDNOIS": "3.00"}
        ))

        assert_that(obs1.header, has_length(18))
        assert_that(obs2.header, has_length(18))

    def test_parse_sys_header(self):
        astrom_data = self.parse(TEST_FILE_1)

        assert_that(astrom_data.sys_header, has_length(4))
        assert_that(astrom_data.sys_header, has_entries(
            {"RMIN": "0.5",
             "RMAX": "10.3",
             "ANGLE": "-19.9",
             "AWIDTH": "22.3"}
        ))

    def test_parse_sources(self):
        astrom_data = self.parse(TEST_FILE_1)

        assert_that(astrom_data.sources, has_length(3))

        ## Test source 0
        source0 = astrom_data.sources[0]
        assert_that(source0.num_readings(), equal_to(3))

        # Source 0 reading 0
        data00 = source0.get_reading(0)
        assert_that(data00.x, equal_to(911.00))
        assert_that(data00.y, equal_to(3967.12))
        assert_that(data00.x0, equal_to(911.00))
        assert_that(data00.y0, equal_to(3967.12))
        assert_that(data00.ra, equal_to(26.6833367))
        assert_that(data00.dec, equal_to(29.2203532))
        assert_that(data00.xref, equal_to(911.00))
        assert_that(data00.yref, equal_to(3967.12))

        # Source 0 reading 1
        data01 = source0.get_reading(1)
        assert_that(data01.x, equal_to(944.25))
        assert_that(data01.y, equal_to(3964.03))
        assert_that(data01.x0, equal_to(938.93))
        assert_that(data01.y0, equal_to(3965.78))
        assert_that(data01.ra, equal_to(26.6816808))
        assert_that(data01.dec, equal_to(29.2202748))
        assert_that(data01.xref, equal_to(911.00))
        assert_that(data01.yref, equal_to(3967.12))

        # Source 0 reading 2
        data02 = source0.get_reading(2)
        assert_that(data02.x, equal_to(949.76))
        assert_that(data02.y, equal_to(3963.12))
        assert_that(data02.x0, equal_to(943.91))
        assert_that(data02.y0, equal_to(3965.20))
        assert_that(data02.ra, equal_to(26.6813840))
        assert_that(data02.dec, equal_to(29.2202469))
        assert_that(data02.xref, equal_to(911.00))
        assert_that(data02.yref, equal_to(3967.12))

        ## Test source 1
        assert_that(astrom_data.sources[1].num_readings(), equal_to(3))

        ## Test source 2
        source2 = astrom_data.sources[2]
        assert_that(source2.num_readings(), equal_to(3))

        # Source 2 reading 2
        data22 = source2.get_reading(2)
        assert_that(data22.x, equal_to(1800.48))
        assert_that(data22.y, equal_to(1843.53))
        assert_that(data22.x0, equal_to(1795.10))
        assert_that(data22.y0, equal_to(1845.71))
        assert_that(data22.ra, equal_to(26.6311063))
        assert_that(data22.dec, equal_to(29.1102185))
        assert_that(data22.xref, equal_to(1698.04))
        assert_that(data22.yref, equal_to(1842.46))

    def test_parse_source_readings_have_observations(self):
        astrom_data = self.parse(TEST_FILE_1)

        obs0 = astrom_data.observations[0]
        obs1 = astrom_data.observations[1]
        obs2 = astrom_data.observations[2]

        source0 = astrom_data.sources[0]
        assert_that(source0.get_reading(0).obs, same_instance(obs0))
        assert_that(source0.get_reading(1).obs, same_instance(obs1))
        assert_that(source0.get_reading(2).obs, same_instance(obs2))

        source1 = astrom_data.sources[1]
        assert_that(source1.get_reading(0).obs, same_instance(obs0))
        assert_that(source1.get_reading(1).obs, same_instance(obs1))
        assert_that(source1.get_reading(2).obs, same_instance(obs2))

        source2 = astrom_data.sources[2]
        assert_that(source2.get_reading(0).obs, same_instance(obs0))
        assert_that(source2.get_reading(1).obs, same_instance(obs1))
        assert_that(source2.get_reading(2).obs, same_instance(obs2))

    def test_parse_file2_had_neg_crval2(self):
        astrom_data = self.parse(TEST_FILE_2)

        assert_that(astrom_data.sources, has_length(1))
        assert_that(astrom_data.observations, has_length(3))

        obs_names = [obs.rawname for obs in astrom_data.observations]
        assert_that(obs_names, contains("1616681p22", "1616692p22", "1616703p22"))

    def test_parse_source_reference_point(self):
        astrom_data = self.parse(TEST_FILE_2)
        source = astrom_data.get_sources()[0]

        reading0 = source.get_reading(0)
        reading1 = source.get_reading(1)
        reading2 = source.get_reading(2)

        delta = 0.00000001
        assert_that(reading0.reference_source_point[0], close_to(560.06, delta))
        assert_that(reading0.reference_source_point[1], close_to(406.51, delta))
        assert_that(reading1.reference_source_point[0], close_to(562.82, delta))
        assert_that(reading1.reference_source_point[1], close_to(406.68, delta))
        assert_that(reading2.reference_source_point[0], close_to(564.44, delta))
        assert_that(reading2.reference_source_point[1], close_to(406.03, delta))

    def test_reading_coordinate_offsets(self):
        astrom_data = self.parse(TEST_FILE_2)

        source = astrom_data.get_sources()[0]

        reading0 = source.get_reading(0)
        reading1 = source.get_reading(1)
        reading2 = source.get_reading(2)

        delta = 0.00000001
        assert_that(reading0.get_coordinate_offset(reading0)[0], close_to(0, delta))
        assert_that(reading0.get_coordinate_offset(reading0)[1], close_to(0, delta))
        assert_that(reading0.get_coordinate_offset(reading1)[0], close_to(-2.76, delta))
        assert_that(reading0.get_coordinate_offset(reading1)[1], close_to(-0.17, delta))
        assert_that(reading0.get_coordinate_offset(reading2)[0], close_to(-4.38, delta))
        assert_that(reading0.get_coordinate_offset(reading2)[1], close_to(0.48, delta))

    def test_parse_fake_file(self):
        astrom_data = self.parse(FK_FILE)

        assert_that(astrom_data.observations, has_length(3))
        assert_that(astrom_data.get_sources(), has_length(21))

        obs0 = astrom_data.observations[0]

        assert_that(obs0.rawname, equal_to("fk1616682s00"))
        assert_that(obs0.expnum, equal_to("1616682"))
        assert_that(obs0.ftype, equal_to("s"))
        assert_that(obs0.ccdnum, equal_to("00"))
        assert_that(obs0.is_fake(), equal_to(True))