var assert = {
ok(val) {
if (!val) {
console.error(`The value ${val} was not true.`);
}
else {
console.info(' ✓');
}
}
}
function describe(text, fn) {
console.log(`Running test for: ${text}`);
fn();
}
function it(text, fn) {
console.log(` -- ${text}`);
fn();
}
const isNbr = val => Object.prototype.toString.apply(val).slice(8,-1) === 'Number'
const isStr = val => Object.prototype.toString.apply(val).slice(8,-1) === 'String';
const isFun = val => Object.prototype.toString.apply(val).slice(8,-1) === 'Function';
const isObj = val => Object.prototype.toString.apply(val).slice(8,-1) === 'Object';
const isArr = val => Array.isArray(val);
describe('Number', () => {
var x = 0;
it('Is number', () => { assert.ok(isNbr(x)) })
it('Is string', () => { assert.ok(!isStr(x)) })
it('Is object', () => { assert.ok(!isObj(x)) })
it('Is function', () => { assert.ok(!isFun(x)) })
it('Is array', () => { assert.ok(!isArr(x)) })
})
describe('Function', () => {
var x = () => {};
it('Is number', () => { assert.ok(!isNbr(x)) })
it('Is string', () => { assert.ok(!isStr(x)) })
it('Is object', () => { assert.ok(!isObj(x)) })
it('Is function', () => { assert.ok(isFun(x)) })
it('Is array', () => { assert.ok(!isArr(x)) })
})
describe('String', () => {
var x = '';
it('Is number', () => { assert.ok(!isNbr(x)) })
it('Is string', () => { assert.ok(isStr(x)) })
it('Is object', () => { assert.ok(!isObj(x)) })
it('Is function', () => { assert.ok(!isFun(x)) })
it('Is array', () => { assert.ok(!isArr(x)) })
})
describe('Object', () => {
var x = {};
it('Is number', () => { assert.ok(!isNbr(x)) })
it('Is string', () => { assert.ok(!isStr(x)) })
it('Is object', () => { assert.ok(isObj(x)) })
it('Is function', () => { assert.ok(!isFun(x)) })
it('Is array', () => { assert.ok(!isArr(x)) })
})
describe('Array', () => {
var x = [];
it('Is number', () => { assert.ok(!isNbr(x)) })
it('Is string', () => { assert.ok(!isStr(x)) })
it('Is object', () => { assert.ok(!isObj(x)) })
it('Is function', () => { assert.ok(!isFun(x)) })
it('Is array', () => { assert.ok(isArr(x)) })
})
describe('Null', () => {
var x = null;
it('Is number', () => { assert.ok(!isNbr(x)) })
it('Is string', () => { assert.ok(!isStr(x)) })
it('Is object', () => { assert.ok(!isObj(x)) })
it('Is function', () => { assert.ok(!isFun(x)) })
it('Is array', () => { assert.ok(!isArr(x)) })
})