/** * @param Person $person * @param Drinking $drinking * @return bool */ protected static function unitsInLowRiskForGender(Person $person, Drinking $drinking) { $units = DrinkingScore::getWeeklyUnits($drinking); switch ($person->getGender()) { case Person::GENDER_FEMALE: return $units < DrinkingScore::RAG_RED_FEMALE_CUTOFF && $units > DrinkingScore::RAG_GREEN_CUTOFF; case Person::GENDER_MALE: return $units < DrinkingScore::RAG_RED_MALE_CUTOFF && $units > DrinkingScore::RAG_GREEN_CUTOFF; } }
/** * @inheritDoc */ public static function isSatisfiedBy(Questionnaire $questionnaire) { $maxUnits = DrinkingScore::getDailyMaxUnits($questionnaire->getDrinking()); $gender = $questionnaire->getPerson()->getGender(); switch ($gender) { case Person::GENDER_FEMALE: return $maxUnits > DrinkingScore::DAILY_CUTOFF_UNITS_FEMALE; case Person::GENDER_MALE: return $maxUnits > DrinkingScore::DAILY_CUTOFF_UNITS_MALE; } }
public function testGetFavouriteDrinkTypeWhenDuplicated() { $person = new Person(); $person->setGender(Person::GENDER_MALE); $questionnaire = new Questionnaire($person); $drinking = $questionnaire->getDrinking(); $drinking->setDoYouDrink(Drinking::DOES_DRINK)->setWhichDaysDoYouDrink('sat, sun')->setWeekendDrinks((new Drinks())->setBeerCiderPintAmount(3)->setWineAmount(3))->setCompletedDate(new \DateTime()); $this->assertEquals(Drinking::DRINK_TYPE_PINT, DrinkingScore::calculatePreferredDrinkType($drinking)); }
/** * @JMS\VirtualProperty * @JMS\SerializedName("rag_score") * @JMS\Groups({"results"}) * @return array */ public function getRagScore() { $scoring = new DrinkingScore(); return $scoring->calculateScore($this->questionnaire); }
/** * @inheritDoc */ public static function isSatisfiedBy(Questionnaire $questionnaire) { $drinking = $questionnaire->getDrinking(); return DrinkingScore::RAG_GREEN_CUTOFF >= DrinkingScore::getWeeklyUnits($drinking) && DrinkingHasBingeSpecification::isSatisfiedBy($questionnaire); }
/** * @inheritDoc */ public static function isSatisfiedBy(Questionnaire $questionnaire) { $maxUnits = DrinkingScore::getDailyMaxUnits($questionnaire->getDrinking()); return $maxUnits > DrinkingScore::DAILY_MAX_UNITS; }