/** * @test */ public function I_can_get_unused_skill_points_from_first_level() { $skills = new PsychicalSkills(); $professionLevels = $this->createProfessionLevels($firstLevelWill = 123, $firstLevelIntelligence = 456, $nextLevelWill = 321, $nextLevelIntelligence = 654); self::assertSame($firstLevelWill + $firstLevelIntelligence, $skills->getUnusedFirstLevelPsychicalSkillPointsValue($professionLevels)); $skills->addPsychicalSkill($this->createPsychicalSkill($usedRank = 3, 1, Astronomy::class)); $skills->addPsychicalSkill($this->createPsychicalSkill($unusedRank = 2, 2, Botany::class)); self::assertSame($firstLevelWill + $firstLevelIntelligence - array_sum(range(1, $usedRank)), $skills->getUnusedFirstLevelPsychicalSkillPointsValue($professionLevels), 'Expected ' . ($firstLevelWill + $firstLevelIntelligence - array_sum(range(1, $usedRank)))); }