php-ml/tests/Math/Kernel/RBFTest.php

36 lines
1.1 KiB
PHP
Raw Normal View History

2016-04-21 20:54:38 +00:00
<?php
2016-04-25 20:55:34 +00:00
2016-11-20 21:53:17 +00:00
declare(strict_types=1);
2016-04-21 20:54:38 +00:00
namespace Phpml\Tests\Math\Kernel;
2016-04-21 20:54:38 +00:00
use Phpml\Exception\InvalidArgumentException;
2016-04-21 20:54:38 +00:00
use Phpml\Math\Kernel\RBF;
2017-02-03 11:58:25 +00:00
use PHPUnit\Framework\TestCase;
2016-04-21 20:54:38 +00:00
2017-02-03 11:58:25 +00:00
class RBFTest extends TestCase
2016-04-21 20:54:38 +00:00
{
public function testComputeRBFKernelFunction(): void
2016-04-21 20:54:38 +00:00
{
$rbf = new RBF($gamma = 0.001);
2018-10-28 06:44:52 +00:00
self::assertEquals(1, $rbf->compute([1, 2], [1, 2]));
self::assertEquals(0.97336, $rbf->compute([1, 2, 3], [4, 5, 6]), '', $delta = 0.0001);
self::assertEquals(0.00011, $rbf->compute([4, 5], [1, 100]), '', $delta = 0.0001);
2016-04-21 20:54:38 +00:00
$rbf = new RBF($gamma = 0.2);
2018-10-28 06:44:52 +00:00
self::assertEquals(1, $rbf->compute([1, 2], [1, 2]));
self::assertEquals(0.00451, $rbf->compute([1, 2, 3], [4, 5, 6]), '', $delta = 0.0001);
self::assertEquals(0, $rbf->compute([4, 5], [1, 100]));
2016-04-21 20:54:38 +00:00
}
public function testThrowExceptionWhenComputeArgumentIsNotAnArray(): void
{
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage('Arguments of Phpml\\Math\\Kernel\\RBF::compute must be arrays');
(new RBF(0.1))->compute([0], 1.0);
}
2016-04-21 20:54:38 +00:00
}