solarwindpy 0.0.1.dev0__py3-none-any.whl โ†’ 0.1.0__py3-none-any.whl

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.

Potentially problematic release.


This version of solarwindpy might be problematic. Click here for more details.

Files changed (412) hide show
  1. plans/.velocity/metrics.json +96 -0
  2. plans/0-overview-template.md +268 -0
  3. plans/N-phase-template.md +106 -0
  4. plans/PLAN_AUDIT_SUMMARY.md +173 -0
  5. plans/TEMPLATE-USAGE-GUIDE.md +198 -0
  6. plans/__init__.py +1 -0
  7. plans/abandoned/compaction-agent-system/0-Overview.md +123 -0
  8. plans/abandoned/compaction-agent-system/agents-index-update-plan.md +109 -0
  9. plans/abandoned/compaction-agent-system/compacted_state.md +85 -0
  10. plans/abandoned/compaction-agent-system/implementation-plan.md +107 -0
  11. plans/abandoned/compaction-agent-system/system-validation-report.md +159 -0
  12. plans/abandoned/compaction-agent-system/usage-guide.md +210 -0
  13. plans/abandoned/hook-system-enhancement/0-Overview.md +214 -0
  14. plans/abandoned/hook-system-enhancement/1-Phase1-Core-Infrastructure.md +313 -0
  15. plans/abandoned/hook-system-enhancement/2-Phase2-Intelligent-Testing.md +385 -0
  16. plans/abandoned/hook-system-enhancement/3-Phase3-Physics-Validation.md +444 -0
  17. plans/abandoned/hook-system-enhancement/4-Phase4-Performance-Monitoring.md +458 -0
  18. plans/abandoned/hook-system-enhancement/5-Phase5-Developer-Experience.md +532 -0
  19. plans/abandoned/hook-system-enhancement/6-Implementation-Timeline.md +274 -0
  20. plans/abandoned/hook-system-enhancement/7-Risk-Management.md +376 -0
  21. plans/abandoned/hook-system-enhancement/8-Testing-Strategy.md +579 -0
  22. plans/abandoned/readthedocs-automation/0-Overview.md +247 -0
  23. plans/abandoned/readthedocs-automation/1-Emergency-Documentation-Fixes.md +270 -0
  24. plans/abandoned/readthedocs-automation/2-Template-System-Enhancement.md +811 -0
  25. plans/abandoned/readthedocs-automation/3-Quality-Audit-ReadTheDocs-Integration.md +844 -0
  26. plans/abandoned/readthedocs-automation/4-Plan-Consolidation-Cleanup.md +632 -0
  27. plans/abandoned/readthedocs-automation/9-Closeout.md +207 -0
  28. plans/abandoned/readthedocs-automation/ABANDONMENT_REASON.md +72 -0
  29. plans/cicd-architecture-redesign/0-Overview.md +193 -0
  30. plans/cicd-architecture-redesign/1-Workflow-Creation.md +103 -0
  31. plans/cicd-architecture-redesign/2-Version-Detection.md +123 -0
  32. plans/cicd-architecture-redesign/3-Deployment-Gates.md +169 -0
  33. plans/cicd-architecture-redesign/4-RC-Testing.md +194 -0
  34. plans/cicd-architecture-redesign/5-TestPyPI-Validation.md +264 -0
  35. plans/cicd-architecture-redesign/6-Production-Release.md +263 -0
  36. plans/cicd-architecture-redesign/7-Cleanup.md +243 -0
  37. plans/cicd-architecture-redesign/8-Documentation.md +285 -0
  38. plans/cicd-architecture-redesign/Closeout.md +225 -0
  39. plans/closeout-template.md +259 -0
  40. plans/completed/circular-import-audit/0-Overview.md +152 -0
  41. plans/completed/circular-import-audit/1-Static-Dependency-Analysis.md +62 -0
  42. plans/completed/circular-import-audit/2-Dynamic-Import-Testing.md +56 -0
  43. plans/completed/circular-import-audit/3-Performance-Impact-Assessment.md +56 -0
  44. plans/completed/circular-import-audit/4-Issue-Remediation.md +78 -0
  45. plans/completed/circular-import-audit/5-Preventive-Infrastructure.md +89 -0
  46. plans/completed/claude-settings-ecosystem-alignment/0-Overview.md +162 -0
  47. plans/completed/claude-settings-ecosystem-alignment/1-Security-Foundation.md +148 -0
  48. plans/completed/claude-settings-ecosystem-alignment/2-Hook-Integration.md +158 -0
  49. plans/completed/claude-settings-ecosystem-alignment/3-Agent-System-Integration.md +177 -0
  50. plans/completed/claude-settings-ecosystem-alignment/4-Enhanced-Workflow-Automation.md +159 -0
  51. plans/completed/claude-settings-ecosystem-alignment/5-Validation-Monitoring.md +181 -0
  52. plans/completed/claude-settings-ecosystem-alignment/compacted_session_state.md +290 -0
  53. plans/completed/combined_plan_with_checklist_documentation/1-Overview-and-Goals.md +51 -0
  54. plans/completed/combined_plan_with_checklist_documentation/2-Toolchain-and-Hosting.md +69 -0
  55. plans/completed/combined_plan_with_checklist_documentation/3-Repository-Structure.md +61 -0
  56. plans/completed/combined_plan_with_checklist_documentation/4-Configuration-and-Standards.md +70 -0
  57. plans/completed/combined_plan_with_checklist_documentation/5-Documentation-Content.md +62 -0
  58. plans/completed/combined_plan_with_checklist_documentation/6-CI-CD-and-Validation.md +58 -0
  59. plans/completed/combined_plan_with_checklist_documentation/7-Maintenance.md +55 -0
  60. plans/completed/combined_test_plan_with_checklist_fitfunctions/0-Overview.md +135 -0
  61. plans/completed/combined_test_plan_with_checklist_fitfunctions/1-Common-fixtures.md +59 -0
  62. plans/completed/combined_test_plan_with_checklist_fitfunctions/10-power_laws.md +56 -0
  63. plans/completed/combined_test_plan_with_checklist_fitfunctions/2-core.py-FitFunction.md +118 -0
  64. plans/completed/combined_test_plan_with_checklist_fitfunctions/3-gaussians.py-Gaussian-GaussianNormalized-GaussianLn.md +69 -0
  65. plans/completed/combined_test_plan_with_checklist_fitfunctions/4-trend_fits.py-TrendFit.md +99 -0
  66. plans/completed/combined_test_plan_with_checklist_fitfunctions/5-plots.py-FFPlot.md +98 -0
  67. plans/completed/combined_test_plan_with_checklist_fitfunctions/6-tex_info.py-TeXinfo.md +79 -0
  68. plans/completed/combined_test_plan_with_checklist_fitfunctions/7-Justification.md +49 -0
  69. plans/completed/combined_test_plan_with_checklist_fitfunctions/8-exponentials.md +64 -0
  70. plans/completed/combined_test_plan_with_checklist_fitfunctions/9-lines.md +58 -0
  71. plans/completed/combined_test_plan_with_checklist_plotting/0-Overview.md +142 -0
  72. plans/completed/combined_test_plan_with_checklist_plotting/1-base.py.md +90 -0
  73. plans/completed/combined_test_plan_with_checklist_plotting/10-labels-special.py.md +102 -0
  74. plans/completed/combined_test_plan_with_checklist_plotting/11-labels-chemistry.py.md +212 -0
  75. plans/completed/combined_test_plan_with_checklist_plotting/12-labels-composition.py.md +242 -0
  76. plans/completed/combined_test_plan_with_checklist_plotting/13-labels-datetime.py.md +247 -0
  77. plans/completed/combined_test_plan_with_checklist_plotting/14-labels-elemental_abundance.py.md +274 -0
  78. plans/completed/combined_test_plan_with_checklist_plotting/15-visual-validation.md +256 -0
  79. plans/completed/combined_test_plan_with_checklist_plotting/16-integration-testing.md +266 -0
  80. plans/completed/combined_test_plan_with_checklist_plotting/17-performance-benchmarks.md +267 -0
  81. plans/completed/combined_test_plan_with_checklist_plotting/18-Fixtures-and-Utilities.md +86 -0
  82. plans/completed/combined_test_plan_with_checklist_plotting/2-agg_plot.py.md +90 -0
  83. plans/completed/combined_test_plan_with_checklist_plotting/3-histograms.py.md +201 -0
  84. plans/completed/combined_test_plan_with_checklist_plotting/4-scatter.py.md +167 -0
  85. plans/completed/combined_test_plan_with_checklist_plotting/5-spiral.py.md +216 -0
  86. plans/completed/combined_test_plan_with_checklist_plotting/6-orbits.py.md +108 -0
  87. plans/completed/combined_test_plan_with_checklist_plotting/7-tools.py.md +86 -0
  88. plans/completed/combined_test_plan_with_checklist_plotting/8-select_data_from_figure.py.md +97 -0
  89. plans/completed/combined_test_plan_with_checklist_plotting/9-labels-base.py.md +88 -0
  90. plans/completed/combined_test_plan_with_checklist_solar_activity/.gitkeep +0 -0
  91. plans/completed/combined_test_plan_with_checklist_solar_activity/0-Overview.md +170 -0
  92. plans/completed/combined_test_plan_with_checklist_solar_activity/1-Package-Entry-Point-__init__.py.md +121 -0
  93. plans/completed/combined_test_plan_with_checklist_solar_activity/2-Core-Base-Classes-base.py.md +142 -0
  94. plans/completed/combined_test_plan_with_checklist_solar_activity/3-Plotting-Helpers-plots.py.md +123 -0
  95. plans/completed/combined_test_plan_with_checklist_solar_activity/4-LISIRD-Sub-package.md +119 -0
  96. plans/completed/combined_test_plan_with_checklist_solar_activity/5-Extrema-Calculator.md +103 -0
  97. plans/completed/combined_test_plan_with_checklist_solar_activity/6-Sunspot-Number-Sub-package.md +163 -0
  98. plans/completed/combined_test_plan_with_checklist_solar_activity/7-Sunspot-Number-Init.py.md +217 -0
  99. plans/completed/combined_test_plan_with_checklist_solar_activity/compacted_state.md +52 -0
  100. plans/completed/compaction-agent-modernization/0-Overview.md +156 -0
  101. plans/completed/compaction-agent-modernization/1-Architecture-Audit-Gap-Analysis.md +132 -0
  102. plans/completed/compaction-agent-modernization/2-Token-Baseline-Recalibration.md +153 -0
  103. plans/completed/compaction-agent-modernization/3-Agent-Reference-Updates.md +184 -0
  104. plans/completed/compaction-agent-modernization/4-Compression-Algorithm-Modernization.md +238 -0
  105. plans/completed/compaction-agent-modernization/5-Workflow-Integration-Streamlining.md +252 -0
  106. plans/completed/compaction-agent-modernization/6-Template-Structure-Optimization.md +240 -0
  107. plans/completed/compaction-agent-modernization/7-Integration-Testing-Validation.md +292 -0
  108. plans/completed/compaction-hook-enhancement/0-Overview.md +150 -0
  109. plans/completed/compaction-hook-enhancement/1-Token-Estimation-Enhancement.md +179 -0
  110. plans/completed/compaction-hook-enhancement/2-Compression-Intelligence.md +294 -0
  111. plans/completed/compaction-hook-enhancement/3-Git-Integration-Metadata.md +310 -0
  112. plans/completed/compaction-hook-enhancement/4-Session-Continuity-Features.md +358 -0
  113. plans/completed/compaction-hook-enhancement/5-Testing-Strategy.md +404 -0
  114. plans/completed/compaction-hook-enhancement/6-Integration-Roadmap.md +319 -0
  115. plans/completed/compaction-hook-enhancement/compacted_state.md +142 -0
  116. plans/completed/docstring-audit-enhancement/0-Overview.md +274 -0
  117. plans/completed/docstring-audit-enhancement/1-Infrastructure-Setup-and-Validation-Tools.md +206 -0
  118. plans/completed/docstring-audit-enhancement/2-Core-Physics-Modules-Enhancement.md +237 -0
  119. plans/completed/docstring-audit-enhancement/3-Fitfunctions-Mathematical-Modules-Enhancement.md +188 -0
  120. plans/completed/docstring-audit-enhancement/4-Plotting-Visualization-Modules-Enhancement.md +243 -0
  121. plans/completed/docstring-audit-enhancement/5-Specialized-Modules-Enhancement.md +216 -0
  122. plans/completed/docstring-audit-enhancement/6-Validation-and-Integration.md +216 -0
  123. plans/completed/fitfunctions-testing-implementation/0-Overview.md +130 -0
  124. plans/completed/fitfunctions-testing-implementation/1-Test-Infrastructure-Setup.md +79 -0
  125. plans/completed/fitfunctions-testing-implementation/2-Common-Fixtures-Test-Utilities.md +104 -0
  126. plans/completed/fitfunctions-testing-implementation/3-Core-FitFunction-Testing.md +168 -0
  127. plans/completed/fitfunctions-testing-implementation/4-Specialized-Function-Classes.md +210 -0
  128. plans/completed/fitfunctions-testing-implementation/5-Advanced-Classes-Testing.md +214 -0
  129. plans/completed/fitfunctions-testing-implementation/6-Plotting-Integration-Testing.md +231 -0
  130. plans/completed/fitfunctions-testing-implementation/7-Extended-Coverage-BONUS.md +184 -0
  131. plans/completed/numpy-docstring-conversion-plan/numpy-docstring-conversion-plan.md +118 -0
  132. plans/completed/pr-review-remediation/0-Overview.md +138 -0
  133. plans/completed/pr-review-remediation/1-Critical-Safety-Improvements.md +179 -0
  134. plans/completed/pr-review-remediation/2-Smart-Timeouts-Validation.md +399 -0
  135. plans/completed/pr-review-remediation/3-Enhanced-GitHub-Integration.md +258 -0
  136. plans/completed/pr-review-remediation/compacted_state.md +66 -0
  137. plans/completed/python-310-migration/0-Overview.md +390 -0
  138. plans/completed/python-310-migration/1-Planning-Setup.md +164 -0
  139. plans/completed/python-310-migration/2-Implementation.md +256 -0
  140. plans/completed/python-310-migration/3-Testing-Validation.md +335 -0
  141. plans/completed/python-310-migration/4-Documentation-Release.md +274 -0
  142. plans/completed/python-310-migration/5-Closeout.md +252 -0
  143. plans/completed/requirements-management-consolidation/0-Overview.md +118 -0
  144. plans/completed/requirements-management-consolidation/1-Documentation-Validation-Environment-Setup.md +116 -0
  145. plans/completed/requirements-management-consolidation/2-Requirements-Consolidation.md +161 -0
  146. plans/completed/requirements-management-consolidation/3-Workflow-Automation-Final-Integration.md +196 -0
  147. plans/completed/single-ecosystem-plan-implementation/0-Overview.md +83 -0
  148. plans/completed/single-ecosystem-plan-implementation/1-Plan-Preservation-Session-Management.md +38 -0
  149. plans/completed/single-ecosystem-plan-implementation/2-File-Structure-Optimization.md +43 -0
  150. plans/completed/single-ecosystem-plan-implementation/3-Plan-Migration-Archive-Setup.md +82 -0
  151. plans/completed/single-ecosystem-plan-implementation/4-Agent-System-Transformation.md +108 -0
  152. plans/completed/single-ecosystem-plan-implementation/5-Template-System-Enhancement.md +131 -0
  153. plans/completed/single-ecosystem-plan-implementation/6-Final-Validation-Testing.md +120 -0
  154. plans/completed/test-directory-consolidation/0-Overview.md +51 -0
  155. plans/completed/test-directory-consolidation/1-Structure-Preparation.md +82 -0
  156. plans/completed/test-directory-consolidation/2-File-Migration.md +100 -0
  157. plans/completed/test-directory-consolidation/3-Import-Transformation.md +117 -0
  158. plans/completed/test-directory-consolidation/4-Configuration-Consolidation.md +140 -0
  159. plans/completed/test-directory-consolidation/5-Validation.md +152 -0
  160. plans/completed/test-directory-consolidation/6-Cleanup.md +156 -0
  161. plans/completed/test-planning-agents-architecture/0-Overview.md +79 -0
  162. plans/completed/test-planning-agents-architecture/1-Branch-Isolation-Testing.md +49 -0
  163. plans/completed/test-planning-agents-architecture/2-Cross-Branch-Coordination.md +51 -0
  164. plans/completed/test-planning-agents-architecture/3-Merge-Workflow-Testing.md +48 -0
  165. plans/deployment-semver-pypi-rtd/0-Overview.md +463 -0
  166. plans/deployment-semver-pypi-rtd/1-Semantic-Versioning-Foundation.md +136 -0
  167. plans/deployment-semver-pypi-rtd/2-PyPI-Deployment-Infrastructure.md +168 -0
  168. plans/deployment-semver-pypi-rtd/3-Release-Automation.md +214 -0
  169. plans/deployment-semver-pypi-rtd/4-Plan-Closeout.md +543 -0
  170. plans/deployment-semver-pypi-rtd/compacted_session_state.md +172 -0
  171. plans/deployment-semver-pypi-rtd/compacted_state.md +131 -0
  172. plans/documentation-code-audit/0-Overview.md +393 -0
  173. plans/documentation-code-audit/1-Discovery-Inventory.md +183 -0
  174. plans/documentation-code-audit/2-Execution-Environment-Setup.md +263 -0
  175. plans/documentation-code-audit/3-Systematic-Validation.md +322 -0
  176. plans/documentation-code-audit/4-Code-Example-Remediation.md +358 -0
  177. plans/documentation-code-audit/5-Physics-MultiIndex-Compliance.md +464 -0
  178. plans/documentation-code-audit/6-Doctest-Integration.md +523 -0
  179. plans/documentation-code-audit/7-Reporting-Documentation.md +498 -0
  180. plans/documentation-code-audit/8-Closeout.md +456 -0
  181. plans/documentation-rebuild-session/compacted_state.md +109 -0
  182. plans/documentation-rendering-fixes/0-Overview.md +104 -0
  183. plans/documentation-rendering-fixes/1-Sphinx-Build-Diagnostics-Warning-Audit.md +101 -0
  184. plans/documentation-rendering-fixes/2-Configuration-Infrastructure-Fixes.md +113 -0
  185. plans/documentation-rendering-fixes/3-Docstring-Syntax-Audit-Repair.md +131 -0
  186. plans/documentation-rendering-fixes/4-HTML-Page-Rendering-Verification.md +113 -0
  187. plans/documentation-rendering-fixes/5-Advanced-Documentation-Quality-Assurance.md +119 -0
  188. plans/documentation-rendering-fixes/6-Documentation-Build-Optimization-Testing.md +129 -0
  189. plans/documentation-rendering-fixes/compacted_state.md +132 -0
  190. plans/documentation-template-fix/0-Overview.md +197 -0
  191. plans/documentation-template-fix/1-Template-System-Analysis.md +269 -0
  192. plans/documentation-template-fix/2-Template-Modification.md +609 -0
  193. plans/documentation-template-fix/3-Build-System-Integration.md +766 -0
  194. plans/documentation-template-fix/4-Testing-Validation.md +1399 -0
  195. plans/documentation-template-fix/5-Documentation-Training.md +602 -0
  196. plans/documentation-workflow-fix/0-Overview.md +222 -0
  197. plans/documentation-workflow-fix/1-Immediate-Fixes.md +238 -0
  198. plans/documentation-workflow-fix/2-Configuration-Setup.md +298 -0
  199. plans/documentation-workflow-fix/3-Pre-commit-Integration.md +382 -0
  200. plans/documentation-workflow-fix/4-Workflow-Improvements.md +446 -0
  201. plans/documentation-workflow-fix/5-Documentation-and-Training.md +527 -0
  202. plans/duplicate-object-warnings-fix-plan.md +130 -0
  203. plans/github-issues-migration/0-Overview.md +510 -0
  204. plans/github-issues-migration/1-Foundation-Label-System.md +180 -0
  205. plans/github-issues-migration/2-Migration-Tool-Rewrite.md +235 -0
  206. plans/github-issues-migration/3-CLI-Integration-Automation.md +169 -0
  207. plans/github-issues-migration/4-Validated-Migration.md +252 -0
  208. plans/github-issues-migration/5-Documentation-Training.md +171 -0
  209. plans/github-issues-migration/6-Closeout.md +179 -0
  210. plans/github-workflows-repair/repair-plan.md +299 -0
  211. plans/issues_from_plans.py +342 -0
  212. plans/pr-270-doc-validation-fixes/0-Overview.md +354 -0
  213. plans/pr-270-doc-validation-fixes/1-Critical-PR-Fixes.md +117 -0
  214. plans/pr-270-doc-validation-fixes/2-Framework-Right-Sizing.md +129 -0
  215. plans/pr-270-doc-validation-fixes/3-Sustainable-Documentation.md +126 -0
  216. plans/pr-270-doc-validation-fixes/4-Closeout-Migration.md +143 -0
  217. plans/pr-270-doc-validation-fixes/PLAN_COMPLETED.md +149 -0
  218. plans/python-310-migration/0-Overview.md +390 -0
  219. plans/python-310-migration/1-Planning-Setup.md +164 -0
  220. plans/python-310-migration/2-Implementation.md +256 -0
  221. plans/python-310-migration/3-Testing-Validation.md +335 -0
  222. plans/python-310-migration/4-Documentation-Release.md +274 -0
  223. plans/python-310-migration/5-Closeout.md +252 -0
  224. plans/readthedocs-simplified/0-Overview.md +243 -0
  225. plans/readthedocs-simplified/1-Immediate-Fixes.md +216 -0
  226. plans/readthedocs-simplified/2-Template-Simplification.md +278 -0
  227. plans/readthedocs-simplified/3-ReadTheDocs-Setup.md +298 -0
  228. plans/readthedocs-simplified/4-Testing-Validation.md +328 -0
  229. plans/readthedocs-simplified/5-Closeout.md +231 -0
  230. plans/readthedocs-simplified/compacted_state.md +127 -0
  231. plans/session-compaction-2025-08-12/compacted_state.md +114 -0
  232. plans/session-compaction-2025-08-13/compacted_state.md +145 -0
  233. plans/session-continuity-protocol/0-Overview.md +35 -0
  234. plans/session-continuity-protocol/1-Core-Principles-Framework.md +40 -0
  235. plans/session-continuity-protocol/2-Pre-Session-Validation-System.md +79 -0
  236. plans/session-continuity-protocol/3-Context-Switching-Prevention.md +87 -0
  237. plans/session-continuity-protocol/4-Progress-Tracking-Recovery.md +100 -0
  238. plans/sphinx-warnings-analysis.md +222 -0
  239. plans/systemprompt-optimization/0-Overview.md +447 -0
  240. plans/systemprompt-optimization/1-Deploy-SystemPrompt.md +114 -0
  241. plans/systemprompt-optimization/2-Documentation-Alignment.md +198 -0
  242. plans/systemprompt-optimization/3-Monitoring-Infrastructure.md +396 -0
  243. plans/systemprompt-optimization/4-Implementation-Script.md +450 -0
  244. plans/systemprompt-optimization/9-Closeout.md +165 -0
  245. plans/systemprompt-optimization/compacted_state.md +143 -0
  246. plans/template-value-propositions/0-Overview.md +357 -0
  247. plans/template-value-propositions/1-Value-Proposition-Framework-Design.md +144 -0
  248. plans/template-value-propositions/2-Plan-Template-Enhancement.md +178 -0
  249. plans/template-value-propositions/3-Value-Generator-Hook-Implementation.md +291 -0
  250. plans/template-value-propositions/4-Value-Validator-Hook-Implementation.md +274 -0
  251. plans/template-value-propositions/5-Documentation-Agent-Updates.md +219 -0
  252. plans/template-value-propositions/6-Integration-Testing-Validation.md +247 -0
  253. plans/tests-audit/0-Overview.md +410 -0
  254. plans/tests-audit/1-Discovery-Inventory.md +170 -0
  255. plans/tests-audit/2-Physics-Validation-Audit.md +195 -0
  256. plans/tests-audit/3-Architecture-Compliance.md +195 -0
  257. plans/tests-audit/4-Numerical-Stability-Analysis.md +203 -0
  258. plans/tests-audit/5-Documentation-Enhancement.md +220 -0
  259. plans/tests-audit/6-Audit-Deliverables.md +220 -0
  260. plans/tests-audit/7-Closeout.md +252 -0
  261. plans/tests-audit/artifacts/ARCHITECTURE_COMPLIANCE_REPORT.md +315 -0
  262. plans/tests-audit/artifacts/ARCHITECTURE_RECOMMENDATIONS.md +943 -0
  263. plans/tests-audit/artifacts/COMPREHENSIVE_AUDIT_REPORT.md +356 -0
  264. plans/tests-audit/artifacts/CONTRIBUTING_ENHANCED_TEMPLATE.md +419 -0
  265. plans/tests-audit/artifacts/COVERAGE_GAP_ANALYSIS.md +152 -0
  266. plans/tests-audit/artifacts/DOCUMENTATION_ENHANCEMENT_REPORT.md +502 -0
  267. plans/tests-audit/artifacts/EXECUTIVE_AUDIT_SUMMARY.md +129 -0
  268. plans/tests-audit/artifacts/IMPLEMENTATION_ROADMAP.md +647 -0
  269. plans/tests-audit/artifacts/NUMERICAL_RECOMMENDATIONS.md +739 -0
  270. plans/tests-audit/artifacts/NUMERICAL_STABILITY_GUIDE_TEMPLATE.rst +451 -0
  271. plans/tests-audit/artifacts/NUMERICAL_STABILITY_REPORT.md +301 -0
  272. plans/tests-audit/artifacts/PHASE_3_SUMMARY.md +280 -0
  273. plans/tests-audit/artifacts/PHASE_4_SUMMARY.md +229 -0
  274. plans/tests-audit/artifacts/PHASE_5_SUMMARY.md +292 -0
  275. plans/tests-audit/artifacts/PHASE_6_CLOSEOUT.md +278 -0
  276. plans/tests-audit/artifacts/PHYSICS_GUIDE_TEMPLATE.rst +268 -0
  277. plans/tests-audit/artifacts/PHYSICS_VALIDATION_REPORT.md +235 -0
  278. plans/tests-audit/artifacts/TECHNICAL_DELIVERABLES_PACKAGE.md +2502 -0
  279. plans/tests-audit/artifacts/TEST_INVENTORY.csv +1204 -0
  280. plans/tests-audit/artifacts/TEST_INVENTORY.md +135 -0
  281. plans/tests-audit/artifacts/test_discovery_analysis.py +231 -0
  282. plans/tests-audit/artifacts/test_parser.py +395 -0
  283. solarwindpy/README.md +3 -0
  284. solarwindpy/Untitled.ipynb +54 -0
  285. solarwindpy/__init__.py +74 -0
  286. solarwindpy/core/__init__.py +23 -0
  287. solarwindpy/core/alfvenic_turbulence.py +804 -0
  288. solarwindpy/core/base.py +267 -0
  289. solarwindpy/core/ions.py +309 -0
  290. solarwindpy/core/plasma.py +2133 -0
  291. solarwindpy/core/spacecraft.py +256 -0
  292. solarwindpy/core/tensor.py +90 -0
  293. solarwindpy/core/units_constants.py +199 -0
  294. solarwindpy/core/vector.py +328 -0
  295. solarwindpy/fitfunctions/__init__.py +20 -0
  296. solarwindpy/fitfunctions/core.py +734 -0
  297. solarwindpy/fitfunctions/exponentials.py +188 -0
  298. solarwindpy/fitfunctions/gaussians.py +264 -0
  299. solarwindpy/fitfunctions/lines.py +116 -0
  300. solarwindpy/fitfunctions/moyal.py +71 -0
  301. solarwindpy/fitfunctions/plots.py +751 -0
  302. solarwindpy/fitfunctions/power_laws.py +209 -0
  303. solarwindpy/fitfunctions/tex_info.py +568 -0
  304. solarwindpy/fitfunctions/trend_fits.py +482 -0
  305. solarwindpy/instabilities/__init__.py +16 -0
  306. solarwindpy/instabilities/beta_ani.py +82 -0
  307. solarwindpy/instabilities/verscharen2016.py +631 -0
  308. solarwindpy/plotting/__init__.py +33 -0
  309. solarwindpy/plotting/agg_plot.py +489 -0
  310. solarwindpy/plotting/base.py +465 -0
  311. solarwindpy/plotting/hist1d.py +405 -0
  312. solarwindpy/plotting/hist2d.py +1035 -0
  313. solarwindpy/plotting/histograms.py +1845 -0
  314. solarwindpy/plotting/labels/__init__.py +104 -0
  315. solarwindpy/plotting/labels/base.py +686 -0
  316. solarwindpy/plotting/labels/chemistry.py +19 -0
  317. solarwindpy/plotting/labels/composition.py +100 -0
  318. solarwindpy/plotting/labels/datetime.py +235 -0
  319. solarwindpy/plotting/labels/elemental_abundance.py +73 -0
  320. solarwindpy/plotting/labels/special.py +794 -0
  321. solarwindpy/plotting/orbits.py +515 -0
  322. solarwindpy/plotting/scatter.py +99 -0
  323. solarwindpy/plotting/select_data_from_figure.py +329 -0
  324. solarwindpy/plotting/spiral.py +980 -0
  325. solarwindpy/plotting/tools.py +434 -0
  326. solarwindpy/scripts/__init__.py +1 -0
  327. solarwindpy/scripts/logs/.gitignore +1 -0
  328. solarwindpy/solar_activity/__init__.py +53 -0
  329. solarwindpy/solar_activity/base.py +605 -0
  330. solarwindpy/solar_activity/lisird/__init__.py +3 -0
  331. solarwindpy/solar_activity/lisird/extrema_calculator.py +394 -0
  332. solarwindpy/solar_activity/lisird/lisird.py +319 -0
  333. solarwindpy/solar_activity/plots.py +116 -0
  334. solarwindpy/solar_activity/sunspot_number/.DS_Store +0 -0
  335. solarwindpy/solar_activity/sunspot_number/__init__.py +3 -0
  336. solarwindpy/solar_activity/sunspot_number/sidc.py +556 -0
  337. solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv +72 -0
  338. solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv.silso +72 -0
  339. solarwindpy/tools/__init__.py +162 -0
  340. solarwindpy-0.1.0.dist-info/METADATA +181 -0
  341. solarwindpy-0.1.0.dist-info/RECORD +409 -0
  342. {solarwindpy-0.0.1.dev0.dist-info โ†’ solarwindpy-0.1.0.dist-info}/WHEEL +1 -1
  343. solarwindpy-0.1.0.dist-info/licenses/LICENSE.rst +32 -0
  344. solarwindpy-0.1.0.dist-info/top_level.txt +3 -0
  345. tests/__init__.py +1 -0
  346. tests/conftest.py +10 -0
  347. tests/core/__init__.py +1 -0
  348. tests/core/test_alfvenic_turbulence.py +544 -0
  349. tests/core/test_base.py +112 -0
  350. tests/core/test_base_head_tail.py +29 -0
  351. tests/core/test_base_mi_tuples.py +11 -0
  352. tests/core/test_core_verify_datetimeindex.py +32 -0
  353. tests/core/test_ions.py +325 -0
  354. tests/core/test_plasma.py +2581 -0
  355. tests/core/test_plasma_io.py +12 -0
  356. tests/core/test_quantities.py +507 -0
  357. tests/core/test_spacecraft.py +210 -0
  358. tests/core/test_units_constants.py +22 -0
  359. tests/data/epoch.csv +4 -0
  360. tests/data/plasma.csv +4 -0
  361. tests/data/spacecraft.csv +4 -0
  362. tests/fitfunctions/conftest.py +60 -0
  363. tests/fitfunctions/test_core.py +193 -0
  364. tests/fitfunctions/test_exponentials.py +342 -0
  365. tests/fitfunctions/test_gaussians.py +142 -0
  366. tests/fitfunctions/test_lines.py +349 -0
  367. tests/fitfunctions/test_moyal.py +258 -0
  368. tests/fitfunctions/test_plots.py +258 -0
  369. tests/fitfunctions/test_power_laws.py +365 -0
  370. tests/fitfunctions/test_tex_info.py +183 -0
  371. tests/fitfunctions/test_trend_fit_properties.py +31 -0
  372. tests/fitfunctions/test_trend_fits.py +244 -0
  373. tests/plotting/__init__.py +1 -0
  374. tests/plotting/labels/__init__.py +1 -0
  375. tests/plotting/labels/test_chemistry.py +243 -0
  376. tests/plotting/labels/test_composition.py +345 -0
  377. tests/plotting/labels/test_datetime.py +445 -0
  378. tests/plotting/labels/test_elemental_abundance.py +366 -0
  379. tests/plotting/labels/test_init.py +66 -0
  380. tests/plotting/labels/test_labels_base.py +347 -0
  381. tests/plotting/labels/test_special.py +550 -0
  382. tests/plotting/test_agg_plot.py +602 -0
  383. tests/plotting/test_base.py +752 -0
  384. tests/plotting/test_fixtures_utilities.py +775 -0
  385. tests/plotting/test_histograms.py +546 -0
  386. tests/plotting/test_integration.py +675 -0
  387. tests/plotting/test_orbits.py +435 -0
  388. tests/plotting/test_performance.py +708 -0
  389. tests/plotting/test_scatter.py +752 -0
  390. tests/plotting/test_select_data_from_figure.py +1209 -0
  391. tests/plotting/test_spiral.py +573 -0
  392. tests/plotting/test_tools.py +607 -0
  393. tests/plotting/test_visual_validation.py +465 -0
  394. tests/solar_activity/__init__.py +1 -0
  395. tests/solar_activity/lisird/__init__.py +1 -0
  396. tests/solar_activity/lisird/test_extrema_calculator.py +593 -0
  397. tests/solar_activity/lisird/test_lisird_id.py +187 -0
  398. tests/solar_activity/sunspot_number/__init__.py +1 -0
  399. tests/solar_activity/sunspot_number/test_init.py +399 -0
  400. tests/solar_activity/sunspot_number/test_sidc.py +465 -0
  401. tests/solar_activity/sunspot_number/test_sidc_id.py +223 -0
  402. tests/solar_activity/sunspot_number/test_sidc_loader.py +275 -0
  403. tests/solar_activity/sunspot_number/test_ssn_extrema.py +406 -0
  404. tests/solar_activity/test_base.py +656 -0
  405. tests/solar_activity/test_init.py +396 -0
  406. tests/solar_activity/test_plots.py +371 -0
  407. tests/test_circular_imports.py +408 -0
  408. tests/test_issue_titles.py +25 -0
  409. tests/test_statusline.py +298 -0
  410. solarwindpy-0.0.1.dev0.dist-info/METADATA +0 -14
  411. solarwindpy-0.0.1.dev0.dist-info/RECORD +0 -4
  412. solarwindpy-0.0.1.dev0.dist-info/top_level.txt +0 -1
@@ -0,0 +1,135 @@
1
+ # Physics-Focused Test Suite Audit - Test Inventory Report
2
+
3
+ ## Executive Summary
4
+
5
+ **Date**: 2025-08-21
6
+ **Phase**: 1 - Discovery & Inventory
7
+ **Status**: โœ… COMPLETED
8
+
9
+ ### Key Findings
10
+
11
+ - **Total Test Files**: 54 (Expected: 63) - Variance: -14.3%
12
+ - **Total Test Functions**: 1,128 (Expected: 1,132) - Variance: -0.35%
13
+ - **Current Test Coverage**: 77.1% (Baseline established)
14
+ - **Physics-Focused Tests**: 316 functions (28.0% of total)
15
+ - **Target Coverage**: โ‰ฅ95% (Est. ~200 additional tests needed)
16
+
17
+ ## Test Suite Architecture
18
+
19
+ ### File Distribution
20
+ ```
21
+ tests/
22
+ โ”œโ”€โ”€ core/ 12 files (plasma, ions, alfvenic turbulence, base classes)
23
+ โ”œโ”€โ”€ fitfunctions/ 10 files (curve fitting, statistical analysis)
24
+ โ”œโ”€โ”€ plotting/ 20 files (visualization, labels, tools)
25
+ โ”œโ”€โ”€ solar_activity/ 10 files (sunspot data, LISIRD integration)
26
+ โ”œโ”€โ”€ root level/ 2 files (imports, architecture validation)
27
+ โ””โ”€โ”€ [missing modules] 9 files (instabilities/, tools/ test coverage)
28
+ ```
29
+
30
+ ### Test Function Classification
31
+
32
+ #### By Test Type
33
+ - **Unit Tests**: 817 functions (72.4%) - Core component testing
34
+ - **Physics Tests**: 229 functions (20.3%) - Domain-specific validation
35
+ - **Edge Cases**: 48 functions (4.3%) - Boundary condition testing
36
+ - **Integration**: 18 functions (1.6%) - Cross-module interaction testing
37
+ - **Performance**: 16 functions (1.4%) - Computational efficiency validation
38
+
39
+ #### By Physics Domain
40
+ - **Visualization**: 636 functions (56.4%) - Plotting and figure generation
41
+ - **Solar Activity**: 196 functions (17.4%) - Sunspot and LISIRD data analysis
42
+ - **Fitting Functions**: 129 functions (11.4%) - Statistical and curve fitting
43
+ - **General/Utility**: 75 functions (6.6%) - Core utilities and base classes
44
+ - **Plasma Physics**: 42 functions (3.7%) - Core plasma calculations
45
+ - **Alfvรฉnic Turbulence**: 25 functions (2.2%) - Turbulence analysis
46
+ - **Ion Species**: 13 functions (1.2%) - Ion-specific calculations
47
+ - **Spacecraft**: 12 functions (1.1%) - Spacecraft data handling
48
+
49
+ #### By Complexity
50
+ - **Simple**: 959 functions (85.0%) - Basic validation, โ‰ค20 lines
51
+ - **Moderate**: 149 functions (13.2%) - Multi-step validation, 21-50 lines
52
+ - **Complex**: 20 functions (1.8%) - Comprehensive validation, >50 lines
53
+
54
+ ## Coverage Analysis
55
+
56
+ ### Current Baseline (pytest-cov)
57
+ - **Total Coverage**: 77.1% (6,966 lines total, 1,594 missing)
58
+ - **Test Results**: 1,552 passed, 23 failed, 6 skipped, 2 errors
59
+ - **Critical Gaps**: Missing instabilities/ and tools/ test modules
60
+
61
+ ### Physics Validation Coverage Gaps
62
+ Based on test function analysis, the following physics areas need enhancement:
63
+
64
+ #### High Priority Physics Gaps
65
+ 1. **SI Unit Consistency**: Only 12 explicit unit validation tests
66
+ 2. **Thermal Speed Convention**: 3 tests validate mwยฒ = 2kT formula
67
+ 3. **Alfvรฉn Speed Formula**: 8 tests for V_A = B/โˆš(ฮผโ‚€ฯ) calculations
68
+ 4. **Conservation Laws**: 5 tests for energy/momentum conservation
69
+ 5. **Numerical Stability**: 48 edge case tests (needs expansion for Bโ‰ˆ0, nโ†’0)
70
+
71
+ #### Missing Test Modules
72
+ - `instabilities/` module: 0 test files (expected ~8-10 files)
73
+ - `tools/` module: Limited coverage (1 partial test)
74
+ - Advanced plasma physics calculations
75
+ - MultiIndex DataFrame edge cases
76
+ - Physics constraint validation
77
+
78
+ ## Test Quality Assessment
79
+
80
+ ### Strengths
81
+ โœ… **Comprehensive visualization testing** (636 functions)
82
+ โœ… **Good solar activity coverage** (196 functions)
83
+ โœ… **Robust fitting function validation** (129 functions)
84
+ โœ… **Systematic test organization** by module structure
85
+
86
+ ### Areas for Improvement
87
+ โš ๏ธ **Limited physics constraint testing** - Need systematic validation
88
+ โš ๏ธ **Missing instabilities module tests** - Critical gap for plasma physics
89
+ โš ๏ธ **Insufficient numerical stability testing** - Only 48 edge case tests
90
+ โš ๏ธ **Sparse MultiIndex architecture validation** - Core data structure needs more testing
91
+
92
+ ## Phase 1 Deliverables
93
+
94
+ ### Generated Artifacts
95
+ 1. **TEST_INVENTORY.csv** - Machine-readable complete test metadata (1,128 rows)
96
+ 2. **TEST_INVENTORY.md** - This human-readable summary report
97
+ 3. **test_discovery_analysis.py** - Reusable discovery and analysis script
98
+
99
+ ### Coverage Baseline Established
100
+ - **Current**: 77.1% code coverage across 6,966 source lines
101
+ - **Target**: โ‰ฅ95% coverage (requires ~1,594 โ†’ ~349 missing lines reduction)
102
+ - **Estimated Additional Tests**: ~200 functions focused on physics validation
103
+
104
+ ### Classification Matrix
105
+ Complete classification of all 1,128 test functions by:
106
+ - Test type (unit, physics, edge, integration, performance)
107
+ - Physics domain (plasma, ions, turbulence, fitting, visualization, etc.)
108
+ - Complexity level (simple, moderate, complex)
109
+ - Physics focus flags (is_physics_test, is_edge_case, etc.)
110
+
111
+ ## Recommendations for Phase 2
112
+
113
+ ### Immediate Priorities
114
+ 1. **Physics Validation Audit**: Focus PhysicsValidator agent on 316 physics-focused tests
115
+ 2. **Missing Module Testing**: Priority on instabilities/ and tools/ modules
116
+ 3. **Unit Consistency**: Systematic SI unit validation across plasma calculations
117
+ 4. **Thermal Speed Validation**: Expand mwยฒ = 2kT convention testing
118
+ 5. **Conservation Law Testing**: Energy, momentum, and mass conservation validation
119
+
120
+ ### Coverage Improvement Strategy
121
+ - **Primary Gap**: Missing 1,594 lines of coverage (22.9% of codebase)
122
+ - **Physics Focus**: Prioritize plasma physics calculations and edge cases
123
+ - **Architecture Focus**: MultiIndex DataFrame operations and edge cases
124
+ - **Numerical Focus**: Bโ‰ˆ0, nโ†’0, extreme temperature boundary conditions
125
+
126
+ ---
127
+
128
+ ## Phase 1 Completion Status: โœ… COMPLETED
129
+
130
+ **Next Phase**: Phase 2 - Physics Validation Audit with PhysicsValidator agent
131
+ **Handoff Ready**: Complete test inventory and baseline metrics established
132
+ **Audit Foundation**: Systematic test classification and gap analysis complete
133
+
134
+ *Generated by TestEngineer agent - Phase 1 of Physics-Focused Test Suite Audit*
135
+ *Artifacts Location: `plans/tests-audit/artifacts/`*
@@ -0,0 +1,231 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Test Discovery and Analysis Script for Physics-Focused Test Suite Audit
4
+ Phase 1: Discovery & Inventory
5
+
6
+ This script systematically discovers and analyzes all test functions in the SolarWindPy test suite
7
+ to create comprehensive inventory artifacts for the audit process.
8
+ """
9
+
10
+ import os
11
+ import ast
12
+ import csv
13
+ import glob
14
+ import pandas as pd
15
+ from pathlib import Path
16
+ from collections import defaultdict
17
+ from typing import Dict, List, Tuple, Set
18
+
19
+ class TestFunctionDiscovery:
20
+ """Discovers and analyzes test functions in the SolarWindPy test suite."""
21
+
22
+ def __init__(self, tests_root: str = "tests"):
23
+ self.tests_root = Path(tests_root)
24
+ self.test_files = []
25
+ self.test_functions = []
26
+ self.classification_data = []
27
+
28
+ def discover_test_files(self) -> List[Path]:
29
+ """Discover all test files in the test directory."""
30
+ pattern = str(self.tests_root / "**" / "test_*.py")
31
+ files = glob.glob(pattern, recursive=True)
32
+ self.test_files = [Path(f) for f in sorted(files)]
33
+ return self.test_files
34
+
35
+ def extract_test_functions(self, file_path: Path) -> List[Dict]:
36
+ """Extract test functions from a Python file using AST parsing."""
37
+ functions = []
38
+ try:
39
+ with open(file_path, 'r', encoding='utf-8') as f:
40
+ content = f.read()
41
+
42
+ tree = ast.parse(content, filename=str(file_path))
43
+
44
+ for node in ast.walk(tree):
45
+ if isinstance(node, ast.FunctionDef) and node.name.startswith('test_'):
46
+ # Extract docstring if present
47
+ docstring = ""
48
+ if (node.body and isinstance(node.body[0], ast.Expr)
49
+ and isinstance(node.body[0].value, ast.Str)):
50
+ docstring = node.body[0].value.s
51
+ elif (node.body and isinstance(node.body[0], ast.Expr)
52
+ and isinstance(node.body[0].value, ast.Constant)
53
+ and isinstance(node.body[0].value.value, str)):
54
+ docstring = node.body[0].value.value
55
+
56
+ # Count lines of code in function
57
+ func_lines = node.end_lineno - node.lineno + 1 if hasattr(node, 'end_lineno') else 1
58
+
59
+ functions.append({
60
+ 'file_path': str(file_path),
61
+ 'function_name': node.name,
62
+ 'line_number': node.lineno,
63
+ 'docstring': docstring,
64
+ 'num_lines': func_lines,
65
+ 'args': len(node.args.args)
66
+ })
67
+
68
+ except Exception as e:
69
+ print(f"Error parsing {file_path}: {e}")
70
+
71
+ return functions
72
+
73
+ def classify_test_function(self, func_data: Dict) -> Dict:
74
+ """Classify a test function by type and physics domain."""
75
+ func_name = func_data['function_name']
76
+ file_path = func_data['file_path']
77
+ docstring = func_data['docstring'].lower()
78
+
79
+ # Initialize classification
80
+ classification = {
81
+ 'test_type': 'unit', # Default
82
+ 'physics_domain': 'general',
83
+ 'complexity': 'simple',
84
+ 'is_physics_test': False,
85
+ 'is_edge_case': False,
86
+ 'is_integration': False,
87
+ 'is_performance': False
88
+ }
89
+
90
+ # Classify by test type based on function name patterns
91
+ if any(keyword in func_name.lower() for keyword in ['edge', 'boundary', 'extreme', 'invalid']):
92
+ classification['test_type'] = 'edge'
93
+ classification['is_edge_case'] = True
94
+ elif any(keyword in func_name.lower() for keyword in ['integration', 'end_to_end', 'full']):
95
+ classification['test_type'] = 'integration'
96
+ classification['is_integration'] = True
97
+ elif any(keyword in func_name.lower() for keyword in ['performance', 'speed', 'benchmark', 'timing']):
98
+ classification['test_type'] = 'performance'
99
+ classification['is_performance'] = True
100
+ elif any(keyword in func_name.lower() for keyword in ['physics', 'thermal', 'alfven', 'magnetic', 'plasma']):
101
+ classification['test_type'] = 'physics'
102
+ classification['is_physics_test'] = True
103
+
104
+ # Classify by physics domain based on file path and function name
105
+ if 'core/test_plasma' in file_path:
106
+ classification['physics_domain'] = 'plasma'
107
+ classification['is_physics_test'] = True
108
+ elif 'core/test_ions' in file_path:
109
+ classification['physics_domain'] = 'ions'
110
+ classification['is_physics_test'] = True
111
+ elif 'core/test_alfvenic' in file_path:
112
+ classification['physics_domain'] = 'alfvenic_turbulence'
113
+ classification['is_physics_test'] = True
114
+ elif 'core/test_spacecraft' in file_path:
115
+ classification['physics_domain'] = 'spacecraft'
116
+ elif 'fitfunctions' in file_path:
117
+ classification['physics_domain'] = 'fitting'
118
+ elif 'plotting' in file_path:
119
+ classification['physics_domain'] = 'visualization'
120
+ elif 'solar_activity' in file_path:
121
+ classification['physics_domain'] = 'solar_activity'
122
+ elif 'instabilities' in file_path:
123
+ classification['physics_domain'] = 'instabilities'
124
+ classification['is_physics_test'] = True
125
+
126
+ # Assess complexity based on function characteristics
127
+ if func_data['num_lines'] > 50:
128
+ classification['complexity'] = 'complex'
129
+ elif func_data['num_lines'] > 20 or func_data['args'] > 3:
130
+ classification['complexity'] = 'moderate'
131
+
132
+ # Physics-specific classifications
133
+ physics_keywords = ['thermal_speed', 'alfven_speed', 'density', 'velocity', 'temperature',
134
+ 'magnetic_field', 'pressure', 'beta', 'ma', 'conservation', 'units']
135
+ if any(keyword in func_name.lower() or keyword in docstring for keyword in physics_keywords):
136
+ classification['is_physics_test'] = True
137
+ if classification['test_type'] == 'unit':
138
+ classification['test_type'] = 'physics'
139
+
140
+ return classification
141
+
142
+ def analyze_test_suite(self) -> Dict:
143
+ """Complete analysis of the test suite."""
144
+ print("๐Ÿ” Discovering test files...")
145
+ self.discover_test_files()
146
+
147
+ print(f"๐Ÿ“ Found {len(self.test_files)} test files")
148
+
149
+ print("๐Ÿ“ Extracting test functions...")
150
+ all_functions = []
151
+ for file_path in self.test_files:
152
+ functions = self.extract_test_functions(file_path)
153
+ all_functions.extend(functions)
154
+
155
+ print(f"๐Ÿงช Found {len(all_functions)} test functions")
156
+
157
+ print("๐Ÿท๏ธ Classifying test functions...")
158
+ for func_data in all_functions:
159
+ classification = self.classify_test_function(func_data)
160
+ func_data.update(classification)
161
+ self.classification_data.append(func_data)
162
+
163
+ # Generate summary statistics
164
+ summary = {
165
+ 'total_files': len(self.test_files),
166
+ 'total_functions': len(self.classification_data),
167
+ 'by_type': defaultdict(int),
168
+ 'by_domain': defaultdict(int),
169
+ 'by_complexity': defaultdict(int),
170
+ 'physics_tests': 0,
171
+ 'edge_tests': 0,
172
+ 'integration_tests': 0
173
+ }
174
+
175
+ for func in self.classification_data:
176
+ summary['by_type'][func['test_type']] += 1
177
+ summary['by_domain'][func['physics_domain']] += 1
178
+ summary['by_complexity'][func['complexity']] += 1
179
+ if func['is_physics_test']:
180
+ summary['physics_tests'] += 1
181
+ if func['is_edge_case']:
182
+ summary['edge_tests'] += 1
183
+ if func['is_integration']:
184
+ summary['integration_tests'] += 1
185
+
186
+ return summary
187
+
188
+ def main():
189
+ """Main execution function."""
190
+ print("๐Ÿš€ Starting Phase 1: Test Suite Discovery & Inventory")
191
+ print("=" * 60)
192
+
193
+ # Initialize discovery
194
+ discoverer = TestFunctionDiscovery()
195
+
196
+ # Perform complete analysis
197
+ summary = discoverer.analyze_test_suite()
198
+
199
+ # Print summary
200
+ print(f"\n๐Ÿ“Š DISCOVERY SUMMARY:")
201
+ print(f"Total test files: {summary['total_files']}")
202
+ print(f"Total test functions: {summary['total_functions']}")
203
+ print(f"Physics-focused tests: {summary['physics_tests']}")
204
+ print(f"Edge case tests: {summary['edge_tests']}")
205
+ print(f"Integration tests: {summary['integration_tests']}")
206
+
207
+ print(f"\n๐Ÿท๏ธ By Test Type:")
208
+ for test_type, count in sorted(summary['by_type'].items()):
209
+ print(f" {test_type}: {count}")
210
+
211
+ print(f"\n๐Ÿงช By Physics Domain:")
212
+ for domain, count in sorted(summary['by_domain'].items()):
213
+ print(f" {domain}: {count}")
214
+
215
+ print(f"\n๐Ÿ“ˆ By Complexity:")
216
+ for complexity, count in sorted(summary['by_complexity'].items()):
217
+ print(f" {complexity}: {count}")
218
+
219
+ # Save detailed data to CSV
220
+ output_dir = Path('plans/tests-audit/artifacts')
221
+ output_dir.mkdir(parents=True, exist_ok=True)
222
+
223
+ csv_path = output_dir / 'TEST_INVENTORY.csv'
224
+ df = pd.DataFrame(discoverer.classification_data)
225
+ df.to_csv(csv_path, index=False)
226
+ print(f"\n๐Ÿ’พ Detailed inventory saved to: {csv_path}")
227
+
228
+ return summary, discoverer.classification_data
229
+
230
+ if __name__ == "__main__":
231
+ summary, data = main()