Fix tests
- Some of the tests did not return a non-zero exit status upon failure. One test failed due to a too strict numerical precision check. Both have been fixed.
- The CI run script would bail out at the first failing test. This has been fixed by using
pytest
to run all tests.