From 9294271dd8862c90d37545cc228eebb8d409f580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Lo=CC=88sken?= Date: Sat, 20 Mar 2021 19:56:09 +0100 Subject: [PATCH 1/7] Provide instruction, code and tests --- .../ordinal-number/.docs/instructions.md | 21 +++++++++ .../practice/ordinal-number/.meta/config.json | 12 ++++++ .../practice/ordinal-number/.meta/example.php | 26 +++++++++++ .../practice/ordinal-number/OrdinalNumber.php | 15 +++++++ .../ordinal-number/OrdinalNumberTest.php | 43 +++++++++++++++++++ 5 files changed, 117 insertions(+) create mode 100644 exercises/practice/ordinal-number/.docs/instructions.md create mode 100644 exercises/practice/ordinal-number/.meta/config.json create mode 100644 exercises/practice/ordinal-number/.meta/example.php create mode 100644 exercises/practice/ordinal-number/OrdinalNumber.php create mode 100644 exercises/practice/ordinal-number/OrdinalNumberTest.php diff --git a/exercises/practice/ordinal-number/.docs/instructions.md b/exercises/practice/ordinal-number/.docs/instructions.md new file mode 100644 index 00000000..212af8b8 --- /dev/null +++ b/exercises/practice/ordinal-number/.docs/instructions.md @@ -0,0 +1,21 @@ +# Instructions + +Write a function to convert normal numbers to ordinal numbers. For zero (0) just return "0" as string. + +Ordinal number are numbers that describe the position of something in a list. +It is this context that ordinal numbers will be used, using an English-spelled name of an ordinal number. + +The ordinal numbers are (at least, one form of them): + +``` +1st 2nd 3rd 4th 5th... 9th 10th 11th 12th... 20th 21st 22nd 23rd 24th... etc. +``` + +So entering a normal number results in its ordinal equivalent: + +``` +1 -> 1st +2 -> 2nd +3 -> 3rd +... +``` diff --git a/exercises/practice/ordinal-number/.meta/config.json b/exercises/practice/ordinal-number/.meta/config.json new file mode 100644 index 00000000..06960540 --- /dev/null +++ b/exercises/practice/ordinal-number/.meta/config.json @@ -0,0 +1,12 @@ +{ + "authors": [], + "files": { + "solution": [], + "test": [], + "example": [ + ".meta/example.php" + ] + }, + "source": "", + "source_url": "https://en.wikipedia.org/wiki/Ordinal_numeral" +} diff --git a/exercises/practice/ordinal-number/.meta/example.php b/exercises/practice/ordinal-number/.meta/example.php new file mode 100644 index 00000000..f1687c96 --- /dev/null +++ b/exercises/practice/ordinal-number/.meta/example.php @@ -0,0 +1,26 @@ +assertEquals('0', OrdinalNumber(0)); + } + + public function testFirst(): void + { + $this->assertEquals('1st', OrdinalNumber(1)); + } + + public function testSecond(): void + { + $this->assertEquals('2nd', OrdinalNumber(2)); + } + + public function testThird(): void + { + $this->assertEquals('3rd', OrdinalNumber(3)); + } + + public function testFourth(): void + { + $this->assertEquals('4th', OrdinalNumber(4)); + } + + public function testThirdOthers(): void + { + $this->assertEquals('10th', OrdinalNumber(10)); + $this->assertEquals('11th', OrdinalNumber(11)); + $this->assertEquals('12th', OrdinalNumber(12)); + $this->assertEquals('13th', OrdinalNumber(13)); + $this->assertEquals('14th', OrdinalNumber(14)); + } +} From aa93d6cdfd97d73c9ec6a4fcecb1a9fb5288fbc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Lo=CC=88sken?= Date: Sat, 20 Mar 2021 20:00:23 +0100 Subject: [PATCH 2/7] Rename test function --- exercises/practice/ordinal-number/OrdinalNumberTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/practice/ordinal-number/OrdinalNumberTest.php b/exercises/practice/ordinal-number/OrdinalNumberTest.php index 4d895fd4..6ae2cc53 100644 --- a/exercises/practice/ordinal-number/OrdinalNumberTest.php +++ b/exercises/practice/ordinal-number/OrdinalNumberTest.php @@ -32,7 +32,7 @@ public function testFourth(): void $this->assertEquals('4th', OrdinalNumber(4)); } - public function testThirdOthers(): void + public function testOthers(): void { $this->assertEquals('10th', OrdinalNumber(10)); $this->assertEquals('11th', OrdinalNumber(11)); From 278d52bd403b5469ed681588393e892f30452290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Lo=CC=88sken?= Date: Sat, 20 Mar 2021 22:58:36 +0100 Subject: [PATCH 3/7] Improve text, add wikipedia link, fix styling for ci --- exercises/practice/ordinal-number/.docs/instructions.md | 4 ++-- exercises/practice/ordinal-number/.meta/example.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/exercises/practice/ordinal-number/.docs/instructions.md b/exercises/practice/ordinal-number/.docs/instructions.md index 212af8b8..0653ca10 100644 --- a/exercises/practice/ordinal-number/.docs/instructions.md +++ b/exercises/practice/ordinal-number/.docs/instructions.md @@ -1,6 +1,6 @@ # Instructions -Write a function to convert normal numbers to ordinal numbers. For zero (0) just return "0" as string. +Write a function to convert normal numbers to [ordinal numbers](https://en.wikipedia.org/wiki/Ordinal_numeral). For zero (0) just return "0" as string. Ordinal number are numbers that describe the position of something in a list. It is this context that ordinal numbers will be used, using an English-spelled name of an ordinal number. @@ -17,5 +17,5 @@ So entering a normal number results in its ordinal equivalent: 1 -> 1st 2 -> 2nd 3 -> 3rd -... +(and so on...) ``` diff --git a/exercises/practice/ordinal-number/.meta/example.php b/exercises/practice/ordinal-number/.meta/example.php index f1687c96..46a8098e 100644 --- a/exercises/practice/ordinal-number/.meta/example.php +++ b/exercises/practice/ordinal-number/.meta/example.php @@ -22,5 +22,5 @@ function ordinalNumber(int $number): string } } - return $number.$ending; + return $number . $ending; } From c33407077545827c4b7d79c2006308dbc6f189f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Lo=CC=88sken?= Date: Sat, 20 Mar 2021 23:17:08 +0100 Subject: [PATCH 4/7] Improve tests, remove skeleton text --- .../practice/ordinal-number/OrdinalNumber.php | 9 ++------- .../ordinal-number/OrdinalNumberTest.php | 20 +++++++++++++++++-- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/exercises/practice/ordinal-number/OrdinalNumber.php b/exercises/practice/ordinal-number/OrdinalNumber.php index a818df28..63101491 100644 --- a/exercises/practice/ordinal-number/OrdinalNumber.php +++ b/exercises/practice/ordinal-number/OrdinalNumber.php @@ -1,13 +1,8 @@ assertEquals('4th', OrdinalNumber(4)); } - public function testOthers(): void + public function testTenth(): void { $this->assertEquals('10th', OrdinalNumber(10)); + } + + public function testEleventh(): void + { $this->assertEquals('11th', OrdinalNumber(11)); + } + + public function testTwelfth(): void + { $this->assertEquals('12th', OrdinalNumber(12)); + } + + public function testThirteenth(): void + { $this->assertEquals('13th', OrdinalNumber(13)); - $this->assertEquals('14th', OrdinalNumber(14)); + } + + public function testRandomNumber(): void + { + $this->assertEquals('62nd', OrdinalNumber(62)); } } From 62c44c5b30177fa76ac196e5901254a1a1bc5781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Lo=CC=88sken?= Date: Sun, 21 Mar 2021 11:10:25 +0100 Subject: [PATCH 5/7] Update author, contributor and solution --- .../practice/ordinal-number/.meta/config.json | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/exercises/practice/ordinal-number/.meta/config.json b/exercises/practice/ordinal-number/.meta/config.json index 06960540..f6379c8e 100644 --- a/exercises/practice/ordinal-number/.meta/config.json +++ b/exercises/practice/ordinal-number/.meta/config.json @@ -1,8 +1,23 @@ { - "authors": [], + "authors": [ + { + "github_username": "codedge", + "exercism_username": "codedge" + } + ], + "contributors": [ + { + "github_username": "neenjaw", + "exercism_username": "neenjaw" + } + ], "files": { - "solution": [], - "test": [], + "solution": [ + "OrdinalNumber.php" + ], + "test": [ + "OrdinalNumberTest.php" + ], "example": [ ".meta/example.php" ] From 97aa9c68f91b3a1ca3335c0d1201f90d8a9143c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Lo=CC=88sken?= Date: Sun, 21 Mar 2021 11:18:42 +0100 Subject: [PATCH 6/7] Add exception for empty function --- exercises/practice/ordinal-number/OrdinalNumber.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/exercises/practice/ordinal-number/OrdinalNumber.php b/exercises/practice/ordinal-number/OrdinalNumber.php index 63101491..84a29d57 100644 --- a/exercises/practice/ordinal-number/OrdinalNumber.php +++ b/exercises/practice/ordinal-number/OrdinalNumber.php @@ -4,7 +4,5 @@ function toOrdinal(int $number): string { - // - // YOUR CODE GOES HERE - // + throw new \BadFunctionCallException("Implement the toOrdinal function"); } From ae24e4e40a15d37aa0eabbbc7b2acfc81eeed522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Lo=CC=88sken?= Date: Sun, 21 Mar 2021 19:06:42 +0100 Subject: [PATCH 7/7] Updated correct method name, removed strict types --- .../practice/ordinal-number/.meta/example.php | 2 +- .../practice/ordinal-number/OrdinalNumber.php | 2 -- .../ordinal-number/OrdinalNumberTest.php | 22 +++++++++---------- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/exercises/practice/ordinal-number/.meta/example.php b/exercises/practice/ordinal-number/.meta/example.php index 46a8098e..5d422e16 100644 --- a/exercises/practice/ordinal-number/.meta/example.php +++ b/exercises/practice/ordinal-number/.meta/example.php @@ -1,6 +1,6 @@ assertEquals('0', OrdinalNumber(0)); + $this->assertEquals('0', toOrdinal(0)); } public function testFirst(): void { - $this->assertEquals('1st', OrdinalNumber(1)); + $this->assertEquals('1st', toOrdinal(1)); } public function testSecond(): void { - $this->assertEquals('2nd', OrdinalNumber(2)); + $this->assertEquals('2nd', toOrdinal(2)); } public function testThird(): void { - $this->assertEquals('3rd', OrdinalNumber(3)); + $this->assertEquals('3rd', toOrdinal(3)); } public function testFourth(): void { - $this->assertEquals('4th', OrdinalNumber(4)); + $this->assertEquals('4th', toOrdinal(4)); } public function testTenth(): void { - $this->assertEquals('10th', OrdinalNumber(10)); + $this->assertEquals('10th', toOrdinal(10)); } public function testEleventh(): void { - $this->assertEquals('11th', OrdinalNumber(11)); + $this->assertEquals('11th', toOrdinal(11)); } public function testTwelfth(): void { - $this->assertEquals('12th', OrdinalNumber(12)); + $this->assertEquals('12th', toOrdinal(12)); } public function testThirteenth(): void { - $this->assertEquals('13th', OrdinalNumber(13)); + $this->assertEquals('13th', toOrdinal(13)); } public function testRandomNumber(): void { - $this->assertEquals('62nd', OrdinalNumber(62)); + $this->assertEquals('62nd', toOrdinal(62)); } }