public function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->function = function ($row, $col) { return $row - $col; }; }
/** * Return number as Rational number. * NB, numerator and denominator will be caste as IntTypes * * @return \Chippyash\Type\Number\Rational\RationalType */ public function asRational() { if (RequiredType::getInstance()->get() == RequiredType::TYPE_NATIVE) { return new RationalType(clone $this, new static(1)); } return new GMPRationalType(new GMPIntType($this->value), new GMPIntType(1)); }
public function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = new AsciiNumeric(); $this->rationalOne = TypeFactory::createRational(TypeFactory::createInt(1), TypeFactory::createInt(1)); $this->rationalHalf = TypeFactory::createRational(TypeFactory::createInt(1), TypeFactory::createInt(2)); $this->complexTwo = TypeFactory::createComplex(TypeFactory::createRational(TypeFactory::createInt(2), TypeFactory::createInt(1)), TypeFactory::createRational(TypeFactory::createInt(0), TypeFactory::createInt(1))); $this->complexThree = TypeFactory::createComplex(TypeFactory::createRational(TypeFactory::createInt(3), TypeFactory::createInt(1)), TypeFactory::createRational(TypeFactory::createInt(-3), TypeFactory::createInt(2))); }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = new CMatrix(); $this->empty = new NumericMatrix([]); $this->rowVector = new NumericMatrix([[1, 2, 3]]); $this->colVector = new NumericMatrix([[1], [2], [3]]); $this->square = new NumericMatrix([[1, 2, 3], [1, 2, 3], [1, 2, 3]]); $this->single = new NumericMatrix([1]); }
public function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = new Mult(); $this->empty = new Matrix(array()); $this->rowVector = new Matrix(array(array(1, 2, 3))); $this->colVector = new Matrix(array(array(1), array(2), array(3))); $this->square = new Matrix(array(array(1, 2, 3), array(1, 2, 3), array(1, 2, 3))); $this->single = new Matrix(array(1)); $this->wideRectangle = new Matrix(array(array(1, 2, 3), array(1, 2, 3))); $this->longRectangle = new Matrix(array(array(1, 2), array(1, 2), array(1, 2))); }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = new CMatrix(); $this->empty = new NumericMatrix([]); $this->rowVector = new NumericMatrix([[1, 2, 3]]); $this->colVector = new NumericMatrix([[1], [2], [3]]); $this->deepColVector = new NumericMatrix([[1], [2], [3], [4], [5]]); $this->square = new NumericMatrix([[1, 2, 3], [1, 2, 3], [1, 2, 3]]); $this->bigSquare = new NumericMatrix([[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]); $this->single = new NumericMatrix([1]); $this->wideRectangle = new NumericMatrix([[1, 2, 3], [1, 2, 3]]); $this->vwideRectangle = new NumericMatrix([[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]); $this->longRectangle = new NumericMatrix([[1, 2], [1, 2], [1, 2]]); $this->vlongRectangle = new NumericMatrix([[1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2]]); $this->onesRow = new NumericMatrix([[1, 1, 1]]); $this->onesCol = new NumericMatrix([[1], [1], [1]]); }
public function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = $this->getMockForAbstractClass('Chippyash\\Type\\Number\\Rational\\AbstractRationalType', array(new IntType(3), new IntType(4))); }
/** * @expectedException \InvalidArgumentException */ public function testSettingAnInvalidTypeWillThrowAnException() { $this->sut->set('foo'); }
/** * Native constructor. * Ensure that Type Factories use PHP Native types */ public function __construct() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = $this->getMockForAbstractClass('Chippyash\\Math\\Matrix\\Computation\\AbstractComputation'); }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = new stubTraitAssertParameterIsRationalNumber(); }
public function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); }
public function computeMatrices() { //set required type as data is generated before tests RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); return [[[[1, 2, 3], [3, 2, 1], [2, 1, 3]], [[TypeFactory::createInt(2), TypeFactory::createInt(4), TypeFactory::createInt(6)], [TypeFactory::createInt(6), TypeFactory::createInt(4), TypeFactory::createInt(2)], [TypeFactory::createInt(4), TypeFactory::createInt(2), TypeFactory::createInt(6)]], 2], [[[1, 2, 3]], [[RationalTypeFactory::create(2.5), RationalTypeFactory::create(5.0), RationalTypeFactory::create(7.5)]], 2.5], [[[1.5, 2.5, 3.5]], [[RationalTypeFactory::create(3.0), RationalTypeFactory::create(5.0), RationalTypeFactory::create(7.0)]], 2], [[[1.12, 2.12, 3.12]], [[RationalTypeFactory::create(1.12), RationalTypeFactory::create(2.12), RationalTypeFactory::create(3.12)]], 1.0], [[[1, 2, 3]], [[TypeFactory::createInt(1), TypeFactory::createInt(2), TypeFactory::createInt(3)]], true], [[[1, 2, 3]], [[TypeFactory::createInt(0), TypeFactory::createInt(0), TypeFactory::createInt(0)]], false], [[[true, false]], [[TypeFactory::createInt(1), TypeFactory::createInt(0)]], true], [[[true, false]], [[TypeFactory::createInt(0), TypeFactory::createInt(0)]], false]]; }
public function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_DEFAULT); }
public function correctResults() { //set required type as data created before tests are run RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); return [[1, 2, new IntType(3)], [new IntType(1), 2, new IntType(3)], [1, new IntType(2), new IntType(3)], [new IntType(1), new IntType(2), new IntType(3)], [2.0, 3.0, new FloatType(5.0)], [new FloatType(2.0), 3.0, new FloatType(5.0)], [2.0, new FloatType(3.0), new FloatType(5.0)], [new FloatType(2.0), new FloatType(3.0), new FloatType(5.0)], [new IntType(2), 3.0, new FloatType(5.0)], [new WholeIntType(2), 3, new WholeIntType(5)], [2, new WholeIntType(3), new WholeIntType(5)], [new NaturalIntType(2), 3, new NaturalIntType(5)], [2, new NaturalIntType(3), new NaturalIntType(5)], [RationalTypeFactory::create(4), RationalTypeFactory::create(4), RationalTypeFactory::create(8)]]; }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = new GaussJordanElimination(); }
public function correctResults() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); return [[[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[1, 2, 4], [3, 6, 9], [-4, 12, 15]], [[0, '1/3', 0], ['-39/20', '107/60', '-3/20'], ['-39/10', '97/30', '-3/10']]]]; }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = $this->getMockForAbstractClass('Chippyash\\Math\\Matrix\\Derivative\\AbstractDerivative'); $this->object->expects($this->any())->method('derive')->will($this->returnValue(new NumericMatrix([2]))); }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = new CMatrix(); }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->sut = new MarkovRandomWalk(); }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = $this->getMockForAbstractClass('Chippyash\\Math\\Matrix\\Decomposition\\AbstractDecomposition'); $this->object->expects($this->any())->method('product')->will($this->returnValue($this->object)); }
public function testCreationWillUseGmpAutomaticallyIfItExists() { RequiredType::getInstance()->set(RequiredType::TYPE_DEFAULT); $c = ComplexTypeFactory::create('2+3i'); $this->assertInstanceOf(self::CTYPE_NAME, $c); }
public function testSetNumberTypeToDefaultWillSetGmpIfAvailable() { RequiredType::getInstance()->set(RequiredType::TYPE_DEFAULT); $this->assertInstanceOf('Chippyash\\Type\\Number\\Rational\\GMPRationalType', TypeFactory::create('rational', 2)); }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->sut = new VertexDescription(new StringType('foo')); }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = new Invert(Invert::METHOD_DET); }
public function computeMatrices() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); return [[[[1, 2, 3], [3, 2, 1], [2, 1, 3]], [[0.5, 1, 1.5], [1.5, 1, 0.5], [1, 0.5, 1.5]], 2], [[[1, 2, 3]], [[1 / 2.5, 2 / 2.5, 3 / 2.5]], 2.5], [[[1.12, 2.12, 3.12]], [[1.12, 2.12, 3.12]], 1.0], [[[1, 2, 3]], [[1, 2, 3]], true], [[[true, false]], [[1, 0]], true]]; }
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->sut = new Cauchy(); }
/** * @requires extension gmp * @runInSeparateProcess */ public function testCreatingFloatsViaTypeFactoryUnderGmpWillReturnGMPRationalType() { RequiredType::getInstance()->set(RequiredType::TYPE_GMP); $this->assertInstanceOf('Chippyash\\Type\\Number\\Rational\\GMPRationalType', TypeFactory::create('float', 2 / 3)); }
* set tolerance for creating rationals from floats - sqrt() function will use it. * * Try setting this to the PHP int limit i.e. 1e-17. You will find that some * of the square roots cannot be computed because the limits of the mechanism * to convert floats to rational numbers busts the available precision and therefore * we get into an overflow situation. * * Setting tolerance to a lower number, say 1e-6, will compute faster but at the * expense of accuracy */ RationalTypeFactory::setDefaultFromFloatTolerance(1.0E-15); /** * Set the required number type. System will automatically use GMP if * it is available. You can force it to use native PHP thus: */ RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); //now create 10000 numbers for the test //try playing with this figure to see the results $numbers = []; for ($x = 1; $x < 10001; $x++) { $numbers[$x] = TypeFactory::create('int', $x); } //create primes $primes = []; $start = microtime(true); foreach ($numbers as $key => $number) { $primes[$key] = $number->primeFactors(); } $end = microtime(true); $time = $end - $start; echo "{$time} secs.\n";
protected function setUp() { RequiredType::getInstance()->set(RequiredType::TYPE_NATIVE); $this->object = new IsNonsingular(); }