From 757d177b7e13be390a22c3a493fed998bcc43fbb Mon Sep 17 00:00:00 2001 From: nickyeh97 Date: Fri, 30 Oct 2015 14:46:29 +0800 Subject: [PATCH] finish fundamental operation. --- calculator.js | 15 ++++++++++-- index.html | 2 ++ main.js | 10 ++++++-- test/test_calculator.js | 52 +++++++++++++++++++++++++++++++++++++---- 4 files changed, 71 insertions(+), 8 deletions(-) diff --git a/calculator.js b/calculator.js index caf34db..7dbb143 100644 --- a/calculator.js +++ b/calculator.js @@ -1,5 +1,5 @@ function isNumber(numStr){ - var re = /^[0-9\.]+$/; + var re = /^[+-]?[0-9]+\.{0,1}[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..8a4f7ae 100644 --- a/index.html +++ b/index.html @@ -22,6 +22,8 @@

Silly Calculator

=
diff --git a/main.js b/main.js index 957a234..f272b9e 100644 --- a/main.js +++ b/main.js @@ -13,8 +13,14 @@ 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..1508d4c 100644 --- a/test/test_calculator.js +++ b/test/test_calculator.js @@ -1,10 +1,54 @@ var assert = require('assert'); var cal = require('../calculator.js') +/** +var sinon=require('sinon') +*/ describe('Calculator', function(){ - describe('add', function(){ - it('add', function(){ - assert.equal('2', cal.add(1, 1)); + describe('add', function(){ + it('add_positive', function(){ + assert.equal('10',cal.add(5,5)); + }) + it('add_decimal', function(){ + assert.equal('0.2',cal.add(0.1,0.1)); + }) + it('add_negative', function(){ + assert.equal('-2', cal.add(-1,-1)); + }) + }) + + describe('sub',function(){ + it('sub_positive', function(){ + assert.equal('0',cal.sub(5,5)); + }) + it('sub_decimal', function(){ + assert.equal('0',cal.sub(0.1,0.1)); + }) + it('sub_negative', function(){ + assert.equal('0',cal.sub(-1,-1)); + }) + }) + + describe('mul',function(){ + it('mul_positive',function(){ + assert.equal('25',cal.mul(5,5)); + }) + it('mul_decimal', function(){ + assert.equal('0.5',cal.mul(5,0.1)); + }) + it('mul_negative', function(){ + assert.equal('1',cal.mul(-1,-1)); + }) + }) + describe('div',function(){ + it('div_positive',function(){ + assert.equal('1',cal.div(5,5)); + }) + it('div_decimal', function(){ + assert.equal('50',cal.div(5,0.1)); + }) + it('div_negative', function(){ + assert.equal('1',cal.div(-1,-1)); + }) }) - }) })