-
Notifications
You must be signed in to change notification settings - Fork 2
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
[JOSS Review] Software testing #10
Comments
Man, you're incredibly patient to write a detailed issue 👍 Anyways if I understand you and suggested test correctly, this will be testing the I/O aspects of hiwenet, more so than the implementation itself. Yes? I think this is important if we were to offer both interfaces -- working on it. |
I proposed two "flavors":
|
The 9bcc307 should resolve item 1 here (involving API, CLI an I/O). The second one is more about matching medpy's implementation with that coming from the matlab toolbox. This comparison is complicated and non-trivial, which I feel is slightly beyond the scope of this package/review. It is important for my research and I will dig into it as I try to make comparisons between them. |
I believe it would make sense to extend the added test to all metrics, but I leave this decision to @raamana. I also consider that test 2 is not that hard to implement (it just takes pre-calculating the features file on a certain dataset with the MATLAB version and check that it is close enough to the features calculated from the same dataset with python, and the dataset does not need to come from a real brain, they could just be randomly generated). This test would add real value to the testing effort. As I said, it is not something I consider mandatory, so I'll close this issue. |
Thanks Oscar, its definitely to run the CLI vs API matching test to all metrics, I haven't done, as I believe if it does for one, it should also behave the same for others, and I didn't want to elongate the tests for no obvious reasons. I will extend them. Regarding matlab vs python, as I mentioned before, I expect them to differ as they are implemented by different people , possibly with different equations, although being in the same family. Moreover, i don't any consider any to be a reference or ground truth - each are simply a different instantiation (although with different implementations). I agree with you doing this is way better than otherwise, I hope to do it when I am able to, or when I am able to find other resources (like a coop project). |
CLI vs API matching test has been extended - via fb224f2 - to all metrics and semi metrics now, thanks for pointing it out. |
The main missing point here is a "smoke test" (just checking that the software worked, allowing any size of error at the output). How it would work:
This does not check that the method worked correctly, it only checks that it did not break down (no smoke came out the box).
But, you happen to have an alternative implementation. This is a great testing oracle. You will be able to 1) ensure your implementation matches the original; 2) be more certain about the correctness of your software. To do so, modify 2) in the previous list with the outputs generated with your Matlab implementation. In 4) you probably want to modify your test to accept certain threshold of numerical tolerance. After all, you wouldn't need to repeat all the experiments of your preprint to provide some evidence that this implementation is equivalent.
The rest of the tests just check the conformity of inputs and outputs (
hiwenet/hiwenet/test_hiwenet.py
Lines 46 to 110 in c4fc23b
Or they test argparse, when it already takes care of the correctness and interpretation of the command line. I think these tests do not exercise much the code:
hiwenet/hiwenet/test_hiwenet.py
Lines 113 to 168 in c4fc23b
(ref. openjournals/joss-reviews#380)
The text was updated successfully, but these errors were encountered: