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,212 @@
1
+ ---
2
+ name: 'Combined Plan and Checklist: Chemistry Labels'
3
+ about: Unified documentation and checklist for validating chemistry-related plotting labels.
4
+ labels: [sweep, plotting, labels, chemistry, ManualLabel]
5
+ ---
6
+
7
+ > Phase 12 of Enhanced Plotting Test Plan
8
+
9
+ ## 🧠 Context
10
+
11
+ The `solarwindpy.plotting.labels.chemistry` module provides specialized labels for chemistry-related quantities commonly used in plasma physics and space science visualizations. The module defines standardized labels with proper LaTeX formatting for mass-to-charge ratios, first ionization potentials, charges, and masses.
12
+
13
+ ### Key Components
14
+ - **Mass-to-Charge Ratio**: `mass_per_charge` label with AMU/e units
15
+ - **First Ionization Potential**: `fip` label with eV units
16
+ - **Ion Charge**: `charge` label with elementary charge units
17
+ - **Ion Mass**: `mass` label with atomic mass units
18
+
19
+ ### Dependencies
20
+ - Imports `ManualLabel` from `special` module
21
+ - Relies on LaTeX formatting for mathematical expressions
22
+ - Uses standardized path naming for file output
23
+
24
+ ## 📋 Comprehensive Test Checklist
25
+
26
+ ### 12.1 Module Structure and Imports
27
+
28
+ - [x] **Import verification**: `from .special import ManualLabel` works correctly
29
+ - [x] **Module accessibility**: Chemistry labels module imports successfully
30
+ - [x] **ManualLabel availability**: `ManualLabel` class accessible and functional
31
+
32
+ ### 12.2 Mass-to-Charge Ratio Label (`mass_per_charge`)
33
+
34
+ #### Label properties
35
+ - [ ] **LaTeX label**: Correct LaTeX formatting `r"\mathrm{M/Q}"`
36
+ - [ ] **Units**: Proper units string `r"\mathrm{AMU \, e^{-1}}"`
37
+ - [ ] **Path**: Valid path string `"M-OV-Q"`
38
+ - [ ] **ManualLabel creation**: Successfully creates ManualLabel instance
39
+
40
+ #### Label validation
41
+ - [ ] **LaTeX rendering**: LaTeX expressions render correctly in matplotlib
42
+ - [ ] **Unit formatting**: Units display properly with spacing and formatting
43
+ - [ ] **Path handling**: Path string valid for file naming conventions
44
+ - [ ] **Immutability**: Label properties remain constant after creation
45
+
46
+ ### 12.3 First Ionization Potential Label (`fip`)
47
+
48
+ #### Label properties
49
+ - [ ] **LaTeX label**: Correct LaTeX formatting `r"\mathrm{FIP}"`
50
+ - [ ] **Units**: Proper units string `r"\mathrm{eV}"`
51
+ - [ ] **Path**: Valid path string `"FIP"`
52
+ - [ ] **ManualLabel creation**: Successfully creates ManualLabel instance
53
+
54
+ #### Label validation
55
+ - [ ] **LaTeX rendering**: FIP label renders correctly
56
+ - [ ] **Unit consistency**: eV units appropriate for ionization potential
57
+ - [ ] **Path simplicity**: Simple path name appropriate for FIP
58
+ - [ ] **Scientific accuracy**: Label represents first ionization potential correctly
59
+
60
+ ### 12.4 Ion Charge Label (`charge`)
61
+
62
+ #### Label properties
63
+ - [ ] **LaTeX label**: Correct LaTeX formatting `r"\mathrm{Q}"`
64
+ - [ ] **Units**: Proper units string `r"\mathrm{e}"`
65
+ - [ ] **Path**: Valid path string `"IonCharge"`
66
+ - [ ] **ManualLabel creation**: Successfully creates ManualLabel instance
67
+
68
+ #### Label validation
69
+ - [ ] **LaTeX rendering**: Charge symbol Q renders correctly
70
+ - [ ] **Unit representation**: Elementary charge unit 'e' displayed properly
71
+ - [ ] **Path descriptiveness**: "IonCharge" path clearly identifies quantity
72
+ - [ ] **Physics accuracy**: Represents ion charge state correctly
73
+
74
+ ### 12.5 Ion Mass Label (`mass`)
75
+
76
+ #### Label properties
77
+ - [ ] **LaTeX label**: Correct LaTeX formatting `r"\mathrm{M}"`
78
+ - [ ] **Units**: Proper units string `r"\mathrm{AMU}"`
79
+ - [ ] **Path**: Valid path string `"IonMass"`
80
+ - [ ] **ManualLabel creation**: Successfully creates ManualLabel instance
81
+
82
+ #### Label validation
83
+ - [ ] **LaTeX rendering**: Mass symbol M renders correctly
84
+ - [ ] **Unit accuracy**: AMU (atomic mass unit) appropriate for ion mass
85
+ - [ ] **Path clarity**: "IonMass" path clearly identifies quantity
86
+ - [ ] **Consistency**: Consistent with mass_per_charge mass component
87
+
88
+ ### 12.6 Cross-Label Consistency
89
+
90
+ #### Unit consistency
91
+ - [ ] **Mass units**: AMU used consistently across mass-related labels
92
+ - [ ] **Charge units**: Elementary charge 'e' used consistently
93
+ - [ ] **LaTeX style**: Consistent `\mathrm{}` formatting across labels
94
+ - [ ] **Path naming**: Consistent naming convention for paths
95
+
96
+ #### Mathematical relationships
97
+ - [ ] **M/Q consistency**: mass_per_charge relates correctly to mass and charge
98
+ - [ ] **Unit relationships**: Units mathematically consistent (AMU/e = AMU e^-1)
99
+ - [ ] **Scientific relationships**: Labels represent physically related quantities
100
+
101
+ ### 12.7 Integration with ManualLabel
102
+
103
+ #### ManualLabel functionality
104
+ - [ ] **Proper inheritance**: Labels inherit all ManualLabel capabilities
105
+ - [ ] **Method access**: ManualLabel methods accessible on chemistry labels
106
+ - [ ] **Property access**: ManualLabel properties work correctly
107
+ - [ ] **Serialization**: Labels serialize/deserialize properly if supported
108
+
109
+ #### Label behavior
110
+ - [ ] **String representation**: Labels convert to strings appropriately
111
+ - [ ] **Plotting integration**: Labels work correctly in plotting contexts
112
+ - [ ] **File path usage**: Path strings work for file naming and organization
113
+
114
+ ### 12.8 LaTeX and Mathematical Formatting
115
+
116
+ #### LaTeX syntax validation
117
+ - [ ] **Syntax correctness**: All LaTeX expressions syntactically valid
118
+ - [ ] **Rendering quality**: Labels render clearly in matplotlib plots
119
+ - [ ] **Font consistency**: Mathematical formatting consistent across labels
120
+ - [ ] **Special characters**: Proper handling of superscripts, subscripts
121
+
122
+ #### Mathematical notation
123
+ - [ ] **Standard notation**: Uses standard scientific notation conventions
124
+ - [ ] **Readability**: Labels clear and readable in plot contexts
125
+ - [ ] **Professional quality**: Publication-quality label formatting
126
+
127
+ ### 12.9 Error Handling and Validation
128
+
129
+ #### Invalid usage
130
+ - [ ] **Modification attempts**: Proper handling of attempts to modify labels
131
+ - [ ] **Invalid access**: Graceful handling of invalid property access
132
+ - [ ] **Type consistency**: Labels maintain correct types
133
+
134
+ #### Edge cases
135
+ - [ ] **Empty contexts**: Labels work in various plotting contexts
136
+ - [ ] **Multiple usage**: Labels can be used multiple times without issues
137
+ - [ ] **Memory efficiency**: Labels don't create memory leaks with repeated use
138
+
139
+ ### 12.10 Performance and Memory
140
+
141
+ #### Memory usage
142
+ - [ ] **Efficient storage**: Labels stored efficiently in memory
143
+ - [ ] **No duplication**: No unnecessary duplication of label data
144
+ - [ ] **Cleanup**: Proper cleanup when labels no longer needed
145
+
146
+ #### Performance characteristics
147
+ - [ ] **Fast access**: Label properties accessed quickly
148
+ - [ ] **Rendering speed**: Labels render efficiently in plots
149
+ - [ ] **Scalability**: Performance maintained with many labels
150
+
151
+ ### 12.11 Documentation and Usage
152
+
153
+ #### Documentation quality
154
+ - [ ] **Module docstring**: Clear module-level documentation
155
+ - [ ] **Label descriptions**: Each label clearly documented
156
+ - [ ] **Usage examples**: Examples of label usage in plotting
157
+ - [ ] **Scientific context**: Documentation explains scientific meaning
158
+
159
+ #### Usability
160
+ - [ ] **Intuitive names**: Label variable names intuitive and clear
161
+ - [ ] **Easy access**: Labels easily accessible from chemistry module
162
+ - [ ] **Integration examples**: Examples of integration with plotting functions
163
+
164
+ ### 12.12 Test Infrastructure
165
+
166
+ #### Test setup
167
+ - [ ] **Label fixtures**: Reusable fixtures for chemistry labels
168
+ - [ ] **LaTeX testing**: Framework for testing LaTeX rendering
169
+ - [ ] **Integration testing**: Tests with actual plotting functions
170
+ - [ ] **Regression testing**: Tests prevent label changes breaking plots
171
+
172
+ #### Test coverage
173
+ - [ ] **All labels tested**: Every chemistry label tested individually
174
+ - [ ] **Property testing**: All label properties validated
175
+ - [ ] **Integration testing**: Labels tested in realistic plotting scenarios
176
+ - [ ] **Error condition testing**: Invalid usage scenarios tested
177
+
178
+ ## 🎯 Testing Strategy
179
+
180
+ ### Unit Testing Approach
181
+ - Test each chemistry label independently
182
+ - Verify LaTeX syntax and rendering
183
+ - Validate ManualLabel integration
184
+ - Test label properties and immutability
185
+
186
+ ### Integration Testing
187
+ - Test labels in actual plotting contexts
188
+ - Verify labels work with axes formatting
189
+ - Test file path usage in save operations
190
+ - Validate scientific accuracy of representations
191
+
192
+ ### Visual Testing (Future)
193
+ - Render labels in plots and verify appearance
194
+ - Test LaTeX rendering across different backends
195
+ - Verify font consistency and readability
196
+
197
+ ### Edge Case Coverage
198
+ - Invalid modification attempts
199
+ - Unusual plotting contexts
200
+ - Memory and performance stress testing
201
+
202
+ ---
203
+
204
+ **Status**: ✅ COMPLETED
205
+ **Commit**: 5b47880
206
+ **Tests Added**: 20 comprehensive test cases
207
+ **Time Invested**: 1 hour
208
+ **Test Results**: 20/20 passing (100% success rate)
209
+
210
+ **Estimated Time**: 1 hour
211
+ **Dependencies**: ManualLabel class, LaTeX rendering
212
+ **Priority**: MEDIUM (Domain-specific label functionality)
@@ -0,0 +1,242 @@
1
+ ---
2
+ name: 'Combined Plan and Checklist: Composition Labels'
3
+ about: Unified documentation and checklist for validating composition-related plotting labels.
4
+ labels: [sweep, plotting, labels, composition, Ion, ChargeState]
5
+ ---
6
+
7
+ > Phase 13 of Enhanced Plotting Test Plan
8
+
9
+ ## 🧠 Context
10
+
11
+ The `solarwindpy.plotting.labels.composition` module provides specialized labels for plasma composition analysis, including ion species and charge state representations. The module defines classes for representing individual ions with their charge states and provides LaTeX formatting for scientific notation in plots.
12
+
13
+ ### Key Components
14
+ - **Ion Class**: Represents individual ion species with charge states
15
+ - **ChargeState Class**: Specialized charge state representations
16
+ - **Known Species**: Predefined list of common plasma species
17
+ - **LaTeX Formatting**: Automatic LaTeX generation for ion notation
18
+
19
+ ### Scientific Context
20
+ - Common plasma species: C, Fe, He, Mg, Ne, N, O, Si, S
21
+ - Ion charge state notation (e.g., O^6+, Fe^10+)
22
+ - Path-safe naming for file outputs
23
+ - Integration with base plotting infrastructure
24
+
25
+ ## 📋 Comprehensive Test Checklist
26
+
27
+ ### 13.1 Module Structure and Exports
28
+
29
+ - [ ] **Export validation**: `__all__` contains `["Ion", "ChargeState"]`
30
+ - [ ] **Import verification**: `from . import base` works correctly
31
+ - [ ] **Path integration**: `from pathlib import Path` functions properly
32
+ - [ ] **Debug import**: `import pdb` present for development (noqa handled)
33
+
34
+ ### 13.2 Known Species Definition
35
+
36
+ #### Species list validation
37
+ - [ ] **Species tuple**: `known_species` contains expected plasma species
38
+ - [ ] **Species completeness**: Common plasma species included (C, Fe, He, Mg, Ne, N, O, Si, S)
39
+ - [ ] **Species format**: Species names properly capitalized
40
+ - [ ] **Immutability**: Species tuple immutable after definition
41
+
42
+ #### Species coverage
43
+ - [ ] **Solar wind species**: Major solar wind species represented
44
+ - [ ] **Plasma physics relevance**: Species relevant to space plasma research
45
+ - [ ] **Extensibility**: System can handle unknown species with warnings
46
+
47
+ ### 13.3 Ion Class Structure
48
+
49
+ #### Inheritance and initialization
50
+ - [ ] **Base inheritance**: `Ion` properly inherits from `base.Base`
51
+ - [ ] **Initialization**: `__init__(species, charge)` works correctly
52
+ - [ ] **Super call**: `super().__init__()` called appropriately
53
+ - [ ] **Species/charge setting**: `set_species_charge(species, charge)` called in init
54
+
55
+ ### 13.4 Ion Class Properties
56
+
57
+ #### Species property
58
+ - [ ] **Species getter**: `@property species` returns correct species
59
+ - [ ] **Species storage**: `_species` attribute stores species correctly
60
+ - [ ] **Species immutability**: Species cannot be directly modified
61
+ - [ ] **Species type**: Species stored as expected type (string)
62
+
63
+ #### Charge property
64
+ - [ ] **Charge getter**: `@property charge` returns correct charge
65
+ - [ ] **Charge storage**: `_charge` attribute stores charge correctly
66
+ - [ ] **Charge immutability**: Charge cannot be directly modified
67
+ - [ ] **Charge format**: Charge stored in appropriate format
68
+
69
+ #### LaTeX representation
70
+ - [ ] **LaTeX property**: `@property tex` generates correct LaTeX
71
+ - [ ] **LaTeX format**: Format `"{species}^{charge}"` applied correctly
72
+ - [ ] **LaTeX rendering**: Generated LaTeX renders properly in matplotlib
73
+ - [ ] **Special characters**: Handles superscripts and charge signs correctly
74
+
75
+ #### Units property
76
+ - [ ] **Units definition**: `@property units` returns `"\#"`
77
+ - [ ] **Units meaning**: Hash symbol appropriate for count/number units
78
+ - [ ] **Escape handling**: Backslash escape handled correctly (noqa comment)
79
+ - [ ] **Units consistency**: Units consistent across ion instances
80
+
81
+ #### Path property
82
+ - [ ] **Path generation**: `@property path` creates valid Path object
83
+ - [ ] **Path format**: Format `species_charge` with character replacement
84
+ - [ ] **Character replacement**: Plus/minus signs replaced (+ → p, - → m)
85
+ - [ ] **File safety**: Generated paths safe for filesystem use
86
+
87
+ ### 13.5 Species and Charge Validation
88
+
89
+ #### `set_species_charge()` method
90
+ - [ ] **Species capitalization**: `species.title()` applied correctly
91
+ - [ ] **Known species check**: Warning logged for unknown species
92
+ - [ ] **Species validation**: Known species processed without warnings
93
+ - [ ] **Species storage**: Valid species stored in `_species`
94
+
95
+ #### Charge validation logic
96
+ - [ ] **Charge parsing**: `int(charge)` conversion attempted
97
+ - [ ] **Valid charge handling**: Integer charges processed correctly
98
+ - [ ] **Invalid charge detection**: `ValueError` caught for invalid charges
99
+ - [ ] **Invalid charge flag**: `invalid_charge` flag set appropriately
100
+
101
+ ### 13.6 Error Handling and Logging
102
+
103
+ #### Warning system
104
+ - [ ] **Unknown species warning**: Appropriate warning for unknown species
105
+ - [ ] **Logger access**: `self.logger` accessible from base class
106
+ - [ ] **Warning format**: Warning message format clear and informative
107
+ - [ ] **Warning level**: Warning level appropriate for unknown species
108
+
109
+ #### Error conditions
110
+ - [ ] **Invalid charge handling**: Proper handling of non-integer charges
111
+ - [ ] **Empty species**: Behavior with empty or None species
112
+ - [ ] **Empty charge**: Behavior with empty or None charge
113
+ - [ ] **Type errors**: Graceful handling of incorrect parameter types
114
+
115
+ ### 13.7 ChargeState Class (if implemented)
116
+
117
+ #### Class structure
118
+ - [ ] **Class existence**: `ChargeState` class defined and accessible
119
+ - [ ] **Base inheritance**: Proper inheritance structure
120
+ - [ ] **Initialization**: Constructor works correctly
121
+ - [ ] **Functionality**: Core functionality implemented
122
+
123
+ #### Integration with Ion
124
+ - [ ] **Compatibility**: `ChargeState` works with `Ion` class
125
+ - [ ] **Shared functionality**: Common functionality properly shared
126
+ - [ ] **Distinct features**: Unique `ChargeState` features work correctly
127
+
128
+ ### 13.8 LaTeX Integration and Formatting
129
+
130
+ #### LaTeX generation
131
+ - [ ] **Syntax correctness**: Generated LaTeX syntactically correct
132
+ - [ ] **Rendering quality**: LaTeX renders clearly in plots
133
+ - [ ] **Mathematical notation**: Proper superscript formatting for charges
134
+ - [ ] **Font consistency**: Consistent with other label formatting
135
+
136
+ #### Special formatting cases
137
+ - [ ] **Positive charges**: Positive charges formatted correctly (e.g., ^6+)
138
+ - [ ] **Negative charges**: Negative charges formatted correctly (e.g., ^1-)
139
+ - [ ] **Neutral species**: Zero charge handled appropriately
140
+ - [ ] **Multi-digit charges**: Multi-digit charges display correctly
141
+
142
+ ### 13.9 File Path Integration
143
+
144
+ #### Path generation
145
+ - [ ] **Path object creation**: `Path` objects created correctly
146
+ - [ ] **Character substitution**: Safe character substitution for file systems
147
+ - [ ] **Path uniqueness**: Different ions generate unique paths
148
+ - [ ] **Path validity**: Paths valid across different operating systems
149
+
150
+ #### File system compatibility
151
+ - [ ] **Cross-platform**: Paths work on Windows, macOS, Linux
152
+ - [ ] **Special characters**: No invalid filesystem characters in paths
153
+ - [ ] **Path length**: Generated paths reasonable length
154
+ - [ ] **Collision avoidance**: Different ions don't generate identical paths
155
+
156
+ ### 13.10 Integration with Base Classes
157
+
158
+ #### Base class integration
159
+ - [ ] **Logger access**: Inherits logger functionality from base
160
+ - [ ] **Base methods**: Base class methods accessible and functional
161
+ - [ ] **Initialization chain**: Initialization chain works correctly
162
+ - [ ] **Property inheritance**: Base properties accessible if applicable
163
+
164
+ ### 13.11 Performance and Memory
165
+
166
+ #### Memory efficiency
167
+ - [ ] **Object size**: Ion objects use memory efficiently
168
+ - [ ] **String caching**: LaTeX strings generated efficiently
169
+ - [ ] **Path caching**: Path objects cached appropriately
170
+ - [ ] **Cleanup**: No memory leaks with repeated Ion creation
171
+
172
+ #### Performance characteristics
173
+ - [ ] **Creation speed**: Ion objects created quickly
174
+ - [ ] **Property access**: Properties accessed efficiently
175
+ - [ ] **LaTeX generation**: LaTeX generation reasonably fast
176
+ - [ ] **Scalability**: Performance maintained with many Ion objects
177
+
178
+ ### 13.12 Documentation and Usage
179
+
180
+ #### Documentation quality
181
+ - [ ] **Class docstrings**: Clear documentation for Ion class
182
+ - [ ] **Method documentation**: All methods properly documented
183
+ - [ ] **Property documentation**: Properties clearly explained
184
+ - [ ] **Usage examples**: Examples of Ion usage provided
185
+
186
+ #### Scientific accuracy
187
+ - [ ] **Notation standards**: Ion notation follows scientific standards
188
+ - [ ] **Species accuracy**: Species symbols scientifically correct
189
+ - [ ] **Charge representation**: Charge notation follows conventions
190
+ - [ ] **Physical meaning**: Labels represent physical quantities correctly
191
+
192
+ ### 13.13 Test Infrastructure
193
+
194
+ #### Test framework
195
+ - [ ] **Unit test structure**: Tests for individual Ion methods
196
+ - [ ] **Property testing**: All properties tested independently
197
+ - [ ] **Integration testing**: Ion objects tested in plotting contexts
198
+ - [ ] **Error condition testing**: Invalid inputs tested appropriately
199
+
200
+ #### Test data
201
+ - [ ] **Representative ions**: Test data covers common plasma ions
202
+ - [ ] **Edge cases**: Unusual species and charge states tested
203
+ - [ ] **Invalid cases**: Invalid inputs tested for proper error handling
204
+ - [ ] **Performance cases**: Large numbers of ions tested
205
+
206
+ ## 🎯 Testing Strategy
207
+
208
+ ### Unit Testing Approach
209
+ - Test Ion class initialization and properties independently
210
+ - Verify LaTeX generation for various ion species and charges
211
+ - Test species validation and warning system
212
+ - Validate path generation and character substitution
213
+
214
+ ### Integration Testing
215
+ - Test Ion objects in actual plotting scenarios
216
+ - Verify LaTeX rendering in matplotlib contexts
217
+ - Test file path usage in save operations
218
+ - Validate integration with other label systems
219
+
220
+ ### Scientific Validation
221
+ - Verify ion notation follows scientific conventions
222
+ - Test species coverage for relevant plasma physics applications
223
+ - Validate charge state representations
224
+ - Test integration with plasma composition analysis workflows
225
+
226
+ ### Edge Case Coverage
227
+ - Unknown species handling
228
+ - Invalid charge states
229
+ - Extreme charge values
230
+ - Special formatting cases
231
+
232
+ ---
233
+
234
+ **Status**: ✅ COMPLETED
235
+ **Commit**: 5b47880
236
+ **Tests Added**: 37 comprehensive test cases
237
+ **Time Invested**: 1.5 hours
238
+ **Test Results**: 37/37 passing (100% success rate)
239
+
240
+ **Estimated Time**: 1.5 hours
241
+ **Dependencies**: Base label classes, pathlib, LaTeX rendering
242
+ **Priority**: MEDIUM (Domain-specific composition functionality)