test_auth (test_service.Acceptance.test_auth) ... FAIL
test_basic (test_service.Acceptance.test_basic) ... ok
test_blank_key (test_service.Acceptance.test_blank_key) ... ok
test_conflicting_amount (test_service.Acceptance.test_conflicting_amount) ... FAIL
test_conflicting_order (test_service.Acceptance.test_conflicting_order) ... FAIL
test_cumulative (test_service.Acceptance.test_cumulative) ... FAIL
test_exact_limit (test_service.Acceptance.test_exact_limit) ... ok
test_half_up (test_service.Acceptance.test_half_up) ... FAIL
test_infinity (test_service.Acceptance.test_infinity) ... ERROR
test_injection_is_literal (test_service.Acceptance.test_injection_is_literal) ... ok
test_missing (test_service.Acceptance.test_missing) ... ok
test_nan (test_service.Acceptance.test_nan) ... ERROR
test_negative (test_service.Acceptance.test_negative) ... ok
test_replay (test_service.Acceptance.test_replay) ... ok
test_restart_replay (test_service.Acceptance.test_restart_replay) ... ok
test_rollback_then_recovery (test_service.Acceptance.test_rollback_then_recovery) ... ok
test_tiny (test_service.Acceptance.test_tiny) ... ok
test_unpaid (test_service.Acceptance.test_unpaid) ... ok
test_zero (test_service.Acceptance.test_zero) ... ok

======================================================================
ERROR: test_infinity (test_service.Acceptance.test_infinity)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gy\Documents\Codex\2026-09-25\https-guoyu-ai-study-netlify-app\work\coding_check\baseline\test_service.py", line 37, in test_infinity
    with self.assertRaisesRegex(ValueError,"invalid_amount"):self.s.refund("A","alice","k","Infinity")
                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\gy\Documents\Codex\2026-09-25\https-guoyu-ai-study-netlify-app\work\coding_check\baseline\service.py", line 17, in refund
    value=value.quantize(Decimal("0.01"),rounding="ROUND_DOWN")
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]

======================================================================
ERROR: test_nan (test_service.Acceptance.test_nan)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gy\Documents\Codex\2026-09-25\https-guoyu-ai-study-netlify-app\work\coding_check\baseline\test_service.py", line 35, in test_nan
    with self.assertRaisesRegex(ValueError,"invalid_amount"):self.s.refund("A","alice","k","NaN")
                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\gy\Documents\Codex\2026-09-25\https-guoyu-ai-study-netlify-app\work\coding_check\baseline\service.py", line 16, in refund
    if value<=0:raise ValueError("invalid_amount")
       ^^^^^^^^
decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]

======================================================================
FAIL: test_auth (test_service.Acceptance.test_auth)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gy\Documents\Codex\2026-09-25\https-guoyu-ai-study-netlify-app\work\coding_check\baseline\test_service.py", line 11, in test_auth
    with self.assertRaises(PermissionError):self.s.refund("A","bob","k",1)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: PermissionError not raised

======================================================================
FAIL: test_conflicting_amount (test_service.Acceptance.test_conflicting_amount)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gy\Documents\Codex\2026-09-25\https-guoyu-ai-study-netlify-app\work\coding_check\baseline\test_service.py", line 17, in test_conflicting_amount
    with self.assertRaisesRegex(ValueError,"conflict"):self.s.refund("A","alice","k",3)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: ValueError not raised

======================================================================
FAIL: test_conflicting_order (test_service.Acceptance.test_conflicting_order)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gy\Documents\Codex\2026-09-25\https-guoyu-ai-study-netlify-app\work\coding_check\baseline\test_service.py", line 20, in test_conflicting_order
    with self.assertRaisesRegex(ValueError,"conflict"):self.s.refund("B","bob","k",2)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: ValueError not raised

======================================================================
FAIL: test_cumulative (test_service.Acceptance.test_cumulative)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gy\Documents\Codex\2026-09-25\https-guoyu-ai-study-netlify-app\work\coding_check\baseline\test_service.py", line 23, in test_cumulative
    with self.assertRaisesRegex(ValueError,"over_refund"):self.s.refund("A","alice","j",4)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: ValueError not raised

======================================================================
FAIL: test_half_up (test_service.Acceptance.test_half_up)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gy\Documents\Codex\2026-09-25\https-guoyu-ai-study-netlify-app\work\coding_check\baseline\test_service.py", line 9, in test_half_up
    def test_half_up(self):self.assertEqual(self.s.refund("A","alice","k","1.005")["amount"],"1.01")
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: '1.00' != '1.01'
- 1.00
?    ^
+ 1.01
?    ^


----------------------------------------------------------------------
Ran 19 tests in 0.034s

FAILED (failures=5, errors=2)
