From 990f1d72aeb4ad9ab37679998699e53c66df3e52 Mon Sep 17 00:00:00 2001 From: Goran Peshanski Date: Fri, 10 Jan 2020 18:54:24 +0100 Subject: [PATCH] Added num.isNumberType and repourposed num.isNaN --- packages/toi/index.spec.ts | 11 +++++++++-- packages/toi/index.ts | 14 +++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/packages/toi/index.spec.ts b/packages/toi/index.spec.ts index 4024a80..dac19b7 100644 --- a/packages/toi/index.spec.ts +++ b/packages/toi/index.spec.ts @@ -219,13 +219,20 @@ describe("toi", () => { }); }); - describe("isNaN", () => { - assert(toi.num.isNaN(), { + describe("isNumberType", () => { + assert(toi.num.isNumberType(), { positive: [0, 1, -1, NaN], negative: [false, "", "-1", "0", "1", {}, [], new Number(0)] }); }); + describe("isNaN", () => { + assert(toi.num.isNaN(), { + positive: [NaN], + negative: [0, 1, -1, 0.1, -0.1, false, "", "-1", "0", "1", {}, [], new Number(0)] + }); + }); + describe("isInteger", () => { assert(toi.num.isInteger(), { positive: [0, 0.0, -0.0, 1.0, -1.0, 1.0, -1.0, 1, -1], diff --git a/packages/toi/index.ts b/packages/toi/index.ts index c61ef12..2c06f26 100644 --- a/packages/toi/index.ts +++ b/packages/toi/index.ts @@ -331,12 +331,24 @@ export namespace num { /** * Check that the value is a `number` including `NaN`. */ - export const isNaN = () => + export const isNumberType = () => wrap( "num.isNaN", allow(value => "number" === typeof value, "value is not a number type") ); + /** + * Check that the value is `NaN`. + */ + export const isNaN = () => + wrap( + "num.isNaN", + allow( + value => "number" === typeof value && Number.isNaN(value), + "value is not NaN" + ) + ); + /** * Check that the value is an integer. */