/** * 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 Suffix upto 100 trillion */ public function testWithSuffix() { $this->numberClass = new Number(1); $this->assertEquals(1, $this->numberClass->withSuffix()); $this->numberClass->setNumber(999); $this->assertEquals(999, $this->numberClass->withSuffix()); $this->numberClass->setNumber(1000); $this->assertEquals('1k', $this->numberClass->withSuffix()); $this->numberClass->setNumber(5000); $this->assertEquals('5k', $this->numberClass->withSuffix()); $this->numberClass->setNumber(10000); $this->assertEquals('10k', $this->numberClass->withSuffix()); $this->numberClass->setNumber(100000); $this->assertEquals('100k', $this->numberClass->withSuffix()); $this->numberClass->setNumber(1000000); $this->assertEquals('1m', $this->numberClass->withSuffix()); $this->numberClass->setNumber(5000000); $this->assertEquals('5m', $this->numberClass->withSuffix()); $this->numberClass->setNumber(10000000); $this->assertEquals('10m', $this->numberClass->withSuffix()); $this->numberClass->setNumber(100000000); $this->assertEquals('100m', $this->numberClass->withSuffix()); $this->numberClass->setNumber(1000000000); $this->assertEquals('1b', $this->numberClass->withSuffix()); $this->numberClass->setNumber(5000000000); $this->assertEquals('5b', $this->numberClass->withSuffix()); $this->numberClass->setNumber(10000000000); $this->assertEquals('10b', $this->numberClass->withSuffix()); $this->numberClass->setNumber(100000000000); $this->assertEquals('100b', $this->numberClass->withSuffix()); $this->numberClass->setNumber(1000000000000); $this->assertEquals('1t', $this->numberClass->withSuffix()); $this->numberClass->setNumber(5000000000000); $this->assertEquals('5t', $this->numberClass->withSuffix()); $this->numberClass->setNumber(10000000000000); $this->assertEquals('10t', $this->numberClass->withSuffix()); $this->numberClass->setNumber(100000000000000); $this->assertEquals('100t', $this->numberClass->withSuffix()); }