diff --git a/lib/discrepances.js b/lib/discrepances.js index 4535df0..6050f60 100644 --- a/lib/discrepances.js +++ b/lib/discrepances.js @@ -26,12 +26,22 @@ var discrepances = {}; /*jshint +W004 */ -discrepances = function discrepances(obj, def){ - var rta=''; - if(def && def.typeof && typeof obj !== def.typeof){ - rta+='typeof '+JSON.stringify(obj)+' !== '+JSON.stringify(def.typeof); +discrepances = function discrepances(a, b){ + if(a === b){ + return null; } - return rta || null; + var typeA = typeof a; + var typeB = typeof b; + if(typeA === typeB) { + if(typeA === 'number') { + return {difference:a-b, values:[a,b]}; + } + } + // var rta=''; + // if(def && def.typeof && typeof obj !== def.typeof){ + // rta+='typeof '+JSON.stringify(obj)+' !== '+JSON.stringify(def.typeof); + // } + // return rta || null; } return discrepances; diff --git a/test/test.js b/test/test.js index c7e2ce1..a17b228 100644 --- a/test/test.js +++ b/test/test.js @@ -7,7 +7,7 @@ var discrepances = require('../lib/discrepances.js'); describe("discrepances", function(){ [ {a:4 , b:4 , expected: null }, - {skip:true, a:4 , b:5 , expected: {difference:-1 , values:[4, 5] }}, + {a:4 , b:5 , expected: {difference:-1 , values:[4, 5] }}, {skip:true, a:"4" , b:4 , expected: {types:['string', 'number'], values:["4", 4] }}, {skip:true, a:null , b:0 , expected: {types:['null' , 'number'], values:[null, 0] }}, {skip:true, a:new Date() , b:/a/ , expected: {class:['Date' , 'RegExp'], values:[new Date(), /a/] }}, @@ -17,13 +17,14 @@ describe("discrepances", function(){ {skip:true, a:{x:1, y:2, z:[3]} , b:{x:1, y:2, z:[3]} , expected: null }, ].forEach(function(fixture){ if(fixture.skip) { + delete fixture.skip; it('skipped fixture: '+JSON.stringify(fixture)); return true; } - it("controls discrepances via fixture: "+JSON.stringify(fixture), function(){ + it("fixture: "+JSON.stringify(fixture), function(){ expect(discrepances(fixture.a, fixture.b)).to.eql(fixture.expected); - expect(JSON.stringify(discrepances(fixture.a, fixture.structure))).to.eql(JSON.stringify(fixture.expected)); - expect(JSON4all.stringify(discrepances(fixture.a, fixture.structure))).to.eql(JSON4all.stringify(fixture.expected)); + expect(JSON.stringify(discrepances(fixture.a, fixture.b))).to.eql(JSON.stringify(fixture.expected)); + expect(JSON4all.stringify(discrepances(fixture.a, fixture.b))).to.eql(JSON4all.stringify(fixture.expected)); }); }); }); \ No newline at end of file