mirror of
				https://github.com/furyfire/trueskill.git
				synced 2025-11-04 10:12:28 +01:00 
			
		
		
		
	
		
			All checks were successful
		
		
	
	ci/woodpecker/push/woodpecker Pipeline was successful
				
			
		
			
				
	
	
		
			27 lines
		
	
	
		
			888 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			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);
 | 
						|
    }
 | 
						|
}
 |