Repository navigation
London | 26-ITP-Sept | Mars Adesina | Sprint 2 | Practice TDD #1731
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 all commits
618504b
833d950
dc8d57f
dccf8e3
c47e4e0
3f2d32a
74a438d
857468b
141163d
223c120
ffae1e7
fb5170f
7c3e706
e5ba947
7103755
10424c5
8e97e33
00f1229
b6b29b1
e8faea9
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,3 +1,10 @@ | ||
| export function countChar(stringOfCharacters, findCharacter) { | ||
| return 5 | ||
| let count = 0; | ||
|
|
||
| for (let i = 0; i < stringOfCharacters.length; i++) { | ||
| if (stringOfCharacters[i] === findCharacter) { | ||
| count++; | ||
| } | ||
| } | ||
| return count; | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,17 @@ | ||
| export function getOrdinalNumber(num) { | ||
| return "1st"; | ||
| if (num % 100 === 11) { | ||
| return `${num}th`; | ||
| } else if (num % 10 === 1) { | ||
| return `${num}st`; | ||
| } else if (num % 100 === 12) { | ||
| return `${num}th`; | ||
| } else if (num % 10 === 2) { | ||
| return `${num}nd`; | ||
| } else if (num % 100 === 13) { | ||
| return `${num}th`; | ||
| } else if (num % 10 === 3) { | ||
| return `${num}rd`; | ||
| } else { | ||
| return `${num}th`; | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,3 +18,28 @@ test("should append 'st' for numbers ending with 1, except those ending with 11" | |
| expect(getOrdinalNumber(21)).toEqual("21st"); | ||
| expect(getOrdinalNumber(131)).toEqual("131st"); | ||
| }); | ||
|
|
||
| test('should append "th" to numbers ending in 11, 12, or 13', () => { | ||
| expect(getOrdinalNumber(11)).toEqual("11th"); | ||
| expect(getOrdinalNumber(12)).toEqual("12th"); | ||
| expect(getOrdinalNumber(13)).toEqual("13th"); | ||
| }); | ||
|
Comment on lines
+22
to
+26
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These are numbers exactly equal to 11/12/13, how about larger numbers ended with 11/12/13 ? Please add those tests as well. Thank you. |
||
|
|
||
| test('should append "nd" to numbers ending in 2, apart from those ending in 12', () => { | ||
| expect(getOrdinalNumber(2)).toEqual("2nd"); | ||
| expect(getOrdinalNumber(32)).toEqual("32nd"); | ||
| expect(getOrdinalNumber(142)).toEqual("142nd"); | ||
| }); | ||
|
|
||
| test('should append "rd" to numbers ending in 3, apart from those ending in 13', () => { | ||
| expect(getOrdinalNumber(3)).toEqual("3rd"); | ||
| expect(getOrdinalNumber(33)).toEqual("33rd"); | ||
| expect(getOrdinalNumber(143)).toEqual("143rd"); | ||
| }); | ||
|
|
||
| test(`should append "th" to other numbers that don't end in 1, 2, or 3`, () => { | ||
| expect(getOrdinalNumber(4)).toEqual("4th"); | ||
| expect(getOrdinalNumber(10)).toEqual("10th"); | ||
| expect(getOrdinalNumber(24)).toEqual("24th"); | ||
| expect(getOrdinalNumber(100)).toEqual("100th"); | ||
| }); | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,10 @@ | ||
| export 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"; | ||
| export function repeatStr(str, count) { | ||
| if (count < 0) { | ||
| throw new Error("warning! Count cannot be negative!"); | ||
| } | ||
| let result = ""; | ||
| for (let i = 0; i < count; i++) { | ||
| result += str; | ||
| } | ||
| return result; | ||
| } |
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Your test cases are correct. Just for you to think a little bit more, besides |
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.
This test case is correct. However, there is a special
strwhich would give 0 anyway. Can you think of it? If so, please add it as well. Thank you.