JuliaMath / JuliaMath/Bessels.jl

New uniform approach to testing

Open
#75 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
90
Forks
11
PR merge metrics
No merged PRs in 30d

Description

The test structure is fairly comprehensive but we are starting to run into a few things as the library grows. The test files are becoming a conglomeration of new functions but are not standardized. Additionally, we are testing against the `SpecialFunctions.jl` library which has its own errors and could eventually be replaced with new implementations. So as we add functions that are more accurate we can't test them to strict error tolerances. There are some potential alternatives.

1. Switch all tests to `ArbNumerics.jl` so that the tests are accurate to all digits. Though this has the drawback of being very slow which I don't think is a good idea to slow down CI so much.
2. Generate a table of values that can be stored in the test folder to be loaded and compared against. This should be much faster as then we are only evaluating the functions in Bessels.jl. I would imagine loading a big table of values would not be too slow for each function.

There are I'm sure different approaches that I would be happy to hear. Though, I am in general of having a pretty complete testing approach in CI as there are so many functions that depend on each other it would be hard to locally test everything during each PR. Ideally, this will help any new implementation or performance improvement be checked against the strictest error tolerance of the existing function...

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the existing test files and how they are run in CI, then compare the current SpecialFunctions.jl-based checks with the proposed ArbNumerics.jl and stored-value approaches. A completed change would establish a consistent test structure and a CI strategy that preserves strict accuracy checks without an unacceptable slowdown.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
testing
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.