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.
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)
def success_rate(traces):
if not traces:
return 0.0
return sum(1 for t in traces if t.get('success')) / len(traces)