Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
<?php /** * The Ibuildings Test Driven Challenge * See http://www.ibuildings.com/challenge for instructions */ require_once '../NumberCruncher.php'; /** * NumberCruncher test case. */ class NumberCruncherTest extends PHPUnit_Framework_TestCase { /** * @var NumberCruncher */ private $nc; /** * Prepares the environment before running a test. */ protected function setUp() { parent::setUp (); $this->nc = new NumberCruncher(); } /** * Cleans up the environment after running a test. */ protected function tearDown() { $this->nc = null; parent::tearDown (); } /** ---- Standard operations ---- **/ /** * Tests NumberCruncher->operationA() * 5 Points */ public function testOperationA() { $this->assertEquals( 5, $this->nc->operationA(1)); $this->assertEquals(10, $this->nc->operationA(6)); $this->assertEquals(12, $this->nc->operationA(8)); $this->assertEquals(42, $this->nc->operationA(38)); } /** * Tests NumberCruncher->operationB() * 5 points */ public function testOperationB() { $this->assertEquals(0 , $this->nc->operationB(0)); $this->assertEquals(7.5, $this->nc->operationB(2.5)); $this->assertEquals(42 , $this->nc->operationB(14)); $this->assertEquals(-6 , $this->nc->operationB(-2)); } /** * Tests NumberCruncher->operationC() * 10 points */ public function testOperationC() { $this->assertEquals(0.5 , $this->nc->operationC(1)); $this->assertEquals(2 , $this->nc->operationC(2)); $this->assertEquals(4.5 , $this->nc->operationC(3)); $this->assertEquals(8 , $this->nc->operationC(4)); $this->assertEquals(12.5, $this->nc->operationC(5)); $this->assertEquals(18 , $this->nc->operationC(6)); $this->assertEquals(24.5, $this->nc->operationC(7)); $this->assertEquals(32 , $this->nc->operationC(8)); $this->assertEquals(40.5, $this->nc->operationC(9)); $this->assertEquals(50 , $this->nc->operationC(10)); } /** * Tests NumberCruncher->operationD() * 10 points */ public function testOperationD() { $this->assertEquals(1 , $this->nc->operationD(0)); $this->assertEquals(120, $this->nc->operationD(5)); $this->assertEquals(1 , $this->nc->operationD(1)); $this->assertEquals(6 , $this->nc->operationD(3)); $this->assertEquals(720, $this->nc->operationD(6)); } /** * Tests NumberCruncher->operationE() * 15 points */ public function testOperationE() { $this->assertEquals(5 , $this->nc->operationE(5)); $this->assertEquals(0 , $this->nc->operationE(0)); $this->assertEquals(1 , $this->nc->operationE(1)); $this->assertEquals(2 , $this->nc->operationE(3)); $this->assertEquals(13, $this->nc->operationE(7)); $this->assertEquals(3 , $this->nc->operationE(4)); $this->assertEquals(34, $this->nc->operationE(9)); } /** ---- Composite operations ---- **/ /** * Tests NumberCruncher->operationF() * 15 points */ public function testOperationF() { $this->assertEquals(4.5 , $this->nc->operationF(1)); $this->assertEquals(40.5 , $this->nc->operationF(3)); $this->assertEquals(112.5, $this->nc->operationF(5)); $this->assertEquals(220.5, $this->nc->operationF(7)); $this->assertEquals(364.5, $this->nc->operationF(9)); $this->assertEquals(0 , $this->nc->operationF(0)); $this->assertEquals(18 , $this->nc->operationF(2)); $this->assertEquals(72 , $this->nc->operationF(4)); $this->assertEquals(162 , $this->nc->operationF(6)); $this->assertEquals(288 , $this->nc->operationF(8)); $this->assertEquals(450 , $this->nc->operationF(10)); } /** * Tests NumberCruncher->operationG() * 20 points */ public function testOperationG() { $this->assertEquals(1 , $this->nc->operationG(0)); $this->assertEquals(0 , $this->nc->operationG(1)); $this->assertEquals(1 , $this->nc->operationG(2)); $this->assertEquals(4 , $this->nc->operationG(3)); $this->assertEquals(21 , $this->nc->operationG(4)); $this->assertEquals(115 , $this->nc->operationG(5)); $this->assertEquals(712 , $this->nc->operationG(6)); $this->assertEquals(5027 , $this->nc->operationG(7)); $this->assertEquals(40299 , $this->nc->operationG(8)); $this->assertEquals(362846 , $this->nc->operationG(9)); } }
This paste will be private.
From the Design Piracy series on my blog: