update
Some checks failed
CI / general_module_workflow_php (push) Has been cancelled

This commit is contained in:
Dennis Eichhorn 2026-08-04 16:21:13 +02:00
parent cb4c61fb5b
commit 6611f2bd52
2 changed files with 17 additions and 5 deletions

View File

@ -88,9 +88,15 @@ final class Elo
*/
public function winProbability(int $elo1, int $elo2, bool $canDraw = false) : float
{
return $canDraw
? -1.0 // @todo implement
: 1 / (1 + \pow(10, ($elo2 - $elo1) / 400));
$expectedWin = 1 / (1 + \pow(10, ($elo2 - $elo1) / 400));
if (!$canDraw) {
return $expectedWin;
}
$draw = $this->drawProbability($elo1, $elo2);
return (1.0 - $draw) * $expectedWin;
}
/**
@ -105,6 +111,12 @@ final class Elo
*/
public function drawProbability(int $elo1, int $elo2) : float
{
return -1.0; // @todo implement
$diff = \abs($elo1 - $elo2);
// Approximate draw probability: highest when ratings are equal,
// decreasing smoothly as the rating difference increases.
$maxDraw = 0.30;
return $maxDraw * \exp(-($diff ** 2) / (2 * (200 ** 2)));
}
}

View File

@ -98,7 +98,7 @@ final class TesseractOcrTest extends \PHPUnit\Framework\TestCase
* @group framework
*/
/*
@todo somehow this suddenly takes a long time.
this takes a long time.
Might be because a php version update resulting in float 32->64bit changes?
Fix it, it was working with php 8.0
public function testOcrWithThresholdingRotating() : void