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,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'Combined Plan and Checklist: Scatter Plotting'
|
|
3
|
+
about: Unified documentation and checklist for validating scatter plotting functionality.
|
|
4
|
+
labels: [sweep, plotting, Scatter, scatter plots]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> Phase 4 of Enhanced Plotting Test Plan
|
|
8
|
+
|
|
9
|
+
## 🧠 Context
|
|
10
|
+
|
|
11
|
+
The `solarwindpy.plotting.scatter` module provides scatter plot functionality with optional color mapping capabilities. The `Scatter` class inherits from both `base.PlotWithZdata` and `base.CbarMaker` to enable 2D scatter plots with optional color-coded third dimension visualization.
|
|
12
|
+
|
|
13
|
+
### Key Components
|
|
14
|
+
- **Scatter Class**: Main scatter plotting implementation
|
|
15
|
+
- **Color Mapping**: Optional z-data for color-coded scatter points
|
|
16
|
+
- **Data Clipping**: Configurable extreme value removal
|
|
17
|
+
- **Axes Integration**: Full matplotlib axes formatting support
|
|
18
|
+
|
|
19
|
+
### Dependencies
|
|
20
|
+
- Inherits from `base.PlotWithZdata` and `base.CbarMaker`
|
|
21
|
+
- Uses `base.AxesLabels` and `base.LogAxes` for axis management
|
|
22
|
+
- Integrates with matplotlib for plot rendering
|
|
23
|
+
|
|
24
|
+
## 📋 Comprehensive Test Checklist
|
|
25
|
+
|
|
26
|
+
### 4.1 Module Structure and Exports
|
|
27
|
+
|
|
28
|
+
- [ ] **Import verification**: Verify `from . import base` import works correctly
|
|
29
|
+
- [ ] **Class availability**: Test that `Scatter` class is accessible from module
|
|
30
|
+
- [ ] **Inheritance validation**: Confirm `Scatter` inherits from `PlotWithZdata` and `CbarMaker`
|
|
31
|
+
|
|
32
|
+
### 4.2 `Scatter` Class Initialization
|
|
33
|
+
|
|
34
|
+
- [ ] **Basic initialization**: `Scatter(x, y)` with pandas Series inputs
|
|
35
|
+
- [ ] **With z-data**: `Scatter(x, y, z)` including color mapping data
|
|
36
|
+
- [ ] **Data clipping**: `Scatter(x, y, clip_data=True)` removes extreme values
|
|
37
|
+
- [ ] **Data clipping disabled**: `Scatter(x, y, clip_data=False)` preserves all data
|
|
38
|
+
- [ ] **Parameter validation**: Test invalid input types raise appropriate errors
|
|
39
|
+
- [ ] **Empty data handling**: Test behavior with empty pandas Series
|
|
40
|
+
- [ ] **Mismatched data lengths**: Test error handling for different length x, y, z
|
|
41
|
+
|
|
42
|
+
### 4.3 Data Management Methods
|
|
43
|
+
|
|
44
|
+
#### `set_data()` method
|
|
45
|
+
- [ ] **Data assignment**: Correctly stores x, y coordinate data
|
|
46
|
+
- [ ] **Z-data handling**: Properly manages optional color mapping data
|
|
47
|
+
- [ ] **Clip parameter**: Respects clip_data flag for extreme value removal
|
|
48
|
+
- [ ] **Data validation**: Ensures input data are compatible pandas Series
|
|
49
|
+
- [ ] **Index alignment**: Handles misaligned pandas Series indices
|
|
50
|
+
|
|
51
|
+
#### Data properties and access
|
|
52
|
+
- [ ] **Data retrieval**: Access to stored x, y, z data
|
|
53
|
+
- [ ] **Data integrity**: Verify data remains unchanged after storage
|
|
54
|
+
- [ ] **Clipping effects**: Confirm extreme values removed when clip_data=True
|
|
55
|
+
|
|
56
|
+
### 4.4 Label and Axis Configuration
|
|
57
|
+
|
|
58
|
+
#### Labels management
|
|
59
|
+
- [ ] **Default labels**: `_labels` initialized with "x", "y", "z" defaults
|
|
60
|
+
- [ ] **Label customization**: Update axis labels via `_labels` property
|
|
61
|
+
- [ ] **Z-label handling**: Z-label set to None when no z-data provided
|
|
62
|
+
- [ ] **Label persistence**: Labels maintain values across operations
|
|
63
|
+
|
|
64
|
+
#### Axis scaling
|
|
65
|
+
- [ ] **Log scale defaults**: `_log` initialized with x=False, y=False
|
|
66
|
+
- [ ] **Log scale configuration**: Test setting logarithmic scales for x, y axes
|
|
67
|
+
- [ ] **Scale validation**: Ensure log scales work with positive data only
|
|
68
|
+
|
|
69
|
+
### 4.5 Path and Display Configuration
|
|
70
|
+
|
|
71
|
+
- [ ] **Path initialization**: `set_path(None)` sets default path behavior
|
|
72
|
+
- [ ] **Path customization**: Test setting custom file output paths
|
|
73
|
+
- [ ] **Path validation**: Verify valid path formats are accepted
|
|
74
|
+
|
|
75
|
+
### 4.6 Plot Generation and Formatting
|
|
76
|
+
|
|
77
|
+
#### `_format_axis()` method
|
|
78
|
+
- [ ] **Axis formatting**: Calls parent class `_format_axis(ax)` method
|
|
79
|
+
- [ ] **Collection handling**: Properly formats matplotlib collection objects
|
|
80
|
+
- [ ] **Inheritance behavior**: Ensures base class formatting is applied
|
|
81
|
+
|
|
82
|
+
#### Plot creation
|
|
83
|
+
- [ ] **Basic scatter plot**: Generate scatter plot with x, y data only
|
|
84
|
+
- [ ] **Color-mapped plot**: Create scatter plot with z-data color mapping
|
|
85
|
+
- [ ] **Matplotlib integration**: Verify plot renders correctly in matplotlib
|
|
86
|
+
- [ ] **Collection objects**: Confirm scatter plot returns valid matplotlib collections
|
|
87
|
+
|
|
88
|
+
### 4.7 Color Bar Integration
|
|
89
|
+
|
|
90
|
+
#### Color bar creation (inherited from `CbarMaker`)
|
|
91
|
+
- [ ] **Color bar presence**: Color bar created when z-data provided
|
|
92
|
+
- [ ] **Color bar absence**: No color bar when only x, y data provided
|
|
93
|
+
- [ ] **Color mapping**: Verify z-data values correctly map to colors
|
|
94
|
+
- [ ] **Color bar labeling**: Proper labeling of color bar axis
|
|
95
|
+
|
|
96
|
+
### 4.8 Integration with Base Classes
|
|
97
|
+
|
|
98
|
+
#### `PlotWithZdata` integration
|
|
99
|
+
- [ ] **Z-data handling**: Inherits proper z-data management
|
|
100
|
+
- [ ] **Data validation**: Uses base class data validation methods
|
|
101
|
+
- [ ] **Property access**: Base class properties accessible
|
|
102
|
+
|
|
103
|
+
#### `CbarMaker` integration
|
|
104
|
+
- [ ] **Color bar methods**: Access to color bar creation methods
|
|
105
|
+
- [ ] **Color mapping**: Proper color mapping functionality
|
|
106
|
+
- [ ] **Axis integration**: Color bar integrates with main plot axes
|
|
107
|
+
|
|
108
|
+
### 4.9 Error Handling and Edge Cases
|
|
109
|
+
|
|
110
|
+
- [ ] **Invalid data types**: Non-pandas Series inputs raise appropriate errors
|
|
111
|
+
- [ ] **NaN/inf handling**: Graceful handling of NaN and infinite values
|
|
112
|
+
- [ ] **Missing data**: Behavior with incomplete or missing data points
|
|
113
|
+
- [ ] **Single point data**: Handle scatter plots with only one data point
|
|
114
|
+
- [ ] **Negative values with log**: Appropriate handling when log scales meet negative data
|
|
115
|
+
|
|
116
|
+
### 4.10 Performance and Memory
|
|
117
|
+
|
|
118
|
+
- [ ] **Large datasets**: Performance with large numbers of scatter points
|
|
119
|
+
- [ ] **Memory usage**: Efficient memory usage for data storage and plotting
|
|
120
|
+
- [ ] **Data copying**: Minimal unnecessary data duplication
|
|
121
|
+
|
|
122
|
+
### 4.11 Documentation and Examples
|
|
123
|
+
|
|
124
|
+
- [ ] **Docstring completeness**: Class and method docstrings present and accurate
|
|
125
|
+
- [ ] **Parameter documentation**: All parameters properly documented
|
|
126
|
+
- [ ] **Example usage**: Working code examples in docstrings
|
|
127
|
+
- [ ] **Return value docs**: Clear documentation of return values
|
|
128
|
+
|
|
129
|
+
### 4.12 Test Infrastructure
|
|
130
|
+
|
|
131
|
+
- [ ] **Test fixtures**: Reusable test data for scatter plot testing
|
|
132
|
+
- [ ] **Mock matplotlib**: Mock matplotlib operations to avoid GUI display
|
|
133
|
+
- [ ] **Parameterized tests**: Test multiple data configurations efficiently
|
|
134
|
+
- [ ] **Performance benchmarks**: Time scatter plot operations for regression detection
|
|
135
|
+
|
|
136
|
+
## 🎯 Testing Strategy
|
|
137
|
+
|
|
138
|
+
### Unit Testing Approach
|
|
139
|
+
- Test each method in isolation with controlled inputs
|
|
140
|
+
- Verify inheritance chain works correctly
|
|
141
|
+
- Mock matplotlib operations to focus on data handling logic
|
|
142
|
+
|
|
143
|
+
### Integration Testing
|
|
144
|
+
- Test full scatter plot creation workflow
|
|
145
|
+
- Verify interaction between data management and plot rendering
|
|
146
|
+
- Test color mapping end-to-end functionality
|
|
147
|
+
|
|
148
|
+
### Edge Case Coverage
|
|
149
|
+
- Empty datasets, single points, extreme values
|
|
150
|
+
- Invalid inputs and error conditions
|
|
151
|
+
- Large dataset performance characteristics
|
|
152
|
+
|
|
153
|
+
### Visual Validation (Future)
|
|
154
|
+
- Compare generated plots against reference images
|
|
155
|
+
- Verify color mapping accuracy
|
|
156
|
+
- Test plot appearance across different matplotlib backends
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
**Estimated Time**: 2 hours
|
|
161
|
+
**Dependencies**: Base plotting classes, matplotlib integration
|
|
162
|
+
**Priority**: HIGH (Core plotting functionality)
|
|
163
|
+
**Status**: ✅ COMPLETED
|
|
164
|
+
**Commit**: 61823b7
|
|
165
|
+
**Tests Added**: 51 comprehensive test cases
|
|
166
|
+
**Time Invested**: 1.5 hours
|
|
167
|
+
**Test Results**: 51/51 passing (100% success rate)
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'Combined Plan and Checklist: Spiral Mesh Plotting'
|
|
3
|
+
about: Unified documentation and checklist for validating spiral mesh plotting and binning utilities.
|
|
4
|
+
labels: [sweep, plotting, SpiralMesh, spiral plots, numba]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> Phase 5 of Enhanced Plotting Test Plan
|
|
8
|
+
|
|
9
|
+
## 🧠 Context
|
|
10
|
+
|
|
11
|
+
The `solarwindpy.plotting.spiral` module provides sophisticated spiral mesh plotting capabilities with specialized binning utilities. This module includes high-performance numba-accelerated functions for spatial binning and data aggregation within spiral-shaped mesh geometries, commonly used for plasma physics data visualization.
|
|
12
|
+
|
|
13
|
+
### Key Components
|
|
14
|
+
- **Spiral Mesh Classes**: Complex spiral geometry plotting
|
|
15
|
+
- **Numba Functions**: High-performance spatial binning utilities
|
|
16
|
+
- **Named Tuples**: Structured data containers for spiral parameters
|
|
17
|
+
- **Filtering Utilities**: Data density and size-based filtering
|
|
18
|
+
|
|
19
|
+
### Performance Features
|
|
20
|
+
- **Numba JIT Compilation**: `@njit(parallel=True)` for performance-critical operations
|
|
21
|
+
- **Parallel Processing**: Multi-threaded binning calculations
|
|
22
|
+
- **Memory Optimization**: Efficient data structures for large datasets
|
|
23
|
+
|
|
24
|
+
### Dependencies
|
|
25
|
+
- Uses `base` plotting infrastructure
|
|
26
|
+
- Integrates with `labels` module
|
|
27
|
+
- Requires numba, numpy, pandas, matplotlib
|
|
28
|
+
|
|
29
|
+
## 📋 Comprehensive Test Checklist
|
|
30
|
+
|
|
31
|
+
### 5.1 Module Structure and Imports
|
|
32
|
+
|
|
33
|
+
- [ ] **Import verification**: All required imports load correctly
|
|
34
|
+
- [ ] **Numba availability**: Verify numba decorators work in test environment
|
|
35
|
+
- [ ] **Base integration**: Confirm `from . import base` import functions
|
|
36
|
+
- [ ] **Labels integration**: Verify `from . import labels as labels_module` works
|
|
37
|
+
|
|
38
|
+
### 5.2 Named Tuple Definitions
|
|
39
|
+
|
|
40
|
+
#### `InitialSpiralEdges`
|
|
41
|
+
- [ ] **Structure validation**: Contains `x,y` fields as expected
|
|
42
|
+
- [ ] **Data type handling**: Accepts appropriate numeric data types
|
|
43
|
+
- [ ] **Immutability**: Tuple immutability preserved
|
|
44
|
+
|
|
45
|
+
#### `SpiralMeshBinID`
|
|
46
|
+
- [ ] **Structure validation**: Contains `id,fill,visited` fields
|
|
47
|
+
- [ ] **Field access**: All fields accessible and correctly typed
|
|
48
|
+
- [ ] **Default handling**: Proper handling of field defaults
|
|
49
|
+
|
|
50
|
+
#### `SpiralFilterThresholds`
|
|
51
|
+
- [ ] **Structure validation**: Contains `density,size` fields with defaults
|
|
52
|
+
- [ ] **Default values**: `defaults=(False,)` applied correctly
|
|
53
|
+
- [ ] **Parameter validation**: Accepts valid threshold parameters
|
|
54
|
+
|
|
55
|
+
### 5.3 Numba-Accelerated Functions
|
|
56
|
+
|
|
57
|
+
#### `get_counts_per_bin()` function
|
|
58
|
+
- [ ] **JIT compilation**: `@njit(parallel=True)` decorator works correctly
|
|
59
|
+
- [ ] **Parallel execution**: Multi-threaded processing functions properly
|
|
60
|
+
- [ ] **Input validation**: Handles bins, x, y arrays of correct shapes
|
|
61
|
+
- [ ] **Bin counting**: Accurately counts points within bin boundaries
|
|
62
|
+
- [ ] **Output format**: Returns numpy array with correct dtype (int64)
|
|
63
|
+
- [ ] **Edge case handling**: Proper behavior at bin boundaries
|
|
64
|
+
- [ ] **Empty bins**: Correctly handles bins with zero counts
|
|
65
|
+
- [ ] **Performance**: Executes efficiently for large datasets
|
|
66
|
+
|
|
67
|
+
#### `calculate_bin_number_with_numba()` function
|
|
68
|
+
- [ ] **JIT compilation**: `@njit(parallel=True)` decorator functions
|
|
69
|
+
- [ ] **Fill value**: Uses correct fill value (-9999) for unassigned points
|
|
70
|
+
- [ ] **Mesh integration**: Properly utilizes mesh parameter for binning
|
|
71
|
+
- [ ] **Output array**: Returns correctly sized and typed array
|
|
72
|
+
- [ ] **Point assignment**: Accurately assigns points to bin numbers
|
|
73
|
+
- [ ] **Boundary handling**: Proper behavior at mesh boundaries
|
|
74
|
+
- [ ] **Invalid points**: Correctly handles points outside mesh
|
|
75
|
+
|
|
76
|
+
### 5.4 Spiral Mesh Classes (if present)
|
|
77
|
+
|
|
78
|
+
#### Main spiral mesh class
|
|
79
|
+
- [ ] **Initialization**: Proper class initialization with spiral parameters
|
|
80
|
+
- [ ] **Mesh generation**: Generates valid spiral mesh geometries
|
|
81
|
+
- [ ] **Data integration**: Integrates with pandas DataFrames
|
|
82
|
+
- [ ] **Plotting methods**: Creates appropriate matplotlib visualizations
|
|
83
|
+
- [ ] **Parameter validation**: Validates spiral geometry parameters
|
|
84
|
+
|
|
85
|
+
### 5.5 Data Binning and Aggregation
|
|
86
|
+
|
|
87
|
+
#### Spatial binning functionality
|
|
88
|
+
- [ ] **Point-in-bin detection**: Accurate spatial containment testing
|
|
89
|
+
- [ ] **Bin boundary handling**: Consistent treatment of boundary points
|
|
90
|
+
- [ ] **Multi-dimensional data**: Handles x, y coordinate pairs correctly
|
|
91
|
+
- [ ] **Large dataset performance**: Efficient processing of large point sets
|
|
92
|
+
- [ ] **Memory management**: Optimal memory usage during binning
|
|
93
|
+
|
|
94
|
+
#### Data aggregation
|
|
95
|
+
- [ ] **Count aggregation**: Accurate counting of points per bin
|
|
96
|
+
- [ ] **Statistical aggregation**: Support for mean, median, etc. if implemented
|
|
97
|
+
- [ ] **Custom aggregation**: Extensible aggregation function support
|
|
98
|
+
- [ ] **Missing data**: Proper handling of NaN and missing values
|
|
99
|
+
|
|
100
|
+
### 5.6 Filtering and Thresholding
|
|
101
|
+
|
|
102
|
+
#### Density filtering
|
|
103
|
+
- [ ] **Threshold application**: Density thresholds applied correctly
|
|
104
|
+
- [ ] **Filter logic**: Proper boolean logic for include/exclude decisions
|
|
105
|
+
- [ ] **Performance impact**: Filtering doesn't significantly slow processing
|
|
106
|
+
|
|
107
|
+
#### Size filtering
|
|
108
|
+
- [ ] **Size threshold**: Bin size thresholds work as expected
|
|
109
|
+
- [ ] **Combined filters**: Multiple filter criteria work together
|
|
110
|
+
- [ ] **Filter validation**: Invalid filter parameters rejected
|
|
111
|
+
|
|
112
|
+
### 5.7 Integration with Base Classes
|
|
113
|
+
|
|
114
|
+
#### Base plotting integration
|
|
115
|
+
- [ ] **Inheritance structure**: Proper inheritance from base plotting classes
|
|
116
|
+
- [ ] **Method compatibility**: Base class methods work with spiral data
|
|
117
|
+
- [ ] **Axis formatting**: Spiral plots format axes correctly
|
|
118
|
+
- [ ] **Label integration**: Labels work with spiral geometries
|
|
119
|
+
|
|
120
|
+
### 5.8 Performance and Scalability
|
|
121
|
+
|
|
122
|
+
#### Numba performance
|
|
123
|
+
- [ ] **Compilation overhead**: JIT compilation time reasonable
|
|
124
|
+
- [ ] **Runtime performance**: Significant speedup over pure Python
|
|
125
|
+
- [ ] **Memory efficiency**: Optimal memory usage in compiled functions
|
|
126
|
+
- [ ] **Parallel scaling**: Performance improves with multiple cores
|
|
127
|
+
|
|
128
|
+
#### Large dataset handling
|
|
129
|
+
- [ ] **Memory usage**: Efficient memory usage for large datasets
|
|
130
|
+
- [ ] **Processing time**: Reasonable processing times for large data
|
|
131
|
+
- [ ] **Stability**: No memory leaks or crashes with large datasets
|
|
132
|
+
|
|
133
|
+
### 5.9 Error Handling and Validation
|
|
134
|
+
|
|
135
|
+
#### Input validation
|
|
136
|
+
- [ ] **Array shape validation**: Correct handling of mismatched array shapes
|
|
137
|
+
- [ ] **Data type validation**: Proper handling of invalid data types
|
|
138
|
+
- [ ] **Missing data**: Graceful handling of NaN and infinite values
|
|
139
|
+
- [ ] **Empty data**: Appropriate behavior with empty input arrays
|
|
140
|
+
|
|
141
|
+
#### Error conditions
|
|
142
|
+
- [ ] **Numba error handling**: Proper error propagation from numba functions
|
|
143
|
+
- [ ] **Memory errors**: Graceful handling of memory allocation failures
|
|
144
|
+
- [ ] **Invalid parameters**: Clear error messages for invalid parameters
|
|
145
|
+
|
|
146
|
+
### 5.10 Matplotlib Integration
|
|
147
|
+
|
|
148
|
+
#### Plot generation
|
|
149
|
+
- [ ] **Spiral visualization**: Generates visually correct spiral plots
|
|
150
|
+
- [ ] **Color mapping**: Color maps data correctly across spiral bins
|
|
151
|
+
- [ ] **Axis integration**: Integrates properly with matplotlib axes
|
|
152
|
+
- [ ] **Collection objects**: Returns valid matplotlib collection objects
|
|
153
|
+
|
|
154
|
+
#### Visual quality
|
|
155
|
+
- [ ] **Mesh rendering**: Spiral mesh renders clearly and accurately
|
|
156
|
+
- [ ] **Data representation**: Data values represented correctly in visualization
|
|
157
|
+
- [ ] **Scale handling**: Handles different data scales appropriately
|
|
158
|
+
|
|
159
|
+
### 5.11 Documentation and Examples
|
|
160
|
+
|
|
161
|
+
- [ ] **Module docstring**: Complete and accurate module documentation
|
|
162
|
+
- [ ] **Function docstrings**: All functions properly documented
|
|
163
|
+
- [ ] **Parameter documentation**: All parameters clearly described
|
|
164
|
+
- [ ] **Performance notes**: Documentation includes performance considerations
|
|
165
|
+
- [ ] **Usage examples**: Working code examples provided
|
|
166
|
+
|
|
167
|
+
### 5.12 Test Infrastructure
|
|
168
|
+
|
|
169
|
+
#### Test setup
|
|
170
|
+
- [ ] **Numba test compatibility**: Tests work with numba compilation
|
|
171
|
+
- [ ] **Mock matplotlib**: Mock plotting to avoid GUI interactions
|
|
172
|
+
- [ ] **Performance benchmarks**: Benchmarks for numba function performance
|
|
173
|
+
- [ ] **Memory profiling**: Memory usage testing for large datasets
|
|
174
|
+
|
|
175
|
+
#### Test data
|
|
176
|
+
- [ ] **Spiral test data**: Representative test datasets for spiral geometries
|
|
177
|
+
- [ ] **Edge case data**: Test data covering boundary conditions
|
|
178
|
+
- [ ] **Performance test data**: Large datasets for performance testing
|
|
179
|
+
|
|
180
|
+
## 🎯 Testing Strategy
|
|
181
|
+
|
|
182
|
+
### Unit Testing Approach
|
|
183
|
+
- Test numba functions independently with controlled inputs
|
|
184
|
+
- Verify named tuple structures and field access
|
|
185
|
+
- Test spiral mesh generation and parameter validation
|
|
186
|
+
|
|
187
|
+
### Performance Testing
|
|
188
|
+
- Benchmark numba-accelerated functions vs pure Python
|
|
189
|
+
- Profile memory usage with large datasets
|
|
190
|
+
- Test parallel execution scaling
|
|
191
|
+
|
|
192
|
+
### Integration Testing
|
|
193
|
+
- Test complete spiral plot generation workflow
|
|
194
|
+
- Verify integration with base plotting infrastructure
|
|
195
|
+
- Test data flow from raw coordinates to finished plots
|
|
196
|
+
|
|
197
|
+
### Numerical Accuracy
|
|
198
|
+
- Verify bin assignment accuracy with known test cases
|
|
199
|
+
- Test boundary condition handling
|
|
200
|
+
- Validate counting and aggregation algorithms
|
|
201
|
+
|
|
202
|
+
### Edge Case Coverage
|
|
203
|
+
- Empty datasets, single points, extreme coordinates
|
|
204
|
+
- Invalid spiral parameters
|
|
205
|
+
- Large dataset stress testing
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
**Estimated Time**: 2.5 hours
|
|
210
|
+
**Dependencies**: Numba, base plotting classes, numpy/pandas
|
|
211
|
+
**Priority**: HIGH (Performance-critical plotting component)
|
|
212
|
+
**Status**: ✅ COMPLETED
|
|
213
|
+
**Commit**: b609a20
|
|
214
|
+
**Tests Added**: 36 comprehensive test cases
|
|
215
|
+
**Time Invested**: 2 hours
|
|
216
|
+
**Test Results**: 36/36 passing (100% success rate)
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'Combined Plan and Checklist: Orbit Plotting'
|
|
3
|
+
about: Unified documentation and checklist for orbit plotting features.
|
|
4
|
+
labels: [sweep, plotting, OrbitPlot]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> Extracted from solarwindpy/plans/combined_test_plan_with_checklist_plotting.md
|
|
8
|
+
|
|
9
|
+
## 🧠 Context
|
|
10
|
+
|
|
11
|
+
The `solarwindpy.plotting` subpackage offers high-level plotting utilities built on pandas
|
|
12
|
+
and Matplotlib. This unified plan combines the narrative test rationale and the
|
|
13
|
+
actionable checklist for validating every class, method, property (including non-public
|
|
14
|
+
interfaces), and helper function across:
|
|
15
|
+
|
|
16
|
+
- `base.py`
|
|
17
|
+
- `agg_plot.py`
|
|
18
|
+
- `histograms.py` (`hist1d.py`, `hist2d.py`)
|
|
19
|
+
- `scatter.py`
|
|
20
|
+
- `spiral.py`
|
|
21
|
+
- `orbits.py`
|
|
22
|
+
- `tools.py`
|
|
23
|
+
- `select_data_from_figure.py`
|
|
24
|
+
- `labels/base.py`
|
|
25
|
+
- `labels/special.py`
|
|
26
|
+
|
|
27
|
+
Tests are grouped by module. Each module section includes context from the original
|
|
28
|
+
narrative plan followed by a deduplicated checklist of actionable items.
|
|
29
|
+
|
|
30
|
+
### Class `OrbitPlot(ABC)`
|
|
31
|
+
|
|
32
|
+
- `__init__(orbit, *args)` validates `orbit` type; invalid types raise
|
|
33
|
+
`TypeError`.
|
|
34
|
+
- Properties: `_disable_both`, `orbit`, `_orbit_key`, `grouped`.
|
|
35
|
+
- `set_path(*args, orbit=…)` appends orbit path.
|
|
36
|
+
- `set_orbit(new)` sorts orbits and validates type.
|
|
37
|
+
- `make_cut()` adds “Inbound”/“Outbound” (and “Both”) categories.
|
|
38
|
+
|
|
39
|
+
### Class `OrbitHist1D(OrbitPlot, Hist1D)`
|
|
40
|
+
|
|
41
|
+
- `_format_axis(ax)` adds legend.
|
|
42
|
+
- `agg(**kwargs)` merges “Both” leg; disabled via `_disable_both`.
|
|
43
|
+
- `make_plot(ax, fcn, **kwargs)` calls `tools.subplots` and plots each leg.
|
|
44
|
+
|
|
45
|
+
### Class `OrbitHist2D(OrbitPlot, Hist2D)`
|
|
46
|
+
|
|
47
|
+
- `_format_in_out_axes(inbound, outbound)`, `_prune_lower_yaxis_ticks`, and
|
|
48
|
+
`_format_in_out_both_axes` manage axis formatting.
|
|
49
|
+
- `agg(**kwargs)` wraps and normalizes per-orbit.
|
|
50
|
+
- `project_1d(axis, project_counts, **kwargs)` returns an `OrbitHist1D`
|
|
51
|
+
instance.
|
|
52
|
+
|
|
53
|
+
## 🎯 Overview of the Task
|
|
54
|
+
|
|
55
|
+
Implement comprehensive tests for `orbits.py` within the `solarwindpy.plotting` package.
|
|
56
|
+
|
|
57
|
+
## 🔧 Framework & Dependencies
|
|
58
|
+
|
|
59
|
+
- pandas
|
|
60
|
+
- matplotlib
|
|
61
|
+
- pytest
|
|
62
|
+
|
|
63
|
+
## 📂 Affected Files and Paths
|
|
64
|
+
|
|
65
|
+
- solarwindpy/plotting/orbits.py
|
|
66
|
+
|
|
67
|
+
## 📊 Figures, Diagrams, or Artifacts (Optional)
|
|
68
|
+
|
|
69
|
+
None
|
|
70
|
+
|
|
71
|
+
## ✅ Acceptance Criteria
|
|
72
|
+
|
|
73
|
+
- [ ] Verify invalid `orbit` type in `__init__` raises `TypeError`
|
|
74
|
+
- [ ] Verify `_disable_both` property is `True` by default
|
|
75
|
+
- [ ] Verify `.orbit` property returns the `IntervalIndex`
|
|
76
|
+
- [ ] Verify `_orbit_key` returns `"Orbit"`
|
|
77
|
+
- [ ] Verify `.grouped` groups by `_gb_axes` + `_orbit_key`
|
|
78
|
+
- [ ] Test `set_path(…, orbit=idx)` appends `orbit.path`
|
|
79
|
+
- [ ] Test `set_orbit(idx)` sorts and validates type
|
|
80
|
+
- [ ] Test `make_cut()` adds “Inbound”/“Outbound” (and “Both”) categories
|
|
81
|
+
- [ ] Verify `_format_axis(ax)` adds a legend
|
|
82
|
+
- [ ] Test `agg()` merges “Both” leg when `_disable_both=False`
|
|
83
|
+
- [ ] Test `make_plot(ax)` plots each orbit leg via `tools.subplots()`
|
|
84
|
+
- [ ] Test `_format_in_out_axes()` swaps x-limits and colors spines
|
|
85
|
+
- [ ] Test `_prune_lower_yaxis_ticks()` prunes ticks correctly
|
|
86
|
+
- [ ] Test `_format_in_out_both_axes()` aligns y-limits across
|
|
87
|
+
inbound/outbound/both
|
|
88
|
+
- [ ] Test `agg()` normalizes per-orbit legs
|
|
89
|
+
- [ ] Test `project_1d('x')` returns a valid `OrbitHist1D`
|
|
90
|
+
|
|
91
|
+
## 🧩 Decomposition Instructions (Optional)
|
|
92
|
+
|
|
93
|
+
None
|
|
94
|
+
|
|
95
|
+
## 🤖 Sweep Agent Instructions (Optional)
|
|
96
|
+
|
|
97
|
+
None
|
|
98
|
+
|
|
99
|
+
## 💬 Additional Notes
|
|
100
|
+
|
|
101
|
+
- Ensures correct functionality, edge-case handling, API stability, and protects
|
|
102
|
+
non-public internals.
|
|
103
|
+
|
|
104
|
+
**Status**: ✅ COMPLETED
|
|
105
|
+
**Commit**: e6285c6
|
|
106
|
+
**Tests Added**: 34 comprehensive test cases
|
|
107
|
+
**Time Invested**: 1 hour
|
|
108
|
+
**Test Results**: 34/34 passing (100% success rate)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'Combined Plan and Checklist: Plotting Tools'
|
|
3
|
+
about: Unified documentation and checklist for helper tools used in plotting.
|
|
4
|
+
labels: [sweep, plotting, utils]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> Extracted from solarwindpy/plans/combined_test_plan_with_checklist_plotting.md
|
|
8
|
+
|
|
9
|
+
## 🧠 Context
|
|
10
|
+
|
|
11
|
+
The `solarwindpy.plotting` subpackage offers high-level plotting utilities built on pandas
|
|
12
|
+
and Matplotlib. This unified plan combines the narrative test rationale and the
|
|
13
|
+
actionable checklist for validating every class, method, property (including non-public
|
|
14
|
+
interfaces), and helper function across:
|
|
15
|
+
|
|
16
|
+
- `base.py`
|
|
17
|
+
- `agg_plot.py`
|
|
18
|
+
- `histograms.py` (`hist1d.py`, `hist2d.py`)
|
|
19
|
+
- `scatter.py`
|
|
20
|
+
- `spiral.py`
|
|
21
|
+
- `orbits.py`
|
|
22
|
+
- `tools.py`
|
|
23
|
+
- `select_data_from_figure.py`
|
|
24
|
+
- `labels/base.py`
|
|
25
|
+
- `labels/special.py`
|
|
26
|
+
|
|
27
|
+
Tests are grouped by module. Each module section includes context from the original
|
|
28
|
+
narrative plan followed by a deduplicated checklist of actionable items.
|
|
29
|
+
|
|
30
|
+
- `subplots(nrows, ncols, scale_width, scale_height, **kwargs)` scales figure
|
|
31
|
+
size with grid shape.
|
|
32
|
+
- `save(fig, spath, add_info, log, pdf, png, **kwargs)` writes `.pdf` and `.png`
|
|
33
|
+
files, adds timestamp text, and supports optional logging.
|
|
34
|
+
- `joint_legend(*axes, idx_for_legend, **kwargs)` merges legend entries without
|
|
35
|
+
duplicates and sorts them.
|
|
36
|
+
- `multipanel_figure_shared_cbar(...)` (if present) creates grid with shared
|
|
37
|
+
colorbar.
|
|
38
|
+
|
|
39
|
+
## 🎯 Overview of the Task
|
|
40
|
+
|
|
41
|
+
Implement comprehensive tests for `tools.py` within the `solarwindpy.plotting` package.
|
|
42
|
+
|
|
43
|
+
## 🔧 Framework & Dependencies
|
|
44
|
+
|
|
45
|
+
- pandas
|
|
46
|
+
- matplotlib
|
|
47
|
+
- pytest
|
|
48
|
+
|
|
49
|
+
## 📂 Affected Files and Paths
|
|
50
|
+
|
|
51
|
+
- solarwindpy/plotting/tools.py
|
|
52
|
+
|
|
53
|
+
## 📊 Figures, Diagrams, or Artifacts (Optional)
|
|
54
|
+
|
|
55
|
+
None
|
|
56
|
+
|
|
57
|
+
## ✅ Acceptance Criteria
|
|
58
|
+
|
|
59
|
+
- [ ] Test `subplots(2,2,scale_width=1.5,scale_height=0.5)` returns 2×2 axes with
|
|
60
|
+
correct figsize
|
|
61
|
+
- [ ] Test `save(fig, path, pdf=True,png=True)` writes both `.pdf` and `.png`
|
|
62
|
+
files
|
|
63
|
+
- [ ] Test PNG version includes timestamp text
|
|
64
|
+
- [ ] Test `save(..., log=False)` skips logging calls
|
|
65
|
+
- [ ] Test `joint_legend(ax1,ax2)` merges legend entries, no duplicates, sorted
|
|
66
|
+
- [ ] (If present) Test `multipanel_figure_shared_cbar(...)` arranges shared
|
|
67
|
+
colorbar correctly
|
|
68
|
+
|
|
69
|
+
## 🧩 Decomposition Instructions (Optional)
|
|
70
|
+
|
|
71
|
+
None
|
|
72
|
+
|
|
73
|
+
## 🤖 Sweep Agent Instructions (Optional)
|
|
74
|
+
|
|
75
|
+
None
|
|
76
|
+
|
|
77
|
+
## 💬 Additional Notes
|
|
78
|
+
|
|
79
|
+
- Ensures correct functionality, edge-case handling, API stability, and protects
|
|
80
|
+
non-public internals.
|
|
81
|
+
|
|
82
|
+
**Status**: ✅ COMPLETED
|
|
83
|
+
**Commit**: fe1e348
|
|
84
|
+
**Tests Added**: 42 comprehensive test cases (41 passing, 1 skipped)
|
|
85
|
+
**Time Invested**: 1 hour
|
|
86
|
+
**Test Results**: 41/42 passing (97.6% success rate)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'Combined Plan and Checklist: Select Data From Figure'
|
|
3
|
+
about: Unified documentation and checklist for selecting data from interactive figures.
|
|
4
|
+
labels: [sweep, plotting]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> Extracted from solarwindpy/plans/combined_test_plan_with_checklist_plotting.md
|
|
8
|
+
|
|
9
|
+
## 🧠 Context
|
|
10
|
+
|
|
11
|
+
The `solarwindpy.plotting` subpackage offers high-level plotting utilities built on pandas
|
|
12
|
+
and Matplotlib. This unified plan combines the narrative test rationale and the
|
|
13
|
+
actionable checklist for validating every class, method, property (including non-public
|
|
14
|
+
interfaces), and helper function across:
|
|
15
|
+
|
|
16
|
+
- `base.py`
|
|
17
|
+
- `agg_plot.py`
|
|
18
|
+
- `histograms.py` (`hist1d.py`, `hist2d.py`)
|
|
19
|
+
- `scatter.py`
|
|
20
|
+
- `spiral.py`
|
|
21
|
+
- `orbits.py`
|
|
22
|
+
- `tools.py`
|
|
23
|
+
- `select_data_from_figure.py`
|
|
24
|
+
- `labels/base.py`
|
|
25
|
+
- `labels/special.py`
|
|
26
|
+
|
|
27
|
+
Tests are grouped by module. Each module section includes context from the original
|
|
28
|
+
narrative plan followed by a deduplicated checklist of actionable items.
|
|
29
|
+
|
|
30
|
+
### Class `SelectFromPlot2D`
|
|
31
|
+
|
|
32
|
+
- `__init__(plotter, ax, has_colorbar, xdate, ydate, text_kwargs)`.
|
|
33
|
+
- Properties: `ax`, `corners`, `date_axes`, `is_multipanel`, `selector`, `text`,
|
|
34
|
+
and more.
|
|
35
|
+
- `_init_corners`, `_add_corners`, `_finalize_text`, `_update_text` manage
|
|
36
|
+
corner selection and text updates.
|
|
37
|
+
- `disconnect(other, scatter_kwargs, **kwargs)` calls `sample_data`,
|
|
38
|
+
`scatter_sample`, and `plot_failed_samples`.
|
|
39
|
+
- `onselect(press, release)` adds patch, updates corners and text.
|
|
40
|
+
- `set_ax(ax, has_colorbar)`, `start_text`, `start_selector`, `sample_data(n, random_state)`; `sample_data(frac=…)` raises `NotImplementedError`.
|
|
41
|
+
|
|
42
|
+
## 🎯 Overview of the Task
|
|
43
|
+
|
|
44
|
+
Implement comprehensive tests for `select_data_from_figure.py` within the `solarwindpy.plotting` package.
|
|
45
|
+
|
|
46
|
+
## 🔧 Framework & Dependencies
|
|
47
|
+
|
|
48
|
+
- pandas
|
|
49
|
+
- matplotlib
|
|
50
|
+
- pytest
|
|
51
|
+
|
|
52
|
+
## 📂 Affected Files and Paths
|
|
53
|
+
|
|
54
|
+
- solarwindpy/plotting/select_data_from_figure.py
|
|
55
|
+
|
|
56
|
+
## 📊 Figures, Diagrams, or Artifacts (Optional)
|
|
57
|
+
|
|
58
|
+
None
|
|
59
|
+
|
|
60
|
+
## ✅ Acceptance Criteria
|
|
61
|
+
|
|
62
|
+
- [x] Test `__init__(plotter,ax)` initializes selector and text objects
|
|
63
|
+
- [x] Verify `.ax`, `.corners`, `.date_axes`, `.is_multipanel` props
|
|
64
|
+
- [x] Verify `.selector` property exposes selector object
|
|
65
|
+
- [x] Verify `.text` property exposes text annotation
|
|
66
|
+
- [x] Test `_init_corners()` initializes corner coordinates
|
|
67
|
+
- [x] Test `_add_corners()` appends new corner tuples
|
|
68
|
+
- [x] Test `_finalize_text()` formats final selection text
|
|
69
|
+
- [x] Test `_update_text()` formats bounding-box extents
|
|
70
|
+
- [x] Test `onselect(press,release)` adds rectangle patch and updates
|
|
71
|
+
corners/text
|
|
72
|
+
- [x] Test `disconnect()` calls `sample_data()`, `scatter_sample()`,
|
|
73
|
+
`plot_failed_samples()`, disconnects events
|
|
74
|
+
- [x] Test `set_ax(ax, has_colorbar)` updates axis and colorbar state
|
|
75
|
+
- [x] Test `start_text()` initializes the annotation text object
|
|
76
|
+
- [x] Test `start_selector()` starts selection widget
|
|
77
|
+
- [x] Test `sample_data(n=3,random_state=…)` returns correct sampled indices
|
|
78
|
+
- [x] Verify `sample_data(frac=0.1)` raises `NotImplementedError`
|
|
79
|
+
|
|
80
|
+
## 🧩 Decomposition Instructions (Optional)
|
|
81
|
+
|
|
82
|
+
None
|
|
83
|
+
|
|
84
|
+
## 🤖 Sweep Agent Instructions (Optional)
|
|
85
|
+
|
|
86
|
+
None
|
|
87
|
+
|
|
88
|
+
## 💬 Additional Notes
|
|
89
|
+
|
|
90
|
+
- Ensures correct functionality, edge-case handling, API stability, and protects
|
|
91
|
+
non-public internals.
|
|
92
|
+
|
|
93
|
+
**Status**: ✅ COMPLETED
|
|
94
|
+
**Commit**: 5b47880
|
|
95
|
+
**Tests Added**: 51 comprehensive test cases
|
|
96
|
+
**Time Invested**: 1 hour
|
|
97
|
+
**Test Results**: 51/51 passing (100% success rate)
|