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.
- plans/.velocity/metrics.json +96 -0
- plans/0-overview-template.md +268 -0
- plans/N-phase-template.md +106 -0
- plans/PLAN_AUDIT_SUMMARY.md +173 -0
- plans/TEMPLATE-USAGE-GUIDE.md +198 -0
- plans/__init__.py +1 -0
- plans/abandoned/compaction-agent-system/0-Overview.md +123 -0
- plans/abandoned/compaction-agent-system/agents-index-update-plan.md +109 -0
- plans/abandoned/compaction-agent-system/compacted_state.md +85 -0
- plans/abandoned/compaction-agent-system/implementation-plan.md +107 -0
- plans/abandoned/compaction-agent-system/system-validation-report.md +159 -0
- plans/abandoned/compaction-agent-system/usage-guide.md +210 -0
- plans/abandoned/hook-system-enhancement/0-Overview.md +214 -0
- plans/abandoned/hook-system-enhancement/1-Phase1-Core-Infrastructure.md +313 -0
- plans/abandoned/hook-system-enhancement/2-Phase2-Intelligent-Testing.md +385 -0
- plans/abandoned/hook-system-enhancement/3-Phase3-Physics-Validation.md +444 -0
- plans/abandoned/hook-system-enhancement/4-Phase4-Performance-Monitoring.md +458 -0
- plans/abandoned/hook-system-enhancement/5-Phase5-Developer-Experience.md +532 -0
- plans/abandoned/hook-system-enhancement/6-Implementation-Timeline.md +274 -0
- plans/abandoned/hook-system-enhancement/7-Risk-Management.md +376 -0
- plans/abandoned/hook-system-enhancement/8-Testing-Strategy.md +579 -0
- plans/abandoned/readthedocs-automation/0-Overview.md +247 -0
- plans/abandoned/readthedocs-automation/1-Emergency-Documentation-Fixes.md +270 -0
- plans/abandoned/readthedocs-automation/2-Template-System-Enhancement.md +811 -0
- plans/abandoned/readthedocs-automation/3-Quality-Audit-ReadTheDocs-Integration.md +844 -0
- plans/abandoned/readthedocs-automation/4-Plan-Consolidation-Cleanup.md +632 -0
- plans/abandoned/readthedocs-automation/9-Closeout.md +207 -0
- plans/abandoned/readthedocs-automation/ABANDONMENT_REASON.md +72 -0
- plans/cicd-architecture-redesign/0-Overview.md +193 -0
- plans/cicd-architecture-redesign/1-Workflow-Creation.md +103 -0
- plans/cicd-architecture-redesign/2-Version-Detection.md +123 -0
- plans/cicd-architecture-redesign/3-Deployment-Gates.md +169 -0
- plans/cicd-architecture-redesign/4-RC-Testing.md +194 -0
- plans/cicd-architecture-redesign/5-TestPyPI-Validation.md +264 -0
- plans/cicd-architecture-redesign/6-Production-Release.md +263 -0
- plans/cicd-architecture-redesign/7-Cleanup.md +243 -0
- plans/cicd-architecture-redesign/8-Documentation.md +285 -0
- plans/cicd-architecture-redesign/Closeout.md +225 -0
- plans/closeout-template.md +259 -0
- plans/completed/circular-import-audit/0-Overview.md +152 -0
- plans/completed/circular-import-audit/1-Static-Dependency-Analysis.md +62 -0
- plans/completed/circular-import-audit/2-Dynamic-Import-Testing.md +56 -0
- plans/completed/circular-import-audit/3-Performance-Impact-Assessment.md +56 -0
- plans/completed/circular-import-audit/4-Issue-Remediation.md +78 -0
- plans/completed/circular-import-audit/5-Preventive-Infrastructure.md +89 -0
- plans/completed/claude-settings-ecosystem-alignment/0-Overview.md +162 -0
- plans/completed/claude-settings-ecosystem-alignment/1-Security-Foundation.md +148 -0
- plans/completed/claude-settings-ecosystem-alignment/2-Hook-Integration.md +158 -0
- plans/completed/claude-settings-ecosystem-alignment/3-Agent-System-Integration.md +177 -0
- plans/completed/claude-settings-ecosystem-alignment/4-Enhanced-Workflow-Automation.md +159 -0
- plans/completed/claude-settings-ecosystem-alignment/5-Validation-Monitoring.md +181 -0
- plans/completed/claude-settings-ecosystem-alignment/compacted_session_state.md +290 -0
- plans/completed/combined_plan_with_checklist_documentation/1-Overview-and-Goals.md +51 -0
- plans/completed/combined_plan_with_checklist_documentation/2-Toolchain-and-Hosting.md +69 -0
- plans/completed/combined_plan_with_checklist_documentation/3-Repository-Structure.md +61 -0
- plans/completed/combined_plan_with_checklist_documentation/4-Configuration-and-Standards.md +70 -0
- plans/completed/combined_plan_with_checklist_documentation/5-Documentation-Content.md +62 -0
- plans/completed/combined_plan_with_checklist_documentation/6-CI-CD-and-Validation.md +58 -0
- plans/completed/combined_plan_with_checklist_documentation/7-Maintenance.md +55 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/0-Overview.md +135 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/1-Common-fixtures.md +59 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/10-power_laws.md +56 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/2-core.py-FitFunction.md +118 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/3-gaussians.py-Gaussian-GaussianNormalized-GaussianLn.md +69 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/4-trend_fits.py-TrendFit.md +99 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/5-plots.py-FFPlot.md +98 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/6-tex_info.py-TeXinfo.md +79 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/7-Justification.md +49 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/8-exponentials.md +64 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/9-lines.md +58 -0
- plans/completed/combined_test_plan_with_checklist_plotting/0-Overview.md +142 -0
- plans/completed/combined_test_plan_with_checklist_plotting/1-base.py.md +90 -0
- plans/completed/combined_test_plan_with_checklist_plotting/10-labels-special.py.md +102 -0
- plans/completed/combined_test_plan_with_checklist_plotting/11-labels-chemistry.py.md +212 -0
- plans/completed/combined_test_plan_with_checklist_plotting/12-labels-composition.py.md +242 -0
- plans/completed/combined_test_plan_with_checklist_plotting/13-labels-datetime.py.md +247 -0
- plans/completed/combined_test_plan_with_checklist_plotting/14-labels-elemental_abundance.py.md +274 -0
- plans/completed/combined_test_plan_with_checklist_plotting/15-visual-validation.md +256 -0
- plans/completed/combined_test_plan_with_checklist_plotting/16-integration-testing.md +266 -0
- plans/completed/combined_test_plan_with_checklist_plotting/17-performance-benchmarks.md +267 -0
- plans/completed/combined_test_plan_with_checklist_plotting/18-Fixtures-and-Utilities.md +86 -0
- plans/completed/combined_test_plan_with_checklist_plotting/2-agg_plot.py.md +90 -0
- plans/completed/combined_test_plan_with_checklist_plotting/3-histograms.py.md +201 -0
- plans/completed/combined_test_plan_with_checklist_plotting/4-scatter.py.md +167 -0
- plans/completed/combined_test_plan_with_checklist_plotting/5-spiral.py.md +216 -0
- plans/completed/combined_test_plan_with_checklist_plotting/6-orbits.py.md +108 -0
- plans/completed/combined_test_plan_with_checklist_plotting/7-tools.py.md +86 -0
- plans/completed/combined_test_plan_with_checklist_plotting/8-select_data_from_figure.py.md +97 -0
- plans/completed/combined_test_plan_with_checklist_plotting/9-labels-base.py.md +88 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/.gitkeep +0 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/0-Overview.md +170 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/1-Package-Entry-Point-__init__.py.md +121 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/2-Core-Base-Classes-base.py.md +142 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/3-Plotting-Helpers-plots.py.md +123 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/4-LISIRD-Sub-package.md +119 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/5-Extrema-Calculator.md +103 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/6-Sunspot-Number-Sub-package.md +163 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/7-Sunspot-Number-Init.py.md +217 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/compacted_state.md +52 -0
- plans/completed/compaction-agent-modernization/0-Overview.md +156 -0
- plans/completed/compaction-agent-modernization/1-Architecture-Audit-Gap-Analysis.md +132 -0
- plans/completed/compaction-agent-modernization/2-Token-Baseline-Recalibration.md +153 -0
- plans/completed/compaction-agent-modernization/3-Agent-Reference-Updates.md +184 -0
- plans/completed/compaction-agent-modernization/4-Compression-Algorithm-Modernization.md +238 -0
- plans/completed/compaction-agent-modernization/5-Workflow-Integration-Streamlining.md +252 -0
- plans/completed/compaction-agent-modernization/6-Template-Structure-Optimization.md +240 -0
- plans/completed/compaction-agent-modernization/7-Integration-Testing-Validation.md +292 -0
- plans/completed/compaction-hook-enhancement/0-Overview.md +150 -0
- plans/completed/compaction-hook-enhancement/1-Token-Estimation-Enhancement.md +179 -0
- plans/completed/compaction-hook-enhancement/2-Compression-Intelligence.md +294 -0
- plans/completed/compaction-hook-enhancement/3-Git-Integration-Metadata.md +310 -0
- plans/completed/compaction-hook-enhancement/4-Session-Continuity-Features.md +358 -0
- plans/completed/compaction-hook-enhancement/5-Testing-Strategy.md +404 -0
- plans/completed/compaction-hook-enhancement/6-Integration-Roadmap.md +319 -0
- plans/completed/compaction-hook-enhancement/compacted_state.md +142 -0
- plans/completed/docstring-audit-enhancement/0-Overview.md +274 -0
- plans/completed/docstring-audit-enhancement/1-Infrastructure-Setup-and-Validation-Tools.md +206 -0
- plans/completed/docstring-audit-enhancement/2-Core-Physics-Modules-Enhancement.md +237 -0
- plans/completed/docstring-audit-enhancement/3-Fitfunctions-Mathematical-Modules-Enhancement.md +188 -0
- plans/completed/docstring-audit-enhancement/4-Plotting-Visualization-Modules-Enhancement.md +243 -0
- plans/completed/docstring-audit-enhancement/5-Specialized-Modules-Enhancement.md +216 -0
- plans/completed/docstring-audit-enhancement/6-Validation-and-Integration.md +216 -0
- plans/completed/fitfunctions-testing-implementation/0-Overview.md +130 -0
- plans/completed/fitfunctions-testing-implementation/1-Test-Infrastructure-Setup.md +79 -0
- plans/completed/fitfunctions-testing-implementation/2-Common-Fixtures-Test-Utilities.md +104 -0
- plans/completed/fitfunctions-testing-implementation/3-Core-FitFunction-Testing.md +168 -0
- plans/completed/fitfunctions-testing-implementation/4-Specialized-Function-Classes.md +210 -0
- plans/completed/fitfunctions-testing-implementation/5-Advanced-Classes-Testing.md +214 -0
- plans/completed/fitfunctions-testing-implementation/6-Plotting-Integration-Testing.md +231 -0
- plans/completed/fitfunctions-testing-implementation/7-Extended-Coverage-BONUS.md +184 -0
- plans/completed/numpy-docstring-conversion-plan/numpy-docstring-conversion-plan.md +118 -0
- plans/completed/pr-review-remediation/0-Overview.md +138 -0
- plans/completed/pr-review-remediation/1-Critical-Safety-Improvements.md +179 -0
- plans/completed/pr-review-remediation/2-Smart-Timeouts-Validation.md +399 -0
- plans/completed/pr-review-remediation/3-Enhanced-GitHub-Integration.md +258 -0
- plans/completed/pr-review-remediation/compacted_state.md +66 -0
- plans/completed/python-310-migration/0-Overview.md +390 -0
- plans/completed/python-310-migration/1-Planning-Setup.md +164 -0
- plans/completed/python-310-migration/2-Implementation.md +256 -0
- plans/completed/python-310-migration/3-Testing-Validation.md +335 -0
- plans/completed/python-310-migration/4-Documentation-Release.md +274 -0
- plans/completed/python-310-migration/5-Closeout.md +252 -0
- plans/completed/requirements-management-consolidation/0-Overview.md +118 -0
- plans/completed/requirements-management-consolidation/1-Documentation-Validation-Environment-Setup.md +116 -0
- plans/completed/requirements-management-consolidation/2-Requirements-Consolidation.md +161 -0
- plans/completed/requirements-management-consolidation/3-Workflow-Automation-Final-Integration.md +196 -0
- plans/completed/single-ecosystem-plan-implementation/0-Overview.md +83 -0
- plans/completed/single-ecosystem-plan-implementation/1-Plan-Preservation-Session-Management.md +38 -0
- plans/completed/single-ecosystem-plan-implementation/2-File-Structure-Optimization.md +43 -0
- plans/completed/single-ecosystem-plan-implementation/3-Plan-Migration-Archive-Setup.md +82 -0
- plans/completed/single-ecosystem-plan-implementation/4-Agent-System-Transformation.md +108 -0
- plans/completed/single-ecosystem-plan-implementation/5-Template-System-Enhancement.md +131 -0
- plans/completed/single-ecosystem-plan-implementation/6-Final-Validation-Testing.md +120 -0
- plans/completed/test-directory-consolidation/0-Overview.md +51 -0
- plans/completed/test-directory-consolidation/1-Structure-Preparation.md +82 -0
- plans/completed/test-directory-consolidation/2-File-Migration.md +100 -0
- plans/completed/test-directory-consolidation/3-Import-Transformation.md +117 -0
- plans/completed/test-directory-consolidation/4-Configuration-Consolidation.md +140 -0
- plans/completed/test-directory-consolidation/5-Validation.md +152 -0
- plans/completed/test-directory-consolidation/6-Cleanup.md +156 -0
- plans/completed/test-planning-agents-architecture/0-Overview.md +79 -0
- plans/completed/test-planning-agents-architecture/1-Branch-Isolation-Testing.md +49 -0
- plans/completed/test-planning-agents-architecture/2-Cross-Branch-Coordination.md +51 -0
- plans/completed/test-planning-agents-architecture/3-Merge-Workflow-Testing.md +48 -0
- plans/deployment-semver-pypi-rtd/0-Overview.md +463 -0
- plans/deployment-semver-pypi-rtd/1-Semantic-Versioning-Foundation.md +136 -0
- plans/deployment-semver-pypi-rtd/2-PyPI-Deployment-Infrastructure.md +168 -0
- plans/deployment-semver-pypi-rtd/3-Release-Automation.md +214 -0
- plans/deployment-semver-pypi-rtd/4-Plan-Closeout.md +543 -0
- plans/deployment-semver-pypi-rtd/compacted_session_state.md +172 -0
- plans/deployment-semver-pypi-rtd/compacted_state.md +131 -0
- plans/documentation-code-audit/0-Overview.md +393 -0
- plans/documentation-code-audit/1-Discovery-Inventory.md +183 -0
- plans/documentation-code-audit/2-Execution-Environment-Setup.md +263 -0
- plans/documentation-code-audit/3-Systematic-Validation.md +322 -0
- plans/documentation-code-audit/4-Code-Example-Remediation.md +358 -0
- plans/documentation-code-audit/5-Physics-MultiIndex-Compliance.md +464 -0
- plans/documentation-code-audit/6-Doctest-Integration.md +523 -0
- plans/documentation-code-audit/7-Reporting-Documentation.md +498 -0
- plans/documentation-code-audit/8-Closeout.md +456 -0
- plans/documentation-rebuild-session/compacted_state.md +109 -0
- plans/documentation-rendering-fixes/0-Overview.md +104 -0
- plans/documentation-rendering-fixes/1-Sphinx-Build-Diagnostics-Warning-Audit.md +101 -0
- plans/documentation-rendering-fixes/2-Configuration-Infrastructure-Fixes.md +113 -0
- plans/documentation-rendering-fixes/3-Docstring-Syntax-Audit-Repair.md +131 -0
- plans/documentation-rendering-fixes/4-HTML-Page-Rendering-Verification.md +113 -0
- plans/documentation-rendering-fixes/5-Advanced-Documentation-Quality-Assurance.md +119 -0
- plans/documentation-rendering-fixes/6-Documentation-Build-Optimization-Testing.md +129 -0
- plans/documentation-rendering-fixes/compacted_state.md +132 -0
- plans/documentation-template-fix/0-Overview.md +197 -0
- plans/documentation-template-fix/1-Template-System-Analysis.md +269 -0
- plans/documentation-template-fix/2-Template-Modification.md +609 -0
- plans/documentation-template-fix/3-Build-System-Integration.md +766 -0
- plans/documentation-template-fix/4-Testing-Validation.md +1399 -0
- plans/documentation-template-fix/5-Documentation-Training.md +602 -0
- plans/documentation-workflow-fix/0-Overview.md +222 -0
- plans/documentation-workflow-fix/1-Immediate-Fixes.md +238 -0
- plans/documentation-workflow-fix/2-Configuration-Setup.md +298 -0
- plans/documentation-workflow-fix/3-Pre-commit-Integration.md +382 -0
- plans/documentation-workflow-fix/4-Workflow-Improvements.md +446 -0
- plans/documentation-workflow-fix/5-Documentation-and-Training.md +527 -0
- plans/duplicate-object-warnings-fix-plan.md +130 -0
- plans/github-issues-migration/0-Overview.md +510 -0
- plans/github-issues-migration/1-Foundation-Label-System.md +180 -0
- plans/github-issues-migration/2-Migration-Tool-Rewrite.md +235 -0
- plans/github-issues-migration/3-CLI-Integration-Automation.md +169 -0
- plans/github-issues-migration/4-Validated-Migration.md +252 -0
- plans/github-issues-migration/5-Documentation-Training.md +171 -0
- plans/github-issues-migration/6-Closeout.md +179 -0
- plans/github-workflows-repair/repair-plan.md +299 -0
- plans/issues_from_plans.py +342 -0
- plans/pr-270-doc-validation-fixes/0-Overview.md +354 -0
- plans/pr-270-doc-validation-fixes/1-Critical-PR-Fixes.md +117 -0
- plans/pr-270-doc-validation-fixes/2-Framework-Right-Sizing.md +129 -0
- plans/pr-270-doc-validation-fixes/3-Sustainable-Documentation.md +126 -0
- plans/pr-270-doc-validation-fixes/4-Closeout-Migration.md +143 -0
- plans/pr-270-doc-validation-fixes/PLAN_COMPLETED.md +149 -0
- plans/python-310-migration/0-Overview.md +390 -0
- plans/python-310-migration/1-Planning-Setup.md +164 -0
- plans/python-310-migration/2-Implementation.md +256 -0
- plans/python-310-migration/3-Testing-Validation.md +335 -0
- plans/python-310-migration/4-Documentation-Release.md +274 -0
- plans/python-310-migration/5-Closeout.md +252 -0
- plans/readthedocs-simplified/0-Overview.md +243 -0
- plans/readthedocs-simplified/1-Immediate-Fixes.md +216 -0
- plans/readthedocs-simplified/2-Template-Simplification.md +278 -0
- plans/readthedocs-simplified/3-ReadTheDocs-Setup.md +298 -0
- plans/readthedocs-simplified/4-Testing-Validation.md +328 -0
- plans/readthedocs-simplified/5-Closeout.md +231 -0
- plans/readthedocs-simplified/compacted_state.md +127 -0
- plans/session-compaction-2025-08-12/compacted_state.md +114 -0
- plans/session-compaction-2025-08-13/compacted_state.md +145 -0
- plans/session-continuity-protocol/0-Overview.md +35 -0
- plans/session-continuity-protocol/1-Core-Principles-Framework.md +40 -0
- plans/session-continuity-protocol/2-Pre-Session-Validation-System.md +79 -0
- plans/session-continuity-protocol/3-Context-Switching-Prevention.md +87 -0
- plans/session-continuity-protocol/4-Progress-Tracking-Recovery.md +100 -0
- plans/sphinx-warnings-analysis.md +222 -0
- plans/systemprompt-optimization/0-Overview.md +447 -0
- plans/systemprompt-optimization/1-Deploy-SystemPrompt.md +114 -0
- plans/systemprompt-optimization/2-Documentation-Alignment.md +198 -0
- plans/systemprompt-optimization/3-Monitoring-Infrastructure.md +396 -0
- plans/systemprompt-optimization/4-Implementation-Script.md +450 -0
- plans/systemprompt-optimization/9-Closeout.md +165 -0
- plans/systemprompt-optimization/compacted_state.md +143 -0
- plans/template-value-propositions/0-Overview.md +357 -0
- plans/template-value-propositions/1-Value-Proposition-Framework-Design.md +144 -0
- plans/template-value-propositions/2-Plan-Template-Enhancement.md +178 -0
- plans/template-value-propositions/3-Value-Generator-Hook-Implementation.md +291 -0
- plans/template-value-propositions/4-Value-Validator-Hook-Implementation.md +274 -0
- plans/template-value-propositions/5-Documentation-Agent-Updates.md +219 -0
- plans/template-value-propositions/6-Integration-Testing-Validation.md +247 -0
- plans/tests-audit/0-Overview.md +410 -0
- plans/tests-audit/1-Discovery-Inventory.md +170 -0
- plans/tests-audit/2-Physics-Validation-Audit.md +195 -0
- plans/tests-audit/3-Architecture-Compliance.md +195 -0
- plans/tests-audit/4-Numerical-Stability-Analysis.md +203 -0
- plans/tests-audit/5-Documentation-Enhancement.md +220 -0
- plans/tests-audit/6-Audit-Deliverables.md +220 -0
- plans/tests-audit/7-Closeout.md +252 -0
- plans/tests-audit/artifacts/ARCHITECTURE_COMPLIANCE_REPORT.md +315 -0
- plans/tests-audit/artifacts/ARCHITECTURE_RECOMMENDATIONS.md +943 -0
- plans/tests-audit/artifacts/COMPREHENSIVE_AUDIT_REPORT.md +356 -0
- plans/tests-audit/artifacts/CONTRIBUTING_ENHANCED_TEMPLATE.md +419 -0
- plans/tests-audit/artifacts/COVERAGE_GAP_ANALYSIS.md +152 -0
- plans/tests-audit/artifacts/DOCUMENTATION_ENHANCEMENT_REPORT.md +502 -0
- plans/tests-audit/artifacts/EXECUTIVE_AUDIT_SUMMARY.md +129 -0
- plans/tests-audit/artifacts/IMPLEMENTATION_ROADMAP.md +647 -0
- plans/tests-audit/artifacts/NUMERICAL_RECOMMENDATIONS.md +739 -0
- plans/tests-audit/artifacts/NUMERICAL_STABILITY_GUIDE_TEMPLATE.rst +451 -0
- plans/tests-audit/artifacts/NUMERICAL_STABILITY_REPORT.md +301 -0
- plans/tests-audit/artifacts/PHASE_3_SUMMARY.md +280 -0
- plans/tests-audit/artifacts/PHASE_4_SUMMARY.md +229 -0
- plans/tests-audit/artifacts/PHASE_5_SUMMARY.md +292 -0
- plans/tests-audit/artifacts/PHASE_6_CLOSEOUT.md +278 -0
- plans/tests-audit/artifacts/PHYSICS_GUIDE_TEMPLATE.rst +268 -0
- plans/tests-audit/artifacts/PHYSICS_VALIDATION_REPORT.md +235 -0
- plans/tests-audit/artifacts/TECHNICAL_DELIVERABLES_PACKAGE.md +2502 -0
- plans/tests-audit/artifacts/TEST_INVENTORY.csv +1204 -0
- plans/tests-audit/artifacts/TEST_INVENTORY.md +135 -0
- plans/tests-audit/artifacts/test_discovery_analysis.py +231 -0
- plans/tests-audit/artifacts/test_parser.py +395 -0
- solarwindpy/README.md +3 -0
- solarwindpy/Untitled.ipynb +54 -0
- solarwindpy/__init__.py +74 -0
- solarwindpy/core/__init__.py +23 -0
- solarwindpy/core/alfvenic_turbulence.py +804 -0
- solarwindpy/core/base.py +267 -0
- solarwindpy/core/ions.py +309 -0
- solarwindpy/core/plasma.py +2133 -0
- solarwindpy/core/spacecraft.py +256 -0
- solarwindpy/core/tensor.py +90 -0
- solarwindpy/core/units_constants.py +199 -0
- solarwindpy/core/vector.py +328 -0
- solarwindpy/fitfunctions/__init__.py +20 -0
- solarwindpy/fitfunctions/core.py +734 -0
- solarwindpy/fitfunctions/exponentials.py +188 -0
- solarwindpy/fitfunctions/gaussians.py +264 -0
- solarwindpy/fitfunctions/lines.py +116 -0
- solarwindpy/fitfunctions/moyal.py +71 -0
- solarwindpy/fitfunctions/plots.py +751 -0
- solarwindpy/fitfunctions/power_laws.py +209 -0
- solarwindpy/fitfunctions/tex_info.py +568 -0
- solarwindpy/fitfunctions/trend_fits.py +482 -0
- solarwindpy/instabilities/__init__.py +16 -0
- solarwindpy/instabilities/beta_ani.py +82 -0
- solarwindpy/instabilities/verscharen2016.py +631 -0
- solarwindpy/plotting/__init__.py +33 -0
- solarwindpy/plotting/agg_plot.py +489 -0
- solarwindpy/plotting/base.py +465 -0
- solarwindpy/plotting/hist1d.py +405 -0
- solarwindpy/plotting/hist2d.py +1035 -0
- solarwindpy/plotting/histograms.py +1845 -0
- solarwindpy/plotting/labels/__init__.py +104 -0
- solarwindpy/plotting/labels/base.py +686 -0
- solarwindpy/plotting/labels/chemistry.py +19 -0
- solarwindpy/plotting/labels/composition.py +100 -0
- solarwindpy/plotting/labels/datetime.py +235 -0
- solarwindpy/plotting/labels/elemental_abundance.py +73 -0
- solarwindpy/plotting/labels/special.py +794 -0
- solarwindpy/plotting/orbits.py +515 -0
- solarwindpy/plotting/scatter.py +99 -0
- solarwindpy/plotting/select_data_from_figure.py +329 -0
- solarwindpy/plotting/spiral.py +980 -0
- solarwindpy/plotting/tools.py +434 -0
- solarwindpy/scripts/__init__.py +1 -0
- solarwindpy/scripts/logs/.gitignore +1 -0
- solarwindpy/solar_activity/__init__.py +53 -0
- solarwindpy/solar_activity/base.py +605 -0
- solarwindpy/solar_activity/lisird/__init__.py +3 -0
- solarwindpy/solar_activity/lisird/extrema_calculator.py +394 -0
- solarwindpy/solar_activity/lisird/lisird.py +319 -0
- solarwindpy/solar_activity/plots.py +116 -0
- solarwindpy/solar_activity/sunspot_number/.DS_Store +0 -0
- solarwindpy/solar_activity/sunspot_number/__init__.py +3 -0
- solarwindpy/solar_activity/sunspot_number/sidc.py +556 -0
- solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv +72 -0
- solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv.silso +72 -0
- solarwindpy/tools/__init__.py +162 -0
- solarwindpy-0.1.1.dist-info/METADATA +181 -0
- solarwindpy-0.1.1.dist-info/RECORD +409 -0
- {solarwindpy-0.0.1.dev0.dist-info → solarwindpy-0.1.1.dist-info}/WHEEL +1 -1
- solarwindpy-0.1.1.dist-info/licenses/LICENSE.rst +32 -0
- solarwindpy-0.1.1.dist-info/top_level.txt +3 -0
- tests/__init__.py +1 -0
- tests/conftest.py +10 -0
- tests/core/__init__.py +1 -0
- tests/core/test_alfvenic_turbulence.py +544 -0
- tests/core/test_base.py +112 -0
- tests/core/test_base_head_tail.py +29 -0
- tests/core/test_base_mi_tuples.py +11 -0
- tests/core/test_core_verify_datetimeindex.py +32 -0
- tests/core/test_ions.py +325 -0
- tests/core/test_plasma.py +2581 -0
- tests/core/test_plasma_io.py +12 -0
- tests/core/test_quantities.py +507 -0
- tests/core/test_spacecraft.py +210 -0
- tests/core/test_units_constants.py +22 -0
- tests/data/epoch.csv +4 -0
- tests/data/plasma.csv +4 -0
- tests/data/spacecraft.csv +4 -0
- tests/fitfunctions/conftest.py +60 -0
- tests/fitfunctions/test_core.py +193 -0
- tests/fitfunctions/test_exponentials.py +342 -0
- tests/fitfunctions/test_gaussians.py +142 -0
- tests/fitfunctions/test_lines.py +349 -0
- tests/fitfunctions/test_moyal.py +258 -0
- tests/fitfunctions/test_plots.py +258 -0
- tests/fitfunctions/test_power_laws.py +365 -0
- tests/fitfunctions/test_tex_info.py +183 -0
- tests/fitfunctions/test_trend_fit_properties.py +31 -0
- tests/fitfunctions/test_trend_fits.py +244 -0
- tests/plotting/__init__.py +1 -0
- tests/plotting/labels/__init__.py +1 -0
- tests/plotting/labels/test_chemistry.py +243 -0
- tests/plotting/labels/test_composition.py +345 -0
- tests/plotting/labels/test_datetime.py +445 -0
- tests/plotting/labels/test_elemental_abundance.py +366 -0
- tests/plotting/labels/test_init.py +66 -0
- tests/plotting/labels/test_labels_base.py +347 -0
- tests/plotting/labels/test_special.py +550 -0
- tests/plotting/test_agg_plot.py +602 -0
- tests/plotting/test_base.py +752 -0
- tests/plotting/test_fixtures_utilities.py +775 -0
- tests/plotting/test_histograms.py +546 -0
- tests/plotting/test_integration.py +675 -0
- tests/plotting/test_orbits.py +435 -0
- tests/plotting/test_performance.py +708 -0
- tests/plotting/test_scatter.py +752 -0
- tests/plotting/test_select_data_from_figure.py +1209 -0
- tests/plotting/test_spiral.py +573 -0
- tests/plotting/test_tools.py +607 -0
- tests/plotting/test_visual_validation.py +465 -0
- tests/solar_activity/__init__.py +1 -0
- tests/solar_activity/lisird/__init__.py +1 -0
- tests/solar_activity/lisird/test_extrema_calculator.py +593 -0
- tests/solar_activity/lisird/test_lisird_id.py +187 -0
- tests/solar_activity/sunspot_number/__init__.py +1 -0
- tests/solar_activity/sunspot_number/test_init.py +399 -0
- tests/solar_activity/sunspot_number/test_sidc.py +465 -0
- tests/solar_activity/sunspot_number/test_sidc_id.py +223 -0
- tests/solar_activity/sunspot_number/test_sidc_loader.py +275 -0
- tests/solar_activity/sunspot_number/test_ssn_extrema.py +406 -0
- tests/solar_activity/test_base.py +656 -0
- tests/solar_activity/test_init.py +396 -0
- tests/solar_activity/test_plots.py +371 -0
- tests/test_circular_imports.py +408 -0
- tests/test_issue_titles.py +25 -0
- tests/test_statusline.py +298 -0
- solarwindpy-0.0.1.dev0.dist-info/METADATA +0 -14
- solarwindpy-0.0.1.dev0.dist-info/RECORD +0 -4
- 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)
|