Eureka/demo/fixture/test_tabsplit.py
Eureka 37c8c04e6a demo: tabsplit fixture with a seeded rule-3 bug, setup script, Soul brief
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-08 03:19:09 +00:00

28 lines
739 B
Python

import unittest
from tabsplit import split_cents
class SplitCents(unittest.TestCase):
def test_even_split(self):
self.assertEqual(split_cents(90, 3), [30, 30, 30])
def test_remainder_goes_somewhere(self):
self.assertEqual(sum(split_cents(100, 3)), 100)
def test_zero_total(self):
self.assertEqual(split_cents(0, 4), [0, 0, 0, 0])
def test_single_payer_pays_everything(self):
self.assertEqual(split_cents(1234, 1), [1234])
def test_one_share_per_payer(self):
self.assertEqual(len(split_cents(100, 3)), 3)
def test_no_payers_is_an_error(self):
with self.assertRaises(ValueError):
split_cents(100, 0)
if __name__ == "__main__":
unittest.main()