From c4ceeb8382efed33a57f0b8062306e0d44ac1a3f Mon Sep 17 00:00:00 2001 From: Jaco Date: Mon, 20 Jun 2022 07:09:51 +0200 Subject: [PATCH] Additional float conversion tests (#1550) --- packages/util/src/float/toU8a.spec.ts | 1 + packages/util/src/u8a/toFloat.spec.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/packages/util/src/float/toU8a.spec.ts b/packages/util/src/float/toU8a.spec.ts index 28b2bbcef..a43cc4f58 100644 --- a/packages/util/src/float/toU8a.spec.ts +++ b/packages/util/src/float/toU8a.spec.ts @@ -54,6 +54,7 @@ describe('floatToU8a', (): void => { foo = 'bar'; } + // https://www.h-schmidt.net/FloatConverter/IEEE754.html expect( u8aToHex(floatToU8a(new Test(123.456))) ).toEqual('0x79e9f642'); diff --git a/packages/util/src/u8a/toFloat.spec.ts b/packages/util/src/u8a/toFloat.spec.ts index 9283c27eb..09ab741ac 100644 --- a/packages/util/src/u8a/toFloat.spec.ts +++ b/packages/util/src/u8a/toFloat.spec.ts @@ -41,6 +41,19 @@ describe('u8aToFloat', (): void => { u8aToFloat(hexToU8a('0x0000c07f')) ).toEqual(Number.NaN); }); + + // https://www.h-schmidt.net/FloatConverter/IEEE754.html + it('decodes a known number', (): void => { + expect( + u8aToFloat(hexToU8a('0x79e9f642')).toFixed(3) + ).toEqual('123.456'); + }); + + it('decodes a known number (BE)', (): void => { + expect( + u8aToFloat(hexToU8a('0x42f6e979'), { isLe: false }).toFixed(3) + ).toEqual('123.456'); + }); }); describe('64-bit', (): void => {