public function testString()
 {
     // Arrange
     $value = '0.0000000000000009';
     // Act
     $result = Utils::convertExponentialToString($value);
     // Assert
     $this->assertEquals('0.0000000000000009', $result);
 }
Ejemplo n.º 2
0
 public function testGetPlainNumberWithString()
 {
     // Arrange
     $number = '123';
     // Act
     $result = Utils::getPlainNumber($number);
     // Assert
     $this->assertInternalType('string', $result);
     $this->assertEquals('123', $result);
 }
Ejemplo n.º 3
0
 /**
  * Calculates the cross product between this vector and the given vector.
  *
  * @param Vector3 $vector The vector to calculate with.
  * @return Vector3
  */
 public function crossProduct(Vector3 $vector)
 {
     $x = BigNumberUtils::multiply($this->getY(), $vector->getZ());
     $x->subtract(BigNumberUtils::multiply($this->getZ(), $vector->getY()));
     $y = BigNumberUtils::multiply($this->getZ(), $vector->getX());
     $y->subtract(BigNumberUtils::multiply($this->getX(), $vector->getZ()));
     $z = BigNumberUtils::multiply($this->getX(), $vector->getY());
     $z->subtract(BigNumberUtils::multiply($this->getY(), $vector->getX()));
     return new Vector3($x, $y, $z);
 }
Ejemplo n.º 4
0
 public function testConverBaseTo16()
 {
     // Arrange
     $number = new BigNumber('12345');
     // Act
     $converted = Utils::convertBase($number, 10, 16);
     // Assert
     $this->assertInternalType('string', $converted);
     $this->assertEquals('3039.0000000000', $converted);
 }
Ejemplo n.º 5
0
 public function testMultiplyWithMutableTrue()
 {
     // Arrange
     $number1 = new BigNumber('0.123456789');
     $number2 = new BigNumber(2);
     // Act
     $result = Utils::multiply($number1, $number2, 10, true);
     // Assert
     $this->assertInstanceOf('PHP\\Math\\BigNumber\\BigNumber', $result);
     $this->assertEquals('0.2469135780', (string) $result);
     $this->assertEquals('0.123456789', $number1);
     $this->assertEquals('2.0000000000', $number2);
     $this->assertTrue($result->isMutable());
 }
Ejemplo n.º 6
0
 /**
  * A helper method to set the value on this class.
  *
  * @param int|string|BigNumber $value The value to assign.
  * @return BigNumber
  */
 private function internalSetValue($value)
 {
     if (is_float($value)) {
         $valueToSet = Utils::convertExponentialToString($value);
     } else {
         $valueToSet = (string) $value;
     }
     if (!is_numeric($valueToSet)) {
         throw new InvalidArgumentException('Invalid number provided: ' . $valueToSet);
     }
     // We use a slick trick to make sure the scale is respected.
     $this->value = bcadd(0, $valueToSet, $this->getScale());
     return $this;
 }
Ejemplo n.º 7
0
 public function testConverToBase10FromOctal()
 {
     // Arrange
     $number = new BigNumber('12345');
     // Act
     $converted = Utils::convertToBase10($number, 8);
     // Assert
     $this->assertInternalType('string', $converted);
     $this->assertEquals('5349.0000000000', $converted);
 }