scientific-computing-system 2.2.8__tar.gz → 2.2.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/CHANGELOG.md +24 -0
  2. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/CITATION.cff +2 -2
  3. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/PKG-INFO +1 -1
  4. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/codemeta.json +1 -1
  5. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/package.json +1 -1
  6. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/pyproject.toml +1 -1
  7. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/_version.py +2 -2
  8. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/validation/checks.py +77 -40
  9. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/validation/drift.py +18 -4
  10. scientific_computing_system-2.2.11/tests/test_validation_derived_moments_overflow.py +58 -0
  11. scientific_computing_system-2.2.11/tests/test_validation_derived_tolerance_overflow.py +51 -0
  12. scientific_computing_system-2.2.11/tests/test_validation_ood_stable_and_coverage.py +61 -0
  13. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.github/workflows/benchmarks.yml +0 -0
  14. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.github/workflows/bot-reviewer.yml +0 -0
  15. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.github/workflows/changelog.yml +0 -0
  16. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.github/workflows/cli-package-smoke.yml +0 -0
  17. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.github/workflows/codeql.yml +0 -0
  18. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.github/workflows/npm-publish.yml +0 -0
  19. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.github/workflows/pr-automation.yml +0 -0
  20. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.github/workflows/pypi-registry-smoke.yml +0 -0
  21. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.github/workflows/release.yml +0 -0
  22. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.github/workflows/tests.yml +0 -0
  23. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/.gitignore +0 -0
  24. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/CONTRIBUTING.md +0 -0
  25. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/LICENSE +0 -0
  26. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/README.md +0 -0
  27. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/SECURITY.md +0 -0
  28. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/benchmarks/results.json +0 -0
  29. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/benchmarks/robust_runner.py +0 -0
  30. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/benchmarks/run_benchmarks.py +0 -0
  31. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/bin/scs.js +0 -0
  32. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/dashboard/app.py +0 -0
  33. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/ARCHITECTURE.md +0 -0
  34. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/CASE_STUDY_HUBBLE.md +0 -0
  35. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/CASE_STUDY_QUANTUM_ML.md +0 -0
  36. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/api.md +0 -0
  37. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/assets/icon.svg +0 -0
  38. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/assets/logo.svg +0 -0
  39. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/benchmarks.md +0 -0
  40. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/checks/verify_provenance_claims.py +0 -0
  41. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/cookbook.md +0 -0
  42. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/getting-started.md +0 -0
  43. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/index.md +0 -0
  44. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/maintenance.md +0 -0
  45. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/ml_reference.md +0 -0
  46. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/related.md +0 -0
  47. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/research-workflows.md +0 -0
  48. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/stylesheets/extra.css +0 -0
  49. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tour_of_numerical_methods.md +0 -0
  50. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/core_demo.md +0 -0
  51. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/data_analysis_demo.md +0 -0
  52. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/diffeq_demo.md +0 -0
  53. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/fft2_demo.md +0 -0
  54. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/graph_demo.md +0 -0
  55. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/hypothesis_demo.md +0 -0
  56. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/hypothesis_tests_demo.md +0 -0
  57. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/hypothesis_with_stats_demo.md +0 -0
  58. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/knowledge_demo.md +0 -0
  59. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/linalg_demo.md +0 -0
  60. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/math_utils_demo.md +0 -0
  61. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/ml_advanced_demo.md +0 -0
  62. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/ml_and_viz_demo.md +0 -0
  63. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/ml_demo.md +0 -0
  64. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/modeling_demo.md +0 -0
  65. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/montecarlo_demo.md +0 -0
  66. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/nlp_attention_demo.md +0 -0
  67. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/nlp_bpe_demo.md +0 -0
  68. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/nlp_mini_gpt_demo.md +0 -0
  69. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/nlp_viz.md +0 -0
  70. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/numerical_integration_demo.md +0 -0
  71. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/optimization_demo.md +0 -0
  72. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/pandas_io_demo.md +0 -0
  73. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/pca_demo.md +0 -0
  74. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/probability_demo.md +0 -0
  75. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/quantum_demo.md +0 -0
  76. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/quick_start.md +0 -0
  77. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/scientific_demo.md +0 -0
  78. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/signals_demo.md +0 -0
  79. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/stats_demo.md +0 -0
  80. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/stiff_ode_demo.md +0 -0
  81. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/tutorials/time_series_demo.md +0 -0
  82. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/docs/why-pure-python.md +0 -0
  83. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/core_demo.py +0 -0
  84. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/data_analysis_demo.py +0 -0
  85. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/diffeq_demo.py +0 -0
  86. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/discovery_pipeline_demo.py +0 -0
  87. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/ensemble_showcase.py +0 -0
  88. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/fft2_demo.py +0 -0
  89. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/graph_demo.py +0 -0
  90. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/hypothesis_custom_generator.py +0 -0
  91. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/hypothesis_demo.py +0 -0
  92. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/hypothesis_tests_demo.py +0 -0
  93. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/hypothesis_with_stats_demo.py +0 -0
  94. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/interpolate_demo.py +0 -0
  95. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/knowledge_demo.py +0 -0
  96. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/linalg_demo.py +0 -0
  97. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/math_utils_demo.py +0 -0
  98. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/ml_and_viz_demo.py +0 -0
  99. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/modeling_demo.py +0 -0
  100. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/montecarlo_demo.py +0 -0
  101. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/nlp_attention_demo.py +0 -0
  102. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/nlp_bpe_demo.py +0 -0
  103. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/nlp_mini_gpt_demo.py +0 -0
  104. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/nlp_viz_demo.py +0 -0
  105. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/numerical_integration_demo.py +0 -0
  106. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/optimization_demo.py +0 -0
  107. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/pca_demo.py +0 -0
  108. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/pde_demo.py +0 -0
  109. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/plot_demo.py +0 -0
  110. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/plotting_notebook.ipynb +0 -0
  111. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/probability_demo.py +0 -0
  112. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/quantum_demo.py +0 -0
  113. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/scientific_demo.py +0 -0
  114. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/signals_demo.py +0 -0
  115. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/stats_demo.py +0 -0
  116. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/examples/tour_of_numerical_methods.ipynb +0 -0
  117. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/index.js +0 -0
  118. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/mkdocs.yml +0 -0
  119. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/npm.test.js +0 -0
  120. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/paper.bib +0 -0
  121. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/paper.md +0 -0
  122. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/requirements-build.lock +0 -0
  123. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/requirements-dev.lock +0 -0
  124. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/requirements.lock +0 -0
  125. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/scripts/check_release_toolchain.py +0 -0
  126. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/scripts/check_version_discipline.py +0 -0
  127. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/scripts/check_version_lockstep.py +0 -0
  128. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/scripts/publish.py +0 -0
  129. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/scripts/verify_cli_install.py +0 -0
  130. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/scripts/verify_cookbook.py +0 -0
  131. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/scripts/verify_ml_reference.py +0 -0
  132. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/scripts/verify_pypi_release.py +0 -0
  133. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/scripts/verify_release_integrity.py +0 -0
  134. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/__init__.py +0 -0
  135. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/__main__.py +0 -0
  136. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/_paths.py +0 -0
  137. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/bayes/__init__.py +0 -0
  138. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/bayes/conjugate.py +0 -0
  139. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/causal.py +0 -0
  140. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/cli/__init__.py +0 -0
  141. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/cli/__main__.py +0 -0
  142. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/cli/_exit_codes.py +0 -0
  143. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/cli/_handlers.py +0 -0
  144. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/cli/_parser.py +0 -0
  145. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/cli/_style.py +0 -0
  146. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/cli/_system_info.py +0 -0
  147. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/core/__init__.py +0 -0
  148. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/core/_numeric.py +0 -0
  149. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/core/models.py +0 -0
  150. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/data_analysis/__init__.py +0 -0
  151. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/data_analysis/dataset.py +0 -0
  152. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/data_analysis/loader.py +0 -0
  153. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/data_analysis/pandas_io.py +0 -0
  154. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/data_analysis/transform.py +0 -0
  155. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/data_analysis/viz.py +0 -0
  156. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/data_io/__init__.py +0 -0
  157. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/data_io/scientific.py +0 -0
  158. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/data_io/streaming.py +0 -0
  159. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/diffeq/__init__.py +0 -0
  160. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/diffeq/_implicit.py +0 -0
  161. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/diffeq/solvers.py +0 -0
  162. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/diffeq/symplectic.py +0 -0
  163. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/fractals/__init__.py +0 -0
  164. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/fractals/sets.py +0 -0
  165. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/genetics/__init__.py +0 -0
  166. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/genetics/sequence.py +0 -0
  167. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/graph/__init__.py +0 -0
  168. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/graph/algorithms.py +0 -0
  169. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/hypothesis/__init__.py +0 -0
  170. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/hypothesis/evaluator.py +0 -0
  171. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/hypothesis/generator.py +0 -0
  172. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/hypothesis/mining.py +0 -0
  173. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/infotheory/__init__.py +0 -0
  174. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/infotheory/measures.py +0 -0
  175. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/interpolate/__init__.py +0 -0
  176. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/knowledge/__init__.py +0 -0
  177. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/knowledge/graph.py +0 -0
  178. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/knowledge/notes.py +0 -0
  179. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/knowledge/retrieval.py +0 -0
  180. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/math_utils/__init__.py +0 -0
  181. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/math_utils/calculus.py +0 -0
  182. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/math_utils/linalg.py +0 -0
  183. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/math_utils/special.py +0 -0
  184. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/math_utils/svd.py +0 -0
  185. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/__init__.py +0 -0
  186. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/boosting.py +0 -0
  187. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/clustering.py +0 -0
  188. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/decomposition.py +0 -0
  189. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/ensemble.py +0 -0
  190. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/linear_models.py +0 -0
  191. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/metrics.py +0 -0
  192. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/model_selection.py +0 -0
  193. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/naive_bayes.py +0 -0
  194. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/neighbors.py +0 -0
  195. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/neural.py +0 -0
  196. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/preprocessing.py +0 -0
  197. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/tree.py +0 -0
  198. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/ml/voting.py +0 -0
  199. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/modeling/__init__.py +0 -0
  200. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/modeling/_base.py +0 -0
  201. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/modeling/_nodes.py +0 -0
  202. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/modeling/expression.py +0 -0
  203. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/modeling/fitting.py +0 -0
  204. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/modeling/model.py +0 -0
  205. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/modeling/solver.py +0 -0
  206. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/montecarlo/__init__.py +0 -0
  207. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/montecarlo/markov.py +0 -0
  208. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/montecarlo/methods.py +0 -0
  209. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/__init__.py +0 -0
  210. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/attention.py +0 -0
  211. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/autograd/__init__.py +0 -0
  212. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/autograd/_grad.py +0 -0
  213. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/autograd/ops.py +0 -0
  214. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/autograd/tensor.py +0 -0
  215. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/bpe.py +0 -0
  216. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/data.py +0 -0
  217. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/embed.py +0 -0
  218. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/layers.py +0 -0
  219. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/model.py +0 -0
  220. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/optim.py +0 -0
  221. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/training.py +0 -0
  222. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/nlp/viz.py +0 -0
  223. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/numerical_integration/__init__.py +0 -0
  224. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/numerical_integration/quadrature.py +0 -0
  225. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/optimization/__init__.py +0 -0
  226. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/optimization/_metaheuristics.py +0 -0
  227. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/optimization/constrained.py +0 -0
  228. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/optimization/minimize.py +0 -0
  229. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/pde/__init__.py +0 -0
  230. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/plot/__init__.py +0 -0
  231. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/plot/_backend.py +0 -0
  232. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/plot/charts.py +0 -0
  233. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/probability/__init__.py +0 -0
  234. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/probability/_advanced.py +0 -0
  235. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/probability/distributions.py +0 -0
  236. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/probability/extra_distributions.py +0 -0
  237. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/provenance/__init__.py +0 -0
  238. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/provenance/manifest.py +0 -0
  239. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/py.typed +0 -0
  240. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/quantum/__init__.py +0 -0
  241. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/quantum/circuit.py +0 -0
  242. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/quantum/multi_qubit.py +0 -0
  243. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/quantum/simulator.py +0 -0
  244. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/scientific/__init__.py +0 -0
  245. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/scientific/constants.py +0 -0
  246. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/scientific/formulas.py +0 -0
  247. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/sensitivity.py +0 -0
  248. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/signals/__init__.py +0 -0
  249. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/signals/filters.py +0 -0
  250. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/signals/processing.py +0 -0
  251. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/signals/stft.py +0 -0
  252. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/signals/wavelet.py +0 -0
  253. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/stats/__init__.py +0 -0
  254. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/stats/_distributions.py +0 -0
  255. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/stats/bootstrap.py +0 -0
  256. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/stats/descriptive.py +0 -0
  257. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/stats/hypothesis_tests.py +0 -0
  258. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/stats/multiple_testing.py +0 -0
  259. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/stats/nonparametric.py +0 -0
  260. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/stats/power.py +0 -0
  261. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/stats/regression.py +0 -0
  262. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/stats/time_series.py +0 -0
  263. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/tools/__init__.py +0 -0
  264. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/tools/adapters.py +0 -0
  265. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/tools/registry.py +0 -0
  266. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/uncertainty/__init__.py +0 -0
  267. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/uncertainty/propagation.py +0 -0
  268. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/units/__init__.py +0 -0
  269. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/units/core.py +0 -0
  270. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/validation/__init__.py +0 -0
  271. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/validation/adequacy.py +0 -0
  272. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/validation/report.py +0 -0
  273. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/wavelets/__init__.py +0 -0
  274. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/wavelets/haar.py +0 -0
  275. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/workflow/__init__.py +0 -0
  276. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/workflow/engine.py +0 -0
  277. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/workflow/gates.py +0 -0
  278. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/workflow/orchestrator.py +0 -0
  279. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/workflow/selection.py +0 -0
  280. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/workflow/tooling.py +0 -0
  281. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/src/cds/workflow/types.py +0 -0
  282. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/__init__.py +0 -0
  283. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/conftest.py +0 -0
  284. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_advanced_fitting.py +0 -0
  285. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_audit_completion_coverage.py +0 -0
  286. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_audit_guard_coverage.py +0 -0
  287. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_audit_hardening.py +0 -0
  288. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_audit_hardening_c1.py +0 -0
  289. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_audit_hardening_c2.py +0 -0
  290. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_audit_hardening_c3.py +0 -0
  291. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_audit_hardening_c4.py +0 -0
  292. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_audit_hardening_coverage.py +0 -0
  293. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_audit_hardening_h1.py +0 -0
  294. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_bayes_v2.py +0 -0
  295. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_benchmarks.py +0 -0
  296. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_bootstrap.py +0 -0
  297. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_causal.py +0 -0
  298. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_cli.py +0 -0
  299. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_cli_color.py +0 -0
  300. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_cli_exit_codes.py +0 -0
  301. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_cli_extended.py +0 -0
  302. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_cli_system_info.py +0 -0
  303. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_codemeta_version_lockstep.py +0 -0
  304. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_constrained_opt.py +0 -0
  305. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_core.py +0 -0
  306. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_data_analysis.py +0 -0
  307. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_data_analysis_lazy_bridge.py +0 -0
  308. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_data_analysis_pandas_io.py +0 -0
  309. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_data_io.py +0 -0
  310. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_data_io_optional_backends.py +0 -0
  311. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_data_io_scientific.py +0 -0
  312. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_dataset.py +0 -0
  313. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_dev_numpy_pin_contract.py +0 -0
  314. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_diffeq.py +0 -0
  315. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_diffeq_implicit.py +0 -0
  316. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_domain_validation.py +0 -0
  317. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_edge_misc_numerical.py +0 -0
  318. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_edge_ml_quantum_linalg.py +0 -0
  319. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_edge_nlp.py +0 -0
  320. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_edge_quantum_evaluator_cli.py +0 -0
  321. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_edge_stats_optimization_signals.py +0 -0
  322. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_extra_distributions.py +0 -0
  323. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_fft2.py +0 -0
  324. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_fitting_bootstrap.py +0 -0
  325. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_fractals.py +0 -0
  326. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_genetics.py +0 -0
  327. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_graph.py +0 -0
  328. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_hardening_privacy_provenance.py +0 -0
  329. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_hypothesis.py +0 -0
  330. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_hypothesis_engine.py +0 -0
  331. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_hypothesis_mining.py +0 -0
  332. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_hypothesis_tests.py +0 -0
  333. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_infotheory.py +0 -0
  334. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_interpolate.py +0 -0
  335. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_knowledge.py +0 -0
  336. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_layering.py +0 -0
  337. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_linalg_extended.py +0 -0
  338. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_linalg_qr_cholesky.py +0 -0
  339. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_markov.py +0 -0
  340. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_math_utils.py +0 -0
  341. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_boosting.py +0 -0
  342. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_clustering.py +0 -0
  343. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_ensemble.py +0 -0
  344. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_knn.py +0 -0
  345. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_linreg.py +0 -0
  346. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_logreg.py +0 -0
  347. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_metrics.py +0 -0
  348. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_model_selection.py +0 -0
  349. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_naive_bayes.py +0 -0
  350. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_pca.py +0 -0
  351. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_preprocessing.py +0 -0
  352. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_tree.py +0 -0
  353. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_viz.py +0 -0
  354. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_ml_voting.py +0 -0
  355. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_modeling.py +0 -0
  356. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_modeling_fit_validation.py +0 -0
  357. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_montecarlo.py +0 -0
  358. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_multi_qubit.py +0 -0
  359. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_nlp_attention.py +0 -0
  360. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_nlp_autograd.py +0 -0
  361. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_nlp_bpe.py +0 -0
  362. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_nlp_embed.py +0 -0
  363. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_nlp_layers.py +0 -0
  364. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_nlp_model.py +0 -0
  365. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_nlp_training.py +0 -0
  366. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_nlp_viz.py +0 -0
  367. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_numerical_integration.py +0 -0
  368. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_numerical_invariants.py +0 -0
  369. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_numerical_oracles.py +0 -0
  370. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_optimization.py +0 -0
  371. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_optimization_metaheuristics.py +0 -0
  372. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_path_confinement.py +0 -0
  373. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_pde.py +0 -0
  374. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_plot_charts.py +0 -0
  375. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_plot_lazy.py +0 -0
  376. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_power.py +0 -0
  377. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_probability.py +0 -0
  378. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_probability_advanced.py +0 -0
  379. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_property_invariants.py +0 -0
  380. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_protocol_placeholders.py +0 -0
  381. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_provenance.py +0 -0
  382. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_provenance_audit_hardening.py +0 -0
  383. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_provenance_claims.py +0 -0
  384. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_public_api.py +0 -0
  385. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_quantum.py +0 -0
  386. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_readme_badges.py +0 -0
  387. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_readme_surface.py +0 -0
  388. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_release_contract.py +0 -0
  389. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_release_toolchain.py +0 -0
  390. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_retrieval.py +0 -0
  391. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_runtime_dependency_graph.py +0 -0
  392. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_scientific.py +0 -0
  393. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_seed_hygiene.py +0 -0
  394. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_selection_audit_hardening.py +0 -0
  395. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_sensitivity.py +0 -0
  396. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_sensitivity_global.py +0 -0
  397. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_signals.py +0 -0
  398. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_signals_filters.py +0 -0
  399. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_special_invariants.py +0 -0
  400. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_special_numerics.py +0 -0
  401. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_statistical_audit.py +0 -0
  402. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_stats.py +0 -0
  403. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_stats_audit_coverage.py +0 -0
  404. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_stats_multiple_testing.py +0 -0
  405. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_stats_nonparametric.py +0 -0
  406. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_stats_time_series.py +0 -0
  407. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_stft.py +0 -0
  408. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_streaming_analytics.py +0 -0
  409. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_svd.py +0 -0
  410. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_symplectic.py +0 -0
  411. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_tool_adapters.py +0 -0
  412. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_tools_registry.py +0 -0
  413. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_uncertainty.py +0 -0
  414. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_units.py +0 -0
  415. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_validation.py +0 -0
  416. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_validation_adequacy.py +0 -0
  417. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_validation_advanced.py +0 -0
  418. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_validation_bounds_nonfinite_regression.py +0 -0
  419. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_validation_drift.py +0 -0
  420. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_validation_nonfinite_thresholds_regression.py +0 -0
  421. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_verify_release_integrity.py +0 -0
  422. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_wavelet.py +0 -0
  423. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_wavelets_v2.py +0 -0
  424. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_workflow.py +0 -0
  425. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_workflow_gates.py +0 -0
  426. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_workflow_orchestrator.py +0 -0
  427. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_workflow_orchestrator_blocked_review.py +0 -0
  428. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_workflow_selection.py +0 -0
  429. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_workflow_selection_coverage.py +0 -0
  430. {scientific_computing_system-2.2.8 → scientific_computing_system-2.2.11}/tests/test_workflow_tooling.py +0 -0
