Files
codex-mmo/evals/adaptive-change/fixture/test_ledger.py
T
2026-08-24 08:11:59 -07:00

28 lines
833 B
Python

import unittest
from ledger import Ledger
class LedgerTests(unittest.TestCase):
def test_success_is_idempotent(self):
ledger = Ledger()
self.assertEqual(ledger.apply("deposit-1", "a", 10), 10)
self.assertEqual(ledger.apply("deposit-1", "a", 10), 10)
def test_overdraft_does_not_change_balance(self):
ledger = Ledger()
with self.assertRaises(ValueError):
ledger.apply("withdraw-1", "a", -4)
self.assertEqual(ledger.balance("a"), 0)
def test_rejected_operation_can_be_retried(self):
ledger = Ledger()
with self.assertRaises(ValueError):
ledger.apply("withdraw-1", "a", -4)
ledger.apply("deposit-1", "a", 10)
self.assertEqual(ledger.apply("withdraw-1", "a", -4), 6)
if __name__ == "__main__":
unittest.main()