From 617e49a4eec4fabc406d378119b9d4c585ac3e30 Mon Sep 17 00:00:00 2001 From: Nikolas Banspach Date: Wed, 15 Jan 2025 11:59:09 +0100 Subject: [PATCH 1/4] Roman Numbers converter exercise --- .../Converter/RomanNumbersConverter.php | 13 +++++ .../Business/RomanNumbersBusinessFactory.php | 19 +++++++ .../Business/RomanNumbersFacade.php | 25 ++++++++++ .../Business/RomanNumbersFacadeInterface.php | 10 ++++ .../Zed/RomanNumbers/RomanNumbersConfig.php | 11 ++++ .../RomanNumbersDependencyProvider.php | 50 +++++++++++++++++++ .../Business/RomanNumbersFacadeTest.php | 49 ++++++++++++++++++ .../_support/RomanNumbersBusinessTester.php | 29 +++++++++++ .../PyzTest/Zed/RomanNumbers/codeception.yml | 23 +++++++++ tests/RomanNumbers.suite.yml | 5 ++ 10 files changed, 234 insertions(+) create mode 100644 src/Pyz/Zed/RomanNumbers/Business/Converter/RomanNumbersConverter.php create mode 100644 src/Pyz/Zed/RomanNumbers/Business/RomanNumbersBusinessFactory.php create mode 100644 src/Pyz/Zed/RomanNumbers/Business/RomanNumbersFacade.php create mode 100644 src/Pyz/Zed/RomanNumbers/Business/RomanNumbersFacadeInterface.php create mode 100644 src/Pyz/Zed/RomanNumbers/RomanNumbersConfig.php create mode 100644 src/Pyz/Zed/RomanNumbers/RomanNumbersDependencyProvider.php create mode 100644 tests/PyzTest/Zed/RomanNumbers/Business/RomanNumbersFacadeTest.php create mode 100644 tests/PyzTest/Zed/RomanNumbers/_support/RomanNumbersBusinessTester.php create mode 100644 tests/PyzTest/Zed/RomanNumbers/codeception.yml create mode 100644 tests/RomanNumbers.suite.yml diff --git a/src/Pyz/Zed/RomanNumbers/Business/Converter/RomanNumbersConverter.php b/src/Pyz/Zed/RomanNumbers/Business/Converter/RomanNumbersConverter.php new file mode 100644 index 0000000000..0667bb5754 --- /dev/null +++ b/src/Pyz/Zed/RomanNumbers/Business/Converter/RomanNumbersConverter.php @@ -0,0 +1,13 @@ +getFactory()->createRomanNumbersConverter()->convert($romanNumber); + } +} diff --git a/src/Pyz/Zed/RomanNumbers/Business/RomanNumbersFacadeInterface.php b/src/Pyz/Zed/RomanNumbers/Business/RomanNumbersFacadeInterface.php new file mode 100644 index 0000000000..6c309441ba --- /dev/null +++ b/src/Pyz/Zed/RomanNumbers/Business/RomanNumbersFacadeInterface.php @@ -0,0 +1,10 @@ +tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + + public function testConversionOfRomanNumberToIntegerTwo(): void + { + // Arrange + $romanNumber = 'II'; + $expectedInteger = 2; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } +} diff --git a/tests/PyzTest/Zed/RomanNumbers/_support/RomanNumbersBusinessTester.php b/tests/PyzTest/Zed/RomanNumbers/_support/RomanNumbersBusinessTester.php new file mode 100644 index 0000000000..200b894b8b --- /dev/null +++ b/tests/PyzTest/Zed/RomanNumbers/_support/RomanNumbersBusinessTester.php @@ -0,0 +1,29 @@ + Date: Wed, 15 Jan 2025 16:29:07 +0100 Subject: [PATCH 2/4] Logik implementiert --- .../Converter/RomanNumbersConverter.php | 28 ++- .../Business/RomanNumbersFacadeTest.php | 234 ++++++++++++++++++ 2 files changed, 260 insertions(+), 2 deletions(-) diff --git a/src/Pyz/Zed/RomanNumbers/Business/Converter/RomanNumbersConverter.php b/src/Pyz/Zed/RomanNumbers/Business/Converter/RomanNumbersConverter.php index 0667bb5754..23ec5af31b 100644 --- a/src/Pyz/Zed/RomanNumbers/Business/Converter/RomanNumbersConverter.php +++ b/src/Pyz/Zed/RomanNumbers/Business/Converter/RomanNumbersConverter.php @@ -4,10 +4,34 @@ class RomanNumbersConverter { + const array numbers = [ +"I" => 1, +"V" => 5, +"X" => 10, +"L" => 50, +"C" => 100, +"D" => 500, +"M" => 1000, +]; public function convert(string $romanNumbers): int { - $result = 1; - // TODO: add logic to convert roman numbers to integer + + $romanNumbers = str_replace("IV","IIII",$romanNumbers); + $romanNumbers = str_replace("IX","VIIII",$romanNumbers); + $romanNumbers = str_replace("XL","XXXX",$romanNumbers); + $romanNumbers = str_replace("XC","LXXXX",$romanNumbers); + $romanNumbers = str_replace("CD","CCCC",$romanNumbers); + $romanNumbers = str_replace("CM","DCCCC",$romanNumbers); + $romanNumbers = str_replace("XD","CCCCLXXXX",$romanNumbers); + + $result = 0; + $result += substr_count($romanNumbers, 'I'); + $result += substr_count($romanNumbers, 'V')*5; + $result += substr_count($romanNumbers, 'X')*10; + $result += substr_count($romanNumbers, 'L')*50; + $result += substr_count($romanNumbers, 'C')*100; + $result += substr_count($romanNumbers, 'D')*500; + $result += substr_count($romanNumbers, 'M')*1000; return $result; } } diff --git a/tests/PyzTest/Zed/RomanNumbers/Business/RomanNumbersFacadeTest.php b/tests/PyzTest/Zed/RomanNumbers/Business/RomanNumbersFacadeTest.php index 17e7bd3276..59c8dc6e28 100644 --- a/tests/PyzTest/Zed/RomanNumbers/Business/RomanNumbersFacadeTest.php +++ b/tests/PyzTest/Zed/RomanNumbers/Business/RomanNumbersFacadeTest.php @@ -21,6 +21,19 @@ class RomanNumbersFacadeTest extends Unit */ protected $tester; + public function testConversionOfRomanNumberToIntegerSpaces(): void + { + // Arrange + $romanNumber = ' M C III '; + $expectedInteger = 1103; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerOne(): void { // Arrange @@ -46,4 +59,225 @@ public function testConversionOfRomanNumberToIntegerTwo(): void // Assert $this->assertSame($expectedInteger, $result); } + + public function testConversionOfRomanNumberToIntegerThree(): void + { + // Arrange + $romanNumber = 'III'; + $expectedInteger = 3; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + + public function testConversionOfRomanNumberToIntegerFive(): void + { + // Arrange + $romanNumber = 'V'; + $expectedInteger = 5; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + + public function testConversionOfRomanNumberToIntegerSix(): void + { + // Arrange + $romanNumber = 'VI'; + $expectedInteger = 6; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + + public function testConversionOfRomanNumberToIntegerFour(): void + { + // Arrange + $romanNumber = 'IV'; + $expectedInteger = 4; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + + public function testConversionOfRomanNumberToIntegerTen(): void + { + // Arrange + $romanNumber = 'X'; + $expectedInteger = 10; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerNine(): void +{ + // Arrange + $romanNumber = 'IX'; + $expectedInteger = 9; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); +} + public function testConversionOfRomanNumberToIntegerFifty(): void + { + // Arrange + $romanNumber = 'L'; + $expectedInteger = 50; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerFourthy(): void + { + // Arrange + $romanNumber = 'XL'; + $expectedInteger = 40; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerHundred(): void + { + // Arrange + $romanNumber = 'C'; + $expectedInteger = 100; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerNinty(): void + { + // Arrange + $romanNumber = 'XC'; + $expectedInteger = 90; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerFivehundred(): void + { + // Arrange + $romanNumber = 'D'; + $expectedInteger = 500; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerFourhundredNinty(): void + { + // Arrange + $romanNumber = 'XD'; + $expectedInteger = 490; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerTausend(): void + { + // Arrange + $romanNumber = 'M'; + $expectedInteger = 1000; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerNinehundredNinty(): void + { + // Arrange + $romanNumber = 'CMXC'; + $expectedInteger = 990; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerThreetausendNintynine(): void + { + // Arrange + $romanNumber = 'MMMCMXCIX'; + $expectedInteger = 3999; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerTwotausendfourhundredfourthy(): void + { + // Arrange + $romanNumber = 'MMCDXL'; + $expectedInteger = 2440; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerFourhundred(): void + { + // Arrange + $romanNumber = 'CD'; + $expectedInteger = 400; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerNinehundred(): void + { + // Arrange + $romanNumber = 'CM'; + $expectedInteger = 900; + + // Act + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + + // Assert + $this->assertSame($expectedInteger, $result); + } } From 8017d8e8869baccdb5e6b0a70ba1f98cccf74c9d Mon Sep 17 00:00:00 2001 From: Nikolas Banspach Date: Fri, 17 Jan 2025 11:31:36 +0100 Subject: [PATCH 3/4] Roman Numbers converter exercise - Adds exceptions --- .../Exception/NotARomanNumberException.php | 10 ++++++++ .../Business/RomanNumbersFacadeTest.php | 25 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/Pyz/Zed/RomanNumbers/Business/Exception/NotARomanNumberException.php diff --git a/src/Pyz/Zed/RomanNumbers/Business/Exception/NotARomanNumberException.php b/src/Pyz/Zed/RomanNumbers/Business/Exception/NotARomanNumberException.php new file mode 100644 index 0000000000..0c8c48ff0f --- /dev/null +++ b/src/Pyz/Zed/RomanNumbers/Business/Exception/NotARomanNumberException.php @@ -0,0 +1,10 @@ +assertSame($expectedInteger, $result); } + + public function testConversionOfRomanNumberToIntegerThrowsNotARomanNumberExceptioWithIllegalCharacters(): void + { + // Arrange + $illegalString = 'KR0815'; + $expectedException = NotARomanNumberException::class; + + // Act & Assert + $this->tester->expectThrowable($expectedException, function () use ($illegalString) { + $this->tester->getFacade()->convertRomanToInteger($illegalString); + }); + } + + public function testConversionOfRomanNumberToIntegerThrowsNotARomanNumberExceptionWithEmptyString(): void + { + // Arrange + $emptyString = ''; + $expectedException = NotARomanNumberException::class; + + // Act & Assert + $this->tester->expectThrowable($expectedException, function () use ($emptyString) { + $this->tester->getFacade()->convertRomanToInteger($emptyString); + }); + } } From d4449b3850b5900990033e3f0df331eb13de8860 Mon Sep 17 00:00:00 2001 From: ordukaya-uemit Date: Thu, 30 Jan 2025 12:40:30 +0100 Subject: [PATCH 4/4] =?UTF-8?q?Modul=20f=C3=BCr=20Schaltjahre=20Eingabe=20?= =?UTF-8?q?Validierung=20f=C3=BCr=20R=C3=B6mische=20zahlen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Business/Checker/LeapYearChecker.php | 18 +++ .../Business/LeapYearBusinessFactory.php | 24 +++ .../Zed/LeapYear/Business/LeapYearFacade.php | 30 ++++ .../Business/LeapYearFacadeInterface.php | 15 ++ src/Pyz/Zed/LeapYear/LeapYearConfig.php | 16 ++ .../LeapYear/LeapYearDependencyProvider.php | 16 ++ .../Converter/RomanNumbersConverter.php | 84 ++++++++--- .../Exception/NotARomanNumberException.php | 6 + .../Business/RomanNumbersBusinessFactory.php | 5 + .../Business/RomanNumbersFacade.php | 6 + .../Business/RomanNumbersFacadeInterface.php | 5 + .../Zed/RomanNumbers/RomanNumbersConfig.php | 5 + .../RomanNumbersDependencyProvider.php | 5 + .../LeapYear/Business/LeapYearFacadeTest.php | 140 ++++++++++++++++++ .../_support/LeapYearBusinessTester.php | 37 +++++ tests/PyzTest/Zed/LeapYear/codeception.yml | 23 +++ .../Business/RomanNumbersFacadeTest.php | 51 ++++--- .../_support/RomanNumbersBusinessTester.php | 14 +- tests/_support/RomanNumbersTester.php | 37 +++++ 19 files changed, 491 insertions(+), 46 deletions(-) create mode 100644 src/Pyz/Zed/LeapYear/Business/Checker/LeapYearChecker.php create mode 100644 src/Pyz/Zed/LeapYear/Business/LeapYearBusinessFactory.php create mode 100644 src/Pyz/Zed/LeapYear/Business/LeapYearFacade.php create mode 100644 src/Pyz/Zed/LeapYear/Business/LeapYearFacadeInterface.php create mode 100644 src/Pyz/Zed/LeapYear/LeapYearConfig.php create mode 100644 src/Pyz/Zed/LeapYear/LeapYearDependencyProvider.php create mode 100644 tests/PyzTest/Zed/LeapYear/Business/LeapYearFacadeTest.php create mode 100644 tests/PyzTest/Zed/LeapYear/_support/LeapYearBusinessTester.php create mode 100644 tests/PyzTest/Zed/LeapYear/codeception.yml create mode 100644 tests/_support/RomanNumbersTester.php diff --git a/src/Pyz/Zed/LeapYear/Business/Checker/LeapYearChecker.php b/src/Pyz/Zed/LeapYear/Business/Checker/LeapYearChecker.php new file mode 100644 index 0000000000..23d9093367 --- /dev/null +++ b/src/Pyz/Zed/LeapYear/Business/Checker/LeapYearChecker.php @@ -0,0 +1,18 @@ +getFactory()->createLeapYearChecker()->checkLeapYear($year); + } +} diff --git a/src/Pyz/Zed/LeapYear/Business/LeapYearFacadeInterface.php b/src/Pyz/Zed/LeapYear/Business/LeapYearFacadeInterface.php new file mode 100644 index 0000000000..20cfba4c7b --- /dev/null +++ b/src/Pyz/Zed/LeapYear/Business/LeapYearFacadeInterface.php @@ -0,0 +1,15 @@ + 1, -"V" => 5, -"X" => 10, -"L" => 50, -"C" => 100, -"D" => 500, -"M" => 1000, -]; + private const NUMBERS = [ + 'I' => 1, + 'V' => 5, + 'X' => 10, + 'L' => 50, + 'C' => 100, + 'D' => 500, + 'M' => 1000, + ]; + + /** + * @param string $romanNumbers + * @return int + * @throws NotARomanNumberException + */ public function convert(string $romanNumbers): int { + if (!$this->isValidRomanNumber($romanNumbers)) { + throw new NotARomanNumberException($romanNumbers); + } - $romanNumbers = str_replace("IV","IIII",$romanNumbers); - $romanNumbers = str_replace("IX","VIIII",$romanNumbers); - $romanNumbers = str_replace("XL","XXXX",$romanNumbers); - $romanNumbers = str_replace("XC","LXXXX",$romanNumbers); - $romanNumbers = str_replace("CD","CCCC",$romanNumbers); - $romanNumbers = str_replace("CM","DCCCC",$romanNumbers); - $romanNumbers = str_replace("XD","CCCCLXXXX",$romanNumbers); + $romanNumbers = str_replace('IV', 'IIII', $romanNumbers); + $romanNumbers = str_replace('IX', 'VIIII', $romanNumbers); + $romanNumbers = str_replace('XL', 'XXXX', $romanNumbers); + $romanNumbers = str_replace('XC', 'LXXXX', $romanNumbers); + $romanNumbers = str_replace('CD', 'CCCC', $romanNumbers); + $romanNumbers = str_replace('CM', 'DCCCC', $romanNumbers); + $romanNumbers = str_replace('XD', 'CCCCLXXXX', $romanNumbers); $result = 0; $result += substr_count($romanNumbers, 'I'); - $result += substr_count($romanNumbers, 'V')*5; - $result += substr_count($romanNumbers, 'X')*10; - $result += substr_count($romanNumbers, 'L')*50; - $result += substr_count($romanNumbers, 'C')*100; - $result += substr_count($romanNumbers, 'D')*500; - $result += substr_count($romanNumbers, 'M')*1000; + $result += substr_count($romanNumbers, 'V') * 5; + $result += substr_count($romanNumbers, 'X') * 10; + $result += substr_count($romanNumbers, 'L') * 50; + $result += substr_count($romanNumbers, 'C') * 100; + $result += substr_count($romanNumbers, 'D') * 500; + $result += substr_count($romanNumbers, 'M') * 1000; + return $result; } + + /** + * @param string $romanNumbers + * @return bool + */ + private function isValidRomanNumber(string $romanNumbers): bool + { + if (empty($romanNumbers)) { + return false; + } + $split_romanNumbers = str_split($romanNumbers); + foreach ($split_romanNumbers as $romanNumber) { + $validcharacters = ["I", "V", "X", "L", "C", "D", "M"]; + if (!in_array($romanNumber, $validcharacters)) { + return false; + } + } + return true; + } } + + diff --git a/src/Pyz/Zed/RomanNumbers/Business/Exception/NotARomanNumberException.php b/src/Pyz/Zed/RomanNumbers/Business/Exception/NotARomanNumberException.php index 0c8c48ff0f..6f231d5499 100644 --- a/src/Pyz/Zed/RomanNumbers/Business/Exception/NotARomanNumberException.php +++ b/src/Pyz/Zed/RomanNumbers/Business/Exception/NotARomanNumberException.php @@ -1,4 +1,10 @@ tester->getFacade()->checkLeapYear($year); + + // Assert + $this->assertTrue($result); + } + + public function testTwothousendTwentyFourIsLeapYear(): void + { + // Arrange + $year = 2024; + + // Act + $result = $this->tester->getFacade()->checkLeapYear($year); + + // Assert + $this->assertTrue($result); + } + + public function testTwothousandTwentyThreeIsLeapYear(): void + { + // Arrange + $year = 2023; + + // Act + $result = $this->tester->getFacade()->checkLeapYear($year); + + // Assert + $this->assertFalse($result); + } + + public function testOnethousandNineHundredIsLeapYear(): void + { + // Arrange + $year = 1900; + + // Act + $result = $this->tester->getFacade()->checkLeapYear($year); + + // Assert + $this->assertFalse($result); + } + + public function testFourHundredIsLeapYear(): void + { + // Arrange + $year = 400; + + // Act + $result = $this->tester->getFacade()->checkLeapYear($year); + + // Assert + $this->assertTrue($result); + } + + public function testEightHundredIsLeapYear(): void + { + // Arrange + $year = 800; + + // Act + $result = $this->tester->getFacade()->checkLeapYear($year); + + // Assert + $this->assertTrue($result); + } + + public function testZeroIsLeapYear(): void + { + // Arrange + $year = 0; + + // Act + $result = $this->tester->getFacade()->checkLeapYear($year); + + // Assert + $this->assertFalse($result); + } + + public function testFourIsLeapYear(): void + { + // Arrange + $year = 4; + + // Act + $result = $this->tester->getFacade()->checkLeapYear($year); + + // Assert + $this->assertTrue($result); + } + + public function testOneHundredIsLeapYear(): void + { + // Arrange + $year = 100; + + // Act + $result = $this->tester->getFacade()->checkLeapYear($year); + + // Assert + $this->assertFalse($result); + } +} +//todo Testcases hinzufügen diff --git a/tests/PyzTest/Zed/LeapYear/_support/LeapYearBusinessTester.php b/tests/PyzTest/Zed/LeapYear/_support/LeapYearBusinessTester.php new file mode 100644 index 0000000000..4cac21fd88 --- /dev/null +++ b/tests/PyzTest/Zed/LeapYear/_support/LeapYearBusinessTester.php @@ -0,0 +1,37 @@ +tester->getFacade()->convertRomanToInteger($romanNumber); - - // Assert - $this->assertSame($expectedInteger, $result); - } public function testConversionOfRomanNumberToIntegerOne(): void { @@ -125,18 +121,20 @@ public function testConversionOfRomanNumberToIntegerTen(): void // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerNine(): void -{ + { // Arrange - $romanNumber = 'IX'; - $expectedInteger = 9; + $romanNumber = 'IX'; + $expectedInteger = 9; // Act - $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); + $result = $this->tester->getFacade()->convertRomanToInteger($romanNumber); // Assert - $this->assertSame($expectedInteger, $result); -} + $this->assertSame($expectedInteger, $result); + } + public function testConversionOfRomanNumberToIntegerFifty(): void { // Arrange @@ -149,6 +147,7 @@ public function testConversionOfRomanNumberToIntegerFifty(): void // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerFourthy(): void { // Arrange @@ -161,6 +160,7 @@ public function testConversionOfRomanNumberToIntegerFourthy(): void // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerHundred(): void { // Arrange @@ -173,6 +173,7 @@ public function testConversionOfRomanNumberToIntegerHundred(): void // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerNinty(): void { // Arrange @@ -185,6 +186,7 @@ public function testConversionOfRomanNumberToIntegerNinty(): void // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerFivehundred(): void { // Arrange @@ -197,6 +199,7 @@ public function testConversionOfRomanNumberToIntegerFivehundred(): void // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerFourhundredNinty(): void { // Arrange @@ -209,6 +212,7 @@ public function testConversionOfRomanNumberToIntegerFourhundredNinty(): void // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerTausend(): void { // Arrange @@ -221,6 +225,7 @@ public function testConversionOfRomanNumberToIntegerTausend(): void // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerNinehundredNinty(): void { // Arrange @@ -233,6 +238,7 @@ public function testConversionOfRomanNumberToIntegerNinehundredNinty(): void // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerThreetausendNintynine(): void { // Arrange @@ -245,6 +251,7 @@ public function testConversionOfRomanNumberToIntegerThreetausendNintynine(): voi // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerTwotausendfourhundredfourthy(): void { // Arrange @@ -257,6 +264,7 @@ public function testConversionOfRomanNumberToIntegerTwotausendfourhundredfourthy // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerFourhundred(): void { // Arrange @@ -269,6 +277,7 @@ public function testConversionOfRomanNumberToIntegerFourhundred(): void // Assert $this->assertSame($expectedInteger, $result); } + public function testConversionOfRomanNumberToIntegerNinehundred(): void { // Arrange @@ -289,7 +298,7 @@ public function testConversionOfRomanNumberToIntegerThrowsNotARomanNumberExcepti $expectedException = NotARomanNumberException::class; // Act & Assert - $this->tester->expectThrowable($expectedException, function () use ($illegalString) { + $this->tester->expectThrowable($expectedException, function () use ($illegalString): void { $this->tester->getFacade()->convertRomanToInteger($illegalString); }); } @@ -301,7 +310,7 @@ public function testConversionOfRomanNumberToIntegerThrowsNotARomanNumberExcepti $expectedException = NotARomanNumberException::class; // Act & Assert - $this->tester->expectThrowable($expectedException, function () use ($emptyString) { + $this->tester->expectThrowable($expectedException, function () use ($emptyString): void { $this->tester->getFacade()->convertRomanToInteger($emptyString); }); } diff --git a/tests/PyzTest/Zed/RomanNumbers/_support/RomanNumbersBusinessTester.php b/tests/PyzTest/Zed/RomanNumbers/_support/RomanNumbersBusinessTester.php index 200b894b8b..ab1661e4c0 100644 --- a/tests/PyzTest/Zed/RomanNumbers/_support/RomanNumbersBusinessTester.php +++ b/tests/PyzTest/Zed/RomanNumbers/_support/RomanNumbersBusinessTester.php @@ -1,11 +1,19 @@