@@ -5,6 +5,30 @@ All notable changes to **scientific-computing-system** will be documented in thi
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [v2.2.11] - 2026-10-17
9
+
10
+ ### Scientific validation CI and overflow resilience
11
+
12
+ - Restore the 100% branch-coverage contract for numeric drift and residual overflow detection through explicit extreme-input regressions and removal of unreachable redundant checks.
13
+ - Stabilize OOD reference means and standard deviations for large, finite observations; prevent NaN-derived false negatives and reject unrepresentable centered differences.
14
+ - Keep ordinary OOD thresholds, constant-reference semantics, and normal sample behavior unchanged.
15
+
16
+ ## [v2.2.10] - 2026-10-17
17
+
18
+ ### Fail-closed scientific moment diagnostics
19
+
20
+ - Refuse distribution-drift PASS when arithmetic overflow makes finite-input sample means, variances, or standardized shifts non-finite.
21
+ - Refuse residual-diagnostic PASS (or uncaught overflow) when derived residual means, centered differences, squares, or dependence statistics are not representable.
22
+ - Preserve explicit warnings for well-defined zero-variance mismatches; add focused regressions for extreme and ordinary numerical inputs.
23
+
24
+ ## [v2.2.9] - 2026-10-17
25
+
26
+ ### Scientific numerical tolerance overflow protection
27
+
28
+ - Reject derived infinite tolerances for independent-method agreement and conservation checks instead of silently returning PASS.
29
+ - Reject expanded OOD bounds that overflow to infinity when user-provided margins are finite.
30
+ - Add regression tests for overflow conditions and ordinary finite thresholds.
31
+
8
32
  ## [v2.2.8] - 2026-10-17
