Skip to content

Instantly share code, notes, and snippets.

@armonge
Created September 19, 2013 19:59
Show Gist options
  • Save armonge/6629013 to your computer and use it in GitHub Desktop.
Save armonge/6629013 to your computer and use it in GitHub Desktop.
<?php
class FizzBuzz
{
static public function categorize($num) {
$result = '';
if($num === 0){
return '0';
}
$result .= FizzBuzz::isFizz($num);
$result .= FizzBuzz::isBuzz($num);
if($result === ''){
$result = (string) $num;
}
return $result;
}
static private function isFizz($num){
return $num % 3 === 0 ? 'fizz' : '';
}
static private function isBuzz($num){
return $num % 5 === 0 ? 'buzz' : '';
}
}
<?php
require 'fizzbuzz.php';
class TestFizzBuzz extends PHPUnit_Framework_TestCase
{
public function testCategorizeAsIs(){
$this->assertEquals('0', FizzBuzz::categorize(0));
$this->assertEquals('1', FizzBuzz::categorize(1));
}
public function testCategorizeBuzz(){
$this->assertEquals('buzz', FizzBuzz::categorize(5));
$this->assertEquals('buzz', FizzBuzz::categorize(10));
}
public function testCategorizeFizz(){
$this->assertEquals('fizz', FizzBuzz::categorize(3));
$this->assertEquals('fizz', FizzBuzz::categorize(6));
}
public function testCategorizeFizzBuzz(){
$this->assertEquals('fizzbuzz', FizzBuzz::categorize(30));
$this->assertEquals('fizzbuzz', FizzBuzz::categorize(15));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment