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));
+ })
+ })
})