diff --git a/exercises/FizzBuzz/FizzBuzz.php b/exercises/FizzBuzz/FizzBuzz.php index 2330f97..c9b9bb1 100644 --- a/exercises/FizzBuzz/FizzBuzz.php +++ b/exercises/FizzBuzz/FizzBuzz.php @@ -15,4 +15,20 @@ */ final class FizzBuzz { + public static function print(string $number): void + { + for ($i = 1; $i <= $number; $i++) { + $result = ''; + if ($i % 3 === 0) { + $result .= 'fizz'; + } + if ($i % 5 === 0) { + $result .= 'buzz'; + } + + echo $result ? "{$result}, " :"{$i}, " ; + } + } } + +FizzBuzz::print('15'); diff --git a/exercises/Numbers/Numbers.php b/exercises/Numbers/Numbers.php index 4c16cda..d1d1faa 100644 --- a/exercises/Numbers/Numbers.php +++ b/exercises/Numbers/Numbers.php @@ -10,4 +10,14 @@ */ final class Numbers { + public static function add(int $n): int + { + $sum = 0; + for($i=1; $i<=$n; $i++){ + $sum += $i; + } + return $sum; + } } + +var_dump(Numbers::add(3)); diff --git a/exercises/Reverse/Reverse.php b/exercises/Reverse/Reverse.php index 5ab3952..ef9e53e 100644 --- a/exercises/Reverse/Reverse.php +++ b/exercises/Reverse/Reverse.php @@ -19,4 +19,31 @@ */ final class Reverse { + public static function int(int $n): int + { + $castToString = (string) $n; + $lengthOfNumber = strlen($castToString); + $reversedString = ''; + for($i = 0; $i < $lengthOfNumber; $i++){ + $reversedString .= $castToString[$lengthOfNumber - $i -1]; + } + + if($n < 0){ + return (int) $reversedString * -1; + } + return (int)$reversedString; + } + + public static function string(string $string): string + { + $lengthOfNumber = strlen($string); + $reversedString = ''; + for($i = 0; $i < $lengthOfNumber; $i++){ + $reversedString .= $string[$lengthOfNumber - $i -1]; + } + return $reversedString; + } } + +// var_dump(Reverse::int(-12)); +// var_dump(Reverse::string('mehdi')); \ No newline at end of file diff --git a/tests/Reverse/ReverseTest.php b/tests/Reverse/ReverseTest.php index 3b96d2f..93b45b5 100644 --- a/tests/Reverse/ReverseTest.php +++ b/tests/Reverse/ReverseTest.php @@ -12,7 +12,6 @@ final class ReverseTest extends TestCase { public function testHasMethods(): void { - self::markTestSkipped(); self::assertTrue( method_exists(Reverse::class, 'int'), 'Class does not have static method int' @@ -25,43 +24,36 @@ public function testHasMethods(): void public function testCanReverseInt(): void { - self::markTestSkipped(); self::assertSame(21, Reverse::int(12)); } public function testCanReverseIntWithThreeDigits(): void { - self::markTestSkipped(); self::assertSame(321, Reverse::int(123)); } public function testCanReverseIntZeros(): void { - self::markTestSkipped(); self::assertSame(3, Reverse::int(300)); } public function testCanReverseNegativeInt(): void { - self::markTestSkipped(); self::assertSame(-21, Reverse::int(-12)); } public function testCanReverseNegativeIntWithZeros(): void { - self::markTestSkipped(); self::assertSame(-21, Reverse::int(-120)); } public function testCanReverseString(): void { - self::markTestSkipped(); self::assertSame('ytrewq', Reverse::string('qwerty')); } public function testCanReverseStringWithWhitespace(): void { - self::markTestSkipped(); self::assertSame('ytr ewq ', Reverse::string(' qwe rty')); } }