/** * @param int $value * @param int $preferredSkill * @param int $moneyBehaviour * @param int $money * @param int $playerDefense * @param int $playerOffense */ private function assertCalculateBuyEquals($value, $preferredSkill, $moneyBehaviour, $money, $playerDefense, $playerOffense) { $manager = $this->createManager($preferredSkill, $moneyBehaviour, $money); $calculator = new ScoreCalculator($manager); $player = $this->createPlayer($playerDefense, $playerOffense); $this->assertEquals($value, $calculator->calculateBuyScore($player)); }
/** * @param Player[] $playersToInvestigate * * @return null|Player */ public function selectBestFittingPlayer(array $playersToInvestigate) { $pickedPlayer = null; $bestScore = 0; foreach ($playersToInvestigate as $player) { if ($player->hasTeam() && $player->getTeam()->equals($this->team)) { continue; } $score = $this->transferScoreCalculator->calculateBuyScore($player); if ($score > $bestScore) { $pickedPlayer = $player; $bestScore = $score; } } return $pickedPlayer; }