package Ġmain package Ċ Ċ import Ġcom . mar cin mos k ala . math . tests .* Ċ import Ġcom . mar cin mos k ala . math . tests . Combination Test Ċ import Ġcom . mar cin mos k ala . math . tests . Combination With Re petition Test Ċ import Ġcom . mar cin mos k ala . math . tests . Factor ial Test Ċ import Ġcom . mar cin mos k ala . math . tests . Per mutation Test Ċ import Ġcom . mar cin mos k ala . math . tests . Power Test Ċ import Ġorg . junit . runner . JUnit Core Ċ import Ġorg . junit . runner . Result Ċ import Ġorg . junit . runner . notification . Failure Ċ import Ġorg . junit . runner . notification . Run Listener Ċ import Ġjava . io . File Ċ Ċ class ĠTest Listener Ġ: ĠRun Listener () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġresult Ġ: ĠResult ĊĊĠĠĠ Ġoverride Ġfun Ġtest Run Finished ( result : ĠResult ){ ĊĠĠĠĠĠĠĠ Ġthis . result Ġ= Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠHandler Output ( val ĠstartTime : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġruntime : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcold Start : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwas Success : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfailures : ĠMutable List < Failure >) Ċ Ċ class ĠRun Tests Ġ{ ĊĠĠĠ Ġfun ĠgetString Result ( startTime : ĠLong ) Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġrun () ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate String ( startTime , Ġlistener . result ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget Json Result ( startTime : ĠLong ) Ġ: ĠHandler Output Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġrun () ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate Json ( startTime , Ġlistener . result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrun () Ġ: ĠTest Listener { ĊĠĠĠĠĠĠĠ Ġval Ġjunit Ġ= ĠJ Unit Core () ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠTest Listener () ĊĠĠĠĠĠĠĠ Ġjunit . addListener ( listener ) ĊĠĠĠĠĠĠĠ Ġjunit . run ( Combination Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCombin ation With Re petition Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFactor ial Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPer mutation Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPower Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSub lists By Split ters Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSet Split Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProduct Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIterable Multip li ation Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNumbers Div isible Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPower set Test :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProduct Test :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate String ( startTime Ġ: ĠLong , Ġresult : ĠResult ): String Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"{\" startTime \": Ġ${ startTime }, Ġ\" runtime \": Ġ${ result . run Time }, Ġ\" cold Start \": Ġ${ is Col d Start ()}, Ġ\" was Success \": Ġ${ result . was Successful () }," Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ\" failures \": Ġ${ result . failures }}" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Json ( startTime : ĠLong , Ġresult : ĠResult ) Ġ: ĠHandler Output { ĊĠĠĠĠĠĠĠ Ġreturn ĠHandler Output ( startTime , Ġresult . run Time , Ġis Col d Start (), Ġresult . was Successful (), Ġresult . failures ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Col d Start (): ĠBoolean { ĊĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġ"/ tmp / out . txt " ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( fileName ) ĊĊĠĠĠĠĠĠĠ Ġif ( file . exists ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠFile ( fileName ). createNew File () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ; ĊĠĠĠ Ġ} Ċ }