Buckets:
| from enum import Enum | |
| from typing import List, Dict, Tuple, Any, Optional | |
| from dataclasses import dataclass | |
| class ProofQuality(Enum): | |
| EXCELLENT = 5 | |
| GOOD = 4 | |
| ACCEPTABLE = 3 | |
| POOR = 2 | |
| INVALID = 1 | |
| class EvaluationMetrics: | |
| total_problems: int = 0 | |
| solved_problems: int = 0 | |
| success_rate: float = 0.0 | |
| average_time: float = 0.0 | |
| total_time: float = 0.0 | |
| average_confidence: float = 0.0 | |
| average_proof_quality: float = 0.0 | |
| proof_quality_scores: List[int] = None | |
| strategy_success_rates: Dict[str, Dict[str, float]] = None | |
| difficulty_breakdown: Dict[str, int] = None | |
| def __post_init__(self): | |
| if self.proof_quality_scores is None: | |
| self.proof_quality_scores = [] | |
| if self.strategy_success_rates is None: | |
| self.strategy_success_rates = {} | |
| if self.difficulty_breakdown is None: | |
| self.difficulty_breakdown = {} | |
| def calculate_derived_metrics(self): | |
| if self.total_problems > 0: | |
| self.success_rate = self.solved_problems / self.total_problems | |
| if self.proof_quality_scores: | |
| self.average_proof_quality = sum(self.proof_quality_scores) / len( | |
| self.proof_quality_scores | |
| ) | |
| for strategy_data in self.strategy_success_rates.values(): | |
| if strategy_data.get("attempts", 0) > 0: | |
| strategy_data["success_rate"] = ( | |
| strategy_data.get("successes", 0) / strategy_data["attempts"] | |
| ) | |
| else: | |
| strategy_data["success_rate"] = 0.0 | |
| def get_summary_report(self) -> str: | |
| report = [] | |
| report.append("=== Geometry Solver Evaluation Summary ===") | |
| report.append(f"Total Problems: {self.total_problems}") | |
| report.append(f"Solved Problems: {self.solved_problems}") | |
| report.append(f"Success Rate: {self.success_rate:.1%}") | |
| report.append(f"Average Time: {self.average_time:.2f} seconds") | |
| report.append(f"Average Confidence: {self.average_confidence:.1%}") | |
| report.append(f"Average Proof Quality: {self.average_proof_quality:.1f}/5.0") | |
| if self.difficulty_breakdown: | |
| report.append("\nDifficulty Breakdown:") | |
| for difficulty, count in self.difficulty_breakdown.items(): | |
| report.append(f" {difficulty}: {count} problems solved") | |
| if self.strategy_success_rates: | |
| report.append("\nStrategy Performance:") | |
| for strategy, data in self.strategy_success_rates.items(): | |
| report.append( | |
| f" {strategy.capitalize()}: {data.get('success_rate', 0):.1%}" | |
| ) | |
| return "\n".join(report) | |
Xet Storage Details
- Size:
- 2.73 kB
- Xet hash:
- b58a69db9ea33df433b3eaf7062474fe282da99bca33131d74578e89e1ef8993
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.