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