/**
  * @test
  */
 public function I_can_create_zero_level()
 {
     $zeroLevel = new Level(0, $this->getExperiencesTable());
     self::assertSame(0, $zeroLevel->getValue());
 }
 /**
  * Casting level to experiences is mostly lossy conversion!
  * Gives all experiences needed to achieve all levels sequentially up to given.
  * @param Level $level
  * @return Experiences
  */
 public function toTotalExperiences(Level $level)
 {
     $experiencesSum = 0;
     for ($levelValueToCast = $level->getValue(); $levelValueToCast > 0; $levelValueToCast--) {
         if ($levelValueToCast > 1) {
             // main profession has first level for free
             $currentLevel = new Level($levelValueToCast, $this);
             $experiencesSum += $currentLevel->getExperiences()->getValue();
         }
     }
     return new Experiences($experiencesSum, $this);
 }