9
33
 
10
34
  ### Scientific validation fail-closed thresholds
@@ -5,7 +5,7 @@ title: "scientific-computing-system"
5
5
  # Keep `version` in lockstep with pyproject.toml [project].version and
6
6
  # src/cds/_version.py. scripts/check_version_discipline.py and
7
7
  # scripts/check_version_lockstep.py enforce this.
8
- version: 2.2.8
8
+ version: 2.2.11
9
9
  authors:
10
10
  - name: "Furox-Art"
11
11
  email: "furkanarkn1451@gmail.com"
@@ -50,5 +50,5 @@ preferred-citation:
50
50
  authors:
51
51
  - name: "Furox-Art"
52
52
  year: 2026
53
- version: 2.2.8
53
+ version: 2.2.11
54
54
  url: "https://github.com/Furox-Art/scientific-computing-system"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: scientific-computing-system
3
- Version: 2.2.8
3
+ Version: 2.2.11
4
4
  Summary: A pure-Python computational science platform for numerical methods, modeling, validation, uncertainty, scientific workflows, dimensional analysis, and optional research-data backends. Zero runtime dependencies.
5
5
  Project-URL: Homepage, https://github.com/Furox-Art/scientific-computing-system
6
6
  Project-URL: Repository, https://github.com/Furox-Art/scientific-computing-system
