Files

37 lines
1.8 KiB
JavaScript

import { createConversionChecker } from '../helpers/helpers.js';
QUnit.test('Math.asinh', assert => {
const { asinh } = Math;
assert.isFunction(asinh);
assert.name(asinh, 'asinh');
assert.arity(asinh, 1);
assert.looksNative(asinh);
assert.nonEnumerable(Math, 'asinh');
assert.same(asinh(NaN), NaN);
assert.same(asinh(0), 0);
assert.same(asinh(-0), -0);
assert.same(asinh(Infinity), Infinity);
assert.same(asinh(-Infinity), -Infinity);
assert.closeTo(asinh(1234), 7.811163549201245, 1e-11);
assert.closeTo(asinh(9.99), 2.997227420191335, 1e-11);
assert.closeTo(asinh(1e150), 346.0809111296668, 1e-11);
assert.closeTo(asinh(1e7), 16.811242831518268, 1e-11);
assert.closeTo(asinh(-1e7), -16.811242831518268, 1e-11);
assert.closeTo(asinh(1e200), 461.2101657793691, 1e-6, 'large value 1e200');
assert.closeTo(asinh(1e300), 691.4686750787736, 1e-6, 'large value 1e300');
assert.closeTo(asinh(Number.MAX_VALUE), 710.4758600739439, 1e-6, 'Number.MAX_VALUE');
assert.closeTo(asinh(-1e200), -461.2101657793691, 1e-6, 'large negative value');
assert.closeTo(asinh(1e-16), 1e-16, 1e-30, 'small value 1e-16');
assert.closeTo(asinh(1e-20), 1e-20, 1e-34, 'small value 1e-20');
assert.closeTo(asinh(-1e-16), -1e-16, 1e-30, 'small negative value -1e-16');
assert.closeTo(asinh(1e-8), 1e-8, 1e-16, 'precision at 1e-8');
assert.closeTo(asinh(1e-5), 9.999999999833334e-6, 1e-16, 'precision at 1e-5');
assert.closeTo(asinh(0.01), 0.009999833340832886, 1e-14, 'precision at 0.01');
assert.closeTo(asinh(0.1), 0.09983407889920758, 1e-14, 'precision at 0.1');
const checker = createConversionChecker(1234);
assert.closeTo(asinh(checker), 7.811163549201245, 1e-11);
assert.same(checker.$valueOf, 1, 'valueOf calls');
assert.same(checker.$toString, 0, 'toString calls');
});