"""
SelfAssessment
Generated by Eden via recursive self-improvement
2025-11-01 16:08:40.626377
"""

class SelfAssessment:
    def __init__(self, name):
        self.name = name  # Name of the self-assessment tool
        self.areas = {}  # Dictionary to store assessment results

    def add_area(self, area_name, score_range, description):
        """Add an area for assessment with a score range and description."""
        self.areas[area_name] = {
            "score_range": score_range,
            "description": description
        }

    def evaluate(self, area_name, score):
        """Evaluate the given area with a specific score."""
        if area_name in self.areas:
            current_score_range = self.areas[area_name]["score_range"]
            if score < current_score_range[0] or score > current_score_range[1]:
                raise ValueError(f"Score out of range: {current_score_range}")
            self.areas[area_name]["score"] = score
        else:
            raise KeyError(f"No such area: {area_name}")

    def get_results(self):
        """Return a summary of the assessment results."""
        results = []
        for area, details in self.areas.items():
            if "score" in details:
                results.append({
                    "area": area,
                    "description": details["description"],
                    "score": details["score"]
                })
        return results

    def display_results(self):
        """Display a formatted summary of the assessment results."""
        print(f"Self-Assessment: {self.name}")
        for result in self.get_results():
            print(f"{result['area']}: {result['description']} - Score: {result['score']}")

# Example usage
assessment = SelfAssessment("Business Capabilities")
assessment.add_area("Code Review Tools", (1, 5), "Evaluation of the effectiveness of SAGEs.")
assessment.add_area("Internal AI Functions", (1, 5), "Evaluation of the efficiency and usefulness of capabilities.")
assessment.evaluate("Code Review Tools", 4)
assessment.evaluate("Internal AI Functions", 3)

# Display results
assessment.display_results()
if __name__ == "__main__":
    assessment = SelfAssessment("Business Capabilities")
    # Adding areas for evaluation
    assessment.add_area("Code Review Tools", (1, 5), "Evaluation of the effectiveness of SAGEs.")
    assessment.add_area("Internal AI Functions", (1, 5), "Evaluation of the efficiency and usefulness of capabilities.")

    # Evaluating specific areas with scores
    assessment.evaluate("Code Review Tools", 4)
    assessment.evaluate("Internal AI Functions", 3)

    # Displaying the results
    assessment.display_results()