Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[13-1, 14] Change definition of scaling factor
alpha
, add center a…
…nd approximations for Hermite functions, add Fourier transform utility functions (#15) * BLD: - first test of a GitHub CI for testing * FIX: - fixed wrong pip install and python versions in CI ? * FIX: - fixed loading of test files that do not contain test but dependencies that cannot be loaded ? * BUG: - escaped imports of unaccessible dependencies for test-file generation in GitHub CI tests by making the `if __name__ == "__main__"` include these imports and function definitions * TST: - test whether Cython build can be removed from GitHub actions for testing ? * TST: - reverted removal of Cython for testing * PKG: - moved the full package back into an `src`-folder BLD: - updated `pyproject.toml` and `setup.py` to account for the movement to the `src`-folder - removed dedicated Cython build from CI test pipeline * BLD: - changed CI pipeline target branches * BLD: - augmented CI checks with format, type, and lint checks * BUG: - fixed CI pipeline wrong folder include ? BLD: - added isort check * BUG: - fixed broken `isort` usage in CI? * FIX: - fixed missing `isort` dependency in CI? - fixed wrong import sort order in Cython Hermite functions * FIX: - fixed missing `colorama` dependency for `isort` in CI ? * FIX: - type-ignored Cython import that was not properly resolved by `pyright` ? * FIX: - fixed missing import of Cython module for `pyright` in CI ? * FIX: - again trying to resolve the wrong import error of Cython module by `pyright` in CI ? * FIX: - fixed wrong `pyright` Cython import error of Cython import in CI * BLD: - removed pushes to `develop` from the GitHub CI actions * BLD: - added missing comma to the name of the GitHub CI action * [10 develop] Add coverage to CI pipeline (#11) * DOC: - added Python versions and `black` code style to `README` * DOC: - added `isort` badge to `README` * TST: - added `--no-jit`-flag to `pytest` to enable proper coverage of Numba functions * tmp: - first test of CI with coverage report ? * BUG: - fixed failure of `pytest-xdist` and `pytest-cov` in GitHub CI (works locally) ? * BUG: - fixed accidentally placed `\` for `./tests` in coverage CI action ? * BUG: - added codecov to CI pipeline ? * TST: - tried to readd `pytest-xdist` for coverage reports ? * wip: - reset example Jupyter notebook number 3 * MAINT: - made `_get_num_workers` a function of the `_utils`-model TST: - increased coverage to 100% by testing `np.float32` x-values for the Hermite functions was well as super negative numbers of requested workers * DOC: - added setup, installation, and development instructions to `README` * DOC: - switched back from `README.rst` to `README.md` BLD: - made CI pipeline push actions apply to the main branch only * BLD: - added `mypy` to CI pipeline BUG: - fixed type error that `mypy` uncovered for the `filename_parameters_mapping` for the Hermite function reference generation * wip: - test if CI can still pass ? * wip: - CI apparently still runs; removed check * BLD: - added `pycodestyle` as a part of the CI checks BUG: - fixed a line too long error revealed by `pycodestyle` * DOC: - added CI test status to `README` ? * ENH: - added functions that help for computing discrete/continuous Fourier transforms (`fourier_transform._fft_utils`) TST: - implemented a test suite for `fourier_transform._fft_utils` * Issue 14 #14 DOC: - updated equations with new definitions of $\alpha$ - updated `README` with new equations and added respective reference that these definitions are based on * Issue 14 #14 MAINT: - removed redundant Numba version of the legacy Hermite functions and `jit`-compiled the NumPy-version instead - fixed minor documentation issues * Issue 14 #14 MAINT: - adapted interface to Hermite functions to the new definition of $\alpha$ in terms of both implementation and docs * Issue 14 #14 DOC: - updated example scripts and resulting plots with new definition of $\alpha$ * Issue 14 #14 TST: - generated new references files for testing the new definition of $\alpha$ for the Hermite functions - adapted Hermite function tests to properly run for the new definition of $\alpha$ - configured Hermite function tests via global constants and kept comments in them more vague - made test for Cramér's inequality of the Hermite functions ensure that the boundary value is not only an upper bound but actually reached - changed `requirements` for GitHub CI because with a re-arrangement of the `if __name__ == "__main__"` in the Hermite function reference generation file, `sympy` and `tqdm` became CI requirements as well * BUG: - fixed failing `ruff` for too long line in docstring of new `_fft_utils` BLD: - temporarily enabled CI on push to current branch to check if it still passes after an adaption in `pyright` * Issue 14 #14 BLD: - disabled GitHub CI on push to the current branch again after verifying that it still runs * Issue 13 #13 (3) ENH: - added `x_center` to the Hermite function basis for shifting the Hermite functions in x-direction - added input validation for `x_center` MAINT: - renamed `hermite_functions._interface` to `hermite_functions._func_interface` to prepare for the class interface - made type handling of Hermite function input validation smarter and safer by first converting to the target type and then testing only for this one - made argument types for `x` of the Hermite functions broader by also including lists and tuples TST: - made input validation tests for Hermite functions be executed before the Hermite function reference tests - made input validation tests for Hermite functions not only check failure but also success cases - added tests for the new `x_center` and ensured that it does not modify the original `x`-values for the Hermite functions (after this causes some problems) DOC: - updated all equations and the `README` to clarify the new `x_center` for the Hermite functions - updated installation commands (also mentioned venv activation) and test/check commands in `README` * DOC: - added y-axis to Hermite-function-scale-effect-plot - fixed first vertical x-axis for order `n=0` not showing in the plot at all * Issue #13 (3) MAINT: - moved Hermite function input validation to dedicated file ENH: - pushed forgotten files that add `x_center` to Hermite functions TST: - pushed forgotten files that test the new `x_center` of the Hermite functions and improved the testing of the Hermite function input validation * TST: - split up tests for Hermite functions into dedicated test files to be more flexible * Issue #13 (3) DOC: - added common matplotlib style to unify all plots - updated example scripts with new matplotlib style - added shifted center to Hermite function example 01 * DOC: - made example plots 01 and 02 for Hermite functions more visually appealing/less overwhelming * Issue #13 (6.1) ENH: - added auxiliary script that auto-generates a Python file with spline coefficients for almost exactly evaluating the largest zero (= outermost roots) of the Hermite functions up to order ~100_000 * Issue #13 (6.1) MAINT: - refactored the reference creation for the largest roots of the Hermite functions to not minimize the relative but the absolute error - relaxed permitted absolute error in reference creation for the largest roots of the Hermite functions because the SciPy-reference is not that accurate DOC: - mentioned that the SciPy-reference for the largest roots of the Hermite functions is not perfectly accurate * Issue #13 (6) ENH: - added script to create reference data for the largest extrema of the Hermite functions - added new `_approximations`-module for Hermite functions that offers approximations for their largest roots, largest extrema, and fadeout points TST: - added tests for the new `_approximations`-module DOC: - added legend to first plot in script that creates reference data for the largest roots of the Hermite functions * MAINT: - refactored the reference data generation for the largest roots and extrema of the Hermite functions to fit the splines based on relative errors - updated reference data and plots created by these scripts - made this reference data generation a developer-only script TST: - made test for largest root of Hermite functions more meaningful by adapting the tolerance for checking to the actual magnitude of the root position - made test for largest extremum of Hermite functions more meaningful by checking the y-values (and not the x-values) of the extremum against a numerical optimisation (also with magnitude-adaptive tolerances) * DOC: - made all plot saves in examples available for developers only - aligned plots in terms of visuals (especially titles and sizes) - updated `README` with new plots and developer-only environment variable * BLD: - added additional scripts checks to GitHub CI - made all tools cause actual failures rather than just printing test output ? - broke CI on purpose, by badly formatting `auxiliary_scripts\02_hermite_functions_largest_extremum.py` and `src\robust_hermite_ft\hermite_functions\_c_hermite.pyx` * BLD: - CI tests fixed `black` formatting after confirming that it works - `isort` is the next to check * BLD: - fixed `isort` CI failure after confirming that it works - `pyright` is the next to check * BLD: - temporarily broke `isort` CI check again to check its output * BLD: - fixed `isort` problem again - checking for reasons why `pyright`-check fails by running it separately without output ? * BLD: - fixed `pyright` error handling in CI - `mypy` is the next one to check, but for now it's checked whether it just runs through even though there is an error * BLD: - pushing updated CI workflow file for properly testing that `mypy` just runs through - added `matplotlib` to CI requirements to avoid `pyright` from throwing an error ? * BLD: - going back to the start for tests after `mypy` also stopped CI correctly - starting with `black` test * BLD: - `black` successfully stopped the CI without customised handling - `isort` is the next to check without customised handling * BLD: - also `isort` stops the CI on failure - next to check is `pyright` * BLD: - reverted GitHub CI to its original working state * DOC: - updated `README` with new CI commands * ENH: - Hermite functions now support all kinds of real numeric scalars/Arrays as `x`-values, integer scalars as `n`-values, and real numeric scalars for `alpha` and `x_center` after making the input validation way more relaxed and smarter TST: - test for Hermite function input validation now covers Python and Numpy scalars individually and on top of that also includes Pandas series and Python Arrays - test for data link to original `x` in Hermite functions now evaluates dynamically whether memory is shared by checking if changes in the copy/view are reflected in the original - added a completely new test set whether the Hermite functions yield the same results for all different kinds of `x`-values, `n`-values, `alpha`- and `x-center` values
- Loading branch information