|
| 1 | +import BN from 'bn.js' |
| 2 | +import { |
| 3 | + formatKiltBalance, |
| 4 | + convertToTxUnit, |
| 5 | + asFemtoKilt, |
| 6 | + TRANSACTION_FEE, |
| 7 | +} from './Balance.utils' |
| 8 | + |
| 9 | +describe('formatKiltBalance', () => { |
| 10 | + const TESTVALUE = new BN('123456789000') |
| 11 | + const baseValue = new BN('1') |
| 12 | + it('formats the given balance', async () => { |
| 13 | + expect(formatKiltBalance(TESTVALUE)).toEqual('123.456 micro KILT') |
| 14 | + expect(formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(3))))).toEqual( |
| 15 | + '1.000 pico KILT' |
| 16 | + ) |
| 17 | + expect(formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(6))))).toEqual( |
| 18 | + '1.000 nano KILT' |
| 19 | + ) |
| 20 | + expect(formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(9))))).toEqual( |
| 21 | + '1.000 micro KILT' |
| 22 | + ) |
| 23 | + expect( |
| 24 | + formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(12)))) |
| 25 | + ).toEqual('1.000 milli KILT') |
| 26 | + expect( |
| 27 | + formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(15)))) |
| 28 | + ).toEqual('1.000 KILT') |
| 29 | + expect( |
| 30 | + formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(18)))) |
| 31 | + ).toEqual('1.000 Kilo KILT') |
| 32 | + expect( |
| 33 | + formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(21)))) |
| 34 | + ).toEqual('1.000 Mega KILT') |
| 35 | + expect( |
| 36 | + formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(24)))) |
| 37 | + ).toEqual('1.000 Giga KILT') |
| 38 | + expect( |
| 39 | + formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(27)))) |
| 40 | + ).toEqual('1.000 Tera KILT') |
| 41 | + }) |
| 42 | +}) |
| 43 | +describe('convertToTxUnit', () => { |
| 44 | + it('converts given value with given power to femto KILT', () => { |
| 45 | + expect(new BN(convertToTxUnit(new BN(1), -15).toString())).toEqual( |
| 46 | + new BN(1) |
| 47 | + ) |
| 48 | + expect(new BN(convertToTxUnit(new BN(1), -12).toString())).toEqual( |
| 49 | + new BN('1000') |
| 50 | + ) |
| 51 | + expect(new BN(convertToTxUnit(new BN(1), -9).toString())).toEqual( |
| 52 | + new BN('1000000') |
| 53 | + ) |
| 54 | + expect(new BN(convertToTxUnit(new BN(1), -6).toString())).toEqual( |
| 55 | + new BN('1000000000') |
| 56 | + ) |
| 57 | + expect(new BN(convertToTxUnit(new BN(1), -3).toString())).toEqual( |
| 58 | + new BN('1000000000000') |
| 59 | + ) |
| 60 | + expect(new BN(convertToTxUnit(new BN(1), 0).toString())).toEqual( |
| 61 | + new BN('1000000000000000') |
| 62 | + ) |
| 63 | + expect(new BN(convertToTxUnit(new BN(1), 3).toString())).toEqual( |
| 64 | + new BN('1000000000000000000') |
| 65 | + ) |
| 66 | + expect(new BN(convertToTxUnit(new BN(1), 6).toString())).toEqual( |
| 67 | + new BN('1000000000000000000000') |
| 68 | + ) |
| 69 | + expect(new BN(convertToTxUnit(new BN(1), 9).toString())).toEqual( |
| 70 | + new BN('1000000000000000000000000') |
| 71 | + ) |
| 72 | + expect(new BN(convertToTxUnit(new BN(1), 12).toString())).toEqual( |
| 73 | + new BN('1000000000000000000000000000') |
| 74 | + ) |
| 75 | + expect(new BN(convertToTxUnit(new BN(1), 15).toString())).toEqual( |
| 76 | + new BN('1000000000000000000000000000000') |
| 77 | + ) |
| 78 | + expect(new BN(convertToTxUnit(new BN(1), 18).toString())).toEqual( |
| 79 | + new BN('1000000000000000000000000000000000') |
| 80 | + ) |
| 81 | + }) |
| 82 | +}) |
| 83 | +describe('asFemtoKilt', () => { |
| 84 | + it('converts whole KILT to femtoKilt using convertToTxUnit', () => { |
| 85 | + expect(new BN(asFemtoKilt(new BN(1000)).toString())).toEqual( |
| 86 | + new BN('1000000000000000000') |
| 87 | + ) |
| 88 | + }) |
| 89 | +}) |
| 90 | + |
| 91 | +describe('TRANSACTION_FEE', () => { |
| 92 | + it('equals 125 nano KILT', () => { |
| 93 | + expect(formatKiltBalance(TRANSACTION_FEE)).toEqual('125.000 nano KILT') |
| 94 | + }) |
| 95 | +}) |
0 commit comments