Skip to content

Commit 75283cc

Browse files
committed
Update: add 2-calcul.js file
1 parent 849f605 commit 75283cc

File tree

2 files changed

+146
-0
lines changed

2 files changed

+146
-0
lines changed

0x06-unittests_in_js/2-calcul_chai.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const calculateNumber = (operator, a, b) => {
2+
if (operator === 'SUM') {
3+
return Math.round(a) + Math.round(b);
4+
}
5+
if (operator === 'SUBTRACT') {
6+
return Math.round(a) - Math.round(b);
7+
}
8+
if (operator === 'DIVIDE') {
9+
return Math.round(b) === 0 ? 'Error' : Math.round(a) / Math.round(b);
10+
}
11+
return 0;
12+
};
13+
14+
module.exports = calculateNumber;
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
const { expect } = require('chai');
2+
const calculateNumber = require('./2-calcul_chai');
3+
4+
describe('calculateNumber', () => {
5+
describe('type == "SUM"', () => {
6+
it('equal positive numbers', () => {
7+
expect(calculateNumber('SUM', 2.0, 2.0)).to.equal(4);
8+
});
9+
10+
it('equal negative numbers', () => {
11+
expect(calculateNumber('SUM', -2.0, -2.0)).to.equal(-4);
12+
});
13+
it('equal positive numbers (alternate)', () => {
14+
expect(calculateNumber('SUM', 2.3, 1.8)).to.equal(4);
15+
});
16+
17+
it('equal negative numbers (alternate)', () => {
18+
expect(calculateNumber('SUM', -2.3, -1.8)).to.equal(-4);
19+
});
20+
21+
it('negative and positive numbers', () => {
22+
expect(calculateNumber('SUM', -2.0, 2.0)).to.equal(0);
23+
});
24+
25+
it('positive and negative numbers', () => {
26+
expect(calculateNumber('SUM', 2.0, -2.0)).to.equal(0);
27+
});
28+
29+
it('0 and 0', () => {
30+
expect(calculateNumber('SUM', 0.0, 0.0)).to.equal(0);
31+
});
32+
});
33+
34+
describe('type == "SUBTRACT"', () => {
35+
it('equal positive numbers', () => {
36+
expect(calculateNumber('SUBTRACT', 0.0, 0.0)).to.equal(0);
37+
});
38+
39+
it('equal positive numbers (alternate)', () => {
40+
expect(calculateNumber('SUBTRACT', 2.3, 1.8)).to.equal(0);
41+
});
42+
43+
it('equal negative numbers', () => {
44+
expect(calculateNumber('SUBTRACT', -3.0, -3.0)).to.equal(0);
45+
});
46+
47+
it('equal negative numbers (alternate)', () => {
48+
expect(calculateNumber('SUBTRACT', -2.3, -1.8)).to.equal(0);
49+
});
50+
51+
it('negative and positive numbers', () => {
52+
expect(calculateNumber('SUBTRACT', -3.0, 2.0)).to.equal(-5.0);
53+
});
54+
55+
it('positive and negative numbers', () => {
56+
expect(calculateNumber('SUBTRACT', 2.0, -2.0)).to.equal(4.0);
57+
});
58+
59+
it('0 and 0', () => {
60+
expect(calculateNumber('SUBTRACT', 1.0, 0.0)).to.equal(1);
61+
});
62+
});
63+
64+
describe('type == "DIVIDE"', () => {
65+
it('positive numbers', () => {
66+
expect(calculateNumber('DIVIDE', 8.0, 2.0)).to.equal(4.0);
67+
});
68+
69+
it('numbers with different signs', () => {
70+
expect(calculateNumber('DIVIDE', -7.0, 2.0)).to.equal(-3.5);
71+
});
72+
73+
it('numbers with different signs (alternate)', () => {
74+
expect(calculateNumber('DIVIDE', 7.0, -2.0)).to.equal(-3.5);
75+
});
76+
it('equal positive numbers', () => {
77+
expect(calculateNumber('DIVIDE', 2.0, 2.0)).to.equal(1);
78+
});
79+
80+
it('negative numbers', () => {
81+
expect(calculateNumber('DIVIDE', -7.0, -2.0)).to.equal(3.5);
82+
});
83+
84+
it('equal negative numbers', () => {
85+
expect(calculateNumber('DIVIDE', -2.0, -2.0)).to.equal(1);
86+
});
87+
88+
it('equal rounded up numbers', () => {
89+
expect(calculateNumber('DIVIDE', 2.6, 3.0)).to.equal(1);
90+
});
91+
92+
it('equal rounded down numbers', () => {
93+
expect(calculateNumber('DIVIDE', 2.4, 2.0)).to.equal(1);
94+
});
95+
96+
it('0 and positive number', () => {
97+
expect(calculateNumber('DIVIDE', 0.0, 5.0)).to.equal(0);
98+
});
99+
100+
it('0 and negative number', () => {
101+
expect(calculateNumber('DIVIDE', 0.0, -5.0)).to.equal(-0);
102+
});
103+
104+
it('positive number and 0', () => {
105+
expect(calculateNumber('DIVIDE', 5.0, 0)).to.equal('Error');
106+
});
107+
108+
it('positive number and number rounded down to 0', () => {
109+
expect(calculateNumber('DIVIDE', 5.0, 0.2)).to.equal('Error');
110+
});
111+
112+
it('positive number and number rounded up to 0', () => {
113+
expect(calculateNumber('DIVIDE', 5.0, -0.2)).to.equal('Error');
114+
});
115+
116+
it('negative number and 0', () => {
117+
expect(calculateNumber('DIVIDE', -5.0, 0)).to.equal('Error');
118+
});
119+
120+
it('negative number and number rounded down to zero', () => {
121+
expect(calculateNumber('DIVIDE', -5.0, 0.2)).to.equal('Error');
122+
});
123+
124+
it('negative number and number rounded up to zero', () => {
125+
expect(calculateNumber('DIVIDE', -5.0, -0.2)).to.equal('Error');
126+
});
127+
128+
it('0 and 0', () => {
129+
expect(calculateNumber('DIVIDE', 0.0, 0.0)).to.equal('Error');
130+
});
131+
});
132+
});

0 commit comments

Comments
 (0)