-
-
Notifications
You must be signed in to change notification settings - Fork 337
London | 26-ITP-Jan | Boualem Larbi Djebbour | sprint 3 | practice tdd #1265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 13 commits
b34e66c
efc78a8
293e98e
edb4fe4
fc349ab
eb8edda
4b70646
3c69efb
7661229
1c57e2b
0e0c2f5
ca4e87b
75c15af
02245db
73e0c61
28288c3
7561430
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,11 @@ | ||
| function countChar(stringOfCharacters, findCharacter) { | ||
| return 5 | ||
| let count = 0; | ||
| for (let i = 0; i < stringOfCharacters.length; i++) { | ||
| if (stringOfCharacters[i] === findCharacter) { | ||
| count++; | ||
| } | ||
| } | ||
| return count; | ||
| } | ||
|
|
||
| module.exports = countChar; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,18 @@ | ||
| function getOrdinalNumber(num) { | ||
| return "1st"; | ||
| let remainder1 = num % 10; | ||
| let remainder2 = num % 100; | ||
| if (remainder1 === 1 && remainder2 !== 11) { | ||
| // we also can use if (num[-1]===1 && num.slice(-2)!==11) | ||
|
||
| return num + "st"; | ||
| } else if (remainder1 === 2 && remainder2 !== 12) { | ||
| // we also can use if (num[-1]===2 && num.slice(-2)!==12) | ||
| return num + "nd"; | ||
| } else if (remainder1 === 3 && remainder2 !== 13) { | ||
| // we also can use if (num[-1]===3 && num.slice(-2)!==13) | ||
| return num + "rd"; | ||
| } else { | ||
| return num + "th"; | ||
| } | ||
| } | ||
|
|
||
| module.exports = getOrdinalNumber; | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,3 +18,46 @@ 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 2 (but not 12) | ||
| // When the number ends with 2, except those ending with 12, | ||
| // Then the function should return a string by appending "nd" to the number. | ||
| test("should append 'nd' for numbers ending with 2, except those ending with 12", () => { | ||
| expect(getOrdinalNumber(2)).toEqual("2nd"); | ||
| expect(getOrdinalNumber(202)).toEqual("202nd"); | ||
| expect(getOrdinalNumber(1032)).toEqual("1032nd"); | ||
| }); | ||
|
|
||
| // Case 3: Numbers ending with 3 (but not 13) | ||
| // When the number ends with 3, except those ending with 13, | ||
| // Then the function should return a string by appending "rd" to the number. | ||
| test("should append 'rd' for numbers ending with 3, except those ending with 13", () => { | ||
| expect(getOrdinalNumber(3)).toEqual("3rd"); | ||
| expect(getOrdinalNumber(2333)).toEqual("2333rd"); | ||
| expect(getOrdinalNumber(13453)).toEqual("13453rd"); | ||
| }); | ||
|
|
||
| // Case 4: numbers ending with 11, 12, or 13 | ||
| // When the number ends with 11, 12, or 13, | ||
| // Then the function should return a string by appending "th" to the number. | ||
|
|
||
| test("should append 'th' for numbers ending with 11, 12, or 13", () => { | ||
| expect(getOrdinalNumber(11)).toEqual("11th"); | ||
| expect(getOrdinalNumber(12)).toEqual("12th"); | ||
| expect(getOrdinalNumber(13)).toEqual("13th"); | ||
| }); | ||
|
|
||
| // Case 5: numbers that ends with 0, 4, 5, 6, 7, 8, or 9 | ||
| // When the number does not end with 1, 2, or 3 | ||
| // Then the function should return a string by appending "th" to the number. | ||
|
|
||
| test("should append 'th' for all other numbers", () => { | ||
|
||
| expect(getOrdinalNumber(4)).toEqual("4th"); | ||
| expect(getOrdinalNumber(10)).toEqual("10th"); | ||
| expect(getOrdinalNumber(11)).toEqual("115th"); | ||
| expect(getOrdinalNumber(12)).toEqual("126th"); | ||
| expect(getOrdinalNumber(13)).toEqual("137th"); | ||
| expect(getOrdinalNumber(100)).toEqual("100th"); | ||
| expect(getOrdinalNumber(1012)).toEqual("1012th"); | ||
| expect(getOrdinalNumber(1038)).toEqual("1038th"); | ||
| }); | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,17 @@ | ||
| function repeatStr() { | ||
| return "hellohellohello"; | ||
| function repeatStr(str, count) { | ||
| if (count >= 0) { | ||
| return str.repeat(count); | ||
| } else { | ||
| throw new Error("Count cannot be a negative number"); | ||
| } | ||
| } | ||
| // I can make the 3 valid cases in 1 case with the repeat method as folows: | ||
| // function repeatStr(str, count) { | ||
| // if (count >= 0) { | ||
| // return str.repeat(count); | ||
| // } else { | ||
| // throw new Error("Count cannot be a negative number"); | ||
| // } | ||
| // } | ||
|
|
||
| module.exports = repeatStr; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Best practice is to give variables descriptive (self-explanatory) names. Can you rename these two variables to make the code more readable.