1616
1717function getAngleType ( angle ) {
1818 // TODO: Implement this function
19- // Check for invalid angles (outside 0-360 range or negative)
20- if ( angle <= 0 || angle >= 360 ) {
21- return "Invalid angle" ;
22- }
23-
24- // Check for acute angle (0 < angle < 90)
25- if ( angle < 90 ) {
26- return "Acute angle" ;
27- }
28-
29- // Check for right angle (exactly 90)
30- if ( angle === 90 ) {
31- return "Right angle" ;
32- }
33-
34- // Check for obtuse angle (90 < angle < 180)
35- if ( angle < 180 ) {
36- return "Obtuse angle" ;
37- }
38-
39- // Check for straight angle (exactly 180)
40- if ( angle === 180 ) {
41- return "Straight angle" ;
42- }
43-
44- // Check for reflex angle (180 < angle < 360)
45- if ( angle < 360 ) {
46- return "Reflex angle" ;
47- }
48-
49- // This should not be reached due to the first check, but included for completeness
50- return "Invalid angle" ;
5119}
5220
5321// The line below allows us to load the getAngleType function into tests in other files.
@@ -61,152 +29,9 @@ function assertEquals(actualOutput, targetOutput) {
6129 actualOutput === targetOutput ,
6230 `Expected ${ actualOutput } to equal ${ targetOutput } `
6331 ) ;
64- }
32+ }
6533
6634// TODO: Write tests to cover all cases, including boundary and invalid cases.
6735// Example: Identify Right Angles
68-
69- // ============================================================
70- // ACUTE ANGLE TESTS (0 < angle < 90)
71- // ============================================================
72- console . log ( "--- Acute Angle Tests (0° < angle < 90°) ---" ) ;
73-
74- const acute1 = getAngleType ( 1 ) ;
75- assertEquals ( acute1 , "Acute angle" ) ;
76- console . log ( " Test: 1° is Acute angle" ) ;
77-
78- const acute2 = getAngleType ( 45 ) ;
79- assertEquals ( acute2 , "Acute angle" ) ;
80- console . log ( " Test: 45° is Acute angle" ) ;
81-
82- const acute3 = getAngleType ( 60 ) ;
83- assertEquals ( acute3 , "Acute angle" ) ;
84- console . log ( "Test: 60° is Acute angle" ) ;
85-
86- const acute4 = getAngleType ( 89 ) ;
87- assertEquals ( acute4 , "Acute angle" ) ;
88- console . log ( " Test: 89° is Acute angle (boundary - just below 90°)" ) ;
89-
90- const acute5 = getAngleType ( 0.5 ) ;
91- assertEquals ( acute5 , "Acute angle" ) ;
92- console . log ( " Test: 0.5° is Acute angle (decimal)" ) ;
93-
94- // ============================================================
95- // RIGHT ANGLE TEST (exactly 90)
96- // ============================================================
97- console . log ( "\n--- Right Angle Test (exactly 90°) ---" ) ;
98-
9936const right = getAngleType ( 90 ) ;
10037assertEquals ( right , "Right angle" ) ;
101- console . log ( " Test: 90° is Right angle" ) ;
102-
103- // ============================================================
104- // OBTUSE ANGLE TESTS (90 < angle < 180)
105- // ============================================================
106- console . log ( "\n--- Obtuse Angle Tests (90° < angle < 180°) ---" ) ;
107-
108- const obtuse1 = getAngleType ( 91 ) ;
109- assertEquals ( obtuse1 , "Obtuse angle" ) ;
110- console . log ( " Test: 91° is Obtuse angle (boundary - just above 90°)" ) ;
111-
112- const obtuse2 = getAngleType ( 120 ) ;
113- assertEquals ( obtuse2 , "Obtuse angle" ) ;
114- console . log ( " Test: 120° is Obtuse angle" ) ;
115-
116- const obtuse3 = getAngleType ( 135 ) ;
117- assertEquals ( obtuse3 , "Obtuse angle" ) ;
118- console . log ( " Test: 135° is Obtuse angle" ) ;
119-
120- const obtuse4 = getAngleType ( 179 ) ;
121- assertEquals ( obtuse4 , "Obtuse angle" ) ;
122- console . log ( " Test: 179° is Obtuse angle (boundary - just below 180°)" ) ;
123-
124- const obtuse5 = getAngleType ( 150.5 ) ;
125- assertEquals ( obtuse5 , "Obtuse angle" ) ;
126- console . log ( " Test: 150.5° is Obtuse angle (decimal)" ) ;
127-
128- // ============================================================
129- // STRAIGHT ANGLE TEST (exactly 180)
130- // ============================================================
131- console . log ( "\n--- Straight Angle Test (exactly 180°) ---" ) ;
132-
133- const straight = getAngleType ( 180 ) ;
134- assertEquals ( straight , "Straight angle" ) ;
135- console . log ( " Test: 180° is Straight angle" ) ;
136-
137- // ============================================================
138- // REFLEX ANGLE TESTS (180 < angle < 360)
139- // ============================================================
140- console . log ( "\n--- Reflex Angle Tests (180° < angle < 360°) ---" ) ;
141-
142- const reflex1 = getAngleType ( 181 ) ;
143- assertEquals ( reflex1 , "Reflex angle" ) ;
144- console . log ( " Test: 181° is Reflex angle (boundary - just above 180°)" ) ;
145-
146- const reflex2 = getAngleType ( 200 ) ;
147- assertEquals ( reflex2 , "Reflex angle" ) ;
148- console . log ( " Test: 200° is Reflex angle" ) ;
149-
150- const reflex3 = getAngleType ( 270 ) ;
151- assertEquals ( reflex3 , "Reflex angle" ) ;
152- console . log ( " Test: 270° is Reflex angle" ) ;
153-
154- const reflex4 = getAngleType ( 300 ) ;
155- assertEquals ( reflex4 , "Reflex angle" ) ;
156- console . log ( " Test: 300° is Reflex angle" ) ;
157-
158- const reflex5 = getAngleType ( 359 ) ;
159- assertEquals ( reflex5 , "Reflex angle" ) ;
160- console . log ( " Test: 359° is Reflex angle (boundary - just below 360°)" ) ;
161-
162- const reflex6 = getAngleType ( 225.7 ) ;
163- assertEquals ( reflex6 , "Reflex angle" ) ;
164- console . log ( " Test: 225.7° is Reflex angle (decimal)" ) ;
165-
166- // ============================================================
167- // INVALID ANGLE TESTS
168- // ============================================================
169- console . log ( "\n--- Invalid Angle Tests ---" ) ;
170-
171- // Zero
172- const invalid1 = getAngleType ( 0 ) ;
173- assertEquals ( invalid1 , "Invalid angle" ) ;
174- console . log ( " Test: 0° is Invalid angle" ) ;
175-
176- // Negative angles
177- const invalid2 = getAngleType ( - 1 ) ;
178- assertEquals ( invalid2 , "Invalid angle" ) ;
179- console . log ( " Test: -1° is Invalid angle" ) ;
180-
181- const invalid3 = getAngleType ( - 45 ) ;
182- assertEquals ( invalid3 , "Invalid angle" ) ;
183- console . log ( " Test: -45° is Invalid angle" ) ;
184-
185- const invalid4 = getAngleType ( - 90 ) ;
186- assertEquals ( invalid4 , "Invalid angle" ) ;
187- console . log ( " Test: -90° is Invalid angle" ) ;
188-
189- const invalid5 = getAngleType ( - 180 ) ;
190- assertEquals ( invalid5 , "Invalid angle" ) ;
191- console . log ( " Test: -180° is Invalid angle" ) ;
192-
193- // 360 and above
194- const invalid6 = getAngleType ( 360 ) ;
195- assertEquals ( invalid6 , "Invalid angle" ) ;
196- console . log ( " Test: 360° is Invalid angle (boundary)" ) ;
197-
198- const invalid7 = getAngleType ( 361 ) ;
199- assertEquals ( invalid7 , "Invalid angle" ) ;
200- console . log ( " Test: 361° is Invalid angle" ) ;
201-
202- const invalid8 = getAngleType ( 400 ) ;
203- assertEquals ( invalid8 , "Invalid angle" ) ;
204- console . log ( " Test: 400° is Invalid angle" ) ;
205-
206- const invalid9 = getAngleType ( 720 ) ;
207- assertEquals ( invalid9 , "Invalid angle" ) ;
208- console . log ( " Test: 720° is Invalid angle (full rotation)" ) ;
209-
210- const invalid10 = getAngleType ( 1000 ) ;
211- assertEquals ( invalid10 , "Invalid angle" ) ;
212- console . log ( " Test: 1000° is Invalid angle" ) ;
0 commit comments