Skip to content

Redesign the public API test architecture - #434

Draft
lrnv wants to merge 70 commits into
mainfrom
test-architecture-redesign
Draft

Redesign the public API test architecture#434
lrnv wants to merge 70 commits into
mainfrom
test-architecture-redesign

Conversation

@lrnv

@lrnv lrnv commented Aug 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • declare and document the SemVer-stable public API on Julia 1.11+
  • replace the monolithic generic bestiary with compact public contracts and explicit mathematical cohorts
  • separate constructor, fitting, component, Sklar, utility, and dispatch-path coverage
  • keep family regressions active under est/old during their incremental migration
  • report elapsed time per test group

Closes #422
Tracks #424, #425, #426, #428, and #430.

@github-actions

github-actions Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

🟢 Tachometer — no performance regressions detected

25 benchmarks compared · ad60873091a05b · Julia 1.12.7 · 5% tolerance · 3× runs

Full results (25 benchmarks)
Benchmark Time Memory
⚪️ cdf/bb1_d2 1.56 ms → 1.59 ms (+2%)
⚪️ cdf/galambos_d2 1.1 ms → 1.13 ms (+3%)
⚪️ conditioning/cdf_bb1_d2 338 µs → 336 µs (−1%)
⚪️ conditioning/construct_bb1_d2_1000 343 µs → 344 µs (+0%)
⚪️ conditioning/inverse_rosenblatt_gaussian_d5 263 µs → 263 µs (−0%)
⚪️ conditioning/quantile_galambos_d2 11.5 ms → 11.5 ms (−0%)
⚪️ conditioning/rosenblatt_gaussian_d5 296 µs → 296 µs (−0%)
⚪️ data/beta_logpdf 10.4 ms → 10.4 ms (−0%)
⚪️ data/checkerboard_cdf 54.3 ms → 54.5 ms (+0%)
⚪️ data/empirical_cdf 15.2 ms → 15.2 ms (−0%)
⚪️ data/pseudos_5x10000 1.98 ms → 1.98 ms (+0%)
⚪️ density/bb1_d2 1.86 ms → 1.86 ms (−0%)
⚪️ density/galambos_d2 2.53 ms → 2.54 ms (+0%)
⚪️ density/gaussian_d10 8.59 ms → 8.49 ms (−1%)
⚪️ density/gumbel_d5 9.03 ms → 8.94 ms (−1%)
⚪️ density/nested_d6 10.3 ms → 10.3 ms (−0%)
⚪️ fitting/gaussian_mle 55.1 µs → 55.1 µs (+0%)
⚪️ fitting/gumbel_itau 143 µs → 143 µs (−0%)
⚪️ fitting/sklar_ifm 53.8 ms → 53.8 ms (+0%)
⚪️ sampling/archimax_d2 16.4 ms → 16.3 ms (−0%)
⚪️ sampling/clayton_d5 2.3 ms → 2.3 ms (−0%)
⚪️ sampling/galambos_d2 80.7 ms → 80.6 ms (−0%)
⚪️ sampling/gaussian_d10 1.73 ms → 1.74 ms (+0%)
⚪️ sampling/nested_d6 120 ms → 122 ms (+2%)
⚪️ sampling/student_d2 4.42 ms → 4.42 ms (+0%)

baseline ad60873 · target 091a05b · Julia 1.12.7 · ARM Neoverse-N2 · min estimator · tol 5%/5% · floor 1 µs · 3× runs · run · Tachometer.jl

lrnv added 15 commits August 26, 2026 16:33
- Updated `test_dependence_contract` to include conditional measures based on the type of copula.
- Expanded `test_distribution_contract` with additional CDF tests and error handling for invalid dimensions.
- Added comprehensive tests for the StatsBase model-result interface in `test_fitting`.
- Improved `test_rosenblatt_contract` to verify the inverse Rosenblatt transformation.
- Enhanced `test_sklar` to include log-likelihood checks.
- Added subsetting tests in `test_subsetting_contract` for CDF consistency.
- Extended `test_utilities` to validate scalar and pairwise dependence measures.
- Introduced new tests for public API surfaces and generator constructors.
- Added mathematical coherence tests for CDF and density functions.
- Implemented statistical tests for representative samplers and Rosenblatt statistics.
- Created new test files for public compositions and measure inverses.
- Introduced tests for specialized FGM paths, Gumbel generator, and logistic tail to ensure consistency with generic oracles.
- Implemented a smooth polynomial oracle with corresponding CDF and PDF functions.
- Added tests for generator oracles, tail oracles, and various mathematical coherence checks.
- Enhanced the test suite to include measures of dependence, conditional densities, and Rosenblatt transformations.
- Updated the test runner to include the new dispatch paths tests.
lrnv added 11 commits August 28, 2026 11:11
- Added comprehensive tests for specialized CDF and log-density routes, ensuring they satisfy mass identities and other properties.
- Introduced new test sets for atomic conditioning routes and joint conditioning routes, verifying their correctness against normalized CDF derivatives.
- Updated the dispatch mechanism to include conditional joint operations and ensure every selected deterministic route has a corresponding proof.
- Enhanced fitting tests to validate log-likelihoods for fitted copulas against source copulas.
- Removed obsolete dispatch path functions to streamline the routing obligations.
@codecov

codecov Bot commented Aug 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 86.15385% with 27 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.27%. Comparing base (ad60873) to head (50443aa).

Files with missing lines Patch % Lines
src/NestedArchimedeanCopula.jl 20.00% 8 Missing ⚠️
src/SklarDist.jl 81.25% 6 Missing ⚠️
src/Copula.jl 85.00% 3 Missing ⚠️
src/MiscellaneousCopulas/SurvivalCopula.jl 33.33% 2 Missing ⚠️
src/UnivariateDistribution/ExtremeDist.jl 0.00% 2 Missing ⚠️
src/Generator.jl 92.85% 1 Missing ⚠️
src/MiscellaneousCopulas/BernsteinCopula.jl 80.00% 1 Missing ⚠️
src/Subsetting.jl 92.85% 1 Missing ⚠️
src/Tail.jl 50.00% 1 Missing ⚠️
...rc/UnivariateDistribution/Frailties/Logarithmic.jl 0.00% 1 Missing ⚠️
... and 1 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #434      +/-   ##
==========================================
+ Coverage   86.07%   86.27%   +0.19%     
==========================================
  Files          91       90       -1     
  Lines        7764     7905     +141     
==========================================
+ Hits         6683     6820     +137     
- Misses       1081     1085       +4     
Flag Coverage Δ
contracts 70.33% <80.51%> (?)
proofs 70.80% <46.90%> (?)
regressions 58.99% <27.74%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

lrnv added 12 commits August 29, 2026 02:34
- Added tests for Gaussian Sklar conditioning to ensure consistency with multivariate normal algebra.
- Removed outdated constructor validation tests from nested Archimedean copula tests.
- Consolidated extreme-value conditioning tests into a dedicated file for better organization.
- Introduced focused conditioning regressions for various copula families, including Bernstein and Checkerboard copulas.
- Implemented mathematical correctness tests for Williamson transforms, verifying real-order identities and transformations.
- Established equivalence tests for extreme-value copulas, ensuring consistency across different parameterizations.
- Updated test suite to include new test files and improved organization for clarity and maintainability.
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.

[Housekeeping] Reduce maintenance and CI costs

1 participant