/** * This is not the best way to do this * * @param $name * @param $arguments * @return mixed * @throws \Exception */ public function __call($name, $arguments) { $data = $arguments[0]; array_shift($arguments); if (method_exists($this->number, $name)) { $this->number->setNumber($data); return call_user_func_array(array($this->number, $name), $arguments); } throw new \Exception('The method (' . $name . ') is not valid'); }
/** Test number to words up to 99 */ public function testToWords() { $this->numberClass = new Number(0); $this->assertEquals('Zero', $this->numberClass->toWords()); $this->numberClass = new Number(1); $this->assertEquals('One', $this->numberClass->toWords()); $this->numberClass = new Number(2); $this->assertEquals('Two', $this->numberClass->toWords()); $this->numberClass = new Number(4); $this->assertEquals('Four', $this->numberClass->toWords()); $this->numberClass = new Number(10); $this->assertEquals('Ten', $this->numberClass->toWords()); $this->numberClass = new Number(11); $this->assertEquals('Eleven', $this->numberClass->toWords()); $this->numberClass = new Number(22); $this->assertEquals('Twenty-Two', $this->numberClass->toWords()); $this->numberClass = new Number(55); $this->assertEquals('Fifty-Five', $this->numberClass->toWords()); $this->numberClass = new Number(99); $this->assertEquals('Ninety-Nine', $this->numberClass->toWords()); // This method only works with number up to 99 //$this->numberClass = new Number( 100 ); //$this->assertEquals( 'One-Hundred', $this->numberClass->toWords() ); }