diff --git a/calculator.js b/calculator.js index caf34db..c0c858d 100644 --- a/calculator.js +++ b/calculator.js @@ -1,5 +1,5 @@ function isNumber(numStr){ - var re = /^[0-9\.]+$/; + var re = /^[\-]?[0-9]+[\.]?[0-9]*$/; return re.test(numStr); } @@ -7,9 +7,18 @@ function add(num1, num2){ return num1 + num2; } +function multiply(num1, num2){ + return num1 * num2; +} +function divide(num1, num2){ + return num1 / num2; +} function substract(num1, num2){ return num1 - num2; } module.exports.add = add; +module.exports.divide = divide; +module.exports.multiply = multiply; +module.exports.substract = substract; module.exports.isNumber = isNumber; diff --git a/index.html b/index.html index cc6a9d9..7951bd0 100644 --- a/index.html +++ b/index.html @@ -22,6 +22,8 @@

Silly Calculator

=
diff --git a/main.js b/main.js index 957a234..b4eebc6 100644 --- a/main.js +++ b/main.js @@ -16,6 +16,12 @@ window.onload = function(){ else if (operator == "substract"){ document.getElementById('ans').value = substract(num1, num2); } + else if (operator == "multiply"){ + document.getElementById('ans').value = multiply(num1, num2); + } + else if (operator == "divide"){ + document.getElementById('ans').value = divide(num1, num2); + } else { alert("Bad operator!") } diff --git a/test/test_calculator.js b/test/test_calculator.js index 13f6205..7fff3fa 100644 --- a/test/test_calculator.js +++ b/test/test_calculator.js @@ -2,9 +2,25 @@ var assert = require('assert'); var cal = require('../calculator.js') describe('Calculator', function(){ - describe('add', function(){ + describe('All Operator', function(){ it('add', function(){ assert.equal('2', cal.add(1, 1)); }) + it('substract', function(){ + assert.equal('0', cal.substract(1, 1)); + }) + it('multiply', function(){ + assert.equal('4', cal.multiply(2, 2)); + }) + it('divide', function(){ + assert.equal('2', cal.divide(2, 1)); + }) }) + + describe('isnumber', function(){ + it('isNumber', function(){ + assert.equal(false, cal.isNumber('a')); + assert.equal(true, cal.isNumber(1)); + }) + }) })