trueskill/tests/TrueSkill/DrawMarginTest.php
Jens True 23fc14af0a
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Cleanup abstractions of "TestCase" class in unittest
2024-02-01 10:50:18 +00:00

27 lines
888 B
PHP

<?php
namespace DNW\Skills\Tests\TrueSkill;
use DNW\Skills\TrueSkill\DrawMargin;
use PHPUnit\Framework\TestCase;
class DrawMarginTest extends TestCase
{
private const ERROR_TOLERANCE = 0.000001;
public function testGetDrawMarginFromDrawProbability(): void
{
$beta = 25.0 / 6.0;
// The expected values were compared against Ralf Herbrich's implementation in F#
$this->assertDrawMargin(0.10, $beta, 0.74046637542690541);
$this->assertDrawMargin(0.25, $beta, 1.87760059883033);
$this->assertDrawMargin(0.33, $beta, 2.5111010132487492);
}
private function assertDrawMargin(float $drawProbability, float $beta, float $expected): void
{
$actual = DrawMargin::getDrawMarginFromDrawProbability($drawProbability, $beta);
$this->assertEqualsWithDelta($expected, $actual, DrawMarginTest::ERROR_TOLERANCE);
}
}