@yoroi/common
Version:
The Common package of Yoroi SDK
97 lines • 2.68 kB
JavaScript
import BigNumber from 'bignumber.js';
import { atomicBreakdown } from './atomic-breakdown';
describe('atomicBreakdown', () => {
it('should split a bigint into int dec and bn', () => {
let bigInt = BigInt(123_456_789);
let decimalPlaces = 3;
let expected = {
integer: '123456',
fraction: '789',
bn: new BigNumber('123456.789'),
bi: bigInt,
decimalPlaces,
str: '123456.789'
};
expect(atomicBreakdown(bigInt, decimalPlaces)).toEqual(expected);
bigInt = BigInt(987_654_321);
decimalPlaces = 2;
expected = {
integer: '9876543',
fraction: '21',
bn: new BigNumber('9876543.21'),
bi: bigInt,
decimalPlaces,
str: '9876543.21'
};
expect(atomicBreakdown(bigInt, decimalPlaces)).toEqual(expected);
bigInt = BigInt(1_432_116_543);
decimalPlaces = 5;
expected = {
integer: '14321',
fraction: '16543',
bn: new BigNumber('14321.16543'),
bi: bigInt,
decimalPlaces,
str: '14321.16543'
};
expect(atomicBreakdown(bigInt, decimalPlaces)).toEqual(expected);
bigInt = BigInt(123);
decimalPlaces = 6;
expected = {
integer: '0',
fraction: '000123',
bn: new BigNumber('0.000123'),
bi: bigInt,
decimalPlaces,
str: '0.000123'
};
expect(atomicBreakdown(bigInt, decimalPlaces)).toEqual(expected);
bigInt = BigInt(123);
decimalPlaces = 3;
expected = {
integer: '0',
fraction: '123',
bn: new BigNumber('0.123'),
bi: bigInt,
decimalPlaces,
str: '0.123'
};
expect(atomicBreakdown(bigInt, decimalPlaces)).toEqual(expected);
});
it('should handle negative bigint', () => {
let bigInt = BigInt(-123_456_789);
let decimalPlaces = 3;
let expected = {
integer: '123456',
fraction: '789',
bn: new BigNumber('-123456.789'),
bi: bigInt,
decimalPlaces,
str: '-123456.789'
};
expect(atomicBreakdown(bigInt, decimalPlaces)).toEqual(expected);
bigInt = BigInt(-987_654_321);
decimalPlaces = 2;
expected = {
integer: '9876543',
fraction: '21',
bn: new BigNumber('-9876543.21'),
bi: bigInt,
decimalPlaces,
str: '-9876543.21'
};
expect(atomicBreakdown(bigInt, decimalPlaces)).toEqual(expected);
bigInt = BigInt(-1_000);
decimalPlaces = 0;
expected = {
integer: '1000',
fraction: '',
bn: new BigNumber('-1000'),
bi: bigInt,
decimalPlaces,
str: '-1000'
};
expect(atomicBreakdown(bigInt, decimalPlaces)).toEqual(expected);
});
});
//# sourceMappingURL=atomic-breakdown.test.js.map