package Ġorg . v accine impact . api . database Tests . tests . bur den Estimate Repository Ċ Ċ import Ġorg . assertj . core . api . Assertions Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Test Ċ import Ġorg . postgresql . util . P SQLException Ċ import Ġorg . v accine impact . api . app . errors . Database Contents Error Ċ import Ġorg . v accine impact . api . app . errors . In consistent Data Error Ċ import Ġorg . v accine impact . api . app . errors . Unknown Object Error Ċ import Ġorg . v accine impact . api . app . errors . Unknown Run Id Error Ċ import Ġorg . v accine impact . api . app . repositories . bur den estim ates . Central Bur den Estimate Writer Ċ import Ġorg . v accine impact . api . db . Tables Ċ import Ġorg . v accine impact . api . db . direct . add Bur den Estimate Ċ import Ġorg . v accine impact . api . db . direct . add Bur den Estimate Set Ċ import Ġorg . v accine impact . api . db . direct . add Countries Ċ import Ġorg . v accine impact . api . models . Bur den Estimate With Run Id Ċ Ċ class ĠBur den Estimate Writer Tests Ġ: ĠBur den Estimate Repository Tests () Ċ { ĊĠĠĠ Ġprivate Ġfun Ġcreate Central Set Without Model Runs (): ĠInt ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreturned Ids Ġ= Ġsetup Database ( db ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . add Bur den Estimate Set ( returned Ids . respons ibility , Ġreturned Ids . model Version !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername , Ġtimestamp Ġ= Ġtimestamp ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Central Set With Model Runs (): ĠPair < Int , ĠModel Run TestData > ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreturned Ids Ġ= Ġsetup Database ( db ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Run Data Ġ= Ġadd Model Runs ( db , Ġreturned Ids . respons ibility SetId , Ġreturned Ids . model Version !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠsetId Ġ= Ġdb . add Bur den Estimate Set ( returned Ids . respons ibility , Ġreturned Ids . model Version , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername , Ġtimestamp Ġ= Ġtimestamp , Ġmodel Run Parameter SetId Ġ= Ġmodel Run Data . run Parameter SetId ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( setId , Ġmodel Run Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġpopulate Ġcentral Ġbur den Ġestimate Ġset `() ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠsetId Ġ= Ġcreate Central Set Without Model Runs () ĊĠĠĠĠĠĠĠ Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠCentral Bur den Estimate Writer ( db . dsl ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsut . add Est im ates To Set ( setId , Ġdata (), Ġdisease Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Bur den Est im ates ( db , ĠsetId ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġpopulate Ġcentral Ġbur den Ġestimate Ġset Ġwith Ġmodel Ġrun Ġinformation `() ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( setId , Ġmodel Run Data ) Ġ= Ġcreate Central Set With Model Runs () ĊĠĠĠĠĠĠĠ Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġdata ( model Run Data . external Ids ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠCentral Bur den Estimate Writer ( db . dsl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsut . add Est im ates To Set ( setId , Ġdata , Ġdisease Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Bur den Est im ates ( db , ĠsetId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Model Runs ( db , Ġmodel Run Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` cannot Ġcreate Ġbur den Ġestimates Ġwith Ġdise ases Ġthat Ġdo Ġnot Ġmatch Ġscenario `() ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠsetId Ġ= Ġcreate Central Set Without Model Runs () ĊĠĠĠĠĠĠĠ Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbad Data Ġ= Ġdata (). map Ġ{ Ġit . copy ( d isease Ġ= Ġ" Y F ") Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠCentral Bur den Estimate Writer ( db . dsl ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertThat Thrown By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsut . add Est im ates To Set ( setId , Ġbad Data , Ġdisease Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. isInstanceOf ( In consistent Data Error :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` cannot Ġpopulate Ġbur den Ġestimates Ġwith Ġnon - existent Ġcountries `() ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠsetId Ġ= Ġcreate Central Set Without Model Runs () ĊĠĠĠĠĠĠĠ Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbad Data Ġ= Ġdata (). map Ġ{ Ġit . copy ( country Ġ= Ġ" FA KE ") Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠCentral Bur den Estimate Writer ( db . dsl ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertThat Thrown By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsut . add Est im ates To Set ( setId , Ġbad Data , Ġdisease Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. isInstanceOf ( Unknown Object Error :: class . java ). matches Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠUnknown Object Error ). typeName Ġ== Ġ" country " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` cannot Ġpopulate Ġbur den Ġestimate Ġset Ġif Ġco hort _ size Ġis Ġmissing Ġfrom Ġbur den _ outcome Ġtable `() ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠsetId Ġ= Ġcreate Central Set Without Model Runs () ĊĠĠĠĠĠĠĠ Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . dsl . delete From ( Tables . BUR DEN _ OUT CO ME ). where ( Tables . BUR DEN _ OUT CO ME . CODE . eq (" co hort _ size ")). execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbad Data Ġ= Ġdata (). map Ġ{ Ġit . copy ( country Ġ= Ġ" FA KE ") Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠCentral Bur den Estimate Writer ( db . dsl ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertThat Thrown By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsut . add Est im ates To Set ( setId , Ġbad Data , Ġdisease Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. isInstanceOf ( Database Contents Error :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` cannot Ġpopulate Ġbur den Ġestimate Ġset Ġif Ġrun ĠID Ġis Ġunknown `() ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( setId , Ġ_) Ġ= Ġcreate Central Set With Model Runs () ĊĊĠĠĠĠĠĠĠ Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbad Data Ġ= Ġdata ( listOf (" bad - id - 1 ", Ġ" bad - id - 2 ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠCentral Bur den Estimate Writer ( db . dsl ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertThat Thrown By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsut . add Est im ates To Set ( setId , Ġbad Data , Ġdisease Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. isInstanceOf ( Unknown Run Id Error :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` cannot Ġpopulate Ġbur den Ġestimate Ġset Ġif Ġrun ĠID Ġis Ġspecified Ġbut Ġmodel Ġrun Ġparameter Ġset Ġis Ġnot `() ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( setId , Ġmodel Run Data ) Ġ= Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreturned Ids Ġ= Ġsetup Database ( db ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Run Data Ġ= Ġadd Model Runs ( db , Ġreturned Ids . respons ibility SetId , Ġreturned Ids . model Version !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠsetId Ġ= Ġdb . add Bur den Estimate Set ( returned Ids . respons ibility , Ġreturned Ids . model Version , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername , Ġtimestamp Ġ= Ġtimestamp , Ġmodel Run Parameter SetId Ġ= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( setId , Ġmodel Run Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġdata ( model Run Data . external Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠCentral Bur den Estimate Writer ( db . dsl ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertThat Thrown By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsut . add Est im ates To Set ( setId , Ġdata , Ġdisease Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. isInstanceOf ( Unknown Run Id Error :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġclear Ġcentral Ġbur den Ġestimate Ġset `() ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠsetId Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreturned Ids Ġ= Ġsetup Database ( db ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . add Bur den Estimate Set ( returned Ids . respons ibility , Ġreturned Ids . model Version !! , Ġusername , ĠsetId Ġ= ĠsetId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . add Countries ( listOf (" ABC ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . add Bur den Estimate ( setId , Ġ" ABC ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠCentral Bur den Estimate Writer ( db . dsl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsut . clear Estimate Set ( setId ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( get Est im ates In Order ( db )). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` duplicate Ġrows Ġthrow Ġerror `() ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠsetId Ġ= Ġcreate Central Set Without Model Runs () ĊĠĠĠĠĠĠĠ Ġwith Database Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbad Data Ġ= Ġ( 1 .. 1 0 0 0 0 ). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġestimate Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠCentral Bur den Estimate Writer ( db . dsl ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertThat Thrown By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsut . add Est im ates To Set ( setId , Ġbad Data , Ġdisease Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. isInstanceOf ( P SQLException :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThat Table IsEmpty ( Tables . BUR DEN _ EST IM ATE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġestimate Object ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisease Id : ĠString Ġ= Ġthis . d isease Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Id : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġyear : ĠShort Ġ= Ġ 2 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġage : ĠShort Ġ= Ġ 2 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Id : ĠString Ġ= Ġ" AF G ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Name : ĠString Ġ= Ġ" Af gh an istan ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco hort Size : ĠFloat Ġ= Ġ 1 0 0 F , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutcomes : ĠMap < String , ĠFloat > Ġ= Ġempty Map () ĊĠĠĠ Ġ): ĠBur den Estimate With Run Id ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBur den Estimate With Run Id ( d isease Id , Ġrun Id , Ġyear , Ġage , Ġcountry Id , Ġcountry Name , Ġco hort Size , Ġoutcomes ) ĊĠĠĠ Ġ} Ċ Ċ }