Skip to content

Commit

Permalink
Merge pull request #39 from open-space-collective/users/remy/add-unit…
Browse files Browse the repository at this point in the history
…-tests

Add unit tests
  • Loading branch information
Derollez authored Feb 13, 2021
2 parents fe2d9a4 + 6aeda18 commit d9c9ede
Show file tree
Hide file tree
Showing 9 changed files with 186 additions and 23 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export jupyter_notebook_port := 9005
export open_space_toolkit_core_version := 0.4.2
export open_space_toolkit_io_version := 0.4.0
export open_space_toolkit_mathematics_version := 0.4.0
export open_space_toolkit_physics_version := 0.5.2
export open_space_toolkit_physics_version := 0.5.3

export open_space_toolkit_core_directory := $(project_directory)/../open-space-toolkit-core
export open_space_toolkit_io_directory := $(project_directory)/../open-space-toolkit-io
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@

################################################################################################################################################################

open-space-toolkit-physics==0.5.2
open-space-toolkit-physics==0.5.3

################################################################################################################################################################
3 changes: 3 additions & 0 deletions bindings/python/test/access/test_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,9 @@ def generate_second_trajectory ():
accesses = generator.compute_accesses(interval, from_trajectory, to_trajectory)

assert accesses is not None
assert isinstance(accesses, list)
assert accesses[0] is not None
assert isinstance(accesses[0], Access)

################################################################################################################################################################

Expand Down
7 changes: 3 additions & 4 deletions bindings/python/test/test_access.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,9 @@ def test_access_getters ():
assert loss_signal == loss_of_signal

# get_interval
# interval = access.get_interval()
# Unable to convert function return value to a Python type!
# assert interval is not None
# assert isinstance(interval, Interval)
interval = access.get_interval()
assert interval is not None
assert isinstance(interval, Interval)

# get_duration
duration: Duration = access.get_duration()
Expand Down
184 changes: 173 additions & 11 deletions bindings/python/test/trajectory/orbit/models/sgp4/test_tle.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,22 @@
################################################################################################################################################################

import pytest
import datetime

from ostk.core.types import String, Real
from ostk.core.types import String, Real, Integer

import ostk.physics as physics

import ostk.astrodynamics as astrodynamics

################################################################################################################################################################

Derived = physics.units.Derived
Time = physics.units.Time
Angle = physics.units.Angle
Environment = physics.Environment
DateTime = physics.time.DateTime
Scale = physics.time.Scale
Instant = physics.time.Instant
Orbit = astrodynamics.trajectory.Orbit
SGP4 = astrodynamics.trajectory.orbit.models.SGP4
Expand All @@ -28,10 +33,7 @@

def construct_tle ():

tle: TLE = TLE(
'1 25544U 98067A 18231.17878740 .00000187 00000-0 10196-4 0 9994',
'2 25544 51.6447 64.7824 0005971 73.1467 36.4366 15.53848234128316'
)
tle: TLE = TLE('1 25544U 98067A 18231.17878740 .00000187 00000-0 10196-4 0 9994','2 25544 51.6447 64.7824 0005971 73.1467 36.4366 15.53848234128316')

return tle

Expand Down Expand Up @@ -101,11 +103,15 @@ def test_trajectory_orbit_models_sgp4_tle_get_lines ():

################################################################################################################################################################

# def test_trajectory_orbit_models_sgp4_tle_get_sat_number ():
def test_trajectory_orbit_models_sgp4_tle_get_satellite_number ():

# tle: TLE = construct_tle()
tle: TLE = construct_tle()

satellite_number = tle.get_satellite_number()

# get_satellite_number
assert satellite_number is not None
assert isinstance(satellite_number, Integer)
assert satellite_number == 25544

################################################################################################################################################################

Expand Down Expand Up @@ -144,11 +150,16 @@ def test_trajectory_orbit_models_sgp4_tle_get_epoch ():

assert epoch is not None
assert isinstance(epoch, Instant)
# assert epoch == Instant.date_time(DateTime(2018, 8, 19, 4, 17, 27, 231, 360, 0), Scale.UTC)
assert epoch == Instant.date_time(DateTime(2018, 8, 19, 4, 17, 27, 231, 360, 0), Scale.UTC)

date_time : datetime.datetime = epoch.get_date_time(Scale.UTC)

assert date_time is not None
assert isinstance(date_time, datetime.datetime)

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_mean_motions ():
def test_trajectory_orbit_models_sgp4_tle_get_mean_motion_derivatives ():

tle: TLE = construct_tle()

Expand Down Expand Up @@ -181,6 +192,157 @@ def test_trajectory_orbit_models_sgp4_tle_get_b_star_drag_term ():

################################################################################################################################################################

# ...
def test_trajectory_orbit_models_sgp4_tle_get_ephemeris_type ():

tle: TLE = construct_tle()

ephemeris_type = tle.get_ephemeris_type()

