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; }