package Ġcom . example . stats . view model Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġcom . example . domain . base . Result Ċ import Ġcom . example . domain . entity . Game Result Ċ import Ġcom . example . domain . entity . Games Info Ċ import Ġcom . example . domain . entity . Team Basic Info Ċ import Ġcom . example . domain . use case . Get Game Result UseCase Ċ import Ġcom . example . domain . use case . Get Games Data UseCase Ċ import Ġcom . example . domain . use case . Get Team List UseCase Ċ import Ġcom . example . domain . use case . Insert Game Data UseCase Ċ import Ġcom . example . stats . BR Ċ import Ġcom . example . stats . R Ċ import Ġcom . example . stats . adapter . Recycler Item Ċ import Ġcom . example . stats . adapter . RecyclerView Adapter Ċ import Ġcom . example . stats . base . Base ViewModel Ċ import Ġcom . example . stats . base . Single Live Event Ċ import Ġcom . example . stats . base . team Name Ċ import Ġcom . example . stats . model .* Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġio . reactivex . ob servers . Disposable Single Observer Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . math . round Ċ Ċ @ H ilt ViewModel Ċ class ĠTeam ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġget Team List UseCase : ĠGet Team List UseCase , ĊĠĠĠ Ġprivate Ġval Ġget Games Data UseCase : ĠGet Games Data UseCase , ĊĠĠĠ Ġprivate Ġval Ġinsert Game Data UseCase : ĠInsert Game Data UseCase , ĊĠĠĠ Ġprivate Ġval Ġget Game Result UseCase : ĠGet Game Result UseCase Ċ ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġteam Adapter Ġ= ĠRecyclerView Adapter () ĊĠĠĠ Ġvar Ġteam Basic Model Ġ= ĠArrayList < Basic Team Model >() ĊĊĠĠĠ Ġprivate Ġval Ġgame Result Model Ġ= Ġmutable ListOf < Game Result Model >() ĊĊĠĠĠ Ġval Ġsize Event Ġ= ĠSingle Live Event < Int >() ĊĊĠĠĠ Ġval Ġget Team Event Ġ= ĠSingle Live Event < Unit >() ĊĊĊĠĠĠ Ġfun Ġget Team List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Single Observer Ġ= Ġobject Ġ: ĠDis posable Single Observer < Result < Team Basic Info >>() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠResult < Team Basic Info >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( result . response . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġteam Basic Model Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . response . data . map Ġ{ Ġit . to Entity () Ġ} Ġas ĠArrayList < Basic Team Model > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Team Event . setValue ( Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġprintln (" error ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" error ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexecute ( Unit , Ġdis posable Single Observer , Ġget Team List UseCase ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Room Data ( year : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Single Observer Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠDis posable Single Observer < Result < List < Game Result >> >() Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( t : ĠResult < List < Game Result >>) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( t ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Event . setValue ( t . response . size Ġ/ Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġprintln (" error ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" error ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexecute ( year , Ġdis posable Single Observer , Ġget Game Result UseCase ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Game Data ( data : ĠDate Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Single Observer Ġ= Ġobject Ġ: ĠDis posable Single Observer < Result < Games Info >>() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( t : ĠResult < Games Info >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( t ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" success Ġ${ data . season }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgames Data Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . response . data . map Ġ{ Ġit . to Entity () Ġ} Ġas ĠArrayList < Games Model > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Game Data ( games Data . map Ġ{ Ġit . to Game Result () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġprintln (" error ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" error ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexecute ( data . to Entity (), Ġdis posable Single Observer , Ġget Games Data UseCase ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġinsert Game Data ( data : ĠList < Game Result >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Single Observer Ġ= Ġobject Ġ: ĠDis posable Single Observer < Result < Unit >>() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( t : ĠResult < Unit >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ìĦ± ê³µ Ġ${ data . size }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ìĭ¤ íĮ ¨ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexecute ( data , Ġdis posable Single Observer , Ġinsert Game Data UseCase ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Game Result ( year : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Single Observer Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠDis posable Single Observer < Result < List < Game Result >> >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . N ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( t : ĠResult < List < Game Result >>) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( t ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Win Lo se ( t . response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" game Result Ġ${ t . response [ 1 ]. season }") ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" error ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ìĭ¤ íĮ ¨ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexecute ( year , Ġdis posable Single Observer , Ġget Game Result UseCase ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . N ) ĊĠĠĠ Ġfun Ġgame Win Lo se ( game Result : ĠList < Game Result >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwin Ġ= Ġmutable Map Of < Int , ĠInt >() ĊĠĠĠĠĠĠĠ Ġval Ġlose Ġ= Ġmutable Map Of < Int , ĠInt >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. 3 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwin [ i ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlose [ i ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln ( game Result . size ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġgame Result . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhome Team Id Ġ= Ġgame Result [ i ]. home Team . home Team Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvisitor Team Id Ġ= Ġgame Result [ i ]. visitor Team . visitor Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhome Team Score Ġ= Ġgame Result [ i ]. home Team Score . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvisitor Team Score Ġ= Ġgame Result [ i ]. visitor Team Score . toInt () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( game Result [ 1 ]. season Ġ== Ġ" 2 0 2 1 Ġ- Ġ 2 0 2 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( home Team Score Ġ> Ġvisitor Team Score Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Result [ i ]. game Date . replace ("- ", Ġ""). toInt () Ġ> Ġ 2 0 2 1 1 0 1 9 Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! game Result [ i ]. post Season ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwin . replace ( home Team Id , Ġwin [ home Team Id ] !! Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlose . replace ( visitor Team Id , Ġlose [ visitor Team Id ] !! Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( home Team Score Ġ< Ġvisitor Team Score Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Result [ i ]. game Date . replace ("- ", Ġ""). toInt () Ġ> Ġ 2 0 2 1 1 0 1 9 Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! game Result [ i ]. post Season ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlose . replace ( home Team Id , Ġlose [ home Team Id ] !! Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwin . replace ( visitor Team Id , Ġwin [ visitor Team Id ] !! Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( home Team Score Ġ> Ġvisitor Team Score Ġ&& Ġ! game Result [ i ]. post Season ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwin . replace ( home Team Id , Ġwin [ home Team Id ] !! Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlose . replace ( visitor Team Id , Ġlose [ visitor Team Id ] !! Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// println (" id ss Ġ${ game Result [ i ]. home Team . home City Name } Ġ${ game Result [ i ]. game Date } Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( home Team Score Ġ< Ġvisitor Team Score Ġ&& Ġ! game Result [ i ]. post Season ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlose . replace ( home Team Id , Ġlose [ home Team Id ] !! Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwin . replace ( visitor Team Id , Ġwin [ visitor Team Id ] !! Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// println (" id ss Ġ${ game Result [ i ]. visitor Team . visitor City Name } Ġ${ game Result [ i ]. game Date } Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġgame Result Model . clear () ĊĠĠĠĠĠĠĠ Ġprintln (" result Ġ Ġ${ game Result [ 1 ]. season }$ win Ġ$ lose ") ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 2 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Model Ġ= ĠGame Result Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrank ( win , Ġlose , Ġi ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwin . values . toList ()[ i ]. toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlose . values . toList ()[ i ]. toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+ Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġteam Name ( i Ġ+ Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalculate Rate ( win , lose , i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Result Model . add ( result Model ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġgame Result Model . sortBy Descending Ġ{ Ġ 3 0 Ġ- Ġit . rank . toInt () Ġ} ĊĊĠĠĠĠĠĠĠ Ġteam Adapter . change Data ( game Result Model . map Ġ{ Ġit . to Recycler Item () Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrank ( win : ĠMutable Map < Int , ĠInt >, Ġlose : ĠMutable Map < Int , ĠInt >, Ġteam Number : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmutable List Ġ= Ġmutable ListOf < Team >() ĊĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 .. 2 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable List . add ( Team ( i , Ġcalculate Rate ( win , Ġlose , Ġi ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmutable List . sortBy Ġ{ Ġit . rate Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġteam Ġ= Ġmutable List . find Ġ{ Ġit . team Number Ġ== Ġteam Number Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ( 3 0 Ġ- Ġmutable List . indexOf ( team )). toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠGame Result Model . to Recycler Item () Ġ= ĊĠĠĠĠĠĠĠ ĠRe cycler Item ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariable Id Ġ= ĠBR . repo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Id Ġ= ĠR . layout . item _ team ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġcalculate Rate ( win : ĠMutable Map < Int , ĠInt >, Ġlose : ĠMutable Map < Int , ĠInt >, Ġi : ĠInt ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġround ( win . values . toList ()[ i ] Ġ/ Ġ( win . values . toList ()[ i ] Ġ+ Ġlose . values . toList ()[ i ]). toDouble () Ġ* Ġ 1 0 0 0 ) Ġ/ Ġ 1 0 0 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠTeam ( ĊĠĠĠĠĠĠĠ Ġval Ġteam Number : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġrate : ĠDouble ĊĠĠĠ Ġ) Ċ Ċ }