Stringable removed.

This commit is contained in:
Jens True 2024-03-19 14:38:55 +00:00
parent e5a96226ca
commit 0095829906
6 changed files with 7 additions and 19 deletions

@ -13,7 +13,9 @@ namespace DNW\Skills\Numerics;
class GaussianDistribution class GaussianDistribution
{ {
private const DEFAULT_STANDARD_DEVIATION = 1.0; private const DEFAULT_STANDARD_DEVIATION = 1.0;
private const DEFAULT_MEAN = 0.0; private const DEFAULT_MEAN = 0.0;
/** /**
* Square Root 2π. * Square Root 2π.
* Precalculated constant for performance reasons * Precalculated constant for performance reasons
@ -42,8 +44,7 @@ class GaussianDistribution
public function __construct(private float $mean = self::DEFAULT_MEAN, private float $standardDeviation = self::DEFAULT_STANDARD_DEVIATION) public function __construct(private float $mean = self::DEFAULT_MEAN, private float $standardDeviation = self::DEFAULT_STANDARD_DEVIATION)
{ {
if($mean == self::DEFAULT_MEAN && $standardDeviation == self::DEFAULT_STANDARD_DEVIATION) if ($mean == self::DEFAULT_MEAN && $standardDeviation == self::DEFAULT_STANDARD_DEVIATION) {
{
//Use all the defaults //Use all the defaults
return; return;
} }
@ -187,7 +188,7 @@ class GaussianDistribution
return $multiplier * $expPart; return $multiplier * $expPart;
} }
public static function cumulativeTo(float $x, float $mean = 0.0, float $standardDeviation = 1.0): float public static function cumulativeTo(float $x): float
{ {
$result = GaussianDistribution::errorFunctionCumulativeTo(-M_SQRT1_2 * $x); $result = GaussianDistribution::errorFunctionCumulativeTo(-M_SQRT1_2 * $x);

@ -59,9 +59,4 @@ class Player implements ISupportPartialPlay, ISupportPartialUpdate
{ {
return $this->PartialUpdatePercentage; return $this->PartialUpdatePercentage;
} }
/*
public function __toString(): string
{
return (string)$this->Id;
}*/
} }

@ -9,7 +9,7 @@ use DNW\Skills\Numerics\GaussianDistribution;
/** /**
* Container for a player's rating. * Container for a player's rating.
*/ */
class Rating implements \Stringable class Rating
{ {
private const CONSERVATIVE_STANDARD_DEVIATION_MULTIPLIER = 3; private const CONSERVATIVE_STANDARD_DEVIATION_MULTIPLIER = 3;
@ -73,9 +73,4 @@ class Rating implements \Stringable
return new Rating($partialPosteriorGaussion->getMean(), $partialPosteriorGaussion->getStandardDeviation(), $prior->conservativeStandardDeviationMultiplier); return new Rating($partialPosteriorGaussion->getMean(), $partialPosteriorGaussion->getStandardDeviation(), $prior->conservativeStandardDeviationMultiplier);
} }
public function __toString(): string
{
return sprintf('mean=%.4f, standardDeviation=%.4f', $this->mean, $this->standardDeviation);
}
} }

@ -77,6 +77,6 @@ class PlayerPriorValuesToSkillsLayer extends TrueSkillFactorGraphLayer
$parentFactorGraph = $this->getParentFactorGraph(); $parentFactorGraph = $this->getParentFactorGraph();
$variableFactory = $parentFactorGraph->getVariableFactory(); $variableFactory = $parentFactorGraph->getVariableFactory();
return $variableFactory->createKeyedVariable($key, (string)$key->getId() . "'s skill"); return $variableFactory->createKeyedVariable($key, $key->getId() . "'s skill");
} }
} }

@ -48,7 +48,7 @@ class PlayerSkillsToPerformancesLayer extends TrueSkillFactorGraphLayer
private function createOutputVariable(mixed $key): KeyedVariable private function createOutputVariable(mixed $key): KeyedVariable
{ {
return $this->getParentFactorGraph()->getVariableFactory()->createKeyedVariable($key, (string)$key->getId() . "'s performance"); return $this->getParentFactorGraph()->getVariableFactory()->createKeyedVariable($key, $key->getId() . "'s performance");
} }
public function createPriorSchedule(): ?ScheduleSequence public function createPriorSchedule(): ?ScheduleSequence

@ -15,7 +15,6 @@ class RatingTest extends TestCase
$this->assertEquals(100, $rating->getMean()); $this->assertEquals(100, $rating->getMean());
$this->assertEquals(10, $rating->getStandardDeviation()); $this->assertEquals(10, $rating->getStandardDeviation());
$this->assertEquals(50, $rating->getConservativeRating()); $this->assertEquals(50, $rating->getConservativeRating());
$this->assertEquals("mean=100.0000, standardDeviation=10.0000", (string)$rating);
} }
public function testPartialUpdate(): void public function testPartialUpdate(): void
@ -26,10 +25,8 @@ class RatingTest extends TestCase
$rating_partial = $rating->getPartialUpdate($ratingOld, $ratingNew, 0.5); $rating_partial = $rating->getPartialUpdate($ratingOld, $ratingNew, 0.5);
$this->assertEquals(150, $rating_partial->getMean()); $this->assertEquals(150, $rating_partial->getMean());
$this->assertEquals(10, $rating_partial->getStandardDeviation()); $this->assertEquals(10, $rating_partial->getStandardDeviation());
$this->assertEquals(100, $rating_partial->getConservativeRating()); $this->assertEquals(100, $rating_partial->getConservativeRating());
$this->assertEquals("mean=150.0000, standardDeviation=10.0000", (string)$rating_partial);
} }
} }