Skip to content

Commit b9830f0

Browse files
committed
Implement getAngleType function and corresponding tests for angle classifications
1 parent a0fe166 commit b9830f0

File tree

2 files changed

+54
-2
lines changed

2 files changed

+54
-2
lines changed

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

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

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

2127
// The line below allows us to load the getAngleType function into tests in other files.
@@ -35,3 +41,24 @@ function assertEquals(actualOutput, targetOutput) {
3541
// Example: Identify Right Angles
3642
const right = getAngleType(90);
3743
assertEquals(right, "Right angle");
44+
45+
const acute = getAngleType(50);
46+
assertEquals(acute, "Acute angle");
47+
48+
const obtuse = getAngleType(130);
49+
assertEquals(obtuse, "Obtuse angle");
50+
51+
const straight = getAngleType(180);
52+
assertEquals(straight, "Straight angle");
53+
54+
const reflex = getAngleType(225);
55+
assertEquals(reflex, "Reflex angle");
56+
57+
const invalidZero = getAngleType(0);
58+
assertEquals(invalidZero, "Invalid angle");
59+
60+
const invalidNegative = getAngleType(-45);
61+
assertEquals(invalidNegative, "Invalid angle");
62+
63+
const invalidOver = getAngleType(361);
64+
assertEquals(invalidOver, "Invalid angle");

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

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,37 @@ const getAngleType = require("../implement/1-get-angle-type");
99
test(`should return "Acute angle" when (0 < angle < 90)`, () => {
1010
// Test various acute angles, including boundary cases
1111
expect(getAngleType(1)).toEqual("Acute angle");
12-
expect(getAngleType(45)).toEqual("Acute angle");
12+
expect(getAngleType(50)).toEqual("Acute angle");
1313
expect(getAngleType(89)).toEqual("Acute angle");
1414
});
1515

1616
// Case 2: Right angle
17+
test(`should return "Right angle" when angle is 90`, () => {
18+
expect(getAngleType(90)).toEqual("Right angle");
19+
});
20+
1721
// Case 3: Obtuse angles
22+
test(`should return "Obtuse angle" when (90 < angle < 180)`, () => {
23+
expect(getAngleType(91)).toEqual("Obtuse angle");
24+
expect(getAngleType(130)).toEqual("Obtuse angle");
25+
expect(getAngleType(179)).toEqual("Obtuse angle");
26+
});
27+
1828
// Case 4: Straight angle
29+
test(`should return "Straight angle" when angle is 180`, () => {
30+
expect(getAngleType(180)).toEqual("Straight angle");
31+
});
32+
1933
// Case 5: Reflex angles
34+
test(`should return "Reflex angle" when (180 < angle < 360)`, () => {
35+
expect(getAngleType(181)).toEqual("Reflex angle");
36+
expect(getAngleType(225)).toEqual("Reflex angle");
37+
expect(getAngleType(359)).toEqual("Reflex angle");
38+
});
39+
2040
// Case 6: Invalid angles
41+
test(`should return "Invalid angle" when angle is <= 0 or >= 360`, () => {
42+
expect(getAngleType(0)).toEqual("Invalid angle");
43+
expect(getAngleType(-45)).toEqual("Invalid angle");
44+
expect(getAngleType(361)).toEqual("Invalid angle");
45+
});

0 commit comments

Comments
 (0)