UNPKG

nhb-toolbox

Version:

A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.

36 lines (35 loc) 1.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isMultiple = exports.isOdd = exports.isEven = void 0; exports.isPerfectSquare = isPerfectSquare; exports.isFibonacci = isFibonacci; exports.areInvalidNumbers = areInvalidNumbers; const primitives_1 = require("../guards/primitives"); const utilities_1 = require("./utilities"); const isEven = (input) => { const parsed = (0, utilities_1.normalizeNumber)(input); if ((0, primitives_1.isUndefined)(parsed)) return false; return parsed % 2 === 0; }; exports.isEven = isEven; const isOdd = (input) => { const parsed = (0, utilities_1.normalizeNumber)(input); if ((0, primitives_1.isUndefined)(parsed)) return false; return parsed % 2 !== 0; }; exports.isOdd = isOdd; const isMultiple = (input, multipleOf) => { return input % multipleOf === 0; }; exports.isMultiple = isMultiple; function isPerfectSquare(num) { return Number.isInteger(Math.sqrt(num)); } function isFibonacci(num) { return isPerfectSquare(5 * num * num + 4) || isPerfectSquare(5 * num * num - 4); } function areInvalidNumbers(...numbers) { return numbers?.some((n) => !Number.isFinite(n)); }