Skip to content

Commit 4536bcc

Browse files
Update 1-get-angle-type.js
1 parent a3fc1d0 commit 4536bcc

File tree

1 file changed

+22
-63
lines changed

1 file changed

+22
-63
lines changed

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

Lines changed: 22 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -19,85 +19,44 @@
1919

2020
// Implement a function getAngleType
2121
function getAngleType(angle) {
22-
if (angle > 0 && angle < 90) {
23-
return "Acute angle";
24-
} else if (angle === 90) {
25-
return "Right angle";
26-
} else if (angle > 90 && angle < 180) {
27-
return "Obtuse angle";
28-
} else if (angle === 180) {
29-
return "Straight angle";
30-
} else if (angle > 180 && angle < 360) {
31-
return "Reflex angle";
32-
} else {
22+
23+
if (typeof angle !== "number" || !Number.isFinite(angle)) {
3324
return "Invalid angle";
3425
}
26+
27+
28+
if (angle <= 0 || angle >= 360) {
29+
return "Invalid angle";
30+
}
31+
32+
33+
if (angle < 90) return "Acute angle";
34+
if (angle === 90) return "Right angle";
35+
if (angle < 180) return "Obtuse angle";
36+
if (angle === 180) return "Straight angle";
37+
return "Reflex angle";
3538
}
3639

37-
// Export for use in other files / Jest tests
38-
//module.exports = getAngleType;
3940

40-
// Helper function for assertions
41-
function assertEquals(actualOutput, targetOutput) {
42-
console.assert(
43-
actualOutput === targetOutput,
44-
`Expected ${actualOutput} to equal ${targetOutput}`
45-
);
46-
}
41+
module.exports = getAngleType;
4742

4843

49-
// The line below allows us to load the getAngleType function into tests in other files.
50-
// This will be useful in the "rewrite tests with jest" step.
51-
//module.exports = getAngleType;
52-
53-
// This helper function is written to make our assertions easier to read.
54-
// If the actual output matches the target output, the test will pass
55-
/*function assertEquals(actualOutput, targetOutput) {
44+
function assertEquals(actualOutput, targetOutput) {
5645
console.assert(
5746
actualOutput === targetOutput,
5847
`Expected ${actualOutput} to equal ${targetOutput}`
5948
);
60-
}*/
49+
}
6150

62-
// TODO: Write tests to cover all cases, including boundary and invalid cases.
63-
// Example: Identify Right Angles
6451
// ===> TESTS
65-
66-
// Acute angles (0 < angle < 90)
6752
console.log("Testing Acute angles...");
6853
assertEquals(getAngleType(1), "Acute angle");
69-
assertEquals(getAngleType(45), "Acute angle");
70-
assertEquals(getAngleType(89), "Acute angle");
71-
assertEquals(getAngleType(0.5), "Acute angle");
72-
73-
// Right angle (=90)
74-
console.log("Testing Right angle...");
75-
assertEquals(getAngleType(90), "Right angle");
76-
77-
// Obtuse angles (90 < angle < 180)
78-
console.log("Testing Obtuse angles...");
79-
assertEquals(getAngleType(91), "Obtuse angle");
80-
assertEquals(getAngleType(135), "Obtuse angle");
81-
assertEquals(getAngleType(179), "Obtuse angle");
82-
83-
// Straight angle (=180)
84-
console.log("Testing Straight angle...");
85-
assertEquals(getAngleType(180), "Straight angle");
8654

87-
// Reflex angles (180 < angle < 360)
88-
console.log("Testing Reflex angles...");
89-
assertEquals(getAngleType(181), "Reflex angle");
90-
assertEquals(getAngleType(270), "Reflex angle");
91-
assertEquals(getAngleType(359), "Reflex angle");
92-
assertEquals(getAngleType(359.9), "Reflex angle");
9355

94-
// Invalid angles (angle <= 0 or angle >= 360)
95-
console.log("Testing Invalid angles...");
96-
assertEquals(getAngleType(0), "Invalid angle");
97-
assertEquals(getAngleType(-1), "Invalid angle");
98-
assertEquals(getAngleType(-45), "Invalid angle");
99-
assertEquals(getAngleType(360), "Invalid angle");
100-
assertEquals(getAngleType(361), "Invalid angle");
101-
assertEquals(getAngleType(720), "Invalid angle");
56+
console.log("Testing input validation...");
57+
assertEquals(getAngleType("90"), "Invalid angle");
58+
assertEquals(getAngleType(null), "Invalid angle");
59+
assertEquals(getAngleType(NaN), "Invalid angle");
60+
assertEquals(getAngleType(Infinity), "Invalid angle");
10261

10362
console.log("\n✅ All tests completed successfully!");

0 commit comments

Comments
 (0)