[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orekit Developers] Test failure in testW3B
Hi Maxime,
On Thu, 2018-03-08 at 12:22 +0100, JOURNOT Maxime wrote:
Hi Evan, Luc,
I was about to answer but you were faster Luc.
Just one weird thing on my side: I cannot reproduce the bug on my machine with the latest version of the "develop" branch.
Is that a numerical discrepancy (it seems quite big though) or should we investigate further ?
It happens every time for me. I also have a Jenkins instance that builds the latest Orekit code every night and testW3B has been failing every build since August.
Perhaps a localization issue? Though I don't know how that would affect it.
Best Regards,
Evan
Best regards,
Maxime
Le 07/03/2018 à 20:49, MAISONOBE Luc a écrit :
"Ward, Evan" <Evan.Ward@nrl.navy.mil> a écrit :
Hi,
Hi Evan,
I'm getting the following error when running `mvn test`. Is this an
actual failure or is the tolerance too tight? I'm not familiar with the
test so I figured I would ask here.
java.lang.AssertionError: expected:<0.687998> but was:<0.6880143632396981>
at org.orekit.estimation.leastsquares.OrbitDeterminationTest.testW3B(OrbitDeterminationTest.java:310)
Yes the tolerance is too tight.
It is one example of the way we did validate some parts
- first we run extensive tests and when we do not have reference
data we change parameters to look how output changes, we check
consistency with simulations, in some case we explore domain
with random or Sobol drawings
- then we convince ourselves that what Orekit computes is indeed
correct
- then we run a last time the test and pick up Orekit result itself
as the reference
- then we put a *very tight* and even non-physical tolerance so
that when anything changes in Orekit the test crashes and
developers at least notice the effect.
Then, if it seems the test crash is only due to the non-meaningful
tolerance, either we relax the tolerance or we even change the
reference value itself.
Also for the specific case of W3B, this was a satellite that experienced
a problem right after launch (a leak in the propulsion system), so the
satellite was intentionally put on a reentry orbit to burn in the atmosphere
rather than being sent to geostationary. So its dynamical model is really
particular (and interesting) and we can't have any really accurate orbit
on this. So I would say, just change the test so it pass again. Here, we
know the reference value is just what a previous Orekit version found and
the result is highly sensitive to changes in the code.
best regards,
Luc
Best Regards,
Evan