-
Notifications
You must be signed in to change notification settings - Fork 14
Description
Currently so3, pyssht and healpy are all test dependencies of the packages as we check consistency of our spherical harmonic and Wigner transform implementations against the implementations in the packages. This was particularly useful during initial development to check for correctness against existing established packages, and to a degree is also useful to test going forward to check we don't diverge in behaviour from these packages. However, as all three packages wrap non-Python compiled libraries, their build systems / installation processes are comparatively brittle.
For example, our tests are currently failing to run on Python 3.8 on Ubuntu due to issues building so3 (#308) and we have previously had similar issues due to pyssht (#151, #206, #266, #279). We are also having on-going issues with running our test suite on MacOS Actions runners with Python versions newer than 3.8 due to a fatal runtime error in healpy code which on MacOS.
As previously discussed for pyssht in #151, we could remove these packages as test dependencies as we now have reference 'loopy' versions of these transforms we test against. Rather than dropping the tests entirely we could either make them optional with specific marks (and for example run these as additional tests during scheduled runs), or generate fixed test data using these packages and regression test against this.
We do also have optional dependencies on pyssht and healpy in the main package for the purposes of providing JAX wrappers of their transforms for running on CPU. Being able to still test these somewhat favours having these and other pyssht / healpy dependent tests optional / given a specific mark to allow skipping, rather than removing them entirely and using fixed test data.