@@ -2,7 +2,7 @@
2
2
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
3
3
  "@type": "SoftwareSourceCode",
4
4
  "name": "scientific-computing-system",
5
- "version": "2.2.8",
5
+ "version": "2.2.11",
6
6
  "description": "Pure-Python computational science platform for numerical methods, modeling, validation, uncertainty, and scientific workflows. Zero runtime dependencies. This is the front door; scientific-computing-system-2.0 is the NumPy build of the same work.",
7
7
  "license": "https://spdx.org/licenses/MIT",
8
8
  "codeRepository": "https://github.com/Furox-Art/scientific-computing-system",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scientific-computing-system",
3
- "version": "2.2.8",
3
+ "version": "2.2.11",
4
4
  "description": "Scientific Computing System launcher - a thin Node wrapper that forwards to the pure-Python `cds` CLI. This npm package ships NO Python code: it requires the Python distribution to be installed (`pip install scientific-computing-system`), otherwise `scs` exits non-zero with an actionable message.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -2,7 +2,7 @@
2
2
  # Distribution name. Formerly published as "cognitive-discovery-system";
3
3
  # the import name stays `cds`. Keep the old PyPI project alive as an alias.
4
4
  name = "scientific-computing-system"
5
- version = "2.2.8"
5
+ version = "2.2.11"
6
6
  description = "A pure-Python computational science platform for numerical methods, modeling, validation, uncertainty, scientific workflows, dimensional analysis, and optional research-data backends. Zero runtime dependencies."
