package Ġit . il ker . repeat card . ui . quiz Ċ Ċ import Ġorg . junit . Test Ċ Ċ import Ġit . il ker . repeat card . models . question . Question Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ Ċ class ĠQuestion Generator Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġfirst Question Correct Answer Ġ= Ġ" 4 2 " ĊĠĠĠ Ġprivate Ġval Ġsecond Question Correct Answer Ġ= Ġ" 1 3 3 7 " ĊĠĠĠ Ġprivate Ġval Ġthird Question Correct Answer Ġ= Ġ" 8 6 7 5 3 0 9 " ĊĊĠĠĠ Ġprivate Ġval Ġquestion 1 Ġ= ĠQuestion ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġimage Uri Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġcorrect Answer Ġ= Ġfirst Question Correct Answer , ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" First Ġquestion Ġdescription " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġquestion 2 Ġ= ĠQuestion ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠ Ġimage Uri Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġcorrect Answer Ġ= Ġsecond Question Correct Answer , ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Second Ġquestion Ġdescription " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġquestion 3 Ġ= ĠQuestion ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Uri Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcorrect Answer Ġ= Ġthird Question Correct Answer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Second Ġquestion Ġdescription " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgenerate _ returns Empty List _ when Empty List Provided () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠQuestion Generator . generate ( mutable ListOf ()) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( result . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgenerate _ returns Single ItemList _ when Single Item Provided () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠQuestion Generator . generate ( mutable ListOf ( question 1 )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġresult . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgenerate _ returns Two ItemList _ when Two Items Provided () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠQuestion Generator . generate ( mutable ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion 2 ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġresult . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgenerate _ adds Options To Questions _ when More Than One Question Provided () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠQuestion Generator . generate ( mutable ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion 2 ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġfirst Question Ġ= Ġresult . first Ġ{ Ġit . correct Answer Ġ== Ġfirst Question Correct Answer Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( second Question Correct Answer Ġin Ġfirst Question . options ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgenerate _ sh uff les Result ing Questions _ by Default () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġseen Sh uffled Result Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġtest Ġcould Ġfail Ġincorrectly Ġif Ġthe Ġshuffle Ġoperation Ġfails Ġto Ġchange Ġthe Ġindex Ġof ĊĠĠĠĠĠĠĠ Ġ// Ġthe Ġfirst Ġitem Ġ 1 0 0 Ġtimes Ġin Ġa Ġrow . ĠThis Ġis Ġvery Ġunlikely . ĠIt Ġonly Ġrequires Ġone ĊĠĠĠĠĠĠĠ Ġ// Ġsuccessful Ġshuffle Ġto Ġpass . ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠQuestion Generator . generate ( mutable ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result [ 0 ]. correct Answer Ġ!= Ġfirst Question Correct Answer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġseen Sh uffled Result Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( seen Sh uffled Result ) ĊĠĠĠ Ġ} Ċ }