Skip to content

Relicense to 0BSD; fix StudentTCopula DF setter; harden download tests against outages#137

Merged
HadenSmith merged 2 commits intomainfrom
bug-fixes-and-enhancements
Apr 27, 2026
Merged

Relicense to 0BSD; fix StudentTCopula DF setter; harden download tests against outages#137
HadenSmith merged 2 commits intomainfrom
bug-fixes-and-enhancements

Conversation

@HadenSmith
Copy link
Copy Markdown
Collaborator

Summary

  • License: Relicense from BSD-3-Clause USACE-RMC to Zero-Clause BSD (0BSD). Strips the license header from 378 .cs files and updates README, CITATION.cff, CONTRIBUTING.md, docs/index.md, codemeta.json, and the NuGet metadata in Numerics.csproj.
  • StudentTCopula: DegreesOfFreedom setter no longer throws — it now sets _parametersValid via a new ValidateParameters(rho, nu) method, matching the BivariateCopula.Theta / BetaDistribution convention. Constructors stop guarding too. Also unifies the ν minimum on 2 + 1e-10 across ParameterConstraints and SetCopulaParameters — the previous 2.0 + Tools.DoubleMachineEpsilon expression silently rounded to 2.0 in IEEE 754, causing the optimizer to fail validation at the lower bound. Tests updated for the int → double DF widening.
  • Download tests: Per-service AvailableAsync probes (CHMN, USGS, GHCN, BOM) replace the generic Online() check in all 31 integration tests so a single provider outage skips cleanly instead of failing CI. (Currently triggered by BOM's WDP backend returning 500 DatasourceError.) BOM URLs switched to https:// and 5xx response bodies are surfaced in exceptions so the next outage is self-documenting.

Replaces the BSD-3-Clause USACE-RMC license. Strips the license header
from 378 .cs files and updates README, CITATION.cff, CONTRIBUTING.md, docs/index.md, codemeta.json, and Numerics.csproj NuGet metadata.
…tages

StudentTCopula: DegreesOfFreedom setter no longer throws — it sets
_parametersValid via the new ValidateParameters(rho, nu) and constructors follow suit. ValidateParameter now delegates to ValidateParameters so the base Theta setter validates both parameters. Unify the ν minimum on 2 + 1e-10 across ParameterConstraints and SetCopulaParameters; the previous 2.0 + Tools.DoubleMachineEpsilon expression silently rounded to 2.0 in IEEE 754 (ULP at 2.0 is 2^-51, larger than eps = 2^-53), making the optimizer fail at the boundary. Tests updated for the int→double widening and the new minimum.

Test_TimeSeriesDownload: add per-service AvailableAsync probes (CHMN, USGS, GHCN, BOM) memoized via ConcurrentDictionary<string, Lazy<Task<bool>>>; replace
`Online()` in all 31 integration tests so an upstream outage skips cleanly
instead of failing CI. BOM URLs switched to https and 5xx response bodies are now surfaced in the exception so the next outage is self-documenting.
@HadenSmith HadenSmith merged commit 35b836c into main Apr 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant