Skip to content

Commit

Permalink
Add propagation test
Browse files Browse the repository at this point in the history
  • Loading branch information
spenczar committed Jul 15, 2023
1 parent f9382cf commit e69c95f
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions adam_core/propagator/tests/test_propagator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
from astropy.time import Time
from ...orbits import Orbits
from ... import coordinates
from ...utils.helpers.orbits import make_real_orbits
from .. import Propagator

import quivr
import pyarrow as pa


class MockPropagator(Propagator):
# MockPropagator propagates orbits by just setting the time of the orbits.
def _propagate_orbits(self, orbits: Orbits, times: Time) -> Orbits:
all_times = []
for t in times:
repeated_time = Time([t] * len(orbits))
orbits.coordinates.time = coordinates.Times.from_astropy(
repeated_time
).to_structarray()
all_times.append(orbits)

return quivr.concatenate(all_times)

def _generate_ephemeris(self, orbits: Orbits, observers):
raise NotImplementedError("not impleemented")


def test_propagator_single_worker():
orbits = make_real_orbits(10)
times = Time(["2020-01-01T00:00:00", "2020-01-01T00:00:01"])

prop = MockPropagator()
have = prop.propagate_orbits(orbits, times, num_jobs=1)

assert len(have) == len(orbits) * len(times)


def test_propagator_multiple_workers():
orbits = make_real_orbits(10)
times = Time(["2020-01-01T00:00:00", "2020-01-01T00:00:01"])

prop = MockPropagator()
have = prop.propagate_orbits(orbits, times, num_jobs=4)

assert len(have) == len(orbits) * len(times)

0 comments on commit e69c95f

Please sign in to comment.