Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4c62400
updated 1-count.js with an explanation of line 3
JorvanW Jun 10, 2026
376a6b0
added answers to 0.js
Jun 27, 2026
2323e10
Added notes for 1.js
Jun 27, 2026
87fbee5
added notes for 2.js
Jun 27, 2026
57e3a65
added notes to 0.js
Jun 29, 2026
bf5c332
added answer to 0.js
Jun 29, 2026
4ca3f91
added notes to 1.js
Jun 29, 2026
185c7e7
added answers to 2.js
Jun 29, 2026
195189a
completed. 1-bmi
Jul 4, 2026
3f957a1
Answered the questions for 2-cases.js
Jul 4, 2026
b48031e
Added answers to the questions in the time-format.js file.
Jul 8, 2026
216221a
Created code for 1-get-angle-type.js
Jul 14, 2026
d10fc3c
fixed error in 'get-angle-types' and changed "let" to "function".
Jul 14, 2026
60638b4
wrote code for "is-proper-fraction" function and added test cases for it
Jul 14, 2026
2ac2702
Added code for 1-get-angle-type.test.js to include a test case for ea…
Jul 14, 2026
f8cf7cf
added code to test 2-is-proper-fraction.test.js
Jul 14, 2026
f3f69db
Add count function and tests
Jul 15, 2026
f6f3d1d
Remove CLI-Treasure-Hunt subproject from Sprint-2
Jul 15, 2026
0bdef75
Add functions and test for get-ordinal-number.js
Jul 15, 2026
630c502
removed unnecessary code and simplified it in excersie-1.js
Jul 15, 2026
55740a4
Removed dead code in exercise-2
Jul 15, 2026
6994606
Added code for repeat-string .js
Jul 17, 2026
e54bbd5
added code for 3-get-card-value.js
Jul 22, 2026
9aaaa7e
added tests for 3-get-card-value.test.js
Jul 22, 2026
7cacfb4
added notes for 3-get-card-value.js
Jul 22, 2026
a6131ab
updated formatting errors in 1-get-angle-types and 2-is-proper-faction
Jul 22, 2026
a85a823
updated code and added tests for repeat.str
Jul 22, 2026
cc958de
removed code from Sprint-2
Aug 3, 2026
919dba4
removed line of code from sprint -1
Aug 3, 2026
2211656
Removed code to fit submission requirements
Aug 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion Sprint-3/2-practice-tdd/count.js

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

semicolon missing in line 5 and line 8.

fun fact: In the original design of JavaScript, there was no semicolon, but it has been added later on - so that nowadays JS programmers generally follow the practice of adding semicolon.

Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
function countChar(stringOfCharacters, findCharacter) {
return 5
let count = 0
for (const char of stringOfCharacters) {
if (char === findCharacter) {
count++
}
}
return count
}

module.exports = countChar;
14 changes: 14 additions & 0 deletions Sprint-3/2-practice-tdd/count.test.js

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be one more boundary case making char has no occurrence in str. Can you think of that special case?

Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,17 @@ test("should count multiple occurrences of a character", () => {
// And a character `char` that does not exist within `str`.
// When the function is called with these inputs,
// Then it should return 0, indicating that no occurrences of `char` were found.

test("should return 0 when character is not found", () => {
const str = "hello";
const char = "z";
const count = countChar(str, char);
expect(count).toEqual(0);
});

test("should return the number of occurrences of a character in a string with different characters", () => {
const str = "london";
const char = "o";
const count = countChar(str, char);
expect(count).toEqual(2);
});
8 changes: 7 additions & 1 deletion Sprint-3/2-practice-tdd/get-ordinal-number.js

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the question requires to also handle 2nd and 3rd etc. Since the question itself may not be quite clear about that, you may clarify in slack channel. Thanks.

Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
function getOrdinalNumber(num) {
return "1st";
if (num % 100 === 11) {
return num + "th";
} else if (num % 10 === 1) {
return num + "st";
} else {
return num
}
}

module.exports = getOrdinalNumber;
7 changes: 7 additions & 0 deletions Sprint-3/2-practice-tdd/get-ordinal-number.test.js

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the question requires to also handle 2nd and 3rd etc, then there will be more test cases.

Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,10 @@ test("should append 'st' for numbers ending with 1, except those ending with 11"
expect(getOrdinalNumber(21)).toEqual("21st");
expect(getOrdinalNumber(131)).toEqual("131st");
});

// Case 2: Numbers ending with 11
test("should append 'th' for numbers ending with 11", () => {
expect(getOrdinalNumber(11)).toEqual("11th");
expect(getOrdinalNumber(111)).toEqual("111th");
expect(getOrdinalNumber(211)).toEqual("211th");
});
18 changes: 13 additions & 5 deletions Sprint-3/2-practice-tdd/repeat-str.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
function repeatStr() {
// Your implementation of this function must *not* call String.prototype.repeat (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat).
// The goal is to re-implement that function, not to use it.
return "hellohellohello";
}
function repeatStr(str, times) {
if (times === 0) {
return "";
Comment on lines +2 to +3

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why this if is needed?

} else if (times < 0) {
throw new Error("error");
}

let repeatedString = "";
for (let i = 0; i < times; i++) {
repeatedString += str;
}
return repeatedString;
}

module.exports = repeatStr;
23 changes: 23 additions & 0 deletions Sprint-3/2-practice-tdd/repeat-str.test.js

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about empty string (with the same set of counts 3, 1, 0, -1)?

Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,35 @@ test("should repeat the string count times", () => {
// When the repeatStr function is called with these inputs,
// Then it should return the original `str` without repetition.

test("should return the original string when count is 1", () => {
const str = "world";
const count = 1;
const repeatedStr = repeatStr(str, count);
expect(repeatedStr).toEqual("world");
});

// Case: Handle count of 0:
// Given a target string `str` and a `count` equal to 0,
// When the repeatStr function is called with these inputs,
// Then it should return an empty string.

test("should return an empty string when count is 0", () => {
const str = "world";
const count = 0;
const repeatedStr = repeatStr(str, count);
expect(repeatedStr).toEqual("");
});

// Case: Handle negative count:
// Given a target string `str` and a negative integer `count`,
// When the repeatStr function is called with these inputs,
// Then it should throw an error, as negative counts are not valid.

test("should throw an error when count is negative", () => {
const str = "world";
const count = -1;

expect(() => {
repeatStr(str, count);
}).toThrow("error");
});
Loading