1
This commit is contained in:
10
nodejs/node_modules/is-nan/test/index.js
generated
vendored
Executable file
10
nodejs/node_modules/is-nan/test/index.js
generated
vendored
Executable file
@ -0,0 +1,10 @@
|
||||
'use strict';
|
||||
|
||||
var numberIsNaN = require('../');
|
||||
var test = require('tape');
|
||||
|
||||
test('as a function', function (t) {
|
||||
require('./tests')(numberIsNaN, t);
|
||||
|
||||
t.end();
|
||||
});
|
||||
28
nodejs/node_modules/is-nan/test/shimmed.js
generated
vendored
Executable file
28
nodejs/node_modules/is-nan/test/shimmed.js
generated
vendored
Executable file
@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
|
||||
require('es5-shim');
|
||||
|
||||
var numberIsNaN = require('../');
|
||||
numberIsNaN.shim();
|
||||
|
||||
var test = require('tape');
|
||||
var defineProperties = require('define-properties');
|
||||
var isEnumerable = Object.prototype.propertyIsEnumerable;
|
||||
var functionsHaveNames = function f() {}.name === 'f';
|
||||
|
||||
test('shimmed', function (t) {
|
||||
t.equal(Number.isNaN.length, 1, 'Number.isNaN has a length of 1');
|
||||
t.test('Function name', { skip: !functionsHaveNames }, function (st) {
|
||||
st.equal(Number.isNaN.name, 'isNaN', 'Number.isNaN has name "isNaN"');
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
|
||||
et.equal(false, isEnumerable.call(Number, 'isNaN'), 'Number.isNaN is not enumerable');
|
||||
et.end();
|
||||
});
|
||||
|
||||
require('./tests')(Number.isNaN, t);
|
||||
|
||||
t.end();
|
||||
});
|
||||
36
nodejs/node_modules/is-nan/test/tests.js
generated
vendored
Executable file
36
nodejs/node_modules/is-nan/test/tests.js
generated
vendored
Executable file
@ -0,0 +1,36 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (numberIsNaN, t) {
|
||||
t.test('not NaN', function (st) {
|
||||
st.test('primitives', function (sst) {
|
||||
sst.notOk(numberIsNaN(), 'undefined is not NaN');
|
||||
sst.notOk(numberIsNaN(null), 'null is not NaN');
|
||||
sst.notOk(numberIsNaN(false), 'false is not NaN');
|
||||
sst.notOk(numberIsNaN(true), 'true is not NaN');
|
||||
sst.notOk(numberIsNaN(0), 'positive zero is not NaN');
|
||||
sst.notOk(numberIsNaN(Infinity), 'Infinity is not NaN');
|
||||
sst.notOk(numberIsNaN(-Infinity), '-Infinity is not NaN');
|
||||
sst.notOk(numberIsNaN('foo'), 'string is not NaN');
|
||||
sst.notOk(numberIsNaN('NaN'), 'string NaN is not NaN');
|
||||
sst.end();
|
||||
});
|
||||
|
||||
st.notOk(numberIsNaN([]), 'array is not NaN');
|
||||
st.notOk(numberIsNaN({}), 'object is not NaN');
|
||||
st.notOk(numberIsNaN(function () {}), 'function is not NaN');
|
||||
|
||||
st.test('valueOf', function (vt) {
|
||||
var obj = { valueOf: function () { return NaN; } };
|
||||
vt.ok(numberIsNaN(Number(obj)), 'object with valueOf of NaN, converted to Number, is NaN');
|
||||
vt.notOk(numberIsNaN(obj), 'object with valueOf of NaN is not NaN');
|
||||
vt.end();
|
||||
});
|
||||
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('NaN literal', function (st) {
|
||||
st.ok(numberIsNaN(NaN), 'NaN is NaN');
|
||||
st.end();
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user