• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

florisvb / PyNumDiff / 33452597094
94%

Build:
DEFAULT BRANCH: master
Ran 31 Aug 2026 11:57PM UTC
Jobs 1
Files 14
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

31 Aug 2026 11:53PM UTC coverage: 92.661% (-0.06%) from 92.717%
33452597094

push

github

pavelkomarov
Expose cutoff_freq instead of tvgamma, and unify robust scale estimation

Addresses #225 by making `optimize` take the quantity a user can reason about. `tvgamma` weighs smoothness against fidelity but its meaning depends on the sampling rate as well as the signal, so callers now give `cutoff_freq`, the highest frequency at which their data carries real signal, and the weight is derived from it internally exactly as `suggest_method` was already doing; `tvgamma` still works with a DeprecationWarning. Automatic estimation of that cutoff was tried and abandoned: a power percentile of the noisy spectrum tracks where a signal's power is concentrated rather than where its band ends, so it slid threefold on cruise control as the series lengthened while pinning exactly to the truth on a stationary sum of sines, and a spectral knee against the noise floor was no better. Notebook 2 already coaches the reader through choosing this from a power spectrum, which stays the honest answer. `butterdiff`'s `cutoff_freq` becomes `high_freq_cutoff`, matching `spectraldiff`, since it is a fraction of Nyquist rather than a property of the data and would otherwise collide in a single `optimize` call.

Six robust scale estimates that were the same idea written six ways collapse into `utility.robust_data_scale` and `robust_noise_scale`, the second defined through the first, so the second-difference stencil's variance inflation and the uncentered Donoho-Johnstone form are each explained once rather than re-derived at every call site. `robustdiff` now raises `LinAlgError` when the convex solve fails, which `optimize` already treats as a bad point, rather than returning NaN that propagated silently into the objective's scale estimate and surfaced as a wall of SmallSampleWarnings. Its ill-conditioning guard scales the ridge by Q's largest eigenvalue instead of a fixed 1e-12, because `log_q` spans fifteen orders of magnitude in the search space and an absolute ridge that protects o... (continued)

32 of 33 new or added lines in 9 files covered. (96.97%)

947 of 1022 relevant lines covered (92.66%)

0.93 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
93.51
-0.94% pynumdiff/optimize.py
Jobs
ID Job ID Ran Files Coverage
1 33452597094.1 31 Aug 2026 11:57PM UTC 14
92.66
GitHub Action Run
Source Files on build 33452597094
  • Tree
  • List 14
  • Changed 9
  • Source Changed 9
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #33452597094
  • 03bc3314 on github
  • Prev Build on master (#33272953939)
  • Next Build on master (#33519207707)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc