Files

31 lines
882 B
Python

# tests/test_julian.py
from datetime import datetime, timezone, timedelta
from freezegun import freeze_time
from tools.julian import julian_date, epoch_days
# Freeze time to exactly Jan 1, 2000, 12:00:00 UTC (The J2000 epoch)
@freeze_time("2000-01-01 12:00:00", tz_offset=0)
def test_julian_date_j2000():
# J2000 should be exactly Julian Date 2451545.0
jd = julian_date()
assert jd == 2451545.0
@freeze_time("2000-01-01 12:00:00", tz_offset=0)
def test_epoch_days():
# Since we are exactly on the epoch, days should be 0
days = epoch_days()
assert days == 0.0
def test_julian_date_with_timezone():
# Create a timezone-aware datetime
tz = timezone(timedelta(hours=2))
dt = datetime(2023, 10, 15, 12, 0, 0, tzinfo=tz)
jd = julian_date(dt)
# 2023-10-15 12:00 GMT+2 is exactly 2460232.91666...
assert round(jd, 4) == 2460232.9167