Skip to content

Commit d85efd8

Browse files
committed
completed jest testing on ordinal numbers and implemented the function
1 parent a3b9260 commit d85efd8

2 files changed

Lines changed: 58 additions & 4 deletions

File tree

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
function getOrdinalNumber(num) {
2-
return "1st";
2+
const numberStr1 = String(num).slice(-1)
3+
const numberStr2 = String(num).slice(-2)
4+
5+
let number1 = Number(numberStr1)
6+
let number2 = Number(numberStr2)
7+
8+
if (number2 === 11 || number2 === 12 || number2 === 13) {
9+
return `${num}th`
10+
}
11+
else {
12+
13+
switch (number1) {
14+
case 1:
15+
return`${num}st`
16+
break;
17+
case 2:
18+
return `${num}nd`
19+
break;
20+
case 3:
21+
return `${num}rd`
22+
break;
23+
default:
24+
return`${num}th`;
25+
}
26+
}
27+
328
}
429

30+
531
module.exports = getOrdinalNumber;

Sprint-3/2-practice-tdd/get-ordinal-number.test.js

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,35 @@ const getOrdinalNumber = require("./get-ordinal-number");
1414
// When the number ends with 1, except those ending with 11,
1515
// Then the function should return a string by appending "st" to the number.
1616
test("should append 'st' for numbers ending with 1, except those ending with 11", () => {
17-
expect(getOrdinalNumber(1)).toEqual("1st");
18-
expect(getOrdinalNumber(21)).toEqual("21st");
19-
expect(getOrdinalNumber(131)).toEqual("131st");
17+
expect(getOrdinalNumber(1)).toEqual("1st");
18+
expect(getOrdinalNumber(21)).toEqual("21st");
19+
expect(getOrdinalNumber(131)).toEqual("131st");
2020
});
21+
22+
test("should append 'nd' for numbers ending with 2", () => {
23+
expect(getOrdinalNumber(2)).toEqual("2nd");
24+
expect(getOrdinalNumber(22)).toEqual("22nd");
25+
expect(getOrdinalNumber(32)).toEqual("32nd");
26+
27+
});
28+
29+
test("should append 'rd' for numbers ending with 3", () => {
30+
expect(getOrdinalNumber(3)).toEqual("3rd");
31+
expect(getOrdinalNumber(333)).toEqual("333rd");
32+
expect(getOrdinalNumber(303)).toEqual("303rd");
33+
34+
});
35+
36+
test("should append 'th' to numbers ending in 0, 4, 5, 6, 7, 8, 9, and to 11, 12, and 13", () => {
37+
expect(getOrdinalNumber(0)).toEqual("0th");
38+
expect(getOrdinalNumber(44)).toEqual("44th");
39+
expect(getOrdinalNumber(65)).toEqual("65th");
40+
expect(getOrdinalNumber(46)).toEqual("46th");
41+
expect(getOrdinalNumber(77)).toEqual("77th");
42+
expect(getOrdinalNumber(98)).toEqual("98th");
43+
expect(getOrdinalNumber(99)).toEqual("99th");
44+
expect(getOrdinalNumber(11)).toEqual("11th");
45+
expect(getOrdinalNumber(12)).toEqual("12th");
46+
expect(getOrdinalNumber(13)).toEqual("13th");
47+
})
48+
;

0 commit comments

Comments
 (0)