def test_GPSTime_from_datetime(): dt = datetime.datetime(2020, 4, 24) t = GPSTime.from_datetime(dt) assert t.to_datetime() == dt assert hasattr(t, "seconds"), "from_datetime() did not instantiate seconds" assert hasattr( t, "femtoseconds"), "from_datetime() did not instantiate femtoseconds"
def test_GPSTime_add_datetime(): gps_time = GPSTime(0, 0) dt = GPSTime(1920, 415000).to_datetime() gps_time_adding = GPSTime.from_datetime(dt) gps_time2 = gps_time + dt assert gps_time2.week_number == gps_time_adding.week_number assert gps_time2.time_of_week == gps_time_adding.time_of_week
def test_get_next_leap_seconds(year, leap_second_date, leap_second): date = datetime.datetime(year, 1, 1, 0, 0, 0) out = LeapSeconds.get_next_leap_second(GPSTime.from_datetime(date)) if leap_second_date is not None: date, calculated_ls = out assert leap_second_date == date assert leap_second == calculated_ls else: assert out is None
def test_get_leap_seconds(year, leap_seconds): date = datetime.datetime(year, 1, 1, 0, 0, 0) calculated_ls = LeapSeconds.get_leap_seconds(GPSTime.from_datetime(date)) assert leap_seconds == calculated_ls
(2020, 18), (2021, 18)]) def test_get_leap_seconds(year, leap_seconds): date = datetime.datetime(year, 1, 1, 0, 0, 0) calculated_ls = LeapSeconds.get_leap_seconds(GPSTime.from_datetime(date)) assert leap_seconds == calculated_ls @pytest.mark.parametrize("year,leap_second_date,leap_second", [(1980, GPSTime(77, 259200), 1), (2021, None, None), (2000, GPSTime(1356, 0.0), 14)]) def test_get_next_leap_seconds(year, leap_second_date, leap_second): date = datetime.datetime(year, 1, 1, 0, 0, 0) out = LeapSeconds.get_next_leap_second(GPSTime.from_datetime(date)) if leap_second_date is not None: date, calculated_ls = out assert leap_second_date == date assert leap_second == calculated_ls else: assert out is None if __name__ == "__main__": gps_time = GPSTime.from_datetime(datetime.datetime(2000, 1, 1)) # gps_time2 = gps_time + datetime.datetime(1990, 1, 6) # GPSTime(0, 0) - 1 #print(time.tow2zcount(0, 0, 1980)) # print(LeapSeconds.get_leap_seconds(gps_time)) date = datetime.datetime(1980, 1, 1, 0, 0, 0) calculated_ls = LeapSeconds.get_next_leap_second(gps_time) print(calculated_ls)
def test_GPSTime_from_datetime_invalid_type(invalid_type): with pytest.raises(TypeError): GPSTime.from_datetime(invalid_type)