Skip to content

Commit b683a0b

Browse files
Add complete ordinal suffix logic and passing Jest tests
1 parent fdb496b commit b683a0b

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed
Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
function getOrdinalNumber(num) {
2-
return "1st";
2+
if( num%10 === 1 && num%100 !== 11)
3+
{
4+
return `${num}st`;
5+
}
6+
else if (num%10 === 2 && num%100 !== 12)
7+
{
8+
return `${num}nd`;
9+
}
10+
else if(num%10===3 && num%100 !==13)
11+
{
12+
return `${num}rd`;
13+
}
14+
else{
15+
return `${num}th`;
16+
}
317
}
418

519
module.exports = getOrdinalNumber;

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

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,43 @@ test("should append 'st' for numbers ending with 1, except those ending with 11"
1818
expect(getOrdinalNumber(21)).toEqual("21st");
1919
expect(getOrdinalNumber(131)).toEqual("131st");
2020
});
21+
test("should append 'th' for numbers ending with 11", ()=>{
22+
expect(getOrdinalNumber(11)).toEqual("11th");
23+
expect(getOrdinalNumber(111)).toEqual("111th");
24+
expect(getOrdinalNumber(211)).toEqual("211th");
25+
expect(getOrdinalNumber(311)).toEqual("311th");
26+
});
27+
test("should append 'nd' for numbers ending with 2, except those ending with 12", () => {
28+
expect(getOrdinalNumber(2)).toEqual("2nd");
29+
expect(getOrdinalNumber(22)).toEqual("22nd");
30+
expect(getOrdinalNumber(132)).toEqual("132nd");
31+
});
32+
test("should append 'th' for numbers ending with 12", () => {
33+
expect(getOrdinalNumber(12)).toEqual("12th");
34+
expect(getOrdinalNumber(112)).toEqual("112th");
35+
expect(getOrdinalNumber(212)).toEqual("212th");
36+
});
37+
38+
test("should append 'rd' for numbers ending with 3, except those ending with 13", () => {
39+
expect(getOrdinalNumber(3)).toEqual("3rd");
40+
expect(getOrdinalNumber(33)).toEqual("33rd");
41+
expect(getOrdinalNumber(133)).toEqual("133rd");
42+
});
43+
test("should append 'th' for numbers ending with 13", () => {
44+
expect(getOrdinalNumber(13)).toEqual("13th");
45+
expect(getOrdinalNumber(113)).toEqual("113th");
46+
expect(getOrdinalNumber(213)).toEqual("213th");
47+
});
48+
test("should append 'th' for numbers ending with 4", () => {
49+
expect(getOrdinalNumber(4)).toEqual("4th");
50+
expect(getOrdinalNumber(14)).toEqual("14th");
51+
expect(getOrdinalNumber(134)).toEqual("134th");
52+
});
53+
54+
55+
56+
57+
58+
59+
60+

0 commit comments

Comments
 (0)