test_unitStripLocation

test_unitStripLocation.test_AzElR_rates()[source]

Tests that the Az, El, range rates are correct by using 1-step Euler integration. Uses a stationary strip (start == end at Boulder, CO) to test rate computation, analogous to the groundLocation Az/El/R rate test.

Returns:

test_unitStripLocation.test_new_start_pre_imaging(show_plots)[source]

Tests that newpstart() correctly extends the strip backward so that the target reaches the original start point after exactly preImagingTime seconds of travel:

  1. Verifies that at t=0 the target position equals the extended (new) start point, which sits preImagingTime * speed arc-length behind the original start along the great circle.

  2. Verifies that at t=preImagingTime the target arrives at the original start point (lat=0, lon=0).

  3. Verifies that at the end of the updated traversal the target reaches the original end point (lat=0, lon=90°).

Returns:

test_unitStripLocation.test_pre_imaging_blocks_access(show_plots)[source]

Tests that access is blocked during the pre-imaging phase:

  1. A strip target with preImagingTime > 0 should deny access during the initial pre-imaging period, even if the spacecraft is geometrically visible.

  2. After the pre-imaging time has elapsed, access should be granted if the elevation/range criteria are met.

Returns:

test_unitStripLocation.test_range_degenerate_strip(show_plots)[source]

Tests stripLocation with a degenerate strip (start == end):

  1. Computes range correctly by evaluating slantRange;

  2. Tests whether elevation is correctly evaluated;

  3. Tests whether range limits impact access;

  4. Tests whether multiple spacecraft are supported in parallel.

This is the stripLocation equivalent of the groundLocation test_range test, verifying that a strip with identical start and end points behaves like a single ground location.

Returns:

test_unitStripLocation.test_rotation_degenerate_strip(show_plots)[source]

Tests whether stripLocation correctly accounts for planet rotation:

  1. Computes the current strip location based on the initial position and the rotation state of the planet it is attached to.

A strip at (0, 10deg) with the planet rotated by -10deg around z should appear at (0, 0) in inertial space, directly beneath a spacecraft on the x-axis.

Returns:

test_unitStripLocation.test_strip_target_motion(show_plots)[source]

Tests that the strip target position moves along the great-circle arc from start to end as time progresses (No pre-imaging is considered in this test):

  1. Verifies that the target position at the midpoint of the traversal matches the expected SLERP interpolation on the sphere.

  2. Verifies that the target starts at the start point and finishes at the end point.

  3. Verifies that a spacecraft placed above the midpoint sees ~90deg elevation when the target arrives there.

Returns:

test_unitStripLocation.test_strip_velocity_output(show_plots)[source]

Tests that the strip state output message correctly reports the velocity of the moving target along the strip:

  1. For a non-degenerate strip, velocity magnitude should equal the acquisition speed.

  2. The velocity vector should be perpendicular to the position vector (tangent to the sphere).

  3. The velocity vector should lie in the great-circle plane defined by the strip start and end points (i.e. perpendicular to the orbit normal).

  4. The velocity vector should be oriented in the direction of motion (from start toward end), verified by checking that r x v is parallel to the orbit normal.

Returns: