-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve CI/CD #27
Comments
I don't remember the testing philosophy of your code at the moment (à froid). In testing, I typically distinguish unit testing and integration testing. More recently, I've started adding the examples to the test suite. I aim to have 80% coverage of the code or more through both unit testing (that live in the src folder) and integration testing (that live in the tests folder). The integration testing is more of a use case demo : if I user needed to do X, how would they do it? Then set up the whole problem there. I've also found the rstest crate to be very helpful because you can set up test fixtures so that any number of tests can reuse the same initialization code for example (I use that to not repeat the downloading of the almanac). Kani is useful for finding bugs like arithmetic overflows or relatively simple "round trip" errors (like initialize a duration from its nanoseconds and then check that grabbing the nanoseconds out matches exactly the original input). I don't think that would be helpful in gnss-rtk because Kani is too low level. |
Thank you very much, yeah that does not really apply here
testing the solver falls within integration tests. We need to simulate an application that uses that piece of code. |
I have a similar use case with the orbit determination tests. In these, I test that the norm of the difference between the expected solution and the computed solution is decently close (eg less than 5 meters). |
Following your indications right now, I'm simply augmenting the existing examples and integrate them to CI/CD. All I need is a text parser so we can provide input data easily. Actually, to be complete we will want two datasets. One sampled by a static rover, one sampled by a moving rover, so we can test both scenarios. I have never stimulated GNSS-RTK with dynamic data, for the simple reason that I only work with Open RINEX Data, and those are provided by reference geodetic sites that do not move by definition. Those are great and the only option to test PPP surveying, which is the most demanding task by definition and that we have pretty much tackled. It is normal to obtain "poorer" results with moving rovers. But IMO harder to tester as well. We will have two examples
|
Testing navigation under CI / CD
The solver is currently not fully tested under CI / CD. The main equation and functions are not.
Some preliminary work have been introduced to correct that, but it requires more work.
@ChristopherRabotin, could you tell me a little more about Kani that you use in Hifitime ?
Is that an open solution ?
The problem in GNSS-RTK being (once we have a solution to provide input data) that it has several options.
For example, let say you want to validate the PPP solver, you need to at least verify it works with all major options: 3 navigation methods and 3 navigation modes, that's 9 combination. Could Kani help in building effecient and smart tests ?
The text was updated successfully, but these errors were encountered: