# T03: Money Precision Fix

Fix `ledger.money.parse_money(value)`, keeping the function name, parameters and normal call pattern compatible.

Requirements:
1. Return integer cents; the integer `12` and the string `"12"` both mean 12 major currency units and return `1200`; `"12.3"` returns `1230`, `"-0.01"` returns `-1`.
2. Accept only integers (excluding booleans) or strings matching `^-?\d+(\.\d{1,2})?$`.
3. Floats, booleans, empty strings, surrounding whitespace, non-numeric input, leading plus signs, and more than two decimal places all raise `ValueError`; no silent truncation or rounding.
4. Do not change public behavior unrelated to money parsing, and add no runtime dependencies; you may add tests, but must not delete or modify existing ones.

Run `python3 -m unittest discover -s tests -v` and report the actual command and its result.
