11function getOrdinalNumber ( num ) {
2- // This is for num argument validation that go inside the function.
3- if ( typeof num !== "number" || Number . isNaN ( num ) || ! Number . isInteger ( num ) ) {
4- throw new Error ( "Invalid input: the value must be a number" ) ;
5- }
6-
7- // This allow float number to be round into it nearest integer.
8- const mainReminder = num % 100 ;
9- const secondReminder = num % 10 ;
10-
11- if ( mainReminder === 11 || mainReminder === 12 || mainReminder === 13 ) {
12- return `${ num } th` ;
13- }
14- switch ( true ) {
15- case secondReminder === 1 : return `${ num } st` ;
16- case secondReminder === 2 : return `${ num } nd` ;
17- case secondReminder === 3 : return `${ num } rd` ;
18- default : return `${ num } th` ;
19- }
2+ // This is for num argument validation that go inside the function.
3+ if ( ! Number . isInteger ( num ) ) {
4+ throw new Error ( "Invalid input: the value must be a number" ) ;
5+ }
6+
7+ // This allow float number to be round into it nearest integer.
8+ const mainReminder = num % 100 ;
9+ const secondReminder = num % 10 ;
10+
11+ if ( mainReminder === 11 || mainReminder === 12 || mainReminder === 13 ) {
12+ return `${ num } th` ;
13+ }
14+ switch ( true ) {
15+ case secondReminder === 1 :
16+ return `${ num } st` ;
17+ case secondReminder === 2 :
18+ return `${ num } nd` ;
19+ case secondReminder === 3 :
20+ return `${ num } rd` ;
21+ default :
22+ return `${ num } th` ;
23+ }
2024}
2125
2226module . exports = getOrdinalNumber ;
2327
24-
25- function testAssert ( inputNumber , outputNUmber ) {
26- console . assert (
27- inputNumber === outputNUmber ,
28- `Test failed: expected ${ outputNUmber } , but got ${ inputNumber } `
29- ) ;
30- } ;
28+ function testAssert ( inputNumber , outputNUmber ) {
29+ console . assert (
30+ inputNumber === outputNUmber ,
31+ `Test failed: expected ${ outputNUmber } , but got ${ inputNumber } `
32+ ) ;
33+ }
3134//Basic test of first digit integer
3235testAssert ( getOrdinalNumber ( 1 ) , "1st" ) ;
3336testAssert ( getOrdinalNumber ( 2 ) , "2nd" ) ;
3437testAssert ( getOrdinalNumber ( 3 ) , "3rd" ) ;
3538testAssert ( getOrdinalNumber ( 4 ) , "4th" ) ;
36- //Test for 11, 12 and 13
39+ //Test for 11, 12 and 13
3740testAssert ( getOrdinalNumber ( 11 ) , "11th" ) ;
3841testAssert ( getOrdinalNumber ( 12 ) , "12th" ) ;
3942testAssert ( getOrdinalNumber ( 13 ) , "13th" ) ;
@@ -44,8 +47,5 @@ testAssert(getOrdinalNumber(43), "43rd");
4447//Normal number and float number test.
4548testAssert ( getOrdinalNumber ( 101 ) , "101st" ) ;
4649testAssert ( getOrdinalNumber ( 202 ) , "202nd" ) ;
47- testAssert ( ( ) => getOrdinalNumber ( 1.2 ) , "Invalid input" ) ;
48- testAssert ( ( ) => getOrdinalNumber ( 10.51 ) , "Invalid input" ) ;
49-
50-
51-
50+ testAssert ( ( ) => getOrdinalNumber ( 1.2 ) , "Invalid input" ) ;
51+ testAssert ( ( ) => getOrdinalNumber ( 10.51 ) , "Invalid input" ) ;
0 commit comments