Skip to content

Commit 1e25c6e

Browse files
committed
TDD: implement getOrdinalNumber with category tests
1 parent 4bd5c1e commit 1e25c6e

2 files changed

Lines changed: 39 additions & 1 deletion

File tree

‎practice-tdd/get-ordinal-number.js‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
export function getOrdinalNumber(num) {
2-
return "1st";
2+
return num % 100 === 11 || num % 100 === 12 || num % 100 === 13
3+
? `${num}th`
4+
: num % 10 === 1
5+
? `${num}st`
6+
: num % 10 === 2
7+
? `${num}nd`
8+
: num % 10 === 3
9+
? `${num}rd`
10+
: `${num}th`;
311
}

‎practice-tdd/get-ordinal-number.test.js‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,33 @@ 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+
22+
test("should append 'nd' for numbers ending with 2, except those ending with 12", () => {
23+
expect(getOrdinalNumber(2)).toEqual("2nd");
24+
expect(getOrdinalNumber(22)).toEqual("22nd");
25+
expect(getOrdinalNumber(132)).toEqual("132nd");
26+
});
27+
28+
test("should append 'rd' for numbers ending with 3, except those ending with 13", () => {
29+
expect(getOrdinalNumber(3)).toEqual("3rd");
30+
expect(getOrdinalNumber(23)).toEqual("23rd");
31+
expect(getOrdinalNumber(133)).toEqual("133rd");
32+
});
33+
34+
test("should append 'th' for numbers ending with 11, 12, or 13.", () => {
35+
expect(getOrdinalNumber(11)).toEqual("11th");
36+
expect(getOrdinalNumber(12)).toEqual("12th");
37+
expect(getOrdinalNumber(13)).toEqual("13th");
38+
});
39+
40+
test("should append 'th' for numbers ending with 0, 4, or big numbers.", () => {
41+
expect(getOrdinalNumber(10)).toEqual("10th");
42+
expect(getOrdinalNumber(30)).toEqual("30th");
43+
expect(getOrdinalNumber(500)).toEqual("500th");
44+
expect(getOrdinalNumber(4)).toEqual("4th");
45+
expect(getOrdinalNumber(44)).toEqual("44th");
46+
expect(getOrdinalNumber(134)).toEqual("134th");
47+
expect(getOrdinalNumber(987535)).toEqual("987535th");
48+
expect(getOrdinalNumber(111)).toEqual("111th");
49+
expect(getOrdinalNumber(112)).toEqual("112th");
50+
});

0 commit comments

Comments
 (0)