diff --git a/calculator.js b/calculator.js index caf34db..0b61189 100644 --- a/calculator.js +++ b/calculator.js @@ -1,5 +1,5 @@ function isNumber(numStr){ - var re = /^[0-9\.]+$/; + var re = /^-?([0-9\.])+$/; return re.test(numStr); } @@ -7,9 +7,20 @@ function add(num1, num2){ return num1 + num2; } -function substract(num1, num2){ +function sub(num1, num2){ return num1 - num2; } +function mul(num1, num2){ + return num1*num2; +} + +function div(num1, num2){ + return num1/num2; +} + module.exports.add = add; +module.exports.sub = sub; +module.exports.mul = mul; +module.exports.div = div; module.exports.isNumber = isNumber; diff --git a/index.html b/index.html index cc6a9d9..a8a1a1b 100644 --- a/index.html +++ b/index.html @@ -21,7 +21,9 @@

Silly Calculator

=
diff --git a/main.js b/main.js index 957a234..c16b50f 100644 --- a/main.js +++ b/main.js @@ -13,9 +13,15 @@ window.onload = function(){ if (operator == "add"){ document.getElementById('ans').value = add(num1, num2); } - else if (operator == "substract"){ - document.getElementById('ans').value = substract(num1, num2); + else if (operator == "sub"){ + document.getElementById('ans').value = sub(num1, num2); } + else if (operator == "mul"){ + document.getElementById('ans').value = mul(num1, num2); + } + else if (operator == "div"){ + document.getElementById('ans').value = div(num1, num2); + } else { alert("Bad operator!") } diff --git a/test/test_calculator.js b/test/test_calculator.js index 13f6205..4a9a98d 100644 --- a/test/test_calculator.js +++ b/test/test_calculator.js @@ -6,5 +6,50 @@ describe('Calculator', function(){ it('add', function(){ assert.equal('2', cal.add(1, 1)); }) + it('add-negative', function(){ + assert.equal('-3', cal.add(-1, -2)); + }) + it('add-decimal_point', function(){ + assert.equal('2.3', cal.add(1.1, 1.2)); + }) + }) +}) +describe('Calculator', function(){ + describe('sub', function(){ + it('sub', function(){ + assert.equal('3', cal.sub(4, 1)); + }) + it('sub-negative', function(){ + assert.equal('-5', cal.sub(-1, 4)); + }) + it('sub-decimal_point', function(){ + assert.equal('3.4', cal.sub(4.0, 0.6)); + }) + }) +}) +describe('Calculator', function(){ + describe('mul', function(){ + it('mul', function(){ + assert.equal('2', cal.mul(1, 2)); + }) + it('mul-negative', function(){ + assert.equal('-1', cal.mul(-1, 1)); + }) + it('mul-decimal_point', function(){ + assert.equal('0.25', cal.mul(0.5, 0.5)); + }) + }) +}) +describe('Calculator', function(){ + describe('div', function(){ + it('div', function(){ + assert.equal('3', cal.div(3, 1)); + }) + it('div-negative', function(){ + assert.equal('-3', cal.div(3, -1)); + }) + it('div-decimal_point', function(){ + assert.equal('0.3', cal.div(0.6, 2)); + }) }) })