Store exact RUB balances, atomic transfers, linked refunds and versioned edits independently of T-Bank. Add migration, HTTP and durability verification.
24 lines
710 B
TypeScript
24 lines
710 B
TypeScript
import { add, formatDecimal, multiply, subtract } from '../common/decimal';
|
|
import { decimal } from './decimal';
|
|
|
|
describe('decimal', () => {
|
|
it('keeps signed nanos exact without floats', () => {
|
|
expect(formatDecimal(decimal({ units: 0, nano: -500000000 }))).toBe('-0.5');
|
|
expect(
|
|
formatDecimal(
|
|
add(decimal({ units: '9007199254740993' }), decimal({ nano: 1 })),
|
|
),
|
|
).toBe('9007199254740993.000000001');
|
|
expect(
|
|
formatDecimal(
|
|
subtract(decimal({ units: 1 }), decimal({ nano: 500000000 })),
|
|
),
|
|
).toBe('0.5');
|
|
expect(
|
|
formatDecimal(
|
|
multiply(decimal({ units: 2 }), decimal({ nano: 500000000 })),
|
|
),
|
|
).toBe('1');
|
|
});
|
|
});
|