assert ephemeris_type is not None
assert isinstance(ephemeris_type, Integer)
assert ephemeris_type == 0

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_element_set_number ():

tle: TLE = construct_tle()

element_set_number = tle.get_element_set_number()

assert element_set_number is not None
assert isinstance(element_set_number, Integer)
assert element_set_number == 999

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_first_line_checksum ():

tle: TLE = construct_tle()

checksum = tle.get_first_line_checksum()

assert checksum is not None
assert isinstance(checksum, Integer)
assert checksum == 4

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_inclination ():

tle: TLE = construct_tle()

inclination = tle.get_inclination().in_degrees()

assert inclination is not None
assert isinstance(inclination, Real)
assert inclination == 51.6447

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_raan ():

tle: TLE = construct_tle()

raan = tle.get_raan().in_degrees()

assert raan is not None
assert isinstance(raan, Real)
assert raan == 64.782399999999996

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_eccentricity ():

tle: TLE = construct_tle()

eccentricity = tle.get_eccentricity()

assert eccentricity is not None
assert isinstance(eccentricity, Real)
assert eccentricity == 0.00059710000000000004

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_aop ():

tle: TLE = construct_tle()

aop = tle.get_aop().in_degrees()

assert aop is not None
assert isinstance(aop, Real)
assert aop == 73.146699999999996

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_mean_anomaly ():

tle: TLE = construct_tle()

mean_anomaly = tle.get_mean_anomaly().in_degrees()

assert mean_anomaly is not None
assert isinstance(mean_anomaly, Real)
assert mean_anomaly == 36.436599999999999

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_mean_motion ():

tle: TLE = construct_tle()

mean_motion = tle.get_mean_motion().in_unit(Derived.Unit.angular_velocity(Angle.Unit.Revolution, Time.Unit.Day))

assert mean_motion is not None
assert isinstance(mean_motion, Real)
assert mean_motion == 15.53848234 # Revolutions per Day

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_revolution_number_at_epoch ():

tle: TLE = construct_tle()

revolution_at_epoch = tle.get_revolution_number_at_epoch()

assert revolution_at_epoch is not None
assert isinstance(revolution_at_epoch, Integer)
assert revolution_at_epoch == 12831

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_get_second_line_checksum ():

tle: TLE = construct_tle()

checksum = tle.get_second_line_checksum()

assert checksum is not None
assert isinstance(checksum, Integer)
assert checksum == 6

################################################################################################################################################################

def test_trajectory_orbit_models_sgp4_tle_can_parse ():

tle: TLE = construct_tle()

first_line = tle.get_first_line()
second_line = tle.get_second_line()

assert TLE.can_parse(first_line, second_line)

################################################################################################################################################################

# def test_trajectory_orbit_models_sgp4_tle_parse ():

# tle: TLE = construct_tle()

################################################################################################################################################################

# def test_trajectory_orbit_models_sgp4_tle_load ():

# tle: TLE = construct_tle()

################################################################################################################################################################
5 changes: 1 addition & 4 deletions bindings/python/test/trajectory/test_orbit.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,7 @@
def test_trajcectory_orbit_constructors ():

# Construct Two-Line Element set
tle = TLE(
'1 25544U 98067A 18231.17878740 .00000187 00000-0 10196-4 0 9994',
'2 25544 51.6447 64.7824 0005971 73.1467 36.4366 15.53848234128316'
)
tle = TLE('1 25544U 98067A 18231.17878740 .00000187 00000-0 10196-4 0 9994','2 25544 51.6447 64.7824 0005971 73.1467 36.4366 15.53848234128316')

# Construct orbit using SGP4 model
orbit = Orbit(SGP4(tle), earth)
Expand Down
2 changes: 2 additions & 0 deletions bindings/python/test/trajectory/test_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

################################################################################################################################################################

import pytest

import ostk.astrodynamics as astrodynamics

################################################################################################################################################################
Expand Down
2 changes: 1 addition & 1 deletion docker/development/debian/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ RUN mkdir -p /tmp/open-space-toolkit-mathematics \

## Open Space Toolkit ▸ Physics

ARG OSTK_PHYSICS_VERSION=0.5.2
ARG OSTK_PHYSICS_VERSION=0.5.3

RUN mkdir -p /tmp/open-space-toolkit-physics \
&& cd /tmp/open-space-toolkit-physics \
Expand Down
2 changes: 1 addition & 1 deletion docker/development/fedora/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ RUN mkdir -p /tmp/open-space-toolkit-mathematics \

## Open Space Toolkit ▸ Physics

ARG OSTK_PHYSICS_VERSION=0.5.2
ARG OSTK_PHYSICS_VERSION=0.5.3

RUN mkdir -p /tmp/open-space-toolkit-physics \
&& cd /tmp/open-space-toolkit-physics \
Expand Down

0 comments on commit d9c9ede

Please sign in to comment.