Skip to content

Commit 4c160fb

Browse files
sprint 3 in progress
1 parent 124ae45 commit 4c160fb

File tree

6 files changed

+123
-3
lines changed

6 files changed

+123
-3
lines changed

Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@
1515
// execute the code to ensure all tests pass.
1616

1717
function getAngleType(angle) {
18-
// TODO: Implement this function
18+
if (angle > 0 && angle < 90) return "Acute angle";
19+
else if (angle === 90) return "Right angle";
20+
else if (90 < angle && angle < 180) return "Obtuse angle";
21+
else if (angle === 180) return "Straight angle";
22+
else if (180 < angle && angle < 360) return "Reflex angle";
23+
else return "Invalid angle"
1924
}
2025

2126
// The line below allows us to load the getAngleType function into tests in other files.
@@ -35,3 +40,34 @@ function assertEquals(actualOutput, targetOutput) {
3540
// Example: Identify Right Angles
3641
const right = getAngleType(90);
3742
assertEquals(right, "Right angle");
43+
let acute = getAngleType(1);
44+
assertEquals(acute, "Acute angle");
45+
acute = getAngleType(45);
46+
assertEquals(acute, "Acute angle");
47+
acute = getAngleType(89);
48+
assertEquals(acute, "Acute angle");
49+
let obtuse = getAngleType(91);
50+
assertEquals(obtuse, "Obtuse angle");
51+
obtuse = getAngleType(100);
52+
assertEquals(obtuse, "Obtuse angle");
53+
obtuse = getAngleType(179);
54+
assertEquals(obtuse, "Obtuse angle");
55+
const straight = getAngleType(180);
56+
assertEquals(straight, "Straight angle");
57+
let reflex = getAngleType(181);
58+
assertEquals(reflex, "Reflex angle");
59+
reflex = getAngleType(200);
60+
assertEquals(reflex, "Reflex angle");
61+
reflex = getAngleType(359);
62+
assertEquals(reflex, "Reflex angle");
63+
let invalid = getAngleType(-1);
64+
assertEquals(invalid, "Invalid angle");
65+
invalid = getAngleType(0);
66+
assertEquals(invalid, "Invalid angle");
67+
invalid = getAngleType(360);
68+
assertEquals(invalid, "Invalid angle");
69+
invalid = getAngleType(361);
70+
assertEquals(invalid, "Invalid angle");
71+
72+
73+

Sprint-3/1-implement-and-rewrite-tests/implement/2-is-proper-fraction.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// execute the code to ensure all tests pass.
1212

1313
function isProperFraction(numerator, denominator) {
14-
// TODO: Implement this function
14+
return Math.abs(numerator) < Math.abs(denominator)
1515
}
1616

1717
// The line below allows us to load the isProperFraction function into tests in other files.
@@ -31,3 +31,10 @@ function assertEquals(actualOutput, targetOutput) {
3131

3232
// Example: 1/2 is a proper fraction
3333
assertEquals(isProperFraction(1, 2), true);
34+
assertEquals(isProperFraction(7, 1), false);
35+
assertEquals(isProperFraction(0, 5), true);
36+
assertEquals(isProperFraction(-1, -2), true);
37+
assertEquals(isProperFraction(-2, -1), false);
38+
assertEquals(isProperFraction(-2, 5), true);
39+
assertEquals(isProperFraction(5, -2), false);
40+
assertEquals(isProperFraction(5, 5), false);

Sprint-3/1-implement-and-rewrite-tests/implement/3-get-card-value.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@
2222
// execute the code to ensure all tests pass.
2323

2424
function getCardValue(card) {
25-
// TODO: Implement this function
25+
const cardNum = card.slice(0, -1)
26+
if (cardNum === "A") { return 11}
27+
else if (["J", "Q", "K"].includes(cardNum)) { return 10}
28+
else if (Number(cardNum) >= 2 && Number(cardNum) <= 10) {return Number(cardNum)}
29+
else throw new Error("Invalid card");
2630
}
2731

2832
// The line below allows us to load the getCardValue function into tests in other files.
@@ -40,6 +44,12 @@ function assertEquals(actualOutput, targetOutput) {
4044
// TODO: Write tests to cover all outcomes, including throwing errors for invalid cards.
4145
// Examples:
4246
assertEquals(getCardValue("9♠"), 9);
47+
assertEquals(getCardValue("A♠"), 11);
48+
assertEquals(getCardValue("2♥"), 2);
49+
assertEquals(getCardValue("10♥"), 10);
50+
assertEquals(getCardValue("Q♦"), 10);
51+
assertEquals(getCardValue("♦Q"), "Invalid card");
52+
assertEquals(getCardValue("11♦"), "Invalid card");
4353

4454
// Handling invalid cards
4555
try {

Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/1-get-angle-type.test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,31 @@ test(`should return "Acute angle" when (0 < angle < 90)`, () => {
1414
});
1515

1616
// Case 2: Right angle
17+
test(`should return "Right angle" when (angle = 90)`, () => {
18+
expect(getAngleType(90)).toEqual("Right angle");
19+
});
1720
// Case 3: Obtuse angles
21+
test(`should return "Obtuse angle" when (90 < angle < 180)`, () => {
22+
expect(getAngleType(91)).toEqual("Obtuse angle");
23+
expect(getAngleType(100)).toEqual("Obtuse angle");
24+
expect(getAngleType(179)).toEqual("Obtuse angle");
25+
});
1826
// Case 4: Straight angle
27+
test(`should return "Straight angle" when (angle = 180)`, () => {
28+
expect(getAngleType(180)).toEqual("Straight angle");
29+
});
1930
// Case 5: Reflex angles
31+
test(`should return "Reflex angle" when (180 < angle < 360)`, () => {
32+
expect(getAngleType(181)).toEqual("Reflex angle");
33+
expect(getAngleType(200)).toEqual("Reflex angle");
34+
expect(getAngleType(359)).toEqual("Reflex angle");
35+
});
2036
// Case 6: Invalid angles
37+
test(`should return "Invalid angle" when (360 <= angle or angle <= 0)`, () => {
38+
expect(getAngleType(-1)).toEqual("Invalid angle");
39+
expect(getAngleType(0)).toEqual("Invalid angle");
40+
expect(getAngleType(360)).toEqual("Invalid angle");
41+
expect(getAngleType(361)).toEqual("Invalid angle");
42+
});
43+
44+

Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/2-is-proper-fraction.test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,27 @@ const isProperFraction = require("../implement/2-is-proper-fraction");
88
test(`should return false when denominator is zero`, () => {
99
expect(isProperFraction(1, 0)).toEqual(false);
1010
});
11+
test(`1/2`, () => {
12+
expect(isProperFraction(1, 2)).toEqual(true);
13+
});
14+
test(`7/1`, () => {
15+
expect(isProperFraction(7, 1)).toEqual(false);
16+
});
17+
test(`0/5`, () => {
18+
expect(isProperFraction(0, 5)).toEqual(true);
19+
});
20+
test(`-1/-2`, () => {
21+
expect(isProperFraction(-1, -2)).toEqual(true);
22+
});
23+
test(`-2/-1`, () => {
24+
expect(isProperFraction(-2, -1)).toEqual(false);
25+
});
26+
test(`-2/5`, () => {
27+
expect(isProperFraction(-2, 5)).toEqual(true);
28+
});
29+
test(`5/-2`, () => {
30+
expect(isProperFraction(5, -2)).toEqual(false);
31+
});
32+
test(`5/5`, () => {
33+
expect(isProperFraction(5, 5)).toEqual(false);
34+
});

Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/3-get-card-value.test.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,25 @@ const getCardValue = require("../implement/3-get-card-value");
88
test(`Should return 11 when given an ace card`, () => {
99
expect(getCardValue("A♠")).toEqual(11);
1010
});
11+
test(`Should return 9 when given an 9♠`, () => {
12+
expect(getCardValue("9♠")).toEqual(9);
13+
});
14+
test(`Should return 2 when given an 2♥`, () => {
15+
expect(getCardValue("2♥")).toEqual(2);
16+
});
17+
test(`Should return 10 when given an 10♥`, () => {
18+
expect(getCardValue("10♥")).toEqual(10);
19+
});
20+
test(`Should return 10 when given an Q♦`, () => {
21+
expect(getCardValue("Q♦")).toEqual(10);
22+
});
23+
test(`Should return Error when given an ♦Q`, () => {
24+
expect(getCardValue("♦Q")).toThrow("Invalid card");
25+
});
26+
test(`Should return Error when given an 11♦`, () => {
27+
expect(getCardValue("11♦")).toThrow("Invalid card");
28+
});
29+
1130

1231
// Suggestion: Group the remaining test data into these categories:
1332
// Number Cards (2-10)

0 commit comments

Comments
 (0)