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