๐Ÿ’ป Exercise: Exercise: Success rate

๐Ÿ“ Instructions

Write success_rate(traces) returning the fraction of traces whose 'success' field is truthy, as a float. Return 0.0 for an empty list. Standard library only.

๐Ÿงช Initial Code / Tests

๐Ÿ“„ evaluate.py
from unittest import TestCase
from exercise import success_rate


class Evaluate(TestCase):
    def test_all_success(self):
        self.assertEqual(success_rate([{'success': True}, {'success': True}]), 1.0)

    def test_half_success(self):
        self.assertEqual(success_rate([{'success': True}, {'success': False}]), 0.5)

    def test_empty_is_zero(self):
        self.assertEqual(success_rate([]), 0.0)

โœ… Solutions

๐Ÿ“„ exercise.py
def success_rate(traces):
    if not traces:
        return 0.0
    return sum(1 for t in traces if t.get('success')) / len(traces)