Пример #1
0
    def test_get_tle_lines(self, get_tle_file, *mocks):
        """Test identification of closest TLE lines"""
        tle_data = ['1 38771U 12049A   18363.63219793 -.00000013  00000-0  14176-4 0  9991\r\n',
                    '2 38771  98.7297  60.1350 0002062  95.9284  25.0713 14.21477560325906\r\n',
                    '1 38771U 12049A   18364.62426010 -.00000015  00000-0  13136-4 0  9990\r\n',  # 2018-12-30 14:58
                    '2 38771  98.7295  61.1159 0002062  94.5796  60.2561 14.21477636326047\r\n',
                    '1 38771U 12049A   18364.94649306 -.00000018  00000-0  12040-4 0  9996\r\n',  # 2018-12-30 22:42
                    '2 38771  98.7295  61.4345 0002060  94.1226 268.7521 14.21477633326092\r\n',
                    '1 38771U 12049A   18365.81382142 -.00000015  00000-0  13273-4 0  9991\r\n',
                    '2 38771  98.7294  62.2921 0002057  92.7653  26.0030 14.21477711326215\r\n']

        expected = {
            datetime.datetime(2018, 12, 20, 12, 0): None,
            datetime.datetime(2018, 12, 28, 12, 0): 0,
            datetime.datetime(2018, 12, 30, 16, 0): 2,
            datetime.datetime(2018, 12, 30, 20, 0): 4,
            datetime.datetime(2019, 1, 1, 12, 0): 6,
            datetime.datetime(2019, 1, 8, 12, 0): None
        }

        get_tle_file.return_value = tle_data
        reader = GACReader()
        for time, tle_idx in expected.items():
            reader.times = [time]
            reader.tle_lines = None
            if tle_idx is None:
                self.assertRaises(IndexError, reader.get_tle_lines, threshold=7)
            else:
                tle1, tle2 = reader.get_tle_lines(threshold=7)
                self.assertEqual(tle1, tle_data[tle_idx])
                self.assertEqual(tle2, tle_data[tle_idx + 1])
Пример #2
0
    def test_get_tle_lines(self, get_tle_file, *mocks):
        """Test identification of closest TLE lines"""
        tle_data = [
            '1 38771U 12049A   18363.63219793 -.00000013  00000-0  14176-4 0  9991\r\n',
            '2 38771  98.7297  60.1350 0002062  95.9284  25.0713 14.21477560325906\r\n',
            '1 38771U 12049A   18364.62426010 -.00000015  00000-0  13136-4 0  9990\r\n',  # 2018-12-30 14:58
            '2 38771  98.7295  61.1159 0002062  94.5796  60.2561 14.21477636326047\r\n',
            '1 38771U 12049A   18364.94649306 -.00000018  00000-0  12040-4 0  9996\r\n',  # 2018-12-30 22:42
            '2 38771  98.7295  61.4345 0002060  94.1226 268.7521 14.21477633326092\r\n',
            '1 38771U 12049A   18365.81382142 -.00000015  00000-0  13273-4 0  9991\r\n',
            '2 38771  98.7294  62.2921 0002057  92.7653  26.0030 14.21477711326215\r\n'
        ]

        expected = {
            datetime.datetime(2018, 12, 20, 12, 0): None,
            datetime.datetime(2018, 12, 28, 12, 0): 0,
            datetime.datetime(2018, 12, 30, 16, 0): 2,
            datetime.datetime(2018, 12, 30, 20, 0): 4,
            datetime.datetime(2019, 1, 1, 12, 0): 6,
            datetime.datetime(2019, 1, 8, 12, 0): None
        }

        get_tle_file.return_value = tle_data
        reader = GACReader(tle_thresh=7)
        for time, tle_idx in expected.items():
            reader.times = [time]
            reader.tle_lines = None
            if tle_idx is None:
                self.assertRaises(IndexError, reader.get_tle_lines)
            else:
                tle1, tle2 = reader.get_tle_lines()
                self.assertEqual(tle1, tle_data[tle_idx])
                self.assertEqual(tle2, tle_data[tle_idx + 1])
Пример #3
0
    def test_midnight_scanline(self, *mocks):
        """Test midnight scanline computation"""
        reader = GACReader()

        # Define test cases...
        # ... midnight scanline exists
        utcs1 = np.array([-3, -2, -1, 0, 1, 2, 3]).astype('datetime64[ms]')
        scanline1 = 2

        # ... midnight scanline does not exist
        utcs2 = np.array([1, 2, 3]).astype('datetime64[ms]')
        scanline2 = None

        for utcs, scanline in zip((utcs1, utcs2), (scanline1, scanline2)):
            reader.utcs = utcs
            reader.times = utcs.astype(datetime.datetime)
            self.assertEqual(reader.get_midnight_scanline(), scanline,
                             msg='Incorrect midnight scanline')
Пример #4
0
    def test_midnight_scanline(self, *mocks):
        """Test midnight scanline computation"""
        reader = GACReader()

        # Define test cases...
        # ... midnight scanline exists
        utcs1 = np.array([-3, -2, -1, 0, 1, 2, 3]).astype('datetime64[ms]')
        scanline1 = 2

        # ... midnight scanline does not exist
        utcs2 = np.array([1, 2, 3]).astype('datetime64[ms]')
        scanline2 = None

        for utcs, scanline in zip((utcs1, utcs2), (scanline1, scanline2)):
            reader.utcs = utcs
            reader.times = utcs.astype(datetime.datetime)
            self.assertEqual(reader.get_midnight_scanline(),
                             scanline,
                             msg='Incorrect midnight scanline')