fix: bound money conversion after cents scaling

This commit is contained in:
jb
2026-09-18 23:55:32 -04:00
parent aea41d8cea
commit 9ddd12fbc5
2 changed files with 15 additions and 9 deletions
+5 -2
View File
@@ -37,9 +37,12 @@ describe('exact decimal ISK conversion', () => {
expect(() => decimalIskToCents(`1e${'0'.repeat(8191)}`)).toThrow('input exceeds resource bounds');
expect(() => decimalIskToCents('1e1001')).toThrow('exponent is outside bounds');
expect(() => decimalIskToCents('1e-1001')).toThrow('exponent is outside bounds');
expect(decimalIskToCents('1e1000')).toBe(`1${'0'.repeat(1002)}`);
expect(decimalIskToCents('1e998')).toBe(`1${'0'.repeat(1000)}`);
expect(() => decimalIskToCents('1e999')).toThrow('shift exceeds resource bounds');
expect(() => decimalIskToCents('1e1000')).toThrow('shift exceeds resource bounds');
expect(decimalIskToCents(`1.${'0'.repeat(1002)}`)).toBe('100');
expect(() => decimalIskToCents(`1.${'0'.repeat(1003)}`)).toThrow('shift exceeds resource bounds');
expect(decimalIskToCents(`0.${'0'.repeat(999)}1`)).toBe('0');
expect(() => decimalIskToCents(`0.${'0'.repeat(1000)}1`)).toThrow('shift exceeds resource bounds');
expect(decimalIskToCents('1'.repeat(4096))).toBe(`${BigInt('1'.repeat(4096)) * 100n}`);
expect(() => decimalIskToCents('1'.repeat(4097))).toThrow('coefficient exceeds resource bounds');
});