FA-59511 / Subscription proration billing / Open access
Prorated amounts in currency minor units: fraction zero padding · case 01
Amounts like 12.05 display as 12.5.
ROOT CAUSE
The minor-unit digits are printed without zero padding.
VERIFIED REPAIR
Restore the contract rule at the fraction zero padding step: use `disp = '%s%d.%0*d' % (sign, q, exp, r)`.
Unsuccessful approach: The attempt pads to two digits for every currency, misprinting three-decimal dinars.
Case contract
Input {price (signed minor units), currency, num, den}. Exponents: USD 2, EUR 2, JPY 0, KWD 3, CLP 0. Amount = price*num/den rounded half away from zero. Display: zero-exponent currencies show an integer; others show sign, major units, a dot and exactly exponent digits, then a space and the code. Return {minor, display}.
Why this case matters
Prorated amounts must round and render in each currency's own minor-unit precision, including credits.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
exp = {'USD': 2, 'EUR': 2, 'JPY': 0, 'KWD': 3, 'CLP': 0}[x['currency']]
n = x['price'] * x['num']
v = (abs(n) * 2 + x['den']) // (2 * x['den'])
v = v if n >= 0 else -v
if exp == 0:
disp = str(v)
else:
sign = '-' if v < 0 else ''
q, r = divmod(abs(v), 10 ** exp)
disp = '%s%d.%d' % (sign, q, r)
return {'minor': v, 'display': disp + ' ' + x['currency']}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression (boundary)', {'price': -7, 'currency': 'KWD', 'num': 1, 'den': 2}, {'minor': -4, 'display': '-0.004 KWD'}), ('regression (boundary)', {'price': -3, 'currency': 'USD', 'num': 1, 'den': 2}, {'minor': -2, 'display': '-0.02 USD'}), ('partial-repair probe', {'price': -35, 'currency': 'KWD', 'num': 30, 'den': 30}, {'minor': -35, 'display': '-0.035 KWD'}), ('partial-repair probe', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': -6310, 'currency': 'EUR', 'num': 23, 'den': 31}, {'minor': -4682, 'display': '-46.82 EUR'}), ('normal control', {'price': 63, 'currency': 'JPY', 'num': 925, 'den': 1000}, {'minor': 58, 'display': '58 JPY'}), ('normal control', {'price': 59, 'currency': 'JPY', 'num': 2, 'den': 4}, {'minor': 30, 'display': '30 JPY'}), ('normal control', {'price': -18, 'currency': 'JPY', 'num': 81, 'den': 365}, {'minor': -4, 'display': '-4 JPY'})], [('regression', {'price': -35, 'currency': 'KWD', 'num': 30, 'den': 30}, {'minor': -35, 'display': '-0.035 KWD'}), ('regression (boundary)', {'price': -7, 'currency': 'KWD', 'num': 1, 'den': 2}, {'minor': -4, 'display': '-0.004 KWD'}), ('partial-repair probe', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('partial-repair probe', {'price': -88, 'currency': 'KWD', 'num': 15, 'den': 31}, {'minor': -43, 'display': '-0.043 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': -48, 'currency': 'JPY', 'num': 0, 'den': 4}, {'minor': 0, 'display': '0 JPY'}), ('normal control', {'price': -51, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -26, 'display': '-0.26 EUR'}), ('normal control', {'price': -79, 'currency': 'JPY', 'num': 200, 'den': 365}, {'minor': -43, 'display': '-43 JPY'}), ('normal control', {'price': -20, 'currency': 'USD', 'num': 1, 'den': 2}, {'minor': -10, 'display': '-0.10 USD'})], [('regression', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('regression', {'price': -35, 'currency': 'KWD', 'num': 30, 'den': 30}, {'minor': -35, 'display': '-0.035 KWD'}), ('partial-repair probe', {'price': -74, 'currency': 'KWD', 'num': 111, 'den': 365}, {'minor': -23, 'display': '-0.023 KWD'}), ('partial-repair probe', {'price': 96, 'currency': 'KWD', 'num': 19, 'den': 31}, {'minor': 59, 'display': '0.059 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': 464209, 'currency': 'EUR', 'num': 10, 'den': 30}, {'minor': 154736, 'display': '1547.36 EUR'}), ('normal control', {'price': 61, 'currency': 'JPY', 'num': 50, 'den': 365}, {'minor': 8, 'display': '8 JPY'}), ('normal control', {'price': 675691, 'currency': 'KWD', 'num': 214, 'den': 365}, {'minor': 396159, 'display': '396.159 KWD'}), ('normal control', {'price': -28, 'currency': 'EUR', 'num': 30, 'den': 30}, {'minor': -28, 'display': '-0.28 EUR'})], [('regression', {'price': -88, 'currency': 'KWD', 'num': 15, 'den': 31}, {'minor': -43, 'display': '-0.043 KWD'}), ('regression', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('partial-repair probe', {'price': 79, 'currency': 'KWD', 'num': 2, 'den': 2}, {'minor': 79, 'display': '0.079 KWD'}), ('partial-repair probe', {'price': -147, 'currency': 'KWD', 'num': 546, 'den': 1000}, {'minor': -80, 'display': '-0.080 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': 95, 'currency': 'USD', 'num': 25, 'den': 30}, {'minor': 79, 'display': '0.79 USD'}), ('normal control', {'price': 553663, 'currency': 'USD', 'num': 138, 'den': 365}, {'minor': 209330, 'display': '2093.30 USD'}), ('normal control', {'price': 21, 'currency': 'JPY', 'num': 3, 'den': 30}, {'minor': 2, 'display': '2 JPY'}), ('normal control', {'price': 127, 'currency': 'JPY', 'num': 0, 'den': 2}, {'minor': 0, 'display': '0 JPY'})], [('regression', {'price': -74, 'currency': 'KWD', 'num': 111, 'den': 365}, {'minor': -23, 'display': '-0.023 KWD'}), ('regression', {'price': -88, 'currency': 'KWD', 'num': 15, 'den': 31}, {'minor': -43, 'display': '-0.043 KWD'}), ('partial-repair probe', {'price': 48, 'currency': 'KWD', 'num': 269, 'den': 1000}, {'minor': 13, 'display': '0.013 KWD'}), ('partial-repair probe', {'price': 140, 'currency': 'KWD', 'num': 661, 'den': 1000}, {'minor': 93, 'display': '0.093 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': 248141, 'currency': 'EUR', 'num': 187, 'den': 365}, {'minor': 127130, 'display': '1271.30 EUR'}), ('normal control', {'price': -70, 'currency': 'JPY', 'num': 209, 'den': 365}, {'minor': -40, 'display': '-40 JPY'}), ('normal control', {'price': 26512, 'currency': 'USD', 'num': 248, 'den': 365}, {'minor': 18014, 'display': '180.14 USD'}), ('normal control', {'price': -927642, 'currency': 'KWD', 'num': 9, 'den': 31}, {'minor': -269315, 'display': '-269.315 KWD'})]]
for i, (label, args, expected) in enumerate(fixtures[N-1]):
check("%s %d" % (label, i), solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression (boundary) 0 | {'display': '-0.4 KWD', 'minor': -4} | {'display': '-0.004 KWD', 'minor': -4} | Failed |
| regression (boundary) 1 | {'display': '-0.2 USD', 'minor': -2} | {'display': '-0.02 USD', 'minor': -2} | Failed |
| partial-repair probe 2 | {'display': '-0.35 KWD', 'minor': -35} | {'display': '-0.035 KWD', 'minor': -35} | Failed |
| partial-repair probe 3 | {'display': '0.3 KWD', 'minor': 3} | {'display': '0.003 KWD', 'minor': 3} | Failed |
| boundary control 4 | {'display': '3 JPY', 'minor': 3} | {'display': '3 JPY', 'minor': 3} | Passed |
| boundary control 5 | {'display': '-0.53 EUR', 'minor': -53} | {'display': '-0.53 EUR', 'minor': -53} | Passed |
| normal control 6 | {'display': '-46.82 EUR', 'minor': -4682} | {'display': '-46.82 EUR', 'minor': -4682} | Passed |
| normal control 7 | {'display': '58 JPY', 'minor': 58} | {'display': '58 JPY', 'minor': 58} | Passed |
| normal control 8 | {'display': '30 JPY', 'minor': 30} | {'display': '30 JPY', 'minor': 30} | Passed |
| normal control 9 | {'display': '-4 JPY', 'minor': -4} | {'display': '-4 JPY', 'minor': -4} | Passed |
SHA-256 / c08270190b8738b169d9ca51ea6c879f768e5e84a1df14047e7c5874833cfc21
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
exp = {'USD': 2, 'EUR': 2, 'JPY': 0, 'KWD': 3, 'CLP': 0}[x['currency']]
n = x['price'] * x['num']
v = (abs(n) * 2 + x['den']) // (2 * x['den'])
v = v if n >= 0 else -v
if exp == 0:
disp = str(v)
else:
sign = '-' if v < 0 else ''
q, r = divmod(abs(v), 10 ** exp)
disp = '%s%d.%02d' % (sign, q, r)
return {'minor': v, 'display': disp + ' ' + x['currency']}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression (boundary)', {'price': -7, 'currency': 'KWD', 'num': 1, 'den': 2}, {'minor': -4, 'display': '-0.004 KWD'}), ('regression (boundary)', {'price': -3, 'currency': 'USD', 'num': 1, 'den': 2}, {'minor': -2, 'display': '-0.02 USD'}), ('partial-repair probe', {'price': -35, 'currency': 'KWD', 'num': 30, 'den': 30}, {'minor': -35, 'display': '-0.035 KWD'}), ('partial-repair probe', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': -6310, 'currency': 'EUR', 'num': 23, 'den': 31}, {'minor': -4682, 'display': '-46.82 EUR'}), ('normal control', {'price': 63, 'currency': 'JPY', 'num': 925, 'den': 1000}, {'minor': 58, 'display': '58 JPY'}), ('normal control', {'price': 59, 'currency': 'JPY', 'num': 2, 'den': 4}, {'minor': 30, 'display': '30 JPY'}), ('normal control', {'price': -18, 'currency': 'JPY', 'num': 81, 'den': 365}, {'minor': -4, 'display': '-4 JPY'})], [('regression', {'price': -35, 'currency': 'KWD', 'num': 30, 'den': 30}, {'minor': -35, 'display': '-0.035 KWD'}), ('regression (boundary)', {'price': -7, 'currency': 'KWD', 'num': 1, 'den': 2}, {'minor': -4, 'display': '-0.004 KWD'}), ('partial-repair probe', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('partial-repair probe', {'price': -88, 'currency': 'KWD', 'num': 15, 'den': 31}, {'minor': -43, 'display': '-0.043 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': -48, 'currency': 'JPY', 'num': 0, 'den': 4}, {'minor': 0, 'display': '0 JPY'}), ('normal control', {'price': -51, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -26, 'display': '-0.26 EUR'}), ('normal control', {'price': -79, 'currency': 'JPY', 'num': 200, 'den': 365}, {'minor': -43, 'display': '-43 JPY'}), ('normal control', {'price': -20, 'currency': 'USD', 'num': 1, 'den': 2}, {'minor': -10, 'display': '-0.10 USD'})], [('regression', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('regression', {'price': -35, 'currency': 'KWD', 'num': 30, 'den': 30}, {'minor': -35, 'display': '-0.035 KWD'}), ('partial-repair probe', {'price': -74, 'currency': 'KWD', 'num': 111, 'den': 365}, {'minor': -23, 'display': '-0.023 KWD'}), ('partial-repair probe', {'price': 96, 'currency': 'KWD', 'num': 19, 'den': 31}, {'minor': 59, 'display': '0.059 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': 464209, 'currency': 'EUR', 'num': 10, 'den': 30}, {'minor': 154736, 'display': '1547.36 EUR'}), ('normal control', {'price': 61, 'currency': 'JPY', 'num': 50, 'den': 365}, {'minor': 8, 'display': '8 JPY'}), ('normal control', {'price': 675691, 'currency': 'KWD', 'num': 214, 'den': 365}, {'minor': 396159, 'display': '396.159 KWD'}), ('normal control', {'price': -28, 'currency': 'EUR', 'num': 30, 'den': 30}, {'minor': -28, 'display': '-0.28 EUR'})], [('regression', {'price': -88, 'currency': 'KWD', 'num': 15, 'den': 31}, {'minor': -43, 'display': '-0.043 KWD'}), ('regression', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('partial-repair probe', {'price': 79, 'currency': 'KWD', 'num': 2, 'den': 2}, {'minor': 79, 'display': '0.079 KWD'}), ('partial-repair probe', {'price': -147, 'currency': 'KWD', 'num': 546, 'den': 1000}, {'minor': -80, 'display': '-0.080 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': 95, 'currency': 'USD', 'num': 25, 'den': 30}, {'minor': 79, 'display': '0.79 USD'}), ('normal control', {'price': 553663, 'currency': 'USD', 'num': 138, 'den': 365}, {'minor': 209330, 'display': '2093.30 USD'}), ('normal control', {'price': 21, 'currency': 'JPY', 'num': 3, 'den': 30}, {'minor': 2, 'display': '2 JPY'}), ('normal control', {'price': 127, 'currency': 'JPY', 'num': 0, 'den': 2}, {'minor': 0, 'display': '0 JPY'})], [('regression', {'price': -74, 'currency': 'KWD', 'num': 111, 'den': 365}, {'minor': -23, 'display': '-0.023 KWD'}), ('regression', {'price': -88, 'currency': 'KWD', 'num': 15, 'den': 31}, {'minor': -43, 'display': '-0.043 KWD'}), ('partial-repair probe', {'price': 48, 'currency': 'KWD', 'num': 269, 'den': 1000}, {'minor': 13, 'display': '0.013 KWD'}), ('partial-repair probe', {'price': 140, 'currency': 'KWD', 'num': 661, 'den': 1000}, {'minor': 93, 'display': '0.093 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': 248141, 'currency': 'EUR', 'num': 187, 'den': 365}, {'minor': 127130, 'display': '1271.30 EUR'}), ('normal control', {'price': -70, 'currency': 'JPY', 'num': 209, 'den': 365}, {'minor': -40, 'display': '-40 JPY'}), ('normal control', {'price': 26512, 'currency': 'USD', 'num': 248, 'den': 365}, {'minor': 18014, 'display': '180.14 USD'}), ('normal control', {'price': -927642, 'currency': 'KWD', 'num': 9, 'den': 31}, {'minor': -269315, 'display': '-269.315 KWD'})]]
for i, (label, args, expected) in enumerate(fixtures[N-1]):
check("%s %d" % (label, i), solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression (boundary) 0 | {'display': '-0.04 KWD', 'minor': -4} | {'display': '-0.004 KWD', 'minor': -4} | Failed |
| regression (boundary) 1 | {'display': '-0.02 USD', 'minor': -2} | {'display': '-0.02 USD', 'minor': -2} | Passed |
| partial-repair probe 2 | {'display': '-0.35 KWD', 'minor': -35} | {'display': '-0.035 KWD', 'minor': -35} | Failed |
| partial-repair probe 3 | {'display': '0.03 KWD', 'minor': 3} | {'display': '0.003 KWD', 'minor': 3} | Failed |
| boundary control 4 | {'display': '3 JPY', 'minor': 3} | {'display': '3 JPY', 'minor': 3} | Passed |
| boundary control 5 | {'display': '-0.53 EUR', 'minor': -53} | {'display': '-0.53 EUR', 'minor': -53} | Passed |
| normal control 6 | {'display': '-46.82 EUR', 'minor': -4682} | {'display': '-46.82 EUR', 'minor': -4682} | Passed |
| normal control 7 | {'display': '58 JPY', 'minor': 58} | {'display': '58 JPY', 'minor': 58} | Passed |
| normal control 8 | {'display': '30 JPY', 'minor': 30} | {'display': '30 JPY', 'minor': 30} | Passed |
| normal control 9 | {'display': '-4 JPY', 'minor': -4} | {'display': '-4 JPY', 'minor': -4} | Passed |
SHA-256 / 461d2b5bbc642e9db34f338ff7c532cc3e1366b87ca502f63395c67ef060940f
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
exp = {'USD': 2, 'EUR': 2, 'JPY': 0, 'KWD': 3, 'CLP': 0}[x['currency']]
n = x['price'] * x['num']
v = (abs(n) * 2 + x['den']) // (2 * x['den'])
v = v if n >= 0 else -v
if exp == 0:
disp = str(v)
else:
sign = '-' if v < 0 else ''
q, r = divmod(abs(v), 10 ** exp)
disp = '%s%d.%0*d' % (sign, q, exp, r)
return {'minor': v, 'display': disp + ' ' + x['currency']}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression (boundary)', {'price': -7, 'currency': 'KWD', 'num': 1, 'den': 2}, {'minor': -4, 'display': '-0.004 KWD'}), ('regression (boundary)', {'price': -3, 'currency': 'USD', 'num': 1, 'den': 2}, {'minor': -2, 'display': '-0.02 USD'}), ('partial-repair probe', {'price': -35, 'currency': 'KWD', 'num': 30, 'den': 30}, {'minor': -35, 'display': '-0.035 KWD'}), ('partial-repair probe', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': -6310, 'currency': 'EUR', 'num': 23, 'den': 31}, {'minor': -4682, 'display': '-46.82 EUR'}), ('normal control', {'price': 63, 'currency': 'JPY', 'num': 925, 'den': 1000}, {'minor': 58, 'display': '58 JPY'}), ('normal control', {'price': 59, 'currency': 'JPY', 'num': 2, 'den': 4}, {'minor': 30, 'display': '30 JPY'}), ('normal control', {'price': -18, 'currency': 'JPY', 'num': 81, 'den': 365}, {'minor': -4, 'display': '-4 JPY'})], [('regression', {'price': -35, 'currency': 'KWD', 'num': 30, 'den': 30}, {'minor': -35, 'display': '-0.035 KWD'}), ('regression (boundary)', {'price': -7, 'currency': 'KWD', 'num': 1, 'den': 2}, {'minor': -4, 'display': '-0.004 KWD'}), ('partial-repair probe', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('partial-repair probe', {'price': -88, 'currency': 'KWD', 'num': 15, 'den': 31}, {'minor': -43, 'display': '-0.043 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': -48, 'currency': 'JPY', 'num': 0, 'den': 4}, {'minor': 0, 'display': '0 JPY'}), ('normal control', {'price': -51, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -26, 'display': '-0.26 EUR'}), ('normal control', {'price': -79, 'currency': 'JPY', 'num': 200, 'den': 365}, {'minor': -43, 'display': '-43 JPY'}), ('normal control', {'price': -20, 'currency': 'USD', 'num': 1, 'den': 2}, {'minor': -10, 'display': '-0.10 USD'})], [('regression', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('regression', {'price': -35, 'currency': 'KWD', 'num': 30, 'den': 30}, {'minor': -35, 'display': '-0.035 KWD'}), ('partial-repair probe', {'price': -74, 'currency': 'KWD', 'num': 111, 'den': 365}, {'minor': -23, 'display': '-0.023 KWD'}), ('partial-repair probe', {'price': 96, 'currency': 'KWD', 'num': 19, 'den': 31}, {'minor': 59, 'display': '0.059 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': 464209, 'currency': 'EUR', 'num': 10, 'den': 30}, {'minor': 154736, 'display': '1547.36 EUR'}), ('normal control', {'price': 61, 'currency': 'JPY', 'num': 50, 'den': 365}, {'minor': 8, 'display': '8 JPY'}), ('normal control', {'price': 675691, 'currency': 'KWD', 'num': 214, 'den': 365}, {'minor': 396159, 'display': '396.159 KWD'}), ('normal control', {'price': -28, 'currency': 'EUR', 'num': 30, 'den': 30}, {'minor': -28, 'display': '-0.28 EUR'})], [('regression', {'price': -88, 'currency': 'KWD', 'num': 15, 'den': 31}, {'minor': -43, 'display': '-0.043 KWD'}), ('regression', {'price': 26, 'currency': 'KWD', 'num': 3, 'den': 31}, {'minor': 3, 'display': '0.003 KWD'}), ('partial-repair probe', {'price': 79, 'currency': 'KWD', 'num': 2, 'den': 2}, {'minor': 79, 'display': '0.079 KWD'}), ('partial-repair probe', {'price': -147, 'currency': 'KWD', 'num': 546, 'den': 1000}, {'minor': -80, 'display': '-0.080 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': 95, 'currency': 'USD', 'num': 25, 'den': 30}, {'minor': 79, 'display': '0.79 USD'}), ('normal control', {'price': 553663, 'currency': 'USD', 'num': 138, 'den': 365}, {'minor': 209330, 'display': '2093.30 USD'}), ('normal control', {'price': 21, 'currency': 'JPY', 'num': 3, 'den': 30}, {'minor': 2, 'display': '2 JPY'}), ('normal control', {'price': 127, 'currency': 'JPY', 'num': 0, 'den': 2}, {'minor': 0, 'display': '0 JPY'})], [('regression', {'price': -74, 'currency': 'KWD', 'num': 111, 'den': 365}, {'minor': -23, 'display': '-0.023 KWD'}), ('regression', {'price': -88, 'currency': 'KWD', 'num': 15, 'den': 31}, {'minor': -43, 'display': '-0.043 KWD'}), ('partial-repair probe', {'price': 48, 'currency': 'KWD', 'num': 269, 'den': 1000}, {'minor': 13, 'display': '0.013 KWD'}), ('partial-repair probe', {'price': 140, 'currency': 'KWD', 'num': 661, 'den': 1000}, {'minor': 93, 'display': '0.093 KWD'}), ('boundary control', {'price': 5, 'currency': 'JPY', 'num': 1, 'den': 2}, {'minor': 3, 'display': '3 JPY'}), ('boundary control', {'price': -105, 'currency': 'EUR', 'num': 1, 'den': 2}, {'minor': -53, 'display': '-0.53 EUR'}), ('normal control', {'price': 248141, 'currency': 'EUR', 'num': 187, 'den': 365}, {'minor': 127130, 'display': '1271.30 EUR'}), ('normal control', {'price': -70, 'currency': 'JPY', 'num': 209, 'den': 365}, {'minor': -40, 'display': '-40 JPY'}), ('normal control', {'price': 26512, 'currency': 'USD', 'num': 248, 'den': 365}, {'minor': 18014, 'display': '180.14 USD'}), ('normal control', {'price': -927642, 'currency': 'KWD', 'num': 9, 'den': 31}, {'minor': -269315, 'display': '-269.315 KWD'})]]
for i, (label, args, expected) in enumerate(fixtures[N-1]):
check("%s %d" % (label, i), solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression (boundary) 0 | {'display': '-0.004 KWD', 'minor': -4} | {'display': '-0.004 KWD', 'minor': -4} | Passed |
| regression (boundary) 1 | {'display': '-0.02 USD', 'minor': -2} | {'display': '-0.02 USD', 'minor': -2} | Passed |
| partial-repair probe 2 | {'display': '-0.035 KWD', 'minor': -35} | {'display': '-0.035 KWD', 'minor': -35} | Passed |
| partial-repair probe 3 | {'display': '0.003 KWD', 'minor': 3} | {'display': '0.003 KWD', 'minor': 3} | Passed |
| boundary control 4 | {'display': '3 JPY', 'minor': 3} | {'display': '3 JPY', 'minor': 3} | Passed |
| boundary control 5 | {'display': '-0.53 EUR', 'minor': -53} | {'display': '-0.53 EUR', 'minor': -53} | Passed |
| normal control 6 | {'display': '-46.82 EUR', 'minor': -4682} | {'display': '-46.82 EUR', 'minor': -4682} | Passed |
| normal control 7 | {'display': '58 JPY', 'minor': 58} | {'display': '58 JPY', 'minor': 58} | Passed |
| normal control 8 | {'display': '30 JPY', 'minor': 30} | {'display': '30 JPY', 'minor': 30} | Passed |
| normal control 9 | {'display': '-4 JPY', 'minor': -4} | {'display': '-4 JPY', 'minor': -4} | Passed |
SHA-256 / 64604ba84aa4c1b221e068417dcf3594c62f3aa695499ffcc9bf55f3810f2fdf
Verification & scope
A deterministic teaching model of a stipulated billing rule. It makes no claim to reproduce any billing provider's exact behaviour and is not billing software. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:46:36.958236+00:00.
Case digest / e8aed62c42af76d1a26e395f6d01736bcb36057afa6938a4fb59acbe4107f61a