import { addMoney, compareMoney, formatMoney, isValidMoneyInput, moneyEquals, normalizeMoney, subtractMoney, sumMoney } from '@/utils/budgetMoney' describe('budget money', () => { it('normalizes and displays four decimals', () => { expect(normalizeMoney('12.34')).toBe('12.3400') expect(formatMoney('0.0001')).toBe('0.0001') expect(formatMoney(null)).toBe('0.0000') }) it('calculates without binary floating point drift', () => { expect(addMoney('0.1000', '0.2000')).toBe('0.3000') expect(subtractMoney('1.0000', '0.9999')).toBe('0.0001') expect(sumMoney(['9999999999.9999', '0.0002'])).toBe('10000000000.0001') expect(moneyEquals('12.34', '12.3400')).toBe(true) expect(compareMoney('1.0000', '0.9999')).toBe(1) }) it('rejects over-precision and out-of-range input', () => { expect(isValidMoneyInput('1.00001')).toBe(false) expect(isValidMoneyInput('100000000000.0000')).toBe(false) expect(isValidMoneyInput('1e3')).toBe(false) expect(() => normalizeMoney('1.00001')).toThrow() }) })