-
Notifications
You must be signed in to change notification settings - Fork 34
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
Add downstream integration tests #76
Conversation
Codecov Report
@@ Coverage Diff @@
## master #76 +/- ##
=======================================
Coverage 84.13% 84.13%
=======================================
Files 2 2
Lines 208 208
=======================================
Hits 175 175
Misses 33 33 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
It seems that AbstractFFTs master breaks FFTW. Probably caused by #72? |
Should be fixed by #77. I agree that the circular dependency is a bad idea. I'll still need to think of some way of testing adjoints of |
If you want to run the same tests for adjoint plans in downstream packages it might be useful to define a |
That sounds like a great solution, I'll work on that. The downstream tests added here still make sense to merge though, e.g. for the error they caught this time, and because they'll eventually call the adjoint tests of FFTW etc once I've set that up |
I got stuck on this because I worried that |
I'm not so concerned about test dependencies, which don't affect ordinary users. |
The issue here is that we were discussing running the test suite of this package as part of I'm tempted to just copy and paste a few tests from here to the |
Can't we just do: using AbstractFFTs
include(joinpath(pathof(AbstractFFTs), "..", "test", "runtests.jl")) or similar?
I don't like the idea of imposing a runtime/loadtime cost on end users for the test suite. |
I didn't think of the #78 and JuliaMath/FFTW.jl@d57515f implement the suggested approach. |
@gaurav-arya can you explain why you would want to use ChainRulesTestUtils? Generally, the idea with having a test suite for an interface (here and in other packages) is that downstream packages have a standardized and officially sanctioned way of checking if they implement the interface correctly. It's not supposed to cover every possible use case but a minimal set of tests that ensure that all necessary methods are implemented and all desired properties are satisfied. That should be possible without any additional dependencies, I think? If a downstream implementation defines the necessary traits, then AD should work automatically, I guess? |
In the same way as in ChainRules, SciML, Turing etc. In contrast to #75 this avoids a circular dependency and does not cause test errors for breaking releases.