mirror of
				https://github.com/furyfire/trueskill.git
				synced 2025-11-04 10:12:28 +01:00 
			
		
		
		
	More types for static analysis
This commit is contained in:
		@@ -60,14 +60,14 @@ abstract class FactorGraphLayer
 | 
			
		||||
        $this->localFactors[] = $factor;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    abstract public function buildLayer();
 | 
			
		||||
    abstract public function buildLayer(): void;
 | 
			
		||||
 | 
			
		||||
    public function createPriorSchedule()
 | 
			
		||||
    public function createPriorSchedule(): ?ScheduleSequence
 | 
			
		||||
    {
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function createPosteriorSchedule()
 | 
			
		||||
    public function createPosteriorSchedule(): ?ScheduleSequence
 | 
			
		||||
    {
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -10,9 +10,9 @@ class RankSorter
 | 
			
		||||
    /**
 | 
			
		||||
     * Performs an in-place sort of the items in according to the ranks in non-decreasing order.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  array $teams     The items to sort according to the order specified by ranks.
 | 
			
		||||
     * @param  array $teamRanks The ranks for each item where 1 is first place.
 | 
			
		||||
     * @return array
 | 
			
		||||
     * @param  array<mixed> $teams     The items to sort according to the order specified by ranks.
 | 
			
		||||
     * @param  array<int> $teamRanks The ranks for each item where 1 is first place.
 | 
			
		||||
     * @return array<array>
 | 
			
		||||
     */
 | 
			
		||||
    public static function sort(array &$teams, array &$teamRanks): array
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -198,8 +198,7 @@ class GaussianWeightedSumFactor extends GaussianFactor
 | 
			
		||||
        // The tricky part here is that we have to put the messages and variables in the same
 | 
			
		||||
        // order as the weights. Thankfully, the weights and messages share the same index numbers,
 | 
			
		||||
        // so we just need to make sure they're consistent
 | 
			
		||||
        $allMessagesCount = is_countable($allMessages) ? count($allMessages) : 0;
 | 
			
		||||
        for ($i = 0; $i < $allMessagesCount; $i++) {
 | 
			
		||||
        for ($i = 0; $i < count($allMessages); $i++) {
 | 
			
		||||
            $updatedMessages[] = $allMessages[$indicesToUse[$i]];
 | 
			
		||||
            $updatedVariables[] = $allVariables[$indicesToUse[$i]];
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ class IteratedTeamDifferencesInnerLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
        $this->TeamDifferencesComparisonLayer->buildLayer();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function createPriorSchedule(): ScheduleSequence
 | 
			
		||||
    public function createPriorSchedule(): ?ScheduleSequence
 | 
			
		||||
    {
 | 
			
		||||
        switch (is_countable($this->getInputVariablesGroups()) ? count($this->getInputVariablesGroups()) : 0) {
 | 
			
		||||
            case 0:
 | 
			
		||||
@@ -78,7 +78,7 @@ class IteratedTeamDifferencesInnerLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function createTwoTeamInnerPriorLoopSchedule()
 | 
			
		||||
    private function createTwoTeamInnerPriorLoopSchedule(): ScheduleSequence
 | 
			
		||||
    {
 | 
			
		||||
        $teamPerformancesToTeamPerformanceDifferencesLayerLocalFactors = $this->TeamPerformancesToTeamPerformanceDifferencesLayer->getLocalFactors();
 | 
			
		||||
        $teamDifferencesComparisonLayerLocalFactors = $this->TeamDifferencesComparisonLayer->getLocalFactors();
 | 
			
		||||
@@ -104,9 +104,9 @@ class IteratedTeamDifferencesInnerLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function createMultipleTeamInnerPriorLoopSchedule()
 | 
			
		||||
    private function createMultipleTeamInnerPriorLoopSchedule(): ScheduleLoop
 | 
			
		||||
    {
 | 
			
		||||
        $totalTeamDifferences = is_countable($this->TeamPerformancesToTeamPerformanceDifferencesLayer->getLocalFactors()) ? count($this->TeamPerformancesToTeamPerformanceDifferencesLayer->getLocalFactors()) : 0;
 | 
			
		||||
        $totalTeamDifferences = count($this->TeamPerformancesToTeamPerformanceDifferencesLayer->getLocalFactors());
 | 
			
		||||
 | 
			
		||||
        $forwardScheduleList = [];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,7 @@ class PlayerPerformancesToTeamPerformancesLayer extends TrueSkillFactorGraphLaye
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function createPriorSchedule(): ScheduleSequence
 | 
			
		||||
    public function createPriorSchedule(): ?ScheduleSequence
 | 
			
		||||
    {
 | 
			
		||||
        $localFactors = $this->getLocalFactors();
 | 
			
		||||
 | 
			
		||||
@@ -57,7 +57,7 @@ class PlayerPerformancesToTeamPerformancesLayer extends TrueSkillFactorGraphLaye
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function createPosteriorSchedule(): ScheduleSequence
 | 
			
		||||
    public function createPosteriorSchedule(): ?ScheduleSequence
 | 
			
		||||
    {
 | 
			
		||||
        $allFactors = [];
 | 
			
		||||
        $localFactors = $this->getLocalFactors();
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@ class PlayerPriorValuesToSkillsLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function createPriorSchedule(): ScheduleSequence
 | 
			
		||||
    public function createPriorSchedule(): ?ScheduleSequence
 | 
			
		||||
    {
 | 
			
		||||
        $localFactors = $this->getLocalFactors();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@ class PlayerSkillsToPerformancesLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
        return $this->getParentFactorGraph()->getVariableFactory()->createKeyedVariable($key, $key . "'s performance");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function createPriorSchedule(): ScheduleSequence
 | 
			
		||||
    public function createPriorSchedule(): ?ScheduleSequence
 | 
			
		||||
    {
 | 
			
		||||
        $localFactors = $this->getLocalFactors();
 | 
			
		||||
 | 
			
		||||
@@ -58,7 +58,7 @@ class PlayerSkillsToPerformancesLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function createPosteriorSchedule(): ScheduleSequence
 | 
			
		||||
    public function createPosteriorSchedule(): ?ScheduleSequence
 | 
			
		||||
    {
 | 
			
		||||
        $localFactors = $this->getLocalFactors();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user