/**
  * @expectedException \Chippyash\Math\Matrix\Exceptions\MathMatrixException
  * @expectedExceptionMessage Limit parameter must be IntType
  */
 public function testTheLimitParameterIfProvidedMustBeAnInttype()
 {
     $chain = new NumericMatrix($this->chainData());
     $this->sut->transform($chain, array('start' => TypeFactory::createInt(2), 'target' => TypeFactory::createInt(4), 'limit' => TypeFactory::createFloat(3)));
 }
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage 'foo' is no valid numeric for FloatType
  */
 public function testCreateFloatWithNonNumericThrowsException()
 {
     TypeFactory::createFloat('foo');
 }
 public function validNumerics()
 {
     return [[2], [2.5], ['12.45'], ['2/5'], [true], [false], ['2+3i'], [TypeFactory::createComplex(2)], [TypeFactory::createInt(2)], [TypeFactory::createFloat(2)], [TypeFactory::createRational(2)], [null]];
 }
 public function validScalarCombinations()
 {
     return [[new NumericMatrix([2]), 2, 'IntType'], [new NumericMatrix([2]), true, 'IntType'], [new NumericMatrix([2]), false, 'IntType'], [new NumericMatrix([2]), 2.5, 'Rational\\RationalType'], [new NumericMatrix([2]), '2/5', 'Rational\\RationalType'], [new NumericMatrix([2]), '1+2i', 'Complex\\ComplexType'], [new NumericMatrix([2]), TypeFactory::createComplex(2), 'Complex\\ComplexType'], [new NumericMatrix([2]), TypeFactory::createInt(2), 'IntType'], [new NumericMatrix([2]), TypeFactory::createFloat(2), 'FloatType'], [new NumericMatrix([2]), TypeFactory::createRational(2), 'Rational\\RationalType'], [new RationalMatrix([2]), 2, 'Rational\\RationalType'], [new RationalMatrix([2]), 2.5, 'Rational\\RationalType'], [new RationalMatrix([2]), '2/5', 'Rational\\RationalType'], [new RationalMatrix([2]), true, 'Rational\\RationalType'], [new RationalMatrix([2]), false, 'Rational\\RationalType'], [new RationalMatrix([2]), TypeFactory::createComplex(2), 'Rational\\RationalType'], [new RationalMatrix([2]), TypeFactory::createInt(2), 'Rational\\RationalType'], [new RationalMatrix([2]), TypeFactory::createFloat(2), 'Rational\\RationalType'], [new RationalMatrix([2]), TypeFactory::createRational(2), 'Rational\\RationalType'], [new ComplexMatrix(['2+1i']), 2, 'Complex\\ComplexType'], [new ComplexMatrix(['2+1i']), 2.5, 'Complex\\ComplexType'], [new ComplexMatrix(['2+1i']), true, 'Complex\\ComplexType'], [new ComplexMatrix(['2+1i']), false, 'Complex\\ComplexType'], [new ComplexMatrix(['2+1i']), '2/5', 'Complex\\ComplexType'], [new ComplexMatrix(['2+1i']), '1+2i', 'Complex\\ComplexType'], [new ComplexMatrix(['2+1i']), TypeFactory::createComplex(2), 'Complex\\ComplexType'], [new ComplexMatrix(['2+1i']), TypeFactory::createInt(2), 'Complex\\ComplexType'], [new ComplexMatrix(['2+1i']), TypeFactory::createFloat(2), 'Complex\\ComplexType'], [new ComplexMatrix(['2+1i']), TypeFactory::createRational(2), 'Complex\\ComplexType']];
 }