public function testString() { // Arrange $value = '0.0000000000000009'; // Act $result = Utils::convertExponentialToString($value); // Assert $this->assertEquals('0.0000000000000009', $result); }
public function testGetPlainNumberWithString() { // Arrange $number = '123'; // Act $result = Utils::getPlainNumber($number); // Assert $this->assertInternalType('string', $result); $this->assertEquals('123', $result); }
/** * 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); }
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); }
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()); }
/** * 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; }
public function testConverToBase10FromOctal() { // Arrange $number = new BigNumber('12345'); // Act $converted = Utils::convertToBase10($number, 8); // Assert $this->assertInternalType('string', $converted); $this->assertEquals('5349.0000000000', $converted); }