Page MenuHomePhorge

numbers.js
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

numbers.js

import { test, testApprox, summary } from './helpers.js';
console.log('Number Tests\n');
test('integer literal', 42, 42);
test('float literal', 3.14, 3.14);
test('negative number', -5, -5);
test('zero', 0, 0);
test('hex literal', 0xff, 255);
test('octal literal', 0o77, 63);
test('binary literal', 0b1010, 10);
test('exponential', 1e3, 1000);
test('exponential negative', 1e-3, 0.001);
test('numeric separator', 1_000_000, 1000000);
test('Number()', Number('42'), 42);
test('Number() float', Number('3.14'), 3.14);
test('Number() invalid', Number.isNaN(Number('abc')), true);
test('parseInt', parseInt('42'), 42);
test('parseInt radix', parseInt('ff', 16), 255);
test('parseFloat', parseFloat('3.14'), 3.14);
test('Number.isInteger true', Number.isInteger(5), true);
test('Number.isInteger false', Number.isInteger(5.5), false);
test('Number.isFinite true', Number.isFinite(100), true);
test('Number.isFinite false', Number.isFinite(Infinity), false);
test('Number.isNaN true', Number.isNaN(NaN), true);
test('Number.isNaN false', Number.isNaN(5), false);
test('isNaN coercing', isNaN('abc'), true);
test('Number.isNaN strict', Number.isNaN('abc'), false);
test('Infinity', Infinity > 1e308, true);
test('-Infinity', -Infinity < -1e308, true);
test('NaN !== NaN', NaN !== NaN, true);
test('Number.MAX_VALUE', Number.MAX_VALUE > 1e308, true);
test('Number.MIN_VALUE', Number.MIN_VALUE > 0, true);
test('Number.MAX_SAFE_INTEGER', Number.MAX_SAFE_INTEGER, 9007199254740991);
test('Number.MIN_SAFE_INTEGER', Number.MIN_SAFE_INTEGER, -9007199254740991);
test('Number.isSafeInteger true', Number.isSafeInteger(42), true);
test('Number.isSafeInteger false', Number.isSafeInteger(9007199254740992), false);
test('toFixed', (3.14159).toFixed(2), '3.14');
test('toPrecision', (123.456).toPrecision(4), '123.5');
test('toExponential', (12345).toExponential(2), '1.23e+4');
test('toString', (255).toString(16), 'ff');
testApprox('addition', 0.1 + 0.2, 0.3, 1e-10);
test('multiplication', 6 * 7, 42);
test('division', 10 / 4, 2.5);
test('modulo', 17 % 5, 2);
test('exponentiation', 2 ** 10, 1024);
test('unary plus', +'42', 42);
test('unary minus', -42, -42);
test('Math.floor division', Math.floor(7 / 2), 3);
test('bitwise or floor', (7 / 2) | 0, 3);
summary();

File Metadata

Mime Type
application/javascript
Expires
Fri, Mar 27, 9:57 AM (1 d, 18 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
512573
Default Alt Text
numbers.js (2 KB)

Event Timeline