Validation - poliastro/poliastro GitHub Wiki

Validation is hard. The current approach in poliastro is to add unit tests that check whether poliastro gives the same result as the solved examples of popular Astrodynamics textbooks (see and http://docs.poliastro.space/en/latest/references.html#books-and-papers).

However, it's unlikely that we will find textbook examples for slightly complicated things. There is very little material between extremely simple examples and full fledged simulations made for operational purposes. This is why we need to validate poliastro against external software.

The simplest approach I can think of is:

  1. Run a simulation with some external software: SPICE, GMAT or STK (see below).
  2. Copy-paste the results and hardcode them in the test.

However, it is a requirement to have a reproducible way to generate these values. If we start adding tests to poliastro like this one:

def test_propagation_something(...):
    # Values from a simulation in STK
    a = 1.09823095

and the user has no way to recover those hardcoded values, then everything is black magic and there is absolutely no reason anyone should trust our results. This is why scripting the simulations is important.

Available software

These are our options: