public function testGetPercentageOfDropouts()
 {
     $total = 100;
     $num = (int) rand(1, 50);
     $expected = round(($total - $num) / $total * 100, AnalyticsExport::PERCENTAGE_PRECISION);
     $this->assertInstanceOf(AnalyticsExport::class, $this->instance->setStarts($total));
     $this->assertEquals($total, $this->instance->getStarts());
     $this->assertInstanceOf(AnalyticsExport::class, $this->instance->setCompletions($num));
     $this->assertEquals($num, $this->instance->getCompletions());
     $this->assertEquals($expected, $this->instance->getPercentageOfDropouts());
 }
 /**
  * @param AnalyticsExport $exportEntity
  * @param array $dataSet
  * @return AnalyticsExport
  */
 protected function populateExportSet(AnalyticsExport $exportEntity, array $dataSet)
 {
     $dropoutTotals = $this->extractDropoutTotals($dataSet);
     $exportEntity->setStarts($dataSet['starts'])->setCompletions($dataSet['completions'])->setGenderStartsMale($dataSet['gender_starts_male'])->setGenderStartsFemale($dataSet['gender_starts_female'])->setGenderCompletionsMale($dataSet['gender_completions_male'])->setGenderCompletionsFemale($dataSet['gender_completions_female'])->setProvidedEmailAddress($dataSet['provided_email_address'])->setProvidedPostCodes($dataSet['provided_post_codes'])->setWeightedDropoutCompletionAverage($this->calculateWeightedAverage($dropoutTotals))->setActualDropoutCompletionAverage($this->calculateActualAverage($dropoutTotals));
     return $exportEntity;
 }