@@ -8,68 +8,51 @@ const getOrdinalNumber = require("./get-ordinal-number");
88// When the number is 1,
99// Then the function should return "1st"
1010
11- test ( "should return '1st' for 1 " , ( ) => {
11+ test ( "Numbers that end with `st` " , ( ) => {
1212 expect ( getOrdinalNumber ( 1 ) ) . toEqual ( "1st" ) ;
1313 expect ( getOrdinalNumber ( 21 ) ) . toEqual ( "21st" ) ;
1414 expect ( getOrdinalNumber ( 101 ) ) . toEqual ( "101st" ) ;
15+ expect ( getOrdinalNumber ( 28491 ) ) . toEqual ( "28491st" ) ;
1516} ) ;
1617
17- // Case 2: Identify the ordinal number for 1
18- // except those ending in 12
19- test ( "append 'nd' to numbers ending in 2, except those ending in 12" , ( ) => {
20- expect ( getOrdinalNumber ( 2 ) ) . toEqual ( "2nd" ) ;
21- expect ( getOrdinalNumber ( 22 ) ) . toEqual ( "22nd" ) ;
22- expect ( getOrdinalNumber ( 132 ) ) . toEqual ( "132nd" ) ;
18+ // Case 2: "Numbers that end with `nd`
19+ test ( "Numbers that end with `nd`" , ( ) => {
20+ expect ( getOrdinalNumber ( 2 ) ) . toEqual ( "2nd" ) ;
21+ expect ( getOrdinalNumber ( 32 ) ) . toEqual ( "32nd" ) ;
22+ expect ( getOrdinalNumber ( 202 ) ) . toEqual ( "202nd" ) ;
23+ expect ( getOrdinalNumber ( 4502 ) ) . toEqual ( "4502nd" ) ;
24+ }
25+
26+ // Case 3:: "Numbers that end with `rd`
27+ ) ;
28+
29+ test ( "Numbers that end with `rd`" , ( ) => {
30+ expect ( getOrdinalNumber ( 3 ) ) . toEqual ( "3rd" ) ;
31+ expect ( getOrdinalNumber ( 43 ) ) . toEqual ( "43rd" ) ;
32+ expect ( getOrdinalNumber ( 123 ) ) . toEqual ( "123rd" ) ;
33+ expect ( getOrdinalNumber ( 6703 ) ) . toEqual ( "6703rd" ) ;
2334} ) ;
2435
25- // Case 3: Identify the ordinal numbers for 3 to 12
26- test ( "should return correct ordinal suffixes for numbers 3 to 12" , ( ) => {
27- expect ( getOrdinalNumber ( 3 ) ) . toEqual ( "3rd" ) ;
28- expect ( getOrdinalNumber ( 4 ) ) . toEqual ( "4th" ) ;
29- expect ( getOrdinalNumber ( 5 ) ) . toEqual ( "5th" ) ;
30- expect ( getOrdinalNumber ( 6 ) ) . toEqual ( "6th" ) ;
31- expect ( getOrdinalNumber ( 7 ) ) . toEqual ( "7th" ) ;
32- expect ( getOrdinalNumber ( 8 ) ) . toEqual ( "8th" ) ;
33- expect ( getOrdinalNumber ( 9 ) ) . toEqual ( "9th" ) ;
34- expect ( getOrdinalNumber ( 10 ) ) . toEqual ( "10th" ) ;
35- expect ( getOrdinalNumber ( 11 ) ) . toEqual ( "11th" ) ;
36- expect ( getOrdinalNumber ( 12 ) ) . toEqual ( "12th" ) ;
37- } ) ;
38- // Case 4: Identify the ordinal numbers for numbers above 12
39- test ( "should return correct ordinal suffixes for numbers above 12" , ( ) => {
40- expect ( getOrdinalNumber ( 13 ) ) . toEqual ( "13th" ) ;
41- expect ( getOrdinalNumber ( 19 ) ) . toEqual ( "19th" ) ;
42- expect ( getOrdinalNumber ( 23 ) ) . toEqual ( "23rd" ) ;
43- expect ( getOrdinalNumber ( 34 ) ) . toEqual ( "34th" ) ;
44- expect ( getOrdinalNumber ( 45 ) ) . toEqual ( "45th" ) ;
45- expect ( getOrdinalNumber ( 56 ) ) . toEqual ( "56th" ) ;
46- expect ( getOrdinalNumber ( 67 ) ) . toEqual ( "67th" ) ;
47- } ) ;
48-
49- // Case 5: Identify the ordinal numbers for numbers like 20 30 40 etc
50- test ( "should return correct ordinal suffixes for multiples of ten" , ( ) => {
51- expect ( getOrdinalNumber ( 20 ) ) . toEqual ( "20th" ) ;
52- expect ( getOrdinalNumber ( 30 ) ) . toEqual ( "30th" ) ;
53- expect ( getOrdinalNumber ( 70 ) ) . toEqual ( "70th" ) ;
54- expect ( getOrdinalNumber ( 50 ) ) . toEqual ( "50th" ) ;
36+ // Case 4: "Numbers that end with `th`
37+ test ( "Numbers that end with `th`" , ( ) => {
38+ expect ( getOrdinalNumber ( 4 ) ) . toEqual ( "4th" ) ;
39+ expect ( getOrdinalNumber ( 11 ) ) . toEqual ( "11th" ) ;
40+ expect ( getOrdinalNumber ( 25 ) ) . toEqual ( "25th" ) ;
41+ expect ( getOrdinalNumber ( 1124 ) ) . toEqual ( "1124th" ) ;
42+ expect ( getOrdinalNumber ( 9999 ) ) . toEqual ( "9999th" ) ;
5543} ) ;
5644
57- // Case 6: dealing with big numbers
58- test ( "should return correct ordinal suffixes for big numbers" , ( ) => {
59- expect ( getOrdinalNumber ( 111 ) ) . toEqual ( "111th" ) ;
60- expect ( getOrdinalNumber ( 4712 ) ) . toEqual ( "4712th" ) ;
61- expect ( getOrdinalNumber ( 10003 ) ) . toEqual ( "10003rd" ) ;
62- expect ( getOrdinalNumber ( 10012 ) ) . toEqual ( "10012th" ) ;
45+ // Case 5: "Numbers that are exceptions (11, 12, 13)
46+ test ( "Numbers that are exceptions (11, 12, 13)" , ( ) => {
47+ expect ( getOrdinalNumber ( 11 ) ) . toEqual ( "11th" ) ;
48+ expect ( getOrdinalNumber ( 12 ) ) . toEqual ( "12th" ) ;
49+ expect ( getOrdinalNumber ( 13 ) ) . toEqual ( "13th" ) ;
50+ expect ( getOrdinalNumber ( 111 ) ) . toEqual ( "111th" ) ;
51+ expect ( getOrdinalNumber ( 112 ) ) . toEqual ( "112th" ) ;
52+ expect ( getOrdinalNumber ( 113 ) ) . toEqual ( "113th" ) ;
6353} ) ;
6454
65-
66- // Case 6: dealing with invalid inputs
67- // test("should return error message", () => {
68- // expect( getOrdinalNumber(NaN) ).toEqual("Input must be a positive integer.");
69- // expect( getOrdinalNumber(Infinity) ).toEqual("Input must be a positive integer.");
70- // expect( getOrdinalNumber("hello") ).toEqual("Input must be a positive integer.");
71- // expect( getOrdinalNumber([0, 3]) ).toEqual("Input must be a positive integer.");
72- // });
55+ // Case 6: "Non-positive integers (NaN, Infinity, non-integers)
7356
7457test ( "should throw an error stating that input must be a positive integer" , ( ) => {
7558 expect ( ( ) => getOrdinalNumber ( NaN ) ) . toThrow ( "Input must be a positive integer." ) ;
0 commit comments