package Ġcom . va ud ib ert . can id rive . domain . digest ion Ċ Ċ /** Ċ Ġ* ĠRepresents Ġthe Ġperson Ġdrink ing . Ċ Ġ* ĠThe Ġparameters Ġsuch Ġas Ġweight Ġand Ġsex Ġmay Ġchange Ġas Ġthe Ġuser Ġadjust s Ġthe Ġinputs . Ċ Ġ*/ Ċ Ċ class ĠPhysical Body Ġ{ ĊĠĠĠ Ġ// ĠTODO Ġ: Ġfind Ġa Ġmore Ġkotlin Ġway Ġto Ġdeclare Ġthese Ġconstants ĊĠĠĠ Ġprivate Ġval ĠM ALE Ġ= Ġ" M ALE " ĊĠĠĠ Ġprivate Ġval ĠM ALE _ SE X _ FACTOR Ġ= Ġ 0 . 7 ĊĠĠĠ Ġprivate Ġval ĠM ALE _ MIN _ DECRE ASE Ġ= Ġ 0 . 1 ĊĠĠĠ Ġprivate Ġval ĠM ALE _ MAX _ DECRE ASE Ġ= Ġ 0 . 1 5 ĊĊĠĠĠ Ġprivate Ġval ĠF EM ALE _ SE X _ FACTOR Ġ= Ġ 0 . 6 ĊĠĠĠ Ġprivate Ġval ĠF EM ALE _ MIN _ DECRE ASE Ġ= Ġ 0 . 0 8 5 ĊĠĠĠ Ġprivate Ġval ĠF EM ALE _ MAX _ DECRE ASE Ġ= Ġ 0 . 1 ĊĊĠĠĠ Ġvar Ġsex Ġ= Ġ" NONE " ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeffective Weight Ġ= Ġweight Ġ* Ġ( if Ġ( sex Ġ== ĠM ALE ) ĠM ALE _ SE X _ FACTOR Ġelse ĠF EM ALE _ SE X _ FACTOR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecrease Factor Ġ= Ġdecrease Factor With ( value , Ġal co hol Tolerance ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonUpdate ( sex , Ġweight , Ġal co hol Tolerance ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġweight Ġ= Ġ 8 0 . 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeffective Weight Ġ= Ġweight Ġ* Ġ( if Ġ( sex Ġ== ĠM ALE ) ĠM ALE _ SE X _ FACTOR Ġelse ĠF EM ALE _ SE X _ FACTOR ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonUpdate ( sex , Ġweight , Ġal co hol Tolerance ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġal co hol Tolerance Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġin Ġ 0 . 0 .. 1 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecrease Factor Ġ= Ġdecrease Factor With ( sex , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonUpdate ( sex , Ġweight , Ġal co hol Tolerance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdecrease Factor With ( sex : ĠString , Ġtolerance : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( sex Ġ== Ġ" M ALE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtolerance Ġ* ĠM ALE _ MAX _ DECRE ASE Ġ+ Ġ( 1 - tolerance ) Ġ* ĠM ALE _ MIN _ DECRE ASE ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtolerance Ġ* ĠF EM ALE _ MAX _ DECRE ASE Ġ+ Ġ( 1 - tolerance ) Ġ* ĠF EM ALE _ MIN _ DECRE ASE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠonUpdate Ġ= Ġ{ Ġ_ Ġ: ĠString , Ġ_ Ġ: ĠDouble , Ġ_ Ġ: ĠDouble Ġ-> Ġ} ĊĊĠĠĠ Ġvar Ġdecrease Factor : ĠDouble Ġ= ĠF EM ALE _ MIN _ DECRE ASE ĊĊĠĠĠ Ġvar Ġeffective Weight : Double Ġ= Ġweight Ġ* ĠF EM ALE _ SE X _ FACTOR Ċ Ċ }