Additional Psalm warnings resolving

This commit is contained in:
2023-08-08 07:00:51 +00:00
parent ec255543d9
commit aa836e859d
10 changed files with 21 additions and 20 deletions

10
composer.lock generated
View File

@ -1197,16 +1197,16 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "1.10.26", "version": "1.10.27",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/phpstan/phpstan.git",
"reference": "5d660cbb7e1b89253a47147ae44044f49832351f" "reference": "a9f44dcea06f59d1363b100bb29f297b311fa640"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/5d660cbb7e1b89253a47147ae44044f49832351f", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/a9f44dcea06f59d1363b100bb29f297b311fa640",
"reference": "5d660cbb7e1b89253a47147ae44044f49832351f", "reference": "a9f44dcea06f59d1363b100bb29f297b311fa640",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1255,7 +1255,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-07-19T12:44:37+00:00" "time": "2023-08-05T09:57:55+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",

View File

@ -8,7 +8,7 @@ class Team extends RatingContainer
{ {
parent::__construct(); parent::__construct();
if (! is_null($player)) { if (! is_null($player) && ! is_null($rating)) {
$this->addPlayer($player, $rating); $this->addPlayer($player, $rating);
} }
} }

View File

@ -16,6 +16,7 @@ use DNW\Skills\SkillCalculatorSupportedOptions;
use DNW\Skills\Team; use DNW\Skills\Team;
use DNW\Skills\TeamsRange; use DNW\Skills\TeamsRange;
use DNW\Skills\RatingContainer; use DNW\Skills\RatingContainer;
use DNW\Skills\Rating;
/** /**
* Calculates TrueSkill using a full factor graph. * Calculates TrueSkill using a full factor graph.
@ -100,7 +101,7 @@ class FactorGraphTrueSkillCalculator extends SkillCalculator
return new Vector( return new Vector(
self::getPlayerRatingValues( self::getPlayerRatingValues(
$teamAssignmentsList, $teamAssignmentsList,
fn ($rating) => $rating->getMean() fn (Rating $rating): float => $rating->getMean()
) )
); );
} }
@ -115,7 +116,7 @@ class FactorGraphTrueSkillCalculator extends SkillCalculator
return new DiagonalMatrix( return new DiagonalMatrix(
self::getPlayerRatingValues( self::getPlayerRatingValues(
$teamAssignmentsList, $teamAssignmentsList,
fn ($rating) => BasicMath::square($rating->getStandardDeviation()) fn (Rating $rating): float => BasicMath::square($rating->getStandardDeviation())
) )
); );
} }

View File

@ -30,7 +30,7 @@ abstract class GaussianFactor extends Factor
$variable, $variable,
new Message( new Message(
$newDistribution, $newDistribution,
sprintf('message from %s to %s', $this, $variable) sprintf('message from %s to %s', (string)$this, (string)$variable)
) )
); );
} }

View File

@ -18,7 +18,7 @@ class GaussianGreaterThanFactor extends GaussianFactor
public function __construct(float $epsilon, Variable $variable) public function __construct(float $epsilon, Variable $variable)
{ {
parent::__construct(\sprintf('%s > %.2f', $variable, $epsilon)); parent::__construct(\sprintf('%s > %.2f', (string)$variable, $epsilon));
$this->epsilon = $epsilon; $this->epsilon = $epsilon;
$this->createVariableToMessageBinding($variable); $this->createVariableToMessageBinding($variable);
} }

View File

@ -19,7 +19,7 @@ class GaussianLikelihoodFactor extends GaussianFactor
public function __construct(float $betaSquared, Variable $variable1, Variable $variable2) public function __construct(float $betaSquared, Variable $variable1, Variable $variable2)
{ {
parent::__construct(sprintf('Likelihood of %s going to %s', $variable2, $variable1)); parent::__construct(sprintf('Likelihood of %s going to %s', (string)$variable2, (string)$variable1));
$this->precision = 1.0 / $betaSquared; $this->precision = 1.0 / $betaSquared;
$this->createVariableToMessageBinding($variable1); $this->createVariableToMessageBinding($variable1);
$this->createVariableToMessageBinding($variable2); $this->createVariableToMessageBinding($variable2);

View File

@ -17,11 +17,11 @@ class GaussianPriorFactor extends GaussianFactor
public function __construct(float $mean, float $variance, Variable $variable) public function __construct(float $mean, float $variance, Variable $variable)
{ {
parent::__construct(sprintf('Prior value going to %s', $variable)); parent::__construct(sprintf('Prior value going to %s', (string)$variable));
$this->newMessage = new GaussianDistribution($mean, sqrt($variance)); $this->newMessage = new GaussianDistribution($mean, sqrt($variance));
$newMessage = new Message( $newMessage = new Message(
GaussianDistribution::fromPrecisionMean(0, 0), GaussianDistribution::fromPrecisionMean(0, 0),
sprintf('message from %s to %s', $this, $variable) sprintf('message from %s to %s', (string)$this, (string)$variable)
); );
$this->createVariableToMessageBindingWithMessage($variable, $newMessage); $this->createVariableToMessageBindingWithMessage($variable, $newMessage);

View File

@ -38,7 +38,7 @@ class GaussianWeightedSumFactor extends GaussianFactor
*/ */
public function __construct(Variable $sumVariable, array $variablesToSum, array $variableWeights = null) public function __construct(Variable $sumVariable, array $variablesToSum, array $variableWeights = null)
{ {
parent::__construct(self::createName($sumVariable, $variablesToSum, $variableWeights)); parent::__construct(self::createName((string)$sumVariable, $variablesToSum, $variableWeights));
// The first weights are a straightforward copy // The first weights are a straightforward copy
// v_0 = a_1*v_1 + a_2*v_2 + ... + a_n * v_n // v_0 = a_1*v_1 + a_2*v_2 + ... + a_n * v_n
@ -237,7 +237,7 @@ class GaussianWeightedSumFactor extends GaussianFactor
private static function createName(string $sumVariable, array $variablesToSum, array $weights): string private static function createName(string $sumVariable, array $variablesToSum, array $weights): string
{ {
// TODO: Perf? Use PHP equivalent of StringBuilder? implode on arrays? // TODO: Perf? Use PHP equivalent of StringBuilder? implode on arrays?
$result = (string) $sumVariable; $result = $sumVariable;
$result .= ' = '; $result .= ' = ';
$totalVars = count($variablesToSum); $totalVars = count($variablesToSum);

View File

@ -18,7 +18,7 @@ class GaussianWithinFactor extends GaussianFactor
public function __construct(float $epsilon, Variable $variable) public function __construct(float $epsilon, Variable $variable)
{ {
parent::__construct(sprintf('%s <= %.2f', $variable, $epsilon)); parent::__construct(sprintf('%s <= %.2f', (string)$variable, $epsilon));
$this->epsilon = $epsilon; $this->epsilon = $epsilon;
$this->createVariableToMessageBinding($variable); $this->createVariableToMessageBinding($variable);
} }

View File

@ -79,12 +79,12 @@ class TwoTeamTrueSkillCalculator extends SkillCalculator
$totalPlayers = $selfTeam->count() + $otherTeam->count(); $totalPlayers = $selfTeam->count() + $otherTeam->count();
$meanGetter = fn ($currentRating) => $currentRating->getMean(); $meanGetter = fn (Rating $currentRating): float => $currentRating->getMean();
$selfMeanSum = BasicMath::sum($selfTeam->getAllRatings(), $meanGetter); $selfMeanSum = BasicMath::sum($selfTeam->getAllRatings(), $meanGetter);
$otherTeamMeanSum = BasicMath::sum($otherTeam->getAllRatings(), $meanGetter); $otherTeamMeanSum = BasicMath::sum($otherTeam->getAllRatings(), $meanGetter);
$varianceGetter = fn ($currentRating): float => BasicMath::square($currentRating->getStandardDeviation()); $varianceGetter = fn (Rating $currentRating): float => BasicMath::square($currentRating->getStandardDeviation());
$c = sqrt( $c = sqrt(
BasicMath::sum($selfTeam->getAllRatings(), $varianceGetter) BasicMath::sum($selfTeam->getAllRatings(), $varianceGetter)
@ -160,9 +160,9 @@ class TwoTeamTrueSkillCalculator extends SkillCalculator
$betaSquared = BasicMath::square($gameInfo->getBeta()); $betaSquared = BasicMath::square($gameInfo->getBeta());
$meanGetter = fn ($currentRating) => $currentRating->getMean(); $meanGetter = fn (Rating $currentRating): float => $currentRating->getMean();
$varianceGetter = fn ($currentRating): float => BasicMath::square($currentRating->getStandardDeviation()); $varianceGetter = fn (Rating $currentRating): float => BasicMath::square($currentRating->getStandardDeviation());
$team1MeanSum = BasicMath::sum($team1Ratings, $meanGetter); $team1MeanSum = BasicMath::sum($team1Ratings, $meanGetter);
$team1StdDevSquared = BasicMath::sum($team1Ratings, $varianceGetter); $team1StdDevSquared = BasicMath::sum($team1Ratings, $varianceGetter);