From 6e721556744e33fef018a0ba8359eb5f907b7fa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Bakosi?= <bakosibalazs@gmail.com> Date: Mon, 23 Nov 2020 11:54:22 +0100 Subject: [PATCH 1/3] Module-1 task solutions --- module-1/classification.js | 27 +++++++++++++++++++++++++-- module-1/euclidean.js | 16 ++++++++++++++-- module-1/fibonacci.js | 29 +++++++++++++++++++++++++++-- 3 files changed, 66 insertions(+), 6 deletions(-) diff --git a/module-1/classification.js b/module-1/classification.js index 9f85b22..46727f3 100644 --- a/module-1/classification.js +++ b/module-1/classification.js @@ -22,7 +22,30 @@ function grade(score) { */ // PLACE YOUR CODE BETWEEN THIS... - // ...AND THIS COMMENT LINE! + + if (score < 0 || score > 100) { + gradeOfStudent = 0; + } + else if (score >= 0 && score < 60) { + gradeOfStudent = 1; + } + else if (score >= 60 && score < 70) { + gradeOfStudent = 2; + } + else if (score >= 70 && score < 80) { + gradeOfStudent = 3; + } + else if (score >= 80 && score < 90) { + gradeOfStudent = 4; + } + else if (score >= 90 && score <= 100) { + gradeOfStudent = 5; + } + + // ...AND THIS COMMENT LINE! + return gradeOfStudent; } -module.exports = grade; \ No newline at end of file +module.exports = grade; + + \ No newline at end of file diff --git a/module-1/euclidean.js b/module-1/euclidean.js index 3d33d00..25b782a 100644 --- a/module-1/euclidean.js +++ b/module-1/euclidean.js @@ -16,9 +16,21 @@ function euclidean(a, b) { * Also take into consideration the documentation of the function! */ // PLACE YOUR CODE BETWEEN THIS... - + if (a > 0 && b > 0) { + while (a !== b) { + if (a > b) { + a = a - b; + } else { + b = b - a; + } + } + gcd = a; + } else { + gcd = 0; + } // ...AND THIS COMMENT LINE! return gcd; } -module.exports = euclidean; \ No newline at end of file +module.exports = euclidean; + diff --git a/module-1/fibonacci.js b/module-1/fibonacci.js index 14ec907..3f297fb 100644 --- a/module-1/fibonacci.js +++ b/module-1/fibonacci.js @@ -15,8 +15,33 @@ function fibonacci(n) { * Also take into consideration the documentation of the function! */ // PLACE YOUR CODE BETWEEN THIS... + if (n >= 0) { - // ...AND THIS COMMENT LINE! + if (n < 2) { + + nThFibonacci = n; + + } else { + + let f0 = 0; + let f1 = 1; + + for (let i = 2; i <= n; ++i) { + + const sum = f0 + f1; + f0 = f1; + f1 = sum; + + } + nThFibonacci = f1; + } + } else { + + nThFibonacci = 0; + } + +// ...AND THIS COMMENT LINE! return nThFibonacci; } -module.exports = fibonacci; \ No newline at end of file +module.exports = fibonacci; + From fda9f99711ee700f260e945d2f2d78e31b571a1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Bakosi?= <bakosibalazs@gmail.com> Date: Mon, 23 Nov 2020 13:16:05 +0100 Subject: [PATCH 2/3] Module-2 task solution --- module-2/test/calc.spec.js | 168 ++++++++++++++++++++++++++++++++++++- 1 file changed, 167 insertions(+), 1 deletion(-) diff --git a/module-2/test/calc.spec.js b/module-2/test/calc.spec.js index c6fc7c7..73e5f77 100644 --- a/module-2/test/calc.spec.js +++ b/module-2/test/calc.spec.js @@ -1,3 +1,4 @@ +const { Then } = require('cucumber'); const calc = require('../calc'); const expect = require('chai').expect; @@ -18,4 +19,169 @@ describe.only('calc', () => { */ // TODO: write test cases to test calculator -}); \ No newline at end of file + it("should have proper value", () => { + //Given + const c = calc(3); + //When + //Then + expect(c.v).to.equal(3); + }); + + describe("add", () => { + it("should exist", () => { + //Given + const c = calc(3); + //When + //Then + expect(c.add).not.to.undefined; + }); + + it("should be able to add a number to the current value", () => { + //Given + const c = calc(3); + //When + const result = calc(3).add(5); + //Then + expect(result.v).to.equal(8); + + }); + + }); + describe("minus", () => { + it("should exist", () => { + //Given + const c = calc(3); + //When + //Then + expect(c.minus).not.to.undefined; + }); + it("should be able to subtract a number from the current value", () => { + //Given + const c = calc(3); + //When + const result = calc(3).minus(2); + //Then + expect(result.v).to.equal(1); + }); + }); + + //.. + + describe("divide", () => { + it("should exist", () => { + //Given + const c = calc(42); + //When + //THen + expect(c.divide).not.to.undefined; + + }); + + it("should be able to perform a valid division", () => { + + //Given + const c = calc(10); + //When + const result = c.divide(2).v; + //Then + expect(result).to.be.equal(5); + }); + + it("should handle division by 0", () => { + + //Given + const c = calc(5); + //When + //Then + expect(() => c.divide(0)).to.throw("Division"); + + + }); + }); + describe("sqrt", () => { + it("should exist", () => { + //Given + const c = calc(4); + //When + //THen + expect(c.sqrt).not.to.undefined; + + }); + it("should be able to square a number", () => { + //Given + const c = calc(4); + //When + const result = calc(4).sqrt().v; + //Then + expect(result).to.equal(2); + }); + + it ("should handle negative numbers", () => { + //Given + const c = calc(-3); + //When + //Then + expect(() => c.sqrt()).to.throw("Square"); + }); + }); + describe("times", () => { + it("should exist", () => { + //Given + const c = calc(4); + //When + //THen + expect(c.times).not.to.undefined; + + }); + + it("should be able to multiply numbers", () => { + //Given + const c = calc(3); + //When + const result = calc(3).times(10).v; + //Then + expect(result).to.equal(30); + + }); + + }); + + describe("modulo", () => { + it("should exist", () => { + //Given + const c = calc(10); + //When + //THen + expect(c.modulo).not.to.undefined; + + }); + + it("should be able to perform modulo operation", () => { + //Given + const c = calc(10); + //When + const result = c.modulo(5).v; + //Then + expect(result).to.equal(0); + }); + + }); + + describe("multiply operations", () => { + it("should be able to perform multiply operations", () => { + //Given + const c = calc(3); + //When + const result = c.add(4).minus(3).times(6).v; + //THen + expect(result).to.equal(24); + + }); + + }); + + + + +}); + From 70892dc4d64defb552cca4b9892819c1a94bc016 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Bakosi?= <bakosibalazs@gmail.com> Date: Mon, 30 Nov 2020 09:14:20 +0100 Subject: [PATCH 3/3] Changes on module-1/classification.js, module-1/fibonacci.js and module-2/test/calc-spec.js based on Sandor Orosz's comments --- module-1/classification.js | 29 +++++++++++------------------ module-1/fibonacci.js | 12 ++---------- module-2/test/calc.spec.js | 38 ++++++-------------------------------- 3 files changed, 19 insertions(+), 60 deletions(-) diff --git a/module-1/classification.js b/module-1/classification.js index 46727f3..0a78d9d 100644 --- a/module-1/classification.js +++ b/module-1/classification.js @@ -22,30 +22,23 @@ function grade(score) { */ // PLACE YOUR CODE BETWEEN THIS... - if (score < 0 || score > 100) { gradeOfStudent = 0; } - else if (score >= 0 && score < 60) { - gradeOfStudent = 1; - } - else if (score >= 60 && score < 70) { - gradeOfStudent = 2; - } - else if (score >= 70 && score < 80) { - gradeOfStudent = 3; - } - else if (score >= 80 && score < 90) { - gradeOfStudent = 4; + else { + gradeOfStudent = Math.ceil(Math.max(((score - 59) / 41) * 4, 0)) + 1; } - else if (score >= 90 && score <= 100) { - gradeOfStudent = 5; - } - + // ...AND THIS COMMENT LINE! return gradeOfStudent; } -module.exports = grade; - \ No newline at end of file + + + + + + + +module.exports = grade; diff --git a/module-1/fibonacci.js b/module-1/fibonacci.js index 3f297fb..0aa904f 100644 --- a/module-1/fibonacci.js +++ b/module-1/fibonacci.js @@ -16,32 +16,24 @@ function fibonacci(n) { */ // PLACE YOUR CODE BETWEEN THIS... if (n >= 0) { - if (n < 2) { - nThFibonacci = n; - } else { - let f0 = 0; let f1 = 1; - for (let i = 2; i <= n; ++i) { - const sum = f0 + f1; f0 = f1; f1 = sum; - } nThFibonacci = f1; } } else { - nThFibonacci = 0; } - -// ...AND THIS COMMENT LINE! + // ...AND THIS COMMENT LINE! return nThFibonacci; } + module.exports = fibonacci; diff --git a/module-2/test/calc.spec.js b/module-2/test/calc.spec.js index 73e5f77..6907f6f 100644 --- a/module-2/test/calc.spec.js +++ b/module-2/test/calc.spec.js @@ -18,7 +18,6 @@ describe.only('calc', () => { * .times(6).v // 24 */ // TODO: write test cases to test calculator - it("should have proper value", () => { //Given const c = calc(3); @@ -35,7 +34,6 @@ describe.only('calc', () => { //Then expect(c.add).not.to.undefined; }); - it("should be able to add a number to the current value", () => { //Given const c = calc(3); @@ -43,10 +41,9 @@ describe.only('calc', () => { const result = calc(3).add(5); //Then expect(result.v).to.equal(8); - }); - }); + describe("minus", () => { it("should exist", () => { //Given @@ -64,9 +61,7 @@ describe.only('calc', () => { expect(result.v).to.equal(1); }); }); - - //.. - + describe("divide", () => { it("should exist", () => { //Given @@ -74,11 +69,8 @@ describe.only('calc', () => { //When //THen expect(c.divide).not.to.undefined; - }); - it("should be able to perform a valid division", () => { - //Given const c = calc(10); //When @@ -86,18 +78,15 @@ describe.only('calc', () => { //Then expect(result).to.be.equal(5); }); - it("should handle division by 0", () => { - //Given const c = calc(5); //When //Then - expect(() => c.divide(0)).to.throw("Division"); - - + expect(() => c.divide(0)).to.throw("Division by 0 is not possible!"); }); }); + describe("sqrt", () => { it("should exist", () => { //Given @@ -105,7 +94,6 @@ describe.only('calc', () => { //When //THen expect(c.sqrt).not.to.undefined; - }); it("should be able to square a number", () => { //Given @@ -115,15 +103,15 @@ describe.only('calc', () => { //Then expect(result).to.equal(2); }); - it ("should handle negative numbers", () => { //Given const c = calc(-3); //When //Then - expect(() => c.sqrt()).to.throw("Square"); + expect(() => c.sqrt()).to.throw("Square root of negative value cannot be determined!"); }); }); + describe("times", () => { it("should exist", () => { //Given @@ -131,9 +119,7 @@ describe.only('calc', () => { //When //THen expect(c.times).not.to.undefined; - }); - it("should be able to multiply numbers", () => { //Given const c = calc(3); @@ -141,9 +127,7 @@ describe.only('calc', () => { const result = calc(3).times(10).v; //Then expect(result).to.equal(30); - }); - }); describe("modulo", () => { @@ -153,9 +137,7 @@ describe.only('calc', () => { //When //THen expect(c.modulo).not.to.undefined; - }); - it("should be able to perform modulo operation", () => { //Given const c = calc(10); @@ -164,7 +146,6 @@ describe.only('calc', () => { //Then expect(result).to.equal(0); }); - }); describe("multiply operations", () => { @@ -175,13 +156,6 @@ describe.only('calc', () => { const result = c.add(4).minus(3).times(6).v; //THen expect(result).to.equal(24); - }); - }); - - - - }); -