forked from diogolmenezes/dojo
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfizz-buzz.php
More file actions
93 lines (77 loc) · 2.33 KB
/
fizz-buzz.php
File metadata and controls
93 lines (77 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
# Problema :
# Imagine uma brincadeira onde crianças falam um número em ordem (1,2,3…).
# Se o número for múltiplo de 3 então a criança deve dizer Fizz ao invés do número,
# Se o número for múltiplo de 5 então a criança deve dizer Buzz,
# Se as duas condições forem verdadeiras então a criança precisa dizer FizzBuzz.
class FizzBuzz
{
public function JogarComUm($numero)
{
$multiplo_de_3 = ($numero % 3 == 0);
$multiplo_de_5 = ($numero % 5 == 0);
if($multiplo_de_3 && $multiplo_de_5)
return "FizzBuzz";
if($multiplo_de_3)
return "Fizz";
if($multiplo_de_5)
return "Buzz";
return $numero;
}
public function Jogar($numeros)
{
$resultado = array();
foreach ($numeros as $numero) {
array_push($resultado, $this->JogarComUm($numero));
}
return $resultado;
}
}
class FizzBuzzTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
$this->FizzBuzz = new FizzBuzz();
}
public function test_instancia_de()
{
$this->assertInstanceOf("FizzBuzz", $this->FizzBuzz);
}
public function test_pensa_1_fala_1()
{
$this->assertEquals("1", $this->FizzBuzz->JogarComUm(1));
}
public function test_pensa_2_fala_2()
{
$this->assertEquals("2", $this->FizzBuzz->JogarComUm(2));
}
public function test_pensa_3_fala_Fizz()
{
$this->assertEquals("Fizz", $this->FizzBuzz->JogarComUm(3));
}
public function test_pensa_6_fala_Fizz()
{
$this->assertEquals("Fizz", $this->FizzBuzz->JogarComUm(6));
}
public function test_pensa_5_fala_Buzz()
{
$this->assertEquals("Buzz", $this->FizzBuzz->JogarComUm(5));
}
public function test_pensa_10_fala_Buzz()
{
$this->assertEquals("Buzz", $this->FizzBuzz->JogarComUm(10));
}
public function test_pensa_15_fala_FizBuzz()
{
$this->assertEquals("FizzBuzz", $this->FizzBuzz->JogarComUm(15));
}
public function test_pensa_30_fala_FizBuzz()
{
$this->assertEquals("FizzBuzz", $this->FizzBuzz->JogarComUm(30));
}
public function test_pensa_1_2_3_4_5_30_fala_1_2_Fizz_4_Buzz_FizBuzz()
{
$this->assertEquals(array(1, 2, "Fizz", 4, "Buzz", "FizzBuzz"), $this->FizzBuzz->Jogar(array(1,2,3,4,5,30)));
}
}
?>