mirror of
				https://github.com/furyfire/trueskill.git
				synced 2025-11-04 10:12:28 +01:00 
			
		
		
		
	Additional tests.
This commit is contained in:
		
							
								
								
									
										52
									
								
								tests/TrueSkill/TruncatedGaussianCorrectionFunctionsTest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								tests/TrueSkill/TruncatedGaussianCorrectionFunctionsTest.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare(strict_types=1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace DNW\Skills\Tests\TrueSkill;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use DNW\Skills\TrueSkill\TruncatedGaussianCorrectionFunctions;
 | 
				
			||||||
 | 
					use DNW\Skills\Numerics\BasicMath;
 | 
				
			||||||
 | 
					use DNW\Skills\Numerics\GaussianDistribution;
 | 
				
			||||||
 | 
					use PHPUnit\Framework\TestCase;
 | 
				
			||||||
 | 
					use PHPUnit\Framework\Attributes\CoversClass;
 | 
				
			||||||
 | 
					use PHPUnit\Framework\Attributes\UsesClass;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[CoversClass(TruncatedGaussianCorrectionFunctions::class)]
 | 
				
			||||||
 | 
					#[UsesClass(BasicMath::class)]
 | 
				
			||||||
 | 
					#[UsesClass(GaussianDistribution::class)]
 | 
				
			||||||
 | 
					class TruncatedGaussianCorrectionFunctionsTest extends TestCase
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function testVGreaterThan(): void {
 | 
				
			||||||
 | 
					        // Test values taken from Ralf Herbrich's F# TrueSkill implementation
 | 
				
			||||||
 | 
					        $want = 0.4181660649773850;
 | 
				
			||||||
 | 
					        $tVar = 0.7495591915280050;
 | 
				
			||||||
 | 
					        $eps = 0.0631282276750071;
 | 
				
			||||||
 | 
					        $this->assertEqualsWithDelta($want, TruncatedGaussianCorrectionFunctions::vExceedsMargin($tVar, $eps), 1e-6);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public function testWGreaterThan(): void {
 | 
				
			||||||
 | 
					        // Test values taken from Ralf Herbrich's F# TrueSkill implementation
 | 
				
			||||||
 | 
					        $want = 0.4619049929317120;
 | 
				
			||||||
 | 
					        $tVar = 0.7495591915280050;
 | 
				
			||||||
 | 
					        $eps = 0.0631282276750071;
 | 
				
			||||||
 | 
					        $this->assertEqualsWithDelta($want, TruncatedGaussianCorrectionFunctions::wExceedsMargin($tVar, $eps), 1e-6);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public function testVWithin(): void {
 | 
				
			||||||
 | 
					        // Test values taken from Ralf Herbrich's F# TrueSkill implementation
 | 
				
			||||||
 | 
					        $want = -0.7485644072749330;
 | 
				
			||||||
 | 
					        $tVar = 0.7495591915280050;
 | 
				
			||||||
 | 
					        $eps = 0.0631282276750071;
 | 
				
			||||||
 | 
					        $this->assertEqualsWithDelta($want, TruncatedGaussianCorrectionFunctions::vWithinMargin($tVar, $eps), 1e-6);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public function testWWithin(): void {
 | 
				
			||||||
 | 
					        // Test values taken from Ralf Herbrich's F# TrueSkill implementation
 | 
				
			||||||
 | 
					        $want = 0.9986734210033660;
 | 
				
			||||||
 | 
					        $tVar = 0.7495591915280050;
 | 
				
			||||||
 | 
					        $eps = 0.0631282276750071;
 | 
				
			||||||
 | 
					        $this->assertEqualsWithDelta($want, TruncatedGaussianCorrectionFunctions::wWithinMargin($tVar, $eps), 1e-6);   
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user