]> zoso.dev Git - libnemo.git/commitdiff
Add test for converting small amounts of raw to fractional nano. Fix issue found...
authorChris Duncan <chris@zoso.dev>
Tue, 8 Oct 2024 16:40:03 +0000 (09:40 -0700)
committerChris Duncan <chris@zoso.dev>
Tue, 8 Oct 2024 16:40:03 +0000 (09:40 -0700)
src/lib/tools.ts
test/tools.test.mjs

index fb5c13d3c7e82d491daa16b7fe7acb0fa1ce5a4c..22b01762bb71b872099d4efabe222c8fc7f09144 100644 (file)
@@ -53,7 +53,7 @@ export async function convert (amount: bigint | string, inputUnit: string, outpu
 
        // convert to desired denomination
        if (UNITS[outputUnit] !== 0) {
-               f = i.slice(-UNITS[outputUnit]) + f
+               f = i.padStart(40, '0').slice(-UNITS[outputUnit]) + f
                i = i.slice(0, -UNITS[outputUnit])
        }
        i = i.replace(/^0*/g, '') ?? '0'
index d2c1b6ff81bfb6c455d74d104ef916a9dfc4edbe..08de50d681fc8aeef9625ceae1b46db11e28b35e 100644 (file)
@@ -23,6 +23,11 @@ describe('unit conversion tests', async () => {
                assert.equal(result, '1')\r
        })\r
 \r
+       it('should convert 1 raw to 10^-29 nano', async () => {\r
+               const result = await Tools.convert('1', 'RAW', 'NANO')\r
+               assert.equal(result, '.000000000000000000000000000001')\r
+       })\r
+\r
        it('should ignore leading and trailing zeros', async () => {\r
                const result = await Tools.convert('0011002200.0033004400', 'nano', 'nano')\r
                assert.equal(result, '11002200.00330044')\r