private function I_can_create_skill_point_by_level_by_agility_adjustment()
 {
     $physicalSkillPoint = PhysicalSkillPoint::createFromNextLevelPropertyIncrease($level = $this->createProfessionNextLevel(Strength::class, Agility::class), new Tables());
     self::assertInstanceOf(PhysicalSkillPoint::class, $physicalSkillPoint);
     self::assertNull($physicalSkillPoint->getBackgroundSkillPoints());
     self::assertNull($physicalSkillPoint->getFirstPaidOtherSkillPoint());
     self::assertNull($physicalSkillPoint->getSecondPaidOtherSkillPoint());
     return [$physicalSkillPoint, $level];
 }
 private static function createPhysicalSkillEntities(Tables $tables, ProfessionFirstLevel $firstLevel)
 {
     $physicalSkillClasses = self::getListOfSkillClasses(PhysicalSkill::class);
     $physicalSkillPoint = PhysicalSkillPoint::createFromFirstLevelBackgroundSkillPoints($firstLevel, BackgroundSkillPoints::getIt(3, Heritage::getIt(5)), $tables);
     $requiredRankValue = new PositiveIntegerObject(1);
     $physicalSkillList = array_map(function ($physicalSkillClass) use($firstLevel, $physicalSkillPoint, $requiredRankValue) {
         /** @var PhysicalSkill $physicalSkill */
         $physicalSkill = new $physicalSkillClass($firstLevel);
         $physicalSkill->addSkillRank($physicalSkillPoint);
         return $physicalSkill;
     }, $physicalSkillClasses);
     $physicalSkills = new PhysicalSkills();
     foreach ($physicalSkillList as $physicalSkill) {
         $physicalSkills->addPhysicalSkill($physicalSkill);
     }
     $physicalSkillPoint = PhysicalSkillPoint::createFromFirstLevelBackgroundSkillPoints($firstLevel, BackgroundSkillPoints::getIt(3, Heritage::getIt(5)), $tables);
     $physicalSkillRank = new PhysicalSkillRank(new Swimming($firstLevel), PhysicalSkillPoint::createFromFirstLevelBackgroundSkillPoints($firstLevel, BackgroundSkillPoints::getIt(4, Heritage::getIt(5)), $tables), new PositiveIntegerObject(1));
     return array_merge($physicalSkillList, [$physicalSkills, $physicalSkillPoint, $physicalSkillRank]);
 }
 /**
  * @param ProfessionLevel $professionLevel
  * @return PhysicalSkillRank
  * @throws \DrdPlus\Skills\Exceptions\UnknownPaymentForSkillPoint
  * @throws \DrdPlus\Skills\Exceptions\CanNotVerifyOwningSkill
  * @throws \DrdPlus\Skills\Exceptions\CanNotVerifyPaidSkillPoint
  */
 protected function createZeroSkillRank(ProfessionLevel $professionLevel)
 {
     /** @noinspection ExceptionsAnnotatingAndHandlingInspection */
     return new PhysicalSkillRank($this, PhysicalSkillPoint::createZeroSkillPoint($professionLevel), new PositiveIntegerObject(0));
 }