From b81aed6067b8e7c14f698c04bd336e63246f83cd Mon Sep 17 00:00:00 2001 From: Fattouma Ouannassi Date: Thu, 26 Feb 2026 22:46:08 +0000 Subject: [PATCH 1/2] Glasgow | Jan-26 | Fattouma Ouannassi | Sprint 3 | Coursework 3 implement and rewrite ## Learners, PR Template Self checklist - [x] I have titled my PR with Region | Cohort | FirstName LastName | Sprint | Assignment Title - [x] My changes meet the requirements of the task - [x] I have tested my changes - [x] My changes follow the [style guide](https://curriculum.codeyourfuture.io/guides/reviewing/style-guide/) ## Changelist This project (sprint 3) focuses on learning how to use JavaScript methods and test them. ## Questions / --- .../implement/1-get-angle-type.js | 78 +++++++++++++++++-- 1 file changed, 72 insertions(+), 6 deletions(-) diff --git a/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js b/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js index 9e05a871e2..4eb24665a0 100644 --- a/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js +++ b/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js @@ -14,24 +14,90 @@ // After you have implemented the function, write tests to cover all the cases, and // execute the code to ensure all tests pass. -function getAngleType(angle) { +//function getAngleType(angle) { // TODO: Implement this function + +// Implement a function getAngleType +function getAngleType(angle) { + if (angle > 0 && angle < 90) { + return "Acute angle"; + } else if (angle === 90) { + return "Right angle"; + } else if (angle > 90 && angle < 180) { + return "Obtuse angle"; + } else if (angle === 180) { + return "Straight angle"; + } else if (angle > 180 && angle < 360) { + return "Reflex angle"; + } else { + return "Invalid angle"; + } +} + +// Export for use in other files / Jest tests +//module.exports = getAngleType; + +// Helper function for assertions +function assertEquals(actualOutput, targetOutput) { + console.assert( + actualOutput === targetOutput, + `Expected ${actualOutput} to equal ${targetOutput}` + ); } + // The line below allows us to load the getAngleType function into tests in other files. // This will be useful in the "rewrite tests with jest" step. -module.exports = getAngleType; +//module.exports = getAngleType; // This helper function is written to make our assertions easier to read. // If the actual output matches the target output, the test will pass -function assertEquals(actualOutput, targetOutput) { +/*function assertEquals(actualOutput, targetOutput) { console.assert( actualOutput === targetOutput, `Expected ${actualOutput} to equal ${targetOutput}` ); -} +}*/ // TODO: Write tests to cover all cases, including boundary and invalid cases. // Example: Identify Right Angles -const right = getAngleType(90); -assertEquals(right, "Right angle"); +// ===> TESTS + +// Acute angles (0 < angle < 90) +console.log("Testing Acute angles..."); +assertEquals(getAngleType(1), "Acute angle"); +assertEquals(getAngleType(45), "Acute angle"); +assertEquals(getAngleType(89), "Acute angle"); +assertEquals(getAngleType(0.5), "Acute angle"); + +// Right angle (=90) +console.log("Testing Right angle..."); +assertEquals(getAngleType(90), "Right angle"); + +// Obtuse angles (90 < angle < 180) +console.log("Testing Obtuse angles..."); +assertEquals(getAngleType(91), "Obtuse angle"); +assertEquals(getAngleType(135), "Obtuse angle"); +assertEquals(getAngleType(179), "Obtuse angle"); + +// Straight angle (=180) +console.log("Testing Straight angle..."); +assertEquals(getAngleType(180), "Straight angle"); + +// Reflex angles (180 < angle < 360) +console.log("Testing Reflex angles..."); +assertEquals(getAngleType(181), "Reflex angle"); +assertEquals(getAngleType(270), "Reflex angle"); +assertEquals(getAngleType(359), "Reflex angle"); +assertEquals(getAngleType(359.9), "Reflex angle"); + +// Invalid angles (angle <= 0 or angle >= 360) +console.log("Testing Invalid angles..."); +assertEquals(getAngleType(0), "Invalid angle"); +assertEquals(getAngleType(-1), "Invalid angle"); +assertEquals(getAngleType(-45), "Invalid angle"); +assertEquals(getAngleType(360), "Invalid angle"); +assertEquals(getAngleType(361), "Invalid angle"); +assertEquals(getAngleType(720), "Invalid angle"); + +console.log("\n✅ All tests completed successfully!"); From 4536bccf052b7e509259d9613caf8a2f13d98f85 Mon Sep 17 00:00:00 2001 From: Fattouma Ouannassi Date: Sat, 28 Feb 2026 01:02:01 +0000 Subject: [PATCH 2/2] Update 1-get-angle-type.js --- .../implement/1-get-angle-type.js | 85 +++++-------------- 1 file changed, 22 insertions(+), 63 deletions(-) diff --git a/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js b/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js index 4eb24665a0..5ce5765c88 100644 --- a/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js +++ b/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js @@ -19,85 +19,44 @@ // Implement a function getAngleType function getAngleType(angle) { - if (angle > 0 && angle < 90) { - return "Acute angle"; - } else if (angle === 90) { - return "Right angle"; - } else if (angle > 90 && angle < 180) { - return "Obtuse angle"; - } else if (angle === 180) { - return "Straight angle"; - } else if (angle > 180 && angle < 360) { - return "Reflex angle"; - } else { + + if (typeof angle !== "number" || !Number.isFinite(angle)) { return "Invalid angle"; } + + + if (angle <= 0 || angle >= 360) { + return "Invalid angle"; + } + + + if (angle < 90) return "Acute angle"; + if (angle === 90) return "Right angle"; + if (angle < 180) return "Obtuse angle"; + if (angle === 180) return "Straight angle"; + return "Reflex angle"; } -// Export for use in other files / Jest tests -//module.exports = getAngleType; -// Helper function for assertions -function assertEquals(actualOutput, targetOutput) { - console.assert( - actualOutput === targetOutput, - `Expected ${actualOutput} to equal ${targetOutput}` - ); -} +module.exports = getAngleType; -// The line below allows us to load the getAngleType function into tests in other files. -// This will be useful in the "rewrite tests with jest" step. -//module.exports = getAngleType; - -// This helper function is written to make our assertions easier to read. -// If the actual output matches the target output, the test will pass -/*function assertEquals(actualOutput, targetOutput) { +function assertEquals(actualOutput, targetOutput) { console.assert( actualOutput === targetOutput, `Expected ${actualOutput} to equal ${targetOutput}` ); -}*/ +} -// TODO: Write tests to cover all cases, including boundary and invalid cases. -// Example: Identify Right Angles // ===> TESTS - -// Acute angles (0 < angle < 90) console.log("Testing Acute angles..."); assertEquals(getAngleType(1), "Acute angle"); -assertEquals(getAngleType(45), "Acute angle"); -assertEquals(getAngleType(89), "Acute angle"); -assertEquals(getAngleType(0.5), "Acute angle"); - -// Right angle (=90) -console.log("Testing Right angle..."); -assertEquals(getAngleType(90), "Right angle"); - -// Obtuse angles (90 < angle < 180) -console.log("Testing Obtuse angles..."); -assertEquals(getAngleType(91), "Obtuse angle"); -assertEquals(getAngleType(135), "Obtuse angle"); -assertEquals(getAngleType(179), "Obtuse angle"); - -// Straight angle (=180) -console.log("Testing Straight angle..."); -assertEquals(getAngleType(180), "Straight angle"); -// Reflex angles (180 < angle < 360) -console.log("Testing Reflex angles..."); -assertEquals(getAngleType(181), "Reflex angle"); -assertEquals(getAngleType(270), "Reflex angle"); -assertEquals(getAngleType(359), "Reflex angle"); -assertEquals(getAngleType(359.9), "Reflex angle"); -// Invalid angles (angle <= 0 or angle >= 360) -console.log("Testing Invalid angles..."); -assertEquals(getAngleType(0), "Invalid angle"); -assertEquals(getAngleType(-1), "Invalid angle"); -assertEquals(getAngleType(-45), "Invalid angle"); -assertEquals(getAngleType(360), "Invalid angle"); -assertEquals(getAngleType(361), "Invalid angle"); -assertEquals(getAngleType(720), "Invalid angle"); +console.log("Testing input validation..."); +assertEquals(getAngleType("90"), "Invalid angle"); +assertEquals(getAngleType(null), "Invalid angle"); +assertEquals(getAngleType(NaN), "Invalid angle"); +assertEquals(getAngleType(Infinity), "Invalid angle"); console.log("\n✅ All tests completed successfully!");