Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finalized FooBarQixExtended task #27

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.idea
vendor
composer.lock
1 change: 1 addition & 0 deletions .phpunit.result.cache
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"version":1,"defects":[],"times":{"Tests\\ServiceFooBarQixTest::testMultipleOfThreeShouldReturnFoo":0.308,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveShouldReturnBar":0.013,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndFiveShouldReturnFooBar":0.019,"Tests\\ServiceFooBarQixTest::testMultipleShouldReturnNumber":0.017,"Tests\\ServiceFooBarQixTest::testMultipleOfSevenShouldReturnQix":0.017,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndSevenShouldReturnFooQix":0.02,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveAndSevenShouldReturnBarQix":0.02,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeFiveAndSevenShouldReturnFooBarQix":0.014,"Tests\\ServiceFooBarQixTest::testNumberContainsThreeShouldReturnFoo":0.013,"Tests\\ServiceFooBarQixTest::testNumberContainsFiveShouldReturnBar":0.013,"Tests\\ServiceFooBarQixTest::testNumberContainsSevenShouldReturnQix":0.015,"Tests\\ServiceFooBarQixTest::testNumberContainsThreeAndFiveShouldReturnFooBar":0.018,"Tests\\ServiceFooBarQixTest::testNumberContainsThreeAndSevenShouldReturnFooQix":0.017,"Tests\\ServiceFooBarQixTest::testNumberContainsFiveAndSevenShouldReturnBarQix":0.017,"Tests\\ServiceFooBarQixTest::testNumberContainsThreeFiveAndSevenShouldReturnFooBarQix":0.022,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeContainsTreeShouldReturnFooAppendFoo":0.018,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeContainsFiveShouldReturnFooAppendBar":0.013,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeContainsSevenShouldReturnFooAppendQix":0.015,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeContainsTreeAndFiveShouldReturnFooAppendFooBar":0.009,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeContainsThreeAndSevenShouldReturnFooAppendFooQix":0.012,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeContainsFiveAndSevenShouldReturnFooAppendBarQix":0.018,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeContainsThreeFiveAndSevenShouldReturnFooAppendFooBarQix":0.017,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveContainsThreeShouldReturnBarAppendFoo":0.013,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveContainsFiveShouldReturnBarAppendBar":0.009,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveContainsSevenShouldReturnBarAppendQix":0.011,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveContainsThreeAndFiveShouldReturnBarAppendFooBar":0.014,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveContainsThreeAndSevenShouldReturnBarAppendFooQix":0.011,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveContainsFiveAndSevenShouldReturnBarAppendBarQix":0.012,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveContainsThreeFiveAndSevenShouldReturnBarAppendFooBarQix":0.013,"Tests\\ServiceFooBarQixTest::testMultipleOfSevenContainsThreeShouldReturnQixAppendFoo":0.014,"Tests\\ServiceFooBarQixTest::testMultipleOfSevenContainsFiveShouldReturnQixAppendBar":0.016,"Tests\\ServiceFooBarQixTest::testMultipleOfSevenContainsSevenShouldReturnQixAppendQix":0.015,"Tests\\ServiceFooBarQixTest::testMultipleOfSevenContainsThreeAndFiveShouldReturnQixAppendFooBar":0.015,"Tests\\ServiceFooBarQixTest::testMultipleOfSevenContainsThreeAndSevenShouldReturnQixAppendFooQix":0.013,"Tests\\ServiceFooBarQixTest::testMultipleOfSevenContainsFiveAndSevenShouldReturnQixAppendBarQix":0.011,"Tests\\ServiceFooBarQixTest::testMultipleOfSevenContainsThreeFiveAndSevenShouldReturnQixAppendFooBarQix":0.021,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndFiveContainsThreeShouldReturnFooBarAppendFoo":0.008,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndSevenContainsThreeShouldReturnFooQixAppendFoo":0.014,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveAndSevenContainsThreeShouldReturnBarQixAppendFoo":0.01,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeFiveAndSevenContainsThreeShouldReturnFooBarQixAppendFoo":0.008,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndFiveContainsFiveShouldReturnFooBarAppendBar":0.011,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndSevenContainsFiveShouldReturnFooQixAppendBar":0.01,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveAndSevenContainsFiveShouldReturnBarQixAppendBar":0.028,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeFiveAndSevenContainsFiveShouldReturnFooBarQixAppendBar":0.008,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndFiveContainsSevenShouldReturnFooBarAppendQix":0.015,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndSevenContainsSevenShouldReturnFooQixAppendQix":0.009,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveAndSevenContainsSevenShouldReturnBarQixAppendQix":0.013,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeFiveAndSevenContainsSevenShouldReturnFooBarQixAppendQix":0.012,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndFiveContainsTreeAndFiveShouldReturnFooBarAppendFooBar":0.017,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndFiveContainsThreeAndSevenShouldReturnFooBarAppendFooQix":0.016,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndFiveContainsFiveAndSevenShouldReturnFooBarAppendBarQix":0.013,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndFiveContainsTreeFiveAndSevenShouldReturnFooBarAppendFooBarQix":0.01,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndSevenContainsThreeAndFiveShouldReturnFooQixAppendFooBar":0.018,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndSevenContainsThreeAndSevenShouldReturnFooQixAppendFooQix":0.015,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndSevenContainsFiveAndSevenShouldReturnFooQixAppendBarQix":0.014,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeAndSevenContainsThreeFiveAndSevenShouldReturnFooQixAppendFooBarQix":0.012,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveAndSevenContainsThreeAndFiveShouldReturnBarQixAppendFooBar":0.01,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveAndSevenContainsThreeAndSevenShouldReturnBarQixAppendFooQix":0.009,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveAndSevenContainsFiveAndSevenShouldReturnBarQixAppendBarQix":0.014,"Tests\\ServiceFooBarQixTest::testMultipleOfFiveAndSevenContainsThreeFiveAndSevenShouldReturnBarQixAppendFooBarQix":0.026,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeFiveAndSevenContainsThreeAndFiveShouldReturnFooBarQixAppendFooBar":0.017,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeFiveAndSevenContainsThreeAndSevenShouldReturnFooBarQixAppendFooQix":0.013,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeFiveAndSevenContainsFiveAndSevenShouldReturnFooBarQixAppendBarQix":0.018,"Tests\\ServiceFooBarQixTest::testMultipleOfThreeFiveAndSevenContainsThreeFiveAndSevenShouldReturnFooBarQixAppendFooBarQix":0.015,"Tests\\ServiceInfQixFooTest::testMultipleOfEightShouldReturnInf":0.296,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenShouldReturnQix":0.012,"Tests\\ServiceInfQixFooTest::testMultipleOfThreeShouldReturnFoo":0.014,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndSevenShouldReturnInfQix":0.018,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndThreeShouldReturnInfFoo":0.013,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenAndThreeShouldReturnQixFoo":0.016,"Tests\\ServiceInfQixFooTest::testMultipleOfEightSevenAndThreeShouldReturnInfQixFoo":0.012,"Tests\\ServiceInfQixFooTest::testMultipleShouldReturnNumber":0.012,"Tests\\ServiceInfQixFooTest::testNumberContainsEightShouldReturnInf":0.013,"Tests\\ServiceInfQixFooTest::testNumberContainsSevenShouldReturnQix":0.011,"Tests\\ServiceInfQixFooTest::testNumberContainsThreeShouldReturnFoo":0.012,"Tests\\ServiceInfQixFooTest::testNumberContainsEightAndSevenShouldReturnInfQix":0.013,"Tests\\ServiceInfQixFooTest::testNumberContainsEightAndThreeShouldReturnInfFoo":0.011,"Tests\\ServiceInfQixFooTest::testNumberContainsSevenAndThreeShouldReturnQixFoo":0.012,"Tests\\ServiceInfQixFooTest::testNumberContainsThreeEightAndSevenShouldReturnFooInfQix":0.016,"Tests\\ServiceInfQixFooTest::testMultipleOfEightContainsThreeShouldReturnInfAppendFoo":0.01,"Tests\\ServiceInfQixFooTest::testMultipleOfEightContainsSevenShouldReturnInfAppendQix":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfEightContainsEightShouldReturnInfAppendInf":0.015,"Tests\\ServiceInfQixFooTest::testMultipleOfEightContainsEightAndSevenShouldReturnInfAppendInfQix":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfEightContainsEightAndThreeShouldReturnInfAppendInfFoo":0.019,"Tests\\ServiceInfQixFooTest::testMultipleOfEightContainsSevenAndThreeShouldReturnInfAppendQixFoo":0.014,"Tests\\ServiceInfQixFooTest::testMultipleOfEightContainsEightSevenAndThreeShouldReturnInfAppendInfQixFoo":0.023,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenContainsEightShouldReturnQixAppendInf":0.014,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenContainsSevenShouldReturnQixAppendQix":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenContainsThreeShouldReturnQixAppendFoo":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenContainsEightAndSevenShouldReturnQixAppendInfQix":0.01,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenContainsEightAndThreeShouldReturnQixAppendFooInf":0.012,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenContainsSevenAndThreeShouldReturnQixAppendQixFoo":0.012,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenContainsThreeEightAndSevenShouldReturnQixAppendInfQixFoo":0.017,"Tests\\ServiceInfQixFooTest::testMultipleOfThreeContainsEightShouldReturnFooAppendInf":0.012,"Tests\\ServiceInfQixFooTest::testMultipleOfThreeContainsSevenShouldReturnFooAppendQix":0.015,"Tests\\ServiceInfQixFooTest::testMultipleOfThreeContainsTreeShouldReturnFooAppendFoo":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfThreeContainsEightAndSevenShouldReturnFooAppendInfQix":0.014,"Tests\\ServiceInfQixFooTest::testMultipleOfThreeContainsEightAndTreeShouldReturnFooAppendInfFoo":0.014,"Tests\\ServiceInfQixFooTest::testMultipleOfThreeContainsSevenAndThreeShouldReturnFooAppendQixFoo":0.014,"Tests\\ServiceInfQixFooTest::testMultipleOfThreeContainsEightSevenAndThreeShouldReturnFooAppendInfQixFoo":0.019,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndSevenContainsEightShouldReturnInfQixAppendInf":0.015,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndThreeContainsEightShouldReturnInfFooAppendInf":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenAndThreeContainsEightShouldReturnQixFooAppendInf":0.009,"Tests\\ServiceInfQixFooTest::testMultipleOfEightSevenAndThreeContainsEightShouldReturnInfQixFooAppendInf":0.01,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndSevenContainsSevenShouldReturnInfQixAppendQix":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndThreeContainsSevenShouldReturnInfFooAppendQix":0.019,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenAndThreeContainsSevenShouldReturnQixFooAppendQix":0.012,"Tests\\ServiceInfQixFooTest::testMultipleOfEightSevenAndThreeContainsSevenShouldReturnInfQixFooAppendQix":0.01,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndSevenContainsThreeShouldReturnInfQixAppendFoo":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndThreeContainsThreeShouldReturnInfFooAppendFoo":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenAndThreeContainsThreeShouldReturnQixFooAppendFoo":0.012,"Tests\\ServiceInfQixFooTest::testMultipleOfEightSevenAndThreeContainsThreeShouldReturnInfQixFooAppendFoo":0.01,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndSevenContainsEightAndSevenShouldReturnInfQixAppendInfQix":0.009,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndSevenContainsEightAndThreeShouldReturnInfQixAppendInfFoo":0.016,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndSevenContainsSevenAndThreeShouldReturnInfQixAppendQixFoo":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndSevenContainsEightSevenAndThreeShouldReturnInfQixAppendInfQixFoo":0.01,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndThreeContainsEightAndSevenShouldReturnInfFooAppendInfQix":0.009,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndThreeContainsEightAndThreeShouldReturnInfFooAppendInfFoo":0.011,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndThreeContainsSevenAndThreeShouldReturnInfFooAppendQixFoo":0.016,"Tests\\ServiceInfQixFooTest::testMultipleOfEightAndThreeContainsEightSevenAndTreeShouldReturnInfFooAppendInfQixFoo":0.016,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenAndThreeContainsEightAndSevenShouldReturnQixFooAppendInfQix":0.018,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenAndThreeContainsEightAndThreeShouldReturnQixFooAppendInfFoo":0.012,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenAndThreeContainsSevenAndThreeShouldReturnQixFooAppendQixFoo":0.02,"Tests\\ServiceInfQixFooTest::testMultipleOfSevenAndThreeContainsEightSevenAndThreeShouldReturnQixFooAppendInfQixFoo":0.014,"Tests\\ServiceInfQixFooTest::testMultipleOfEightSevenAndThreeContainsEightAndSevenShouldReturnInfQixFooAppendInfQix":0.01,"Tests\\ServiceInfQixFooTest::testMultipleOfEightSevenAndThreeContainsEightAndThreeShouldReturnInfQixFooAppendInfFoo":0.014,"Tests\\ServiceInfQixFooTest::testMultipleOfEightSevenAndThreeContainsSevenAndThreeShouldReturnInfQixFooAppendQixFoo":0.015,"Tests\\ServiceInfQixFooTest::testMultipleOfEightSevenAndThreeContainsEightSevenAndThreeShouldReturnInfQixFooAppendInfQixFoo":0.017,"Tests\\ServiceInfQixFooTest::testSumOfAllDigitsIsMultipleOfEight":0.02}}
49 changes: 49 additions & 0 deletions app/ServiceFooBarQix.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php
namespace App;

