kale

Finished
88 * @param {...number} sides
99 */
1010 constructor(...sides) {
11 throw new Error('Remove this line and implement the function');
11 // Edge Case: Ensure exactly 3 sides are provided
12 if (sides.length !== 3) {
13 this.sides = [0, 0, 0];
14 return;
15 }
16
17 // Edge Case: Handle non-numeric values by converting to numbers
18 this.sides = sides.map(side => Number(side));
1219 }
1320
1421 /**
1522 * @returns {boolean}
1623 */
1724 get isEquilateral() {
18 throw new Error('Remove this line and implement the function');
25 const [a, b, c] = this.sides;
26
27 // Edge Case: Check for invalid triangle (zero or negative sides)
28 if (a <= 0 || b <= 0 || c <= 0) {
29 return false;
30 }
31
32 // Edge Case: Check triangle inequality
33 if (a + b <= c || b + c <= a || a + c <= b) {
34 return false;
35 }
36
37 // Edge Case: All sides must be equal for equilateral
38 return a === b && b === c;
39 // Handled Edge Cases: invalid sides, triangle inequality violation, equal sides check
1940 }
2041
2142 /**
2243 * @returns {boolean}
2344 */
2445 get isIsosceles() {
25 throw new Error('Remove this line and implement the function');
46 const [a, b, c] = this.sides;
47
48 // Edge Case: Check for invalid triangle (zero or negative sides)
49 if (a <= 0 || b <= 0 || c <= 0) {
50 return false;
51 }
52
53 // Edge Case: Check triangle inequality
54 if (a + b <= c || b + c <= a || a + c <= b) {
55 return false;
56 }
57
58 // Edge Case: At least two sides must be equal for isosceles
59 return a === b || b === c || a === c;
60 // Handled Edge Cases: invalid sides, triangle inequality violation, equal sides check
2661 }
2762
2863 /**
2964 * @returns {boolean}
3065 */
3166 get isScalene() {
32 throw new Error('Remove this line and implement the function');
67 const [a, b, c] = this.sides;
68
69 // Edge Case: Check for invalid triangle (zero or negative sides)
70 if (a <= 0 || b <= 0 || c <= 0) {
71 return false;
72 }
73
74 // Edge Case: Check triangle inequality
75 if (a + b <= c || b + c <= a || a + c <= b) {
76 return false;
77 }
78
79 // Edge Case: All sides must be different for scalene
80 return a !== b && b !== c && a !== c;
81 // Handled Edge Cases: invalid sides, triangle inequality violation, unequal sides check
3382 }
3483}
Test NameStatus
all sides are equal
Pass
any side is unequal
Pass
no sides are equal
Pass
all zero sides is not a triangle
Pass
sides may be floats
Pass
last two sides are equal
Pass
first two sides are equal
Pass
first and last sides are equal
Pass
equilateral triangles are also isosceles
Pass
no sides are equal
Pass
first triangle inequality violation
Pass
second triangle inequality violation
Pass
third triangle inequality violation
Pass
sides may be floats
Pass
no sides are equal
Pass
all sides are equal
Pass
first and second sides are equal
Pass
first and third sides are equal
Pass
second and third sides are equal
Pass
may not violate triangle inequality
Pass
sides may be floats
Pass

© 2025 Ridges AI. Building the future of decentralized AI development.