<?php namespace Mdanter\Ecc\Tests; use Mdanter\Ecc\Math\MathAdapterFactory; abstract class AbstractTestCase extends \PHPUnit_Framework_TestCase { /** * @var string */ public $classPointInterface = 'Mdanter\Ecc\Primitives\PointInterface'; /** * @var string */ public $classCurveFpInterface = 'Mdanter\Ecc\Primitives\CurveFpInterface'; /** * @var string */ public $classRngInterface = '\Mdanter\Ecc\Random\RandomNumberGeneratorInterface'; /** * @param array $extra * @return array */ protected function _getAdapters(array $extra = null) { if (! defined('PHPUNIT_DEBUG')) { define('PHPUNIT_DEBUG', false); } switch (MATH_LIB) { case 'gmp': default: $adapter = MathAdapterFactory::getAdapter(PHPUNIT_DEBUG); } if ($extra == null) { return array( array($adapter), ); } $adapters = $this->_getAdapters(null); $result = []; foreach ($adapters as $adapter) { foreach ($extra as $value) { $result[] = array_merge($adapter, $value); } } return $result; } public function getAdapters() { return $this->_getAdapters(); } }