7
7
  readme = "README.md"
8
8
  license = "MIT"
@@ -5,5 +5,5 @@ from __future__ import annotations
5
5
 
6
6
  __all__ = ["__version__", "version", "__version_tuple__", "version_tuple"]
7
7
 
8
- __version__ = version = "2.2.8"
9
- __version_tuple__ = version_tuple = (2, 2, 8)
8
+ __version__ = version = "2.2.11"
9
+ __version_tuple__ = version_tuple = (2, 2, 11)
@@ -47,6 +47,8 @@ def cross_method_agreement(
47
47
  )
48
48
  delta = abs(primary - secondary)
49
49
  tolerance = atol + rtol * max(abs(primary), abs(secondary))
50
+ if not math.isfinite(tolerance):
51
+ raise ValueError("derived cross-method tolerance must be finite")
50
52
  status = CheckStatus.PASS if delta <= tolerance else CheckStatus.FAIL
51
53
  message = (
52
54
  "independent methods agree"
@@ -148,6 +150,8 @@ def check_conservation(
148
150
  )
149
151
  delta = abs(after - before)
150
152
  tolerance = atol + rtol * max(abs(before), abs(after))
153
+ if not math.isfinite(tolerance):
154
+ raise ValueError("derived conservation tolerance must be finite")
151
155
  status = CheckStatus.PASS if delta <= tolerance else CheckStatus.FAIL
152
156
  message = (
153
157
  "conservation law satisfied" if status is CheckStatus.PASS else "conservation law violated"
@@ -288,7 +292,10 @@ def check_ood_ranges(
288
292
  for low, high in zip(lower, upper):
289
293
  scale = max(abs(low), abs(high), high - low, 1.0)
290
294
  margin = margin_fraction * scale
291
- expanded.append((low - margin, high + margin))
295
+ expanded_low, expanded_high = low - margin, high + margin
296
+ if not (math.isfinite(expanded_low) and math.isfinite(expanded_high)):
297
+ raise ValueError("derived OOD margins must be finite")
298
+ expanded.append((expanded_low, expanded_high))
292
299
 
293
300
  outside = [
294
301
  row_index
@@ -341,16 +348,31 @@ def check_distribution_drift(
341
348
  variance = sum((value - mean) ** 2 for value in values) / (len(values) - 1)
342
349
  return mean, variance
343
350
 
344
- ref_mean, ref_var = moments(reference)
345
- cur_mean, cur_var = moments(current)
346
- scale = max(math.sqrt(ref_var), 1e-12)
347
- mean_shift = abs(cur_mean - ref_mean) / scale
348
- if ref_var <= 1e-24 and cur_var <= 1e-24:
349
- variance_ratio = 1.0
350
- elif min(ref_var, cur_var) <= 1e-24:
351
- variance_ratio = math.inf
352
- else:
353
- variance_ratio = max(ref_var, cur_var) / min(ref_var, cur_var)
351
+ try:
352
+ ref_mean, ref_var = moments(reference)
353
+ cur_mean, cur_var = moments(current)
354
+ if not all(math.isfinite(x) for x in (ref_mean, ref_var, cur_mean, cur_var)):
355
+ raise ArithmeticError("derived moments are not finite")
356
+ scale = max(math.sqrt(ref_var), 1e-12)
357
+ mean_shift = abs(cur_mean - ref_mean) / scale
358
+ if not math.isfinite(mean_shift):
359
+ raise ArithmeticError("standardized mean shift is not finite")
360
+ if ref_var <= 1e-24 and cur_var <= 1e-24:
361
+ variance_ratio = 1.0
362
+ elif min(ref_var, cur_var) <= 1e-24:
363
+ # A genuine zero-variance mismatch is a valid drift warning.
364
+ variance_ratio = math.inf
365
+ else:
366
+ variance_ratio = max(ref_var, cur_var) / min(ref_var, cur_var)
367
+ if not math.isfinite(variance_ratio):
368
+ raise ArithmeticError("variance ratio overflow")
369
+ except ArithmeticError:
370
+ return ValidationCheck(
371
+ name=name,
372
+ status=CheckStatus.FAIL,
373
+ message="distribution drift cannot be evaluated reliably: numerical overflow",
374
+ details={"reason": "non-finite derived moments or statistics"},
375
+ )
354
376
  drifted = mean_shift > max_standardized_mean_shift or variance_ratio > max_variance_ratio
355
377
  return ValidationCheck(
356
378
  name=name,
@@ -390,36 +412,51 @@ def check_residual_diagnostics(
390
412
  if finite.status is CheckStatus.FAIL:
391
413
  return finite
392
414
 
393
- n = len(residuals)
394
- mean = sum(residuals) / n
395
- centered = [value - mean for value in residuals]
396
- variance = sum(value * value for value in centered) / (n - 1)
397
- standard_error = math.sqrt(variance / n) if variance > 0 else 0.0
398
- bias_z = abs(mean) / standard_error if standard_error > 0 else (0.0 if mean == 0 else math.inf)
399
-
400
- denominator = sum(value * value for value in centered)
401
- lag1 = (
402
- sum(centered[index] * centered[index - 1] for index in range(1, n)) / denominator
403
- if denominator > 0
404
- else 0.0
405
- )
406
-
407
- midpoint = n // 2
408
- first = residuals[:midpoint]
409
- second = residuals[midpoint:]
410
-
411
- def sample_variance(values: Sequence[float]) -> float:
412
- local_mean = sum(values) / len(values)
413
- return sum((value - local_mean) ** 2 for value in values) / max(1, len(values) - 1)
415
+ try:
416
+ n = len(residuals)
417
+ mean = sum(residuals) / n
418
+ centered = [value - mean for value in residuals]
419
+ if not math.isfinite(mean) or any(not math.isfinite(x) for x in centered):
420
+ raise ArithmeticError("derived residual mean or centered values are not finite")
421
+ variance = sum(value * value for value in centered) / (n - 1)
422
+ standard_error = math.sqrt(variance / n) if variance > 0 else 0.0
423
+ bias_z = (
424
+ abs(mean) / standard_error if standard_error > 0 else (0.0 if mean == 0 else math.inf)
425
+ )
414
426
 
415
- first_var = sample_variance(first)
416
- second_var = sample_variance(second)
417
- if first_var <= 1e-24 and second_var <= 1e-24:
418
- variance_ratio = 1.0
419
- elif min(first_var, second_var) <= 1e-24:
420
- variance_ratio = math.inf
421
- else:
422
- variance_ratio = max(first_var, second_var) / min(first_var, second_var)
427
+ denominator = sum(value * value for value in centered)
428
+ lag1 = (
429
+ sum(centered[index] * centered[index - 1] for index in range(1, n)) / denominator
430
+ if denominator > 0
431
+ else 0.0
432
+ )
433
+ if not all(math.isfinite(x) for x in (variance, standard_error, denominator, lag1)):
434
+ raise ArithmeticError("derived residual variance or dependence is not finite")
435
+ midpoint = n // 2
436
+ first = residuals[:midpoint]
437
+ second = residuals[midpoint:]
438
+
439
+ def sample_variance(values: Sequence[float]) -> float:
440
+ local_mean = sum(values) / len(values)
441
+ return sum((value - local_mean) ** 2 for value in values) / max(1, len(values) - 1)
442
+
443
+ first_var = sample_variance(first)
444
+ second_var = sample_variance(second)
445
+ if first_var <= 1e-24 and second_var <= 1e-24:
446
+ variance_ratio = 1.0
447
+ elif min(first_var, second_var) <= 1e-24:
448
+ variance_ratio = math.inf
449
+ else:
450
+ variance_ratio = max(first_var, second_var) / min(first_var, second_var)
451
+ if not math.isfinite(variance_ratio):
452
+ raise ArithmeticError("segment variance ratio overflow")
453
+ except ArithmeticError:
454
+ return ValidationCheck(
455
+ name=name,
456
+ status=CheckStatus.FAIL,
457
+ message="residual diagnostics cannot be evaluated reliably: numerical overflow",
458
+ details={"reason": "non-finite derived residual statistics"},
459
+ )
423
460
 
424
461
  suspicious = (
425
462
  bias_z > max_bias_z or abs(lag1) > max_abs_lag1 or variance_ratio > max_variance_ratio
@@ -151,11 +151,25 @@ def screen_ood(
151
151
  if len(current[0]) != width:
152
152
  raise ValueError("reference and observations must have equal feature count")
153
153
 
154
- means = tuple(sum(row[index] for row in baseline) / len(baseline) for index in range(width))
155
- deviations = tuple(
156
- math.sqrt(sum((row[index] - means[index]) ** 2 for row in baseline) / len(baseline))
157
- for index in range(width)
154
+ # Accumulate divided terms instead of overflowing before division.
155
+ # Compute the population RMS using scaling, so finite 1e308 values
156
+ # do not produce spurious NaN means or OverflowError during squaring.
157
+ means = tuple(
158
+ math.fsum(row[index] / len(baseline) for row in baseline) for index in range(width)
158
159
  )
160
+ deviations_list: list[float] = []
161
+ for index, mean in enumerate(means):
162
+ offsets = [row[index] - mean for row in baseline]
163
+ if any(not math.isfinite(offset) for offset in offsets):
164
+ raise ValueError("reference deviations overflowed")
165
+ largest = max(abs(offset) for offset in offsets)
166
+ if largest == 0.0:
167
+ deviations_list.append(0.0)
168
+ else:
169
+ scaled = math.fsum((offset / largest) ** 2 for offset in offsets)
170
+ deviation = largest * math.sqrt(scaled / len(baseline))
171
+ deviations_list.append(deviation)
172
+ deviations = tuple(deviations_list)
159
173
 
160
174
  screened: list[OODObservation] = []
161
175
  for row_index, row in enumerate(current):
@@ -0,0 +1,58 @@
1
+ """Validation must not certify overflowed scientific diagnostics as PASS."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import math
6
+
7
+ from cds.validation import CheckStatus, check_distribution_drift, check_residual_diagnostics
8
+
9
+
10
+ def test_drift_rejects_overflowed_finite_means() -> None:
11
+ check = check_distribution_drift([1e308, 1e308], [-1e308, -1e308])
12
+ assert check.status is CheckStatus.FAIL
13
+ assert "numerical overflow" in check.message
14
+ assert "standardized_mean_shift" not in check.details
15
+
16
+
17
+ def test_drift_rejects_overflowed_finite_variances() -> None:
18
+ check = check_distribution_drift([1e308, -1e308], [1e308, -1e308])
19
+ assert check.status is CheckStatus.FAIL
20
+ assert "numerical overflow" in check.message
21
+
22
+
23
+ def test_drift_keeps_well_defined_zero_variance_mismatch_as_warning() -> None:
24
+ check = check_distribution_drift([1.0, 1.0], [1.0, 2.0])
25
+ assert check.status is CheckStatus.WARNING
26
+ assert check.details["variance_ratio"] == math.inf
27
+
28
+
29
+ def test_drift_keeps_identical_finite_sample_as_pass() -> None:
30
+ check = check_distribution_drift([1.0, 2.0, 3.0], [1.0, 2.0, 3.0])
31
+ assert check.status is CheckStatus.PASS
32
+
33
+
34
+ def test_residuals_reject_overflowed_finite_means() -> None:
35
+ check = check_residual_diagnostics([1e308] * 4)
36
+ assert check.status is CheckStatus.FAIL
37
+ assert "numerical overflow" in check.message
38
+
39
+
40
+ def test_residuals_reject_overflowed_finite_squares_without_raising() -> None:
41
+ check = check_residual_diagnostics([1e308, -1e308, 1e308, -1e308])
42
+ assert check.status is CheckStatus.FAIL
43
+ assert "numerical overflow" in check.message
44
+
45
+
46
+ def test_residuals_reject_overflowed_variances() -> None:
47
+ check = check_residual_diagnostics([1e154, -1e154, 1e154, -1e154])
48
+ assert check.status is CheckStatus.FAIL
49
+
50
+
51
+ def test_residuals_keep_ordinary_centered_sample_as_pass() -> None:
52
+ check = check_residual_diagnostics([-1.0, 0.5, 1.0, -0.5, 0.5, -1.0, -0.5, 1.0])
53
+ assert check.status is CheckStatus.PASS
54
+
55
+
56
+ def test_nonfinite_raw_samples_still_fail() -> None:
57
+ assert check_distribution_drift([0.0, float("inf")], [1.0, 2.0]).status is CheckStatus.FAIL
58
+ assert check_residual_diagnostics([0.0, float("nan"), 0.0, 0.0]).status is CheckStatus.FAIL
@@ -0,0 +1,51 @@
1
+ """Never turn finite user tolerances into false-positive scientific passes."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import math
6
+ from collections.abc import Callable
7
+
8
+ import pytest
9
+
10
+ from cds.validation.checks import check_conservation, check_ood_ranges, cross_method_agreement
11
+ from cds.validation.report import CheckStatus, ValidationCheck
12
+
13
+
14
+ @pytest.mark.parametrize(
15
+ ("check", "message"),
16
+ [
17
+ (cross_method_agreement, "derived cross-method tolerance"),
18
+ (check_conservation, "derived conservation tolerance"),
19
+ ],
20
+ )
21
+ def test_finite_user_tolerance_must_not_overflow_to_false_pass(
22
+ check: Callable[..., ValidationCheck], message: str
23
+ ) -> None:
24
+ with pytest.raises(ValueError, match=message):
25
+ check(1e200, -1e200, rtol=1e308)
26
+
27
+
28
+ @pytest.mark.parametrize("margin_fraction", [1e308, 9e307])
29
+ def test_ood_finite_margin_overflow_never_masks_extreme_outliers(
30
+ margin_fraction: float,
31
+ ) -> None:
32
+ with pytest.raises(ValueError, match="derived OOD margins"):
33
+ check_ood_ranges([[0.0], [2.0]], [[1e300]], margin_fraction=margin_fraction)
34
+
35
+
36
+ def test_regular_tolerances_still_have_expected_outcomes() -> None:
37
+ assert cross_method_agreement(1.0, 1.0 + 1e-10).status is CheckStatus.PASS
38
+ assert cross_method_agreement(1.0, 2.0).status is CheckStatus.FAIL
39
+ assert check_conservation(3.0, 3.0).status is CheckStatus.PASS
40
+ assert check_conservation(3.0, 4.0).status is CheckStatus.FAIL
41
+ assert check_ood_ranges([[0.0], [2.0]], [[100.0]]).status is CheckStatus.FAIL
42
+
43
+
44
+ def test_extreme_finite_outlier_is_not_certified_by_a_normal_margin() -> None:
45
+ result = check_ood_ranges([[0.0], [2.0]], [[1e300]], margin_fraction=0.1)
46
+ assert result.status is CheckStatus.FAIL
47
+
48
+
49
+ def test_positive_infinite_margin_is_already_rejected() -> None:
50
+ with pytest.raises(ValueError, match="margin_fraction"):
51
+ check_ood_ranges([[0.0], [2.0]], [[1e300]], margin_fraction=math.inf)
@@ -0,0 +1,61 @@
1
+ """Reference tests for extreme finite inputs and scientific CI branches."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import math
6
+
7
+ import pytest
8
+
9
+ from cds.validation import (
10
+ CheckStatus,
11
+ check_distribution_drift,
12
+ check_residual_diagnostics,
13
+ screen_ood,
14
+ )
15
+
16
+
17
+ def test_constant_extreme_reference_does_not_certify_different_observation() -> None:
18
+ report = screen_ood([[1e308], [1e308]], [[0.0], [1e308]])
19
+ assert report.observations[0].out_of_distribution
20
+ assert report.observations[0].max_abs_z == math.inf
21
+ assert report.observations[1].max_abs_z == 0.0
22
+ assert not report.observations[1].out_of_distribution
23
+
24
+
25
+ def test_large_balanced_reference_has_finite_ood_standard_deviation() -> None:
26
+ report = screen_ood([[1e308], [-1e308]], [[1e308]], z_threshold=4.0)
27
+ assert report.observations[0].max_abs_z == pytest.approx(1.0)
28
+ assert not report.any_ood
29
+
30
+
31
+ def test_extreme_mixed_reference_refuses_unrepresentable_centered_values() -> None:
32
+ reference = [[1e308]] * 9 + [[-1e308]]
33
+ with pytest.raises(ValueError, match="reference deviations overflowed"):
34
+ screen_ood(reference, [[0.0]])
35
+
36
+
37
+ def test_ordinary_multifeature_ood_detects_shift() -> None:
38
+ report = screen_ood(
39
+ [[-1.0, 4.0], [1.0, 4.0], [0.0, 4.0]],
40
+ [[0.0, 4.0], [5.0, 4.0], [0.0, 5.0]],
41
+ z_threshold=3.0,
42
+ )
43
+ assert [row.out_of_distribution for row in report.observations] == [False, True, True]
44
+
45
+
46
+ def test_drift_extreme_mean_shift_overflow_is_fail_not_pass() -> None:
47
+ report = check_distribution_drift([1e307] * 2, [-1e307] * 2)
48
+ assert report.status is CheckStatus.FAIL
49
+ assert "overflow" in report.message
50
+
51
+
52
+ def test_drift_extreme_variance_ratio_overflow_is_fail_not_pass() -> None:
53
+ report = check_distribution_drift([-1e-11, 1e-11], [-1e153, 1e153])
54
+ assert report.status is CheckStatus.FAIL
55
+ assert "overflow" in report.message
56
+
57
+
58
+ def test_residual_segment_variance_ratio_overflow_is_fail_not_pass() -> None:
59
+ report = check_residual_diagnostics([1e-10, -1e-10, 1e150, -1e150])
60
+ assert report.status is CheckStatus.FAIL
61
+ assert "overflow" in report.message