From 8f3450dece1a1b756ff7cc09bf439037c1d9bd1a Mon Sep 17 00:00:00 2001 From: Rahana Suleiman Date: Mon, 12 Oct 2026 23:45:33 +0100 Subject: [PATCH 1/3] add fizzbuzz function and corresponding tests --- test-driven-development/fizzbuzz.js | 10 +++++++ test-driven-development/fizzbuzz.test.js | 36 ++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 test-driven-development/fizzbuzz.js create mode 100644 test-driven-development/fizzbuzz.test.js diff --git a/test-driven-development/fizzbuzz.js b/test-driven-development/fizzbuzz.js new file mode 100644 index 000000000..12198b29f --- /dev/null +++ b/test-driven-development/fizzbuzz.js @@ -0,0 +1,10 @@ +function fizzbuzz(number){ + if (number % 3 === 0 && number % 5 === 0){ + return "fizzbuzz"; + } else if (number % 5 === 0){ + return "buzz"; + } else if (number % 3 === 0){ + return "fizz"; + } + return number.toString(); +}; \ No newline at end of file diff --git a/test-driven-development/fizzbuzz.test.js b/test-driven-development/fizzbuzz.test.js new file mode 100644 index 000000000..e48f23149 --- /dev/null +++ b/test-driven-development/fizzbuzz.test.js @@ -0,0 +1,36 @@ +import {fizzbuzz} from './fizzbuzz.js'; +import assert from 'node:assert'; +import {test, describe} from 'node:test'; + +describe('division by 3 and 5', () => { + + test('15 returns fizzbuzz', () => { + assert.equal(fizzbuzz(15), "fizzbuzz"); + }); + + test('30 returns fizzbuzz', () => { + assert.equal(fizzbuzz(30), "fizzbuzz"); + }); + + test('90 returns fizzbuzz', () => { + assert.equal(fizzbuzz(90), "fizzbuzz"); + }); + +}); + + +describe('returning the number as a string', () => { + + test('1 returns "1"', () => { + assert.equal(fizzbuzz(1), "1"); + }); + + test('4 returns "4"', () => { + assert.equal(fizzbuzz(4), "4"); + }); + + test('91 returns "91"', () => { + assert.equal(fizzbuzz(91), "91"); + }); + +}); \ No newline at end of file From b735c485058ebf4f453b8b1f2d28e40bd42696b1 Mon Sep 17 00:00:00 2001 From: Rahana Suleiman Date: Thu, 15 Oct 2026 02:45:36 +0100 Subject: [PATCH 2/3] remove unreachable and redundant code from exercise-1.js --- dead-code/exercise-1.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/dead-code/exercise-1.js b/dead-code/exercise-1.js index 4d09f15fa..f257d5c6b 100644 --- a/dead-code/exercise-1.js +++ b/dead-code/exercise-1.js @@ -1,17 +1,28 @@ // Find the instances of unreachable and redundant code - remove them! // The sayHello function should continue to work for any reasonable input it's given. -let testName = "Jerry"; +// let testName = "Jerry"; +// const greeting = "hello"; + +// function sayHello(greeting, name) { +// const greetingStr = greeting + ", " + name + "!"; +// return `${greeting}, ${name}!`; +// console.log(greetingStr); +// } + +// testName = "Aman"; + +// const greetingMessage = sayHello(greeting, testName); + +// console.log(greetingMessage); // 'hello, Aman!' + const greeting = "hello"; +const testName = "Aman"; function sayHello(greeting, name) { - const greetingStr = greeting + ", " + name + "!"; return `${greeting}, ${name}!`; - console.log(greetingStr); } -testName = "Aman"; - const greetingMessage = sayHello(greeting, testName); console.log(greetingMessage); // 'hello, Aman!' From 47af83e214b8ea6e739fd80f798d64eab26a8642 Mon Sep 17 00:00:00 2001 From: Rahana Suleiman Date: Thu, 15 Oct 2026 02:49:35 +0100 Subject: [PATCH 3/3] remove unused code and comments from exercise-2.js --- dead-code/exercise-2.js | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/dead-code/exercise-2.js b/dead-code/exercise-2.js index 56d7887c4..d14a7cf60 100644 --- a/dead-code/exercise-2.js +++ b/dead-code/exercise-2.js @@ -1,14 +1,36 @@ // Remove the unused code that does not contribute to the final console log // The countAndCapitalisePets function should continue to work for any reasonable input it's given, and you shouldn't modify the pets variable. +// const pets = ["parrot", "hamster", "horse", "dog", "hamster", "cat", "hamster"]; +// const capitalisedPets = pets.map((pet) => pet.toUpperCase()); +// const petsStartingWithH = pets.filter((pet) => pet[0] === "h"); + +// function logPets(petsArr) { +// petsArr.forEach((pet) => console.log(pet)); +// } + +// function countAndCapitalisePets(petsArr) { +// const petCount = {}; + +// petsArr.forEach((pet) => { +// const capitalisedPet = pet.toUpperCase(); +// if (petCount[capitalisedPet]) { +// petCount[capitalisedPet] += 1; +// } else { +// petCount[capitalisedPet] = 1; +// } +// }); +// return petCount; +// } + +// const countedPetsStartingWithH = countAndCapitalisePets(petsStartingWithH); + +// console.log(countedPetsStartingWithH); // { 'HAMSTER': 3, 'HORSE': 1 } <- Final console log + + const pets = ["parrot", "hamster", "horse", "dog", "hamster", "cat", "hamster"]; -const capitalisedPets = pets.map((pet) => pet.toUpperCase()); const petsStartingWithH = pets.filter((pet) => pet[0] === "h"); -function logPets(petsArr) { - petsArr.forEach((pet) => console.log(pet)); -} - function countAndCapitalisePets(petsArr) { const petCount = {}; @@ -25,4 +47,4 @@ function countAndCapitalisePets(petsArr) { const countedPetsStartingWithH = countAndCapitalisePets(petsStartingWithH); -console.log(countedPetsStartingWithH); // { 'HAMSTER': 3, 'HORSE': 1 } <- Final console log +console.log(countedPetsStartingWithH); // { 'HAMSTER': 3, 'HORSE': 1 }