class ServiceFooBarQix
{
private array $fooBarQix = [
'Foo' => 3,
'Bar' => 5,
'Qix' => 7
];

private string $separator = ', ';

public function checkIfMultiple(int $number): string
{
$result = '';
foreach ($this->fooBarQix as $key => $value){
if($number % $value === 0){
$result .= $key . $this->separator;
}
}

return (strlen($result) === 0) ? $number : rtrim($result, ', ');
}

public function checkIfContainsMultiple(int $number): string
{
$result = '';
$digits = str_split($number, 1);

foreach ($digits as $digit){
if(in_array($digit, $this->fooBarQix)){
$key = array_search($digit, $this->fooBarQix);
$result .= $key . $this->separator;
}
}

return rtrim($result, ', ');
}

public function verifyNumberIsFooBarQix(int $number): string
{
$result = $this->checkIfMultiple($number) . ', ';
$result .= $this->checkIfContainsMultiple($number);

return rtrim($result, ', ');
}

}
63 changes: 63 additions & 0 deletions app/ServiceInfQixFoo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php
namespace App;

class ServiceInfQixFoo
{

private array $infQixFoo = [
'Inf' => 8,
'Qix' => 7,
'Foo' => 3
];

private string $separator = '; ';


public function checkIfMultiple(int $number): string
{
$result = '';
foreach ($this->infQixFoo as $key => $value){
if($number % $value === 0){
$result .= $key . $this->separator;
}
}

return (strlen($result) === 0) ? $number : rtrim($result, '; ');
}

public function checkIfContainsMultiple(int $number): string
{
$result = '';
$digits = str_split($number, 1);

foreach ($digits as $digit){
if(in_array($digit, $this->infQixFoo)){
$key = array_search($digit, $this->infQixFoo);
$result .= $key . $this->separator;
}
}

return rtrim($result, '; ');
}

public function verifyNumberIsInfQixFoo(int $number): string
{
$result = $this->checkIfMultiple($number) . '; ';
$result .= $this->checkIfContainsMultiple($number);

return rtrim($result, '; ');
}

public function sumOfAllDigits(int $number): string
{
$multiple = $this->infQixFoo['Inf'];
$digits = str_split($number, 1);
$sum = array_sum($digits);

if($sum % $multiple === 0){
return $this->verifyNumberIsInfQixFoo($number) . array_search($multiple, $this->infQixFoo);
} else{
return $this->verifyNumberIsInfQixFoo($number);
}
}
}
7 changes: 7 additions & 0 deletions build/coverage/_css/bootstrap.min.css

Large diffs are not rendered by default.

Empty file added build/coverage/_css/custom.css
Empty file.
Loading