package Ġcom . kl am ere k . f antasy real ms . game Ċ Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test ĊĊ Ċ class ĠS cor ing Test Ġ{ ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠbeforeEach () Ġ{ ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" wor st Ġhand ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġworst _ hand () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( nec rom ancer ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war lock L ord ) ĊĠĠĠĠĠĠĠ Ġgame . add ( king ) ĊĠĠĠĠĠĠĠ Ġgame . add ( queen ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war lord ) ĊĠĠĠĠĠĠĠ Ġgame . add ( emp ress ) ĊĠĠĠĠĠĠĠ Ġgame . add ( sh ap esh ifter ) ĊĠĠĠĠĠĠĠ Ġgame . add ( d opp el g anger ) ĊĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( d opp el g anger , Ġwar lock L ord ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( sh ap esh ifter , Ġking ) ĊĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals (- 7 4 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" best Ġhand ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġbest _ hand () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( bell Tower ) ĊĠĠĠĠĠĠĠ Ġgame . add ( c andle ) ĊĠĠĠĠĠĠĠ Ġgame . add ( nec rom ancer ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war h orse ) ĊĠĠĠĠĠĠĠ Ġgame . add ( s word Of K eth ) ĊĠĠĠĠĠĠĠ Ġgame . add ( shield Of K eth ) ĊĠĠĠĠĠĠĠ Ġgame . add ( gem Of Order ) ĊĠĠĠĠĠĠĠ Ġgame . add ( book Of Changes ) ĊĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( book Of Changes , Ġb ell Tower , ĠS uit . LE ADER ) ĊĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 3 9 7 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" gem Ġof Ġorder Ġis Ġeffective Ġ( 1 0 0 Ġpoints )") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgem _ of _ order _ is _ effective () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( gem Of Order ) ĊĠĠĠĠĠĠĠ Ġgame . add ( air Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( nec rom ancer ) ĊĠĠĠĠĠĠĠ Ġgame . add ( rain storm ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war h orse ) ĊĠĠĠĠĠĠĠ Ġgame . add ( dragon ) ĊĠĠĠĠĠĠĠ Ġgame . add ( bell Tower ) ĊĠĠĠĠĠĠĠ Ġgame . add ( forest ) ĊĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 2 3 9 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Un icorn Ġand Ġpr in cess ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġun icorn _ with _ pr in cess () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( unic orn ) ĊĠĠĠĠĠĠĠ Ġgame . add ( pr in cess ) ĊĠĠĠĠĠĠĠ Ġgame . add ( queen ) ĊĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 9 Ġ+ Ġ 2 Ġ+ Ġ 6 Ġ+ Ġ 8 Ġ+ Ġ 3 0 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" War lock L ord Ġrule ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwar lock L ord _ rule () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( war lock L ord ) ĊĠĠĠĠĠĠĠ Ġgame . add ( be ast master ) ĊĠĠĠĠĠĠĠ Ġgame . add ( ench ant ress ) ĊĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 Ġ+ Ġ 9 Ġ+ Ġ 5 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" mir age Ġcombo Ġwith Ġsh ap esh ifter ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmir age _ combo _ with _ sh ap esh ifter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( shield Of K eth ) ĊĠĠĠĠĠĠĠ Ġgame . add ( bas il isk ) ĊĠĠĠĠĠĠĠ Ġgame . add ( protection Rune ) ĊĠĠĠĠĠĠĠ Ġgame . add ( mir age ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wh irl wind ) ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . add ( sh ap esh ifter ) ĊĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( sh ap esh ifter , Ġking ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( mir age , Ġrain storm ) ĊĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 3 8 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" full Ġgame Ġsample Ġ 1 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull _ game _ sample _ 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( collector ) ĊĠĠĠĠĠĠĠ Ġgame . add ( unic orn ) ĊĠĠĠĠĠĠĠ Ġgame . add ( bell Tower ) ĊĠĠĠĠĠĠĠ Ġgame . add ( magic W and ) ĊĠĠĠĠĠĠĠ Ġgame . add ( smoke ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war lord ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war lock L ord ) ĊĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 7 4 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" full Ġgame Ġsample Ġ 2 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull _ game _ sample _ 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( forest ) ĊĠĠĠĠĠĠĠ Ġgame . add ( el ven Arch ers ) ĊĠĠĠĠĠĠĠ Ġgame . add ( ench ant ress ) ĊĠĠĠĠĠĠĠ Ġgame . add ( king ) ĊĠĠĠĠĠĠĠ Ġgame . add ( fire Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( world Tree ) ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 3 3 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" full Ġgame Ġsample Ġ 3 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull _ game _ sample _ 3 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( forge ) ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . add ( unic orn ) ĊĠĠĠĠĠĠĠ Ġgame . add ( rain storm ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war Di rig ible ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war lord ) ĊĠĠĠĠĠĠĠ Ġgame . add ( s word Of K eth ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 8 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" full Ġgame Ġsample Ġ 4 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull _ game _ sample _ 4 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( dragon ) ĊĠĠĠĠĠĠĠ Ġgame . add ( fire Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . add ( c andle ) ĊĠĠĠĠĠĠĠ Ġgame . add ( queen ) ĊĠĠĠĠĠĠĠ Ġgame . add ( el ven Arch ers ) ĊĠĠĠĠĠĠĠ Ġgame . add ( world Tree ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 3 9 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" full Ġgame Ġsample Ġ 5 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull _ game _ sample _ 5 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( war lock L ord ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war h orse ) ĊĠĠĠĠĠĠĠ Ġgame . add ( fo unt ain Of Life ) ĊĠĠĠĠĠĠĠ Ġgame . add ( be ast master ) ĊĠĠĠĠĠĠĠ Ġgame . add ( gem Of Order ) ĊĠĠĠĠĠĠĠ Ġgame . add ( r ang ers ) ĊĠĠĠĠĠĠĠ Ġgame . add ( emp ress ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 8 0 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" full Ġgame Ġsample Ġ 6 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull _ game _ sample _ 6 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( c andle ) ĊĠĠĠĠĠĠĠ Ġgame . add ( protection Rune ) ĊĠĠĠĠĠĠĠ Ġgame . add ( el ven Long bow ) ĊĠĠĠĠĠĠĠ Ġgame . add ( forge ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . add ( earth Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 9 9 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" full Ġgame Ġsample Ġ 7 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull _ game _ sample _ 7 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( mount ain ) ĊĠĠĠĠĠĠĠ Ġgame . add ( ca ver n ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . add ( r ang ers ) ĊĠĠĠĠĠĠĠ Ġgame . add ( be ast master ) ĊĠĠĠĠĠĠĠ Ġgame . add ( bas il isk ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 8 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" full Ġgame Ġsample Ġ 8 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull _ game _ sample _ 8 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( dragon ) ĊĠĠĠĠĠĠĠ Ġgame . add ( unic orn ) ĊĠĠĠĠĠĠĠ Ġgame . add ( bas il isk ) ĊĠĠĠĠĠĠĠ Ġgame . add ( smoke ) ĊĠĠĠĠĠĠĠ Ġgame . add ( sw amp ) ĊĠĠĠĠĠĠĠ Ġgame . add ( hyd ra ) ĊĠĠĠĠĠĠĠ Ġgame . add ( forest ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 7 2 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" full Ġgame Ġsample Ġ 9 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull _ game _ sample _ 9 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( ench ant ress ) ĊĠĠĠĠĠĠĠ Ġgame . add ( ca ver n ) ĊĠĠĠĠĠĠĠ Ġgame . add ( bell Tower ) ĊĠĠĠĠĠĠĠ Ġgame . add ( world Tree ) ĊĠĠĠĠĠĠĠ Ġgame . add ( water Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( fire Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( forest ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 7 6 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" full Ġgame Ġsample Ġ 1 0 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull _ game _ sample _ 1 0 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( mount ain ) ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . add ( rain storm ) ĊĠĠĠĠĠĠĠ Ġgame . add ( smoke ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wh irl wind ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . add ( ench ant ress ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 3 7 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" fo unt ain Ġof Ġlife Ġtake Ġonly Ġone Ġcard Ġ( the Ġbest Ġone )") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġf ount ain _ of _ life _ take _ only _ one _ card () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( fo unt ain Of Life ) ĊĠĠĠĠĠĠĠ Ġgame . add ( sw amp ) ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . add ( is land ) ĊĠĠĠĠĠĠĠ Ġgame . add ( water Element al ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 6 1 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" D war v ish Ġinf an try Ġapplies Ġon ĠOTHER Ġarm ies ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdw ar v ish _ inf an try _ app lies _ on _ OTHER _ arm ies () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( dw ar v ish Inf an try ) ĊĠĠĠĠĠĠĠ Ġgame . add ( world Tree ) ĊĠĠĠĠĠĠĠ Ġgame . add ( unic orn ) ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . add ( forest ) ĊĠĠĠĠĠĠĠ Ġgame . add ( emp ress ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 7 1 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" J ester Ġwith Ġall Ġcards Ġas Ġodd ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġjest er _ with _ all _ cards _ as _ odd () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( forge ) ĊĠĠĠĠĠĠĠ Ġgame . add ( unic orn ) ĊĠĠĠĠĠĠĠ Ġgame . add ( j ester ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 7 1 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" J ester Ġwith Ġone Ġcard Ġnot Ġodd ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġjest er _ with _ one _ card _ not _ odd () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( forge ) ĊĠĠĠĠĠĠĠ Ġgame . add ( unic orn ) ĊĠĠĠĠĠĠĠ Ġgame . add ( j ester ) ĊĠĠĠĠĠĠĠ Ġgame . add ( hyd ra ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 3 9 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" El ven Ġarch ers Ġwith Ġweather ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġel ven _ arch ers _ with _ weather () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( el ven Arch ers ) ĊĠĠĠĠĠĠĠ Ġgame . add ( rain storm ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 8 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Gen ie Ġwith Ġ 4 Ġplayers ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgen ie _ with _ 4 _ players () Ġ{ ĊĠĠĠĠĠĠĠ ĠPlayer . all . add ( Player (" 1 ", ĠGame ())) ĊĠĠĠĠĠĠĠ ĠPlayer . all . add ( Player (" 2 ", ĠGame ())) ĊĠĠĠĠĠĠĠ ĠPlayer . all . add ( Player (" 3 ", ĠGame ())) ĊĠĠĠĠĠĠĠ ĠPlayer . all . add ( Player (" 4 ", ĠGame ())) ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( gen ie ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals (- 2 0 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" J udge Ġwith Ġand Ġwithout Ġpenalty ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġjudge _ with _ and _ without _ penalty () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( judge ) ĊĠĠĠĠĠĠĠ Ġgame . add ( ce le st ial Kn ights ) ĊĠĠĠĠĠĠĠ Ġgame . add ( light C aval ry ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 6 0 , Ġgame . score ()) ĊĊĠĠĠĠĠĠĠ Ġgame . add ( protection Rune ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 9 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" An gel Ġis Ġun blank able ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġan gel _ is _ un blank able () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( ange l ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 6 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" An gel Ġselection Ġis Ġun blank able ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġan gel _ selection () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( ange l ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . add ( ce le st ial Kn ights ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( ange l , Ġcele st ial Kn ights ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 6 8 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" An gel Ġselection Ġis Ġun blank able Ġ 2 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġan gel _ selection _ 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( ange l ) ĊĠĠĠĠĠĠĠ Ġgame . add ( bas il isk ) ĊĠĠĠĠĠĠĠ Ġgame . add ( queen ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( ange l , Ġque en ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 7 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" D emon Ġwith Ġwild fire ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdemon _ with _ wild fire () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . add ( de mon ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 5 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" D emon Ġapplies Ġafter Ġwar ship Ġclearing Ġpen alt ies ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdemon _ app lies _ after _ war ship _ clear ing _ pen alt ies () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . add ( de mon ) ĊĠĠĠĠĠĠĠ Ġgame . add ( water Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( sw amp ) ĊĠĠĠĠĠĠĠ Ġgame . add ( el ven Arch ers ) ĊĠĠĠĠĠĠĠ Ġgame . add ( light C aval ry ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 1 4 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" D emon Ġwith Ġwild Ġcards ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdemon _ with _ wild _ cards () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( de mon ) ĊĠĠĠĠĠĠĠ Ġgame . add ( g arden ) ĊĠĠĠĠĠĠĠ Ġgame . add ( earth Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( sh ap esh ifter V 2 ) ĊĠĠĠĠĠĠĠ Ġgame . add ( mir age V 2 ) ĊĠĠĠĠĠĠĠ Ġgame . add ( d opp el g anger ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( d opp el g anger , Ġg arden ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 9 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Indirect Ġblank ing Ġcase Ġ( Great Ġf lood Ġ-> Ġc andle Ġ-> Ġs moke )") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġindirect _ blank ing _ case _ with _ great f lood _ c andle _ smoke () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( smoke ) ĊĠĠĠĠĠĠĠ Ġgame . add ( c andle ) ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 3 2 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Some Ġspecific Ġcases Ġwith ĠWar ship Ġand ĠBook Ġof Ġchanges ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsome _ specific _ cases _ with _ War ship _ and _ book _ of _ changes () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( de mon ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . add ( water Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( el ven Arch ers ) ĊĠĠĠĠĠĠĠ Ġgame . add ( light C aval ry ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 2 8 , Ġgame . score (), Ġ" Case Ġ 1 ") ĊĊĠĠĠĠĠĠĠ Ġgame . clear () ĊĠĠĠĠĠĠĠ Ġgame . add ( book Of Changes ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . add ( el ven Arch ers ) ĊĠĠĠĠĠĠĠ Ġgame . add ( dw ar v ish Inf an try ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( book Of Changes , Ġdw ar v ish Inf an try , ĠS uit . FLO OD ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 6 , Ġgame . score (), Ġ" Case Ġ 2 ") ĊĊĠĠĠĠĠĠĠ Ġgame . clear () ĊĠĠĠĠĠĠĠ Ġgame . add ( book Of Changes ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war Di rig ible ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( book Of Changes , Ġwar Di rig ible , ĠS uit . FLO OD ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 6 1 , Ġgame . score (), Ġ" Case Ġ 3 ") ĊĊĠĠĠĠĠĠĠ Ġgame . clear () ĊĠĠĠĠĠĠĠ Ġgame . add ( book Of Changes ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war Di rig ible ) ĊĠĠĠĠĠĠĠ Ġgame . add ( light C aval ry ) ĊĠĠĠĠĠĠĠ Ġgame . add ( air Element al ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( book Of Changes , Ġwar ship , ĠS uit . FLO OD ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 7 , Ġgame . score (), Ġ" Case Ġ 4 ") ĊĊĠĠĠĠĠĠĠ Ġgame . clear () ĊĠĠĠĠĠĠĠ Ġgame . add ( book Of Changes ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war ship ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war Di rig ible ) ĊĠĠĠĠĠĠĠ Ġgame . add ( light C aval ry ) ĊĠĠĠĠĠĠĠ Ġgame . add ( air Element al ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( book Of Changes , Ġwar Di rig ible , ĠS uit . FLO OD ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 2 4 , Ġgame . score (), Ġ" Case Ġ 5 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Dark Ġque en Ġexample ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdark _ queen _ example () Ġ{ ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( c andle ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( ca ver n ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( shield Of K eth ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( dark Queen ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 2 0 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Gh oul Ġexample ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgh oul _ example () Ġ{ ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( ce le st ial Kn ights ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( ca ver n ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( dark Queen ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( king ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( gh oul ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 8 Ġ+ Ġ 4 Ġ+ Ġ 4 Ġ+ Ġ 4 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Spect er Ġexample ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġspect er _ example () Ġ{ ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( protection Rune ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( ca ver n ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( dark Queen ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( de mon ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( spect er ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 2 4 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" L ich Ġexample ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ lich _ example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( lich ) ĊĠĠĠĠĠĠĠ Ġgame . add ( nec rom ancer ) ĊĠĠĠĠĠĠĠ Ġgame . add ( dark Queen ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 6 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" L ich ĠUN BLANK ABLE ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ lich _ un blank able () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( lich ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . add ( dark Queen ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 7 3 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Death ĠK night Ġexample ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdeath _ kn ight _ example () Ġ{ ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( ce le st ial Kn ights ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( s word Of K eth ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( dark Queen ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( de mon ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( death K night ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 2 8 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" D ungeon Ġexample ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġd ungeon _ example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( d ungeon ) ĊĠĠĠĠĠĠĠ Ġgame . add ( dark Queen ) ĊĠĠĠĠĠĠĠ Ġgame . add ( unic orn ) ĊĠĠĠĠĠĠĠ Ġgame . add ( war lock L ord ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 7 6 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Castle Ġexample ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcast le _ example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( castle ) ĊĠĠĠĠĠĠĠ Ġgame . add ( d ungeon ) ĊĠĠĠĠĠĠĠ Ġgame . add ( king ) ĊĠĠĠĠĠĠĠ Ġgame . add ( queen ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 1 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Crypt Ġexample ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcrypt _ example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( crypt ) ĊĠĠĠĠĠĠĠ Ġgame . add ( dark Queen ) ĊĠĠĠĠĠĠĠ Ġgame . add ( gh oul ) ĊĠĠĠĠĠĠĠ Ġgame . add ( king ) ĊĠĠĠĠĠĠĠ Ġgame . add ( queen ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 7 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Ch ap el Ġnot Ġactivated Ġbecause Ġtoo Ġmany Ġcards ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġch ap el _ not _ activated _ because _ too _ many _ cards () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( chap el ) ĊĠĠĠĠĠĠĠ Ġgame . add ( king ) ĊĠĠĠĠĠĠĠ Ġgame . add ( queen ) ĊĠĠĠĠĠĠĠ Ġgame . add ( judge ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 2 7 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Ch ap el Ġactivated ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġch ap el _ activated () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( chap el ) ĊĠĠĠĠĠĠĠ Ġgame . add ( king ) ĊĠĠĠĠĠĠĠ Ġgame . add ( queen ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 6 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" G arden Ġexample ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġg arden _ activated () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( g arden ) ĊĠĠĠĠĠĠĠ Ġgame . add ( king ) ĊĠĠĠĠĠĠĠ Ġgame . add ( queen ) ĊĠĠĠĠĠĠĠ Ġgame . add ( unic orn ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 8 2 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" G arden Ġblank ed ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġg arden _ blank ed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( g arden ) ĊĠĠĠĠĠĠĠ Ġgame . add ( king ) ĊĠĠĠĠĠĠĠ Ġgame . add ( queen ) ĊĠĠĠĠĠĠĠ Ġgame . add ( unic orn ) ĊĠĠĠĠĠĠĠ Ġgame . add ( dark Queen ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 8 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" F ount ain Ġof Ġlife Ġv 2 Ġexample ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġf ount ain _ of _ life _ v 2 _ example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( fo unt ain Of Life V 2 ) ĊĠĠĠĠĠĠĠ Ġgame . add ( rain storm ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wh irl wind ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 5 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Count ĠOTHER Ġcards Ġwith Ġbook Ġof Ġchange ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcount _ OTHER _ cards _ with _ book _ of _ change () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( wh irl wind ) ĊĠĠĠĠĠĠĠ Ġgame . add ( air Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( book Of Changes ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( book Of Changes , Ġair Element al , ĠS uit . BE AST ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 3 5 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Ph o enix Ġcounts Ġalso Ġas ĠFl ame Ġand ĠWeather Ġ( element al Ġcase )") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġph o enix _ counts _ also _ as _ fl ame _ and _ weather _ element al _ case (){ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( phoenix ) ĊĠĠĠĠĠĠĠ Ġgame . add ( air Element al ) ĊĠĠĠĠĠĠĠ Ġgame . add ( fire Element al ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 Ġ+ Ġ 4 Ġ+ Ġ 3 0 Ġ+ Ġ 1 4 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Ph o enix Ġcounts Ġalso Ġas ĠFl ame Ġand ĠWeather Ġ( collector Ġand Ġblank Ġeffect )") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġph o enix _ counts _ also _ as _ fl ame _ and _ weather _ collector _ and _ blank (){ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( phoenix ) ĊĠĠĠĠĠĠĠ Ġgame . add ( collector ) ĊĠĠĠĠĠĠĠ Ġgame . add ( rain storm ) ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . add ( smoke ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 0 Ġ+ Ġ 7 Ġ+ Ġ 8 Ġ+ Ġ 3 0 Ġ+ Ġ 2 7 Ġ+ Ġ 4 0 Ġ- 1 0 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Ph o enix Ġis Ġblank ed Ġwith Ġwater Ġelement al ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġph o enix _ is _ blank ed _ with _ water _ element al (){ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( phoenix ) ĊĠĠĠĠĠĠĠ Ġgame . add ( water Element al ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Discard Ġgame Ġeffects Ġare Ġdisabled ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdiscard _ game _ effects _ are _ disabled (){ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( death K night ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( el ven Long bow ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( s word Of K eth ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( magic W and ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( war Di rig ible ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). add ( de mon ) ĊĠĠĠĠĠĠĠ ĠDis card Area . instance . game (). calculate () ĊĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 2 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Bas il ik Ġ+ Ġd opp el g anger Ġblank Ġeach Ġother ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġbas il ik _ plus _ d opp el g anger _ bank _ each _ other (){ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( bas il isk ) ĊĠĠĠĠĠĠĠ Ġgame . add ( d opp el g anger ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( d opp el g anger , Ġbas il isk ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 0 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Clear ing Ġand Ġblank ing Ġorder Ġ( great Ġf lood , Ġwild fire Ġand Ġb li zz ard )") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġclearing _ and _ blank ing _ order (){ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 6 5 , Ġgame . score (), Ġ" Order 1 ") ĊĊĠĠĠĠĠĠĠ Ġgame . clear () ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 6 5 , Ġgame . score (), Ġ" Order 2 ") ĊĊĠĠĠĠĠĠĠ Ġgame . clear () ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 6 5 , Ġgame . score (), Ġ" Order 3 ") ĊĊĠĠĠĠĠĠĠ Ġgame . clear () ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 6 5 , Ġgame . score (), Ġ" Order 4 ") ĊĊĠĠĠĠĠĠĠ Ġgame . clear () ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 6 5 , Ġgame . score (), Ġ" Order 5 ") ĊĊĠĠĠĠĠĠĠ Ġgame . clear () ĊĠĠĠĠĠĠĠ Ġgame . add ( great F lood ) ĊĠĠĠĠĠĠĠ Ġgame . add ( wild fire ) ĊĠĠĠĠĠĠĠ Ġgame . add ( b li zz ard ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 6 5 , Ġgame . score (), Ġ" Order 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Ch ap el Ġbonus Ġis Ġactivated Ġwith Ġone Ġleader Ġand Ġone Ġwizard ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġch ap el _ bonus _ is _ activated _ with _ one _ leader _ and _ one _ wizard (){ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( chap el ) ĊĠĠĠĠĠĠĠ Ġgame . add ( king ) ĊĠĠĠĠĠĠĠ Ġgame . add ( collector ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 7 , Ġgame . score ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" D opp el g anger Ġeffect Ġis Ġnot Ġcumulative Ġwith ĠCollector ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġd opp el g anger _ effect _ is _ not _ cumulative _ with _ collector (){ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame () ĊĠĠĠĠĠĠĠ Ġgame . add ( collector ) ĊĠĠĠĠĠĠĠ Ġgame . add ( ce le st ial Kn ights ) ĊĠĠĠĠĠĠĠ Ġgame . add ( el ven Arch ers ) ĊĠĠĠĠĠĠĠ Ġgame . add ( light C aval ry ) ĊĠĠĠĠĠĠĠ Ġgame . add ( dw ar v ish Inf an try ) ĊĠĠĠĠĠĠĠ Ġgame . add ( d opp el g anger ) ĊĠĠĠĠĠĠĠ Ġgame . apply Selection ( d opp el g anger , Ġel ven Arch ers ) ĊĠĠĠĠĠĠĠ Ġgame . calculate () ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 0 8 , Ġgame . score ()) ĊĠĠĠ Ġ} Ċ Ċ } Ċ