solarwindpy 0.0.1.dev0__py3-none-any.whl → 0.1.1__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.1.dist-info/METADATA +181 -0
  341. solarwindpy-0.1.1.dist-info/RECORD +409 -0
  342. {solarwindpy-0.0.1.dev0.dist-info → solarwindpy-0.1.1.dist-info}/WHEEL +1 -1
  343. solarwindpy-0.1.1.dist-info/licenses/LICENSE.rst +32 -0
  344. solarwindpy-0.1.1.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,247 @@
1
+ ---
2
+ name: 'Combined Plan and Checklist: DateTime Labels'
3
+ about: Unified documentation and checklist for validating datetime-related plotting labels.
4
+ labels: [sweep, plotting, labels, datetime, Timedelta, ArbitraryLabel]
5
+ ---
6
+
7
+ > Phase 14 of Enhanced Plotting Test Plan
8
+
9
+ ## 🧠 Context
10
+
11
+ The `solarwindpy.plotting.labels.datetime` module provides specialized labels for time-related quantities, particularly time intervals and durations commonly used in time series analysis and plasma physics data visualization. The module focuses on the `Timedelta` class that provides proper formatting for time intervals with LaTeX rendering support.
12
+
13
+ ### Key Components
14
+ - **Timedelta Class**: Represents time intervals with proper formatting
15
+ - **Pandas Integration**: Uses `pandas.tseries.frequencies.to_offset` for time parsing
16
+ - **LaTeX Formatting**: Automatic LaTeX generation with units
17
+ - **ArbitraryLabel Inheritance**: Builds on special label infrastructure
18
+
19
+ ### Scientific Context
20
+ - Time series analysis for plasma physics data
21
+ - Duration labeling for event analysis
22
+ - Standardized time interval notation
23
+ - Integration with pandas time offset functionality
24
+
25
+ ## 📋 Comprehensive Test Checklist
26
+
27
+ ### 14.1 Module Structure and Imports
28
+
29
+ - [ ] **Import verification**: All required imports load correctly
30
+ - [ ] **Path integration**: `from pathlib import Path` works properly
31
+ - [ ] **Pandas integration**: `from pandas.tseries.frequencies import to_offset` functions
32
+ - [ ] **Base imports**: `from . import base` and `from . import special` work
33
+ - [ ] **Debug import**: `import pdb` present for development (noqa handled)
34
+
35
+ ### 14.2 Timedelta Class Structure
36
+
37
+ #### Inheritance and initialization
38
+ - [ ] **ArbitraryLabel inheritance**: `Timedelta` inherits from `special.ArbitraryLabel`
39
+ - [ ] **Initialization**: `__init__(offset)` works correctly
40
+ - [ ] **Super call**: `super().__init__()` called appropriately
41
+ - [ ] **Offset setting**: `set_offset(offset)` called in initialization
42
+
43
+ ### 14.3 Timedelta Class Methods
44
+
45
+ #### String representation
46
+ - [ ] **`__str__` method**: Returns `self.with_units` correctly
47
+ - [ ] **String conversion**: Timedelta converts to string appropriately
48
+ - [ ] **Consistency**: String representation consistent with display format
49
+ - [ ] **Encoding**: Handles special characters in string conversion
50
+
51
+ #### `with_units` property
52
+ - [ ] **LaTeX formatting**: Returns properly formatted LaTeX string
53
+ - [ ] **Format structure**: Uses `f"${self.tex} \; [{self.units}]$"` format
54
+ - [ ] **LaTeX delimiters**: Dollar signs properly delimit LaTeX expression
55
+ - [ ] **Unit formatting**: Units enclosed in square brackets
56
+ - [ ] **Spacing**: Proper spacing (`\;`) between tex and units
57
+ - [ ] **Escape handling**: Backslash escape handled correctly (noqa comment)
58
+
59
+ ### 14.4 Offset Handling and Validation
60
+
61
+ #### `set_offset()` method (inherited/implemented)
62
+ - [ ] **Pandas offset conversion**: Uses `to_offset()` for parsing
63
+ - [ ] **String offsets**: Handles string offset specifications (e.g., "1H", "30T")
64
+ - [ ] **Pandas offset objects**: Accepts existing pandas offset objects
65
+ - [ ] **Offset validation**: Invalid offsets handled appropriately
66
+ - [ ] **Offset storage**: Parsed offsets stored correctly
67
+
68
+ #### Supported offset types
69
+ - [ ] **Common frequencies**: Handles common time frequencies
70
+ - [ ] Minutes: "T", "min"
71
+ - [ ] Hours: "H", "h"
72
+ - [ ] Days: "D"
73
+ - [ ] Seconds: "S", "s"
74
+ - [ ] **Complex offsets**: Handles composite offsets (e.g., "1H30T")
75
+ - [ ] **Custom offsets**: Handles custom time specifications
76
+
77
+ ### 14.5 LaTeX Generation and Properties
78
+
79
+ #### LaTeX (`tex`) property
80
+ - [ ] **LaTeX generation**: Generates appropriate LaTeX for time intervals
81
+ - [ ] **Mathematical notation**: Uses proper mathematical symbols
82
+ - [ ] **Time notation**: Follows standard time interval notation
83
+ - [ ] **Readability**: Generated LaTeX clear and readable
84
+
85
+ #### Units property
86
+ - [ ] **Unit specification**: Provides appropriate units for time intervals
87
+ - [ ] **Unit consistency**: Units consistent with offset specification
88
+ - [ ] **Standard units**: Uses standard time unit abbreviations
89
+ - [ ] **Unit accuracy**: Units accurately represent time intervals
90
+
91
+ ### 14.6 Integration with Pandas
92
+
93
+ #### Pandas offset compatibility
94
+ - [ ] **Offset parsing**: `to_offset()` integration works correctly
95
+ - [ ] **Error handling**: Pandas parsing errors handled appropriately
96
+ - [ ] **Frequency aliases**: Standard pandas frequency aliases supported
97
+ - [ ] **Custom frequencies**: Custom frequency specifications work
98
+
99
+ #### Time series integration
100
+ - [ ] **DataFrame compatibility**: Works with pandas DataFrame time indices
101
+ - [ ] **Time operations**: Compatible with pandas time operations
102
+ - [ ] **Resampling**: Works with pandas resampling operations
103
+ - [ ] **Period handling**: Handles time period specifications
104
+
105
+ ### 14.7 Error Handling and Validation
106
+
107
+ #### Invalid offset handling
108
+ - [ ] **Invalid strings**: Proper error handling for invalid offset strings
109
+ - [ ] **Type errors**: Handles incorrect parameter types gracefully
110
+ - [ ] **Empty offsets**: Behavior with empty or None offset parameters
111
+ - [ ] **Error messages**: Clear error messages for invalid inputs
112
+
113
+ #### Edge cases
114
+ - [ ] **Zero offsets**: Handles zero-duration time intervals
115
+ - [ ] **Negative offsets**: Behavior with negative time intervals
116
+ - [ ] **Very large offsets**: Handles extremely large time intervals
117
+ - [ ] **Very small offsets**: Handles very small time intervals (microseconds, etc.)
118
+
119
+ ### 14.8 Display and Formatting
120
+
121
+ #### Visual representation
122
+ - [ ] **Plot integration**: Labels display correctly in matplotlib plots
123
+ - [ ] **Font rendering**: LaTeX fonts render appropriately
124
+ - [ ] **Size scaling**: Labels scale properly with plot size
125
+ - [ ] **Readability**: Labels remain readable at different plot sizes
126
+
127
+ #### Format consistency
128
+ - [ ] **Standard formatting**: Follows standard time interval notation
129
+ - [ ] **Mathematical style**: Consistent with other mathematical labels
130
+ - [ ] **Unit placement**: Units placed consistently relative to values
131
+ - [ ] **Bracket usage**: Square brackets used consistently for units
132
+
133
+ ### 14.9 Integration with ArbitraryLabel
134
+
135
+ #### Inherited functionality
136
+ - [ ] **Base methods**: ArbitraryLabel methods accessible and functional
137
+ - [ ] **Property inheritance**: Base properties work correctly
138
+ - [ ] **Method overrides**: Overridden methods work as expected
139
+ - [ ] **Polymorphism**: Works correctly as ArbitraryLabel instance
140
+
141
+ #### Label system integration
142
+ - [ ] **Label collections**: Works in label collection contexts
143
+ - [ ] **Label management**: Integrates with label management systems
144
+ - [ ] **Serialization**: Serializes/deserializes if supported
145
+ - [ ] **Comparison**: Comparison operations work appropriately
146
+
147
+ ### 14.10 Path and File Integration
148
+
149
+ #### Path generation (if implemented)
150
+ - [ ] **File paths**: Generates valid file paths from time intervals
151
+ - [ ] **Path safety**: Generated paths safe for file systems
152
+ - [ ] **Path uniqueness**: Different intervals generate unique paths
153
+ - [ ] **Cross-platform**: Paths work across operating systems
154
+
155
+ ### 14.11 Performance and Memory
156
+
157
+ #### Memory efficiency
158
+ - [ ] **Object size**: Timedelta objects use memory efficiently
159
+ - [ ] **String caching**: LaTeX strings cached appropriately
160
+ - [ ] **Offset storage**: Time offsets stored efficiently
161
+ - [ ] **Cleanup**: No memory leaks with repeated creation
162
+
163
+ #### Performance characteristics
164
+ - [ ] **Creation speed**: Timedelta objects created quickly
165
+ - [ ] **String generation**: String representation generated efficiently
166
+ - [ ] **LaTeX rendering**: LaTeX generation reasonably fast
167
+ - [ ] **Pandas integration**: Pandas operations don't slow significantly
168
+
169
+ ### 14.12 Scientific Accuracy and Standards
170
+
171
+ #### Time notation standards
172
+ - [ ] **Scientific notation**: Follows scientific time notation standards
173
+ - [ ] **Unit abbreviations**: Uses standard time unit abbreviations
174
+ - [ ] **Mathematical notation**: Mathematical symbols used correctly
175
+ - [ ] **Consistency**: Notation consistent across different time scales
176
+
177
+ #### Domain relevance
178
+ - [ ] **Plasma physics**: Relevant for plasma physics time scales
179
+ - [ ] **Space science**: Appropriate for space science applications
180
+ - [ ] **Data analysis**: Suitable for time series data analysis
181
+ - [ ] **Research context**: Fits research workflow requirements
182
+
183
+ ### 14.13 Documentation and Examples
184
+
185
+ #### Documentation quality
186
+ - [ ] **Class docstring**: Clear documentation for Timedelta class
187
+ - [ ] **Method documentation**: All methods properly documented
188
+ - [ ] **Parameter documentation**: Parameters clearly described with types
189
+ - [ ] **Usage examples**: Working code examples provided
190
+
191
+ #### Examples and use cases
192
+ - [ ] **Common intervals**: Examples of common time intervals
193
+ - [ ] **Complex offsets**: Examples of complex time specifications
194
+ - [ ] **Plot integration**: Examples of usage in plotting contexts
195
+ - [ ] **Real-world usage**: Realistic usage scenarios documented
196
+
197
+ ### 14.14 Test Infrastructure
198
+
199
+ #### Test framework
200
+ - [ ] **Unit tests**: Tests for individual Timedelta methods
201
+ - [ ] **Integration tests**: Tests with pandas and matplotlib
202
+ - [ ] **Property testing**: All properties tested independently
203
+ - [ ] **Error condition testing**: Invalid inputs tested appropriately
204
+
205
+ #### Test data
206
+ - [ ] **Representative intervals**: Test data covers common time intervals
207
+ - [ ] **Edge cases**: Unusual time specifications tested
208
+ - [ ] **Invalid cases**: Invalid inputs tested for error handling
209
+ - [ ] **Scientific cases**: Time intervals relevant to scientific data
210
+
211
+ ## 🎯 Testing Strategy
212
+
213
+ ### Unit Testing Approach
214
+ - Test Timedelta initialization with various offset types
215
+ - Verify LaTeX generation for different time intervals
216
+ - Test string representation and formatting
217
+ - Validate pandas integration and error handling
218
+
219
+ ### Integration Testing
220
+ - Test Timedelta labels in actual plotting scenarios
221
+ - Verify LaTeX rendering in matplotlib contexts
222
+ - Test integration with pandas time series operations
223
+ - Validate time interval accuracy in scientific contexts
224
+
225
+ ### Edge Case Coverage
226
+ - Invalid time specifications
227
+ - Extreme time intervals (very large/small)
228
+ - Complex pandas offset expressions
229
+ - Error conditions and recovery
230
+
231
+ ### Scientific Validation
232
+ - Verify time notation follows scientific standards
233
+ - Test relevance for plasma physics time scales
234
+ - Validate integration with time series analysis workflows
235
+ - Test accuracy of time interval representations
236
+
237
+ ---
238
+
239
+ **Estimated Time**: 1.5 hours
240
+ **Dependencies**: ArbitraryLabel, pandas time series, LaTeX rendering
241
+ **Priority**: MEDIUM (Time series analysis functionality)
242
+
243
+ **Status**: ✅ COMPLETED
244
+ **Commit**: 5b47880
245
+ **Tests Added**: 50 comprehensive test cases
246
+ **Time Invested**: 1.5 hours
247
+ **Test Results**: 50/50 passing (100% success rate)
@@ -0,0 +1,274 @@
1
+ ---
2
+ name: 'Combined Plan and Checklist: Elemental Abundance Labels'
3
+ about: Unified documentation and checklist for validating elemental abundance plotting labels.
4
+ labels: [sweep, plotting, labels, elemental_abundance, ElementalAbundance]
5
+ ---
6
+
7
+ > Phase 15 of Enhanced Plotting Test Plan
8
+
9
+ ## 🧠 Context
10
+
11
+ The `solarwindpy.plotting.labels.elemental_abundance` module provides specialized labels for elemental abundance ratios, a critical component in solar wind and plasma composition analysis. The `ElementalAbundance` class handles the creation of properly formatted labels for abundance ratios relative to reference species (typically hydrogen) with optional photospheric normalization.
12
+
13
+ ### Key Components
14
+ - **ElementalAbundance Class**: Handles elemental abundance ratio labeling
15
+ - **Species Management**: Supports known plasma species with validation
16
+ - **Reference Species**: Normalization relative to reference elements
17
+ - **Photospheric Scaling**: Optional photospheric abundance normalization
18
+ - **Unit Options**: Percentage or fractional abundance units
19
+
20
+ ### Scientific Context
21
+ - Solar wind elemental composition analysis
22
+ - Abundance ratios relative to hydrogen or other reference species
23
+ - Photospheric vs. solar wind abundance comparisons
24
+ - Standardized abundance notation for scientific publications
25
+
26
+ ## 📋 Comprehensive Test Checklist
27
+
28
+ ### 15.1 Module Structure and Exports
29
+
30
+ - [ ] **Export validation**: `__all__` contains `["ElementalAbundance"]`
31
+ - [ ] **Import verification**: All required imports load correctly
32
+ - [ ] **Logging integration**: `import logging` works for debugging
33
+ - [ ] **Path integration**: `from pathlib import Path` functions properly
34
+ - [ ] **Base integration**: `from . import base` import works correctly
35
+
36
+ ### 15.2 Known Species Management
37
+
38
+ #### Species tuple definition
39
+ - [ ] **Species source**: `known_species` derived from `base._trans_species.keys()`
40
+ - [ ] **Additional species**: Includes "X" for unknown/placeholder species
41
+ - [ ] **Tuple immutability**: Species tuple immutable after definition
42
+ - [ ] **Species completeness**: Covers relevant plasma species
43
+
44
+ #### Species validation
45
+ - [ ] **Known species coverage**: Includes common solar wind elements
46
+ - [ ] **Species format**: Species names in appropriate format
47
+ - [ ] **Extension capability**: System handles additional species appropriately
48
+ - [ ] **Placeholder handling**: "X" species handled correctly
49
+
50
+ ### 15.3 ElementalAbundance Class Structure
51
+
52
+ #### Inheritance and initialization
53
+ - [ ] **Base inheritance**: `ElementalAbundance` inherits from `base.Base`
54
+ - [ ] **Initialization parameters**: `__init__(species, reference_species, pct_unit, photospheric)`
55
+ - [ ] **Parameter handling**: All parameters processed correctly
56
+ - [ ] **Default values**: Default values applied appropriately
57
+
58
+ #### Initialization logic
59
+ - [ ] **Species setting**: `set_species(species, reference_species)` called
60
+ - [ ] **Boolean conversion**: `pct_unit` and `photospheric` converted to bool
61
+ - [ ] **State storage**: Internal state stored correctly
62
+ - [ ] **Validation**: Parameters validated during initialization
63
+
64
+ ### 15.4 Core Properties
65
+
66
+ #### Species property
67
+ - [ ] **Species getter**: `@property species` returns stored species
68
+ - [ ] **Species storage**: `_species` attribute contains correct value
69
+ - [ ] **Species immutability**: Species cannot be modified after creation
70
+ - [ ] **Species type**: Species stored as appropriate type
71
+
72
+ #### Reference species property
73
+ - [ ] **Reference getter**: `@property reference_species` returns reference
74
+ - [ ] **Reference storage**: `_reference_species` stored correctly
75
+ - [ ] **Reference immutability**: Reference species protected from modification
76
+ - [ ] **Reference validation**: Reference species validated appropriately
77
+
78
+ #### Photospheric property
79
+ - [ ] **Photospheric getter**: `@property photospheric` returns boolean
80
+ - [ ] **Boolean storage**: `_photospheric` stored as boolean
81
+ - [ ] **Default handling**: Default photospheric value handled correctly
82
+ - [ ] **Type consistency**: Always returns boolean type
83
+
84
+ ### 15.5 Species Validation and Setting
85
+
86
+ #### `set_species()` method
87
+ - [ ] **Species validation**: Both species and reference validated
88
+ - [ ] **Known species check**: Unknown species handled appropriately
89
+ - [ ] **Species storage**: Valid species stored in instance attributes
90
+ - [ ] **Error handling**: Invalid species combinations handled gracefully
91
+
92
+ #### Species compatibility
93
+ - [ ] **Self-reference check**: Prevents species being its own reference
94
+ - [ ] **Species existence**: Validates species exist in known list
95
+ - [ ] **Case handling**: Proper case handling for species names
96
+ - [ ] **Special species**: "X" placeholder species handled correctly
97
+
98
+ ### 15.6 Label Generation and Formatting
99
+
100
+ #### LaTeX generation (if implemented)
101
+ - [ ] **Abundance notation**: Generates proper abundance ratio notation
102
+ - [ ] **Species formatting**: Species names formatted correctly in LaTeX
103
+ - [ ] **Reference notation**: Reference species notation appropriate
104
+ - [ ] **Mathematical formatting**: Ratio notation mathematically correct
105
+
106
+ #### Units handling
107
+ - [ ] **Percentage units**: `pct_unit=True` generates percentage notation
108
+ - [ ] **Fractional units**: `pct_unit=False` generates fractional notation
109
+ - [ ] **Unit consistency**: Units consistent with abundance type
110
+ - [ ] **Scientific notation**: Follows standard abundance notation
111
+
112
+ ### 15.7 Photospheric Normalization
113
+
114
+ #### Normalization logic
115
+ - [ ] **Photospheric flag**: `photospheric=True` enables normalization
116
+ - [ ] **Non-photospheric**: `photospheric=False` uses raw abundances
117
+ - [ ] **Normalization indication**: Labels indicate normalization status
118
+ - [ ] **Scientific accuracy**: Normalization scientifically appropriate
119
+
120
+ #### Reference scaling
121
+ - [ ] **Photospheric values**: Access to photospheric abundance values
122
+ - [ ] **Scaling factors**: Correct scaling factors applied
123
+ - [ ] **Reference consistency**: Consistent reference across normalizations
124
+ - [ ] **Unit preservation**: Units maintained through normalization
125
+
126
+ ### 15.8 Path and File Integration
127
+
128
+ #### Path generation (if implemented)
129
+ - [ ] **Path creation**: Generates valid Path objects for file naming
130
+ - [ ] **Species encoding**: Species names encoded safely for file systems
131
+ - [ ] **Reference encoding**: Reference species encoded in paths
132
+ - [ ] **Uniqueness**: Different abundance ratios generate unique paths
133
+
134
+ #### File system compatibility
135
+ - [ ] **Cross-platform paths**: Paths work across operating systems
136
+ - [ ] **Special character handling**: Handles special characters safely
137
+ - [ ] **Path length**: Generated paths reasonable length
138
+ - [ ] **Collision avoidance**: Avoids path collisions
139
+
140
+ ### 15.9 Integration with Base Classes
141
+
142
+ #### Base class integration
143
+ - [ ] **Logger access**: Inherits logging functionality from base
144
+ - [ ] **Base methods**: Base class methods accessible and functional
145
+ - [ ] **Property inheritance**: Base properties work correctly
146
+ - [ ] **Initialization chain**: Base initialization called appropriately
147
+
148
+ #### Method inheritance
149
+ - [ ] **Inherited functionality**: Base class functionality preserved
150
+ - [ ] **Method overrides**: Overridden methods work correctly
151
+ - [ ] **Polymorphism**: Works as Base instance where expected
152
+ - [ ] **Interface compatibility**: Compatible with base class interface
153
+
154
+ ### 15.10 Error Handling and Validation
155
+
156
+ #### Parameter validation
157
+ - [ ] **Invalid species**: Handles unknown species gracefully
158
+ - [ ] **Invalid reference**: Handles invalid reference species
159
+ - [ ] **Type validation**: Validates parameter types appropriately
160
+ - [ ] **Value validation**: Validates parameter values
161
+
162
+ #### Error conditions
163
+ - [ ] **Self-reference error**: Prevents species referencing itself
164
+ - [ ] **Missing species error**: Handles missing species appropriately
165
+ - [ ] **Invalid combinations**: Prevents invalid species combinations
166
+ - [ ] **Clear error messages**: Provides informative error messages
167
+
168
+ ### 15.11 Scientific Accuracy and Standards
169
+
170
+ #### Abundance notation standards
171
+ - [ ] **Scientific notation**: Follows standard abundance notation
172
+ - [ ] **Ratio representation**: Ratios represented correctly
173
+ - [ ] **Unit standards**: Units follow scientific conventions
174
+ - [ ] **Reference standards**: Reference species choices appropriate
175
+
176
+ #### Domain relevance
177
+ - [ ] **Solar wind context**: Relevant for solar wind composition
178
+ - [ ] **Plasma physics**: Appropriate for plasma composition analysis
179
+ - [ ] **Comparative studies**: Suitable for abundance comparisons
180
+ - [ ] **Publication quality**: Labels suitable for scientific publications
181
+
182
+ ### 15.12 Performance and Memory
183
+
184
+ #### Memory efficiency
185
+ - [ ] **Object size**: ElementalAbundance objects use memory efficiently
186
+ - [ ] **Species storage**: Species names stored without duplication
187
+ - [ ] **Reference caching**: Reference values cached appropriately
188
+ - [ ] **Cleanup**: No memory leaks with repeated creation
189
+
190
+ #### Performance characteristics
191
+ - [ ] **Creation speed**: Objects created quickly
192
+ - [ ] **Property access**: Properties accessed efficiently
193
+ - [ ] **Label generation**: Label generation reasonably fast
194
+ - [ ] **Validation speed**: Species validation doesn't slow operations
195
+
196
+ ### 15.13 Integration with Plotting Systems
197
+
198
+ #### Label system integration
199
+ - [ ] **Plot labeling**: Works correctly in plot axis labeling
200
+ - [ ] **Legend integration**: Functions in plot legends
201
+ - [ ] **Colorbar labeling**: Works for colorbar labels if applicable
202
+ - [ ] **Title generation**: Can be used in plot titles
203
+
204
+ #### Matplotlib compatibility
205
+ - [ ] **Rendering**: Labels render correctly in matplotlib
206
+ - [ ] **Font handling**: Fonts render appropriately
207
+ - [ ] **Mathematical notation**: Mathematical elements display correctly
208
+ - [ ] **Size scaling**: Labels scale appropriately with plot size
209
+
210
+ ### 15.14 Documentation and Examples
211
+
212
+ #### Documentation quality
213
+ - [ ] **Class docstring**: Clear documentation for ElementalAbundance
214
+ - [ ] **Method documentation**: All methods properly documented
215
+ - [ ] **Parameter documentation**: Parameters clearly described
216
+ - [ ] **Usage examples**: Working code examples provided
217
+
218
+ #### Scientific documentation
219
+ - [ ] **Abundance concepts**: Documentation explains abundance concepts
220
+ - [ ] **Reference choice**: Guidance on reference species selection
221
+ - [ ] **Normalization**: Photospheric normalization explained
222
+ - [ ] **Use cases**: Common use cases documented
223
+
224
+ ### 15.15 Test Infrastructure
225
+
226
+ #### Test framework
227
+ - [ ] **Unit tests**: Tests for individual methods and properties
228
+ - [ ] **Integration tests**: Tests with plotting systems
229
+ - [ ] **Validation tests**: Tests for species and parameter validation
230
+ - [ ] **Error condition tests**: Tests for error handling
231
+
232
+ #### Test data
233
+ - [ ] **Representative abundances**: Test data covers common abundance ratios
234
+ - [ ] **Edge cases**: Unusual species combinations tested
235
+ - [ ] **Invalid cases**: Invalid inputs tested for error handling
236
+ - [ ] **Scientific cases**: Scientifically relevant abundance ratios tested
237
+
238
+ ## 🎯 Testing Strategy
239
+
240
+ ### Unit Testing Approach
241
+ - Test ElementalAbundance initialization with various parameter combinations
242
+ - Verify species validation and error handling
243
+ - Test property access and immutability
244
+ - Validate photospheric normalization logic
245
+
246
+ ### Scientific Validation
247
+ - Verify abundance notation follows scientific standards
248
+ - Test relevance for solar wind composition analysis
249
+ - Validate reference species choices and ratios
250
+ - Test photospheric normalization accuracy
251
+
252
+ ### Integration Testing
253
+ - Test ElementalAbundance labels in plotting contexts
254
+ - Verify integration with matplotlib rendering
255
+ - Test file path generation and usage
256
+ - Validate interaction with other label systems
257
+
258
+ ### Edge Case Coverage
259
+ - Invalid species combinations
260
+ - Self-referencing species
261
+ - Extreme abundance values
262
+ - Boundary conditions in normalization
263
+
264
+ ---
265
+
266
+ **Estimated Time**: 2 hours
267
+ **Dependencies**: Base classes, species translation tables
268
+ **Priority**: MEDIUM (Scientific composition analysis functionality)
269
+
270
+ **Status**: ✅ COMPLETED
271
+ **Commit**: 5b47880
272
+ **Tests Added**: 38 comprehensive test cases
273
+ **Time Invested**: 2 hours
274
+ **Test Results**: 38/38 passing (100% success rate)