Skip to content
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

Improve internal error handling, add unit tests for WiRoot and Airy #11

Open
wants to merge 24 commits into
base: dev
Choose a base branch
from

Conversation

aromanielloNTIA
Copy link
Member

  • Improve internal error handling by implementing exceptions for error cases which previously returned valid (i.e. correctly typed numbers) but incorrect results.
  • Minimize the LFMF wrapper around LFMF_CPP so that all validation occurs in LFMF_CPP
  • Modify Airy validation to reflect that, for Airy functions of the third kind (WONE, WTWO, DWONE, DWTWO), the scaling should be HUFFORD or WAIT (not NONE).
  • Modify Airy to move some variable declarations closer to where they are used
  • Convert enums to enum classes to better enforce their usage
  • Add unit tests for Airy and WiRoot

Avoids requiring the caller to know that they may get junk values indicating invalid input error conditions.
De-FORTRANizing things a bit. Moving variable declaration closer to usage, reducing scope where possible. Cleaning up comment formats that clang-format mangled.
Instead of returning zero silently
Moves all validation into LFMF_CPP so that nothing gets skipped when using different entrypoints. Previously polarization validation was skipped when using LFMF_CPP
Test cases have been removed that are no longer valid after moving polarization enum validation into LFMF_CPP
Scaling has no effect if kind is AIRY, BAIRY, AIRYD, or BAIRYD.

Scaling=NONE should not be used with WONE, WTWO, DWONE, or DWTWO. Instead, only HUFFORD or WAIT scaling should be used for these values of `kind`.

Added checks to ensure correct usage at the beginning of the function and removed a condition which this change made irrelevant. Updated documentation.
@aromanielloNTIA aromanielloNTIA added enhancement New feature or request documentation Improvements or additions to documentation labels Jan 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
1 participant