public function testMath()
 {
     $num = new Number(5);
     $num->bcadd(5);
     $this->assertEquals(10, $num->getValue());
     $num->bcdiv(2);
     $this->assertEquals(5, $num->getValue());
     $num->bcmul(3);
     $this->assertEquals(15, $num->getValue());
     $num->bcsub(3);
     $this->assertEquals(12, $num->getValue());
     $num->bcadd(3)->bcsub(10);
     $this->assertEquals(5, $num->getValue());
 }
 public function testPercentageIntegrations()
 {
     $percent = new \ebussola\common\datatype\number\Percentage(15);
     $number = new \ebussola\common\datatype\Number(500);
     $this->assertEquals('575,00', (string) $number->bcadd($percent));
     $percent = new \ebussola\common\datatype\number\Percentage(15);
     $number = new \ebussola\common\datatype\Number(500);
     $this->assertEquals('425,00', (string) $number->bcsub($percent));
     $percent = new \ebussola\common\datatype\number\Percentage(15);
     $number = new \ebussola\common\datatype\Number(500);
     $this->assertEquals('37.500,00', (string) $number->bcmul($percent));
     $percent = new \ebussola\common\datatype\number\Percentage(15);
     $number = new \ebussola\common\datatype\Number(500);
     $this->assertEquals('6,67', (string) $number->bcdiv($percent));
 }
 /**
  * @param Number|Percentage|String $limitDown
  */
 public function setLimitDown($limitDown)
 {
     if ($limitDown instanceof Percentage) {
         $limitDown = $limitDown->of($this->getValue());
     } elseif (!$limitDown instanceof Number) {
         $limitDown = new Number($limitDown);
     }
     if ($limitDown->isPositive()) {
         $limitDown->bcmul('-1');
     }
     $this->limitDown = $limitDown;
 }