public function testFromPourcentage() { $score = Score::fromPourcentage(33.33); $this->assertEquals(33.33, $score->toPourcentage()); $this->assertNull($score->toVoix()); }
/** * Mettre à jour le pourcentage de voix d'un candidat par rapport au nombre * de suffrages exprimés sur un territoire donné, ou par défaut sur la * circonscription de l'élection. Si le nombre de suffrages exprimés est * déjà réglé dans l'élection, le nombre de voix est mis à jour * automatiquement. Sinon, pourcentage et voix sont effacés et remplacés * par cette donnée. * * @param float $pourcentage Le nombre de voix du candidat. * @param CandidatInterface $candidat Le candidat dont il s'agit. * @param AbstractTerritoire $territoire Le territoire du score. */ public function setPourcentageCandidat($pourcentage, CandidatInterface $candidat, AbstractTerritoire $territoire = null) { if (!in_array($candidat, $this->getCandidats(), true)) { throw new \Exception('Le candidat doit déjà participer à l\'élection' . 'avant d\'avoir un score'); } if (null === $territoire) { $territoire = $this->circonscription; } $voteInfo = $this->getVoteInfo($territoire); if ($voteInfo) { $exprimes = $voteInfo->getExprimes(); } if (isset($exprimes)) { $score = Score::fromPourcentageAndExprimes($pourcentage, $exprimes); } else { $score = Score::fromPourcentage($pourcentage); } $scoreAssignment = $this->getScoreAssignmentCandidat($candidat, $territoire); $scoreAssignment->setScoreVO($score); }