package Ġio . github . to mpl um . libs . solutions . benchmark . data Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonIgnore Ċ Ċ /** Ċ Ġ* ĠThe Ġresult Ġof Ġa Ġbenchmark Ġrun Ġfor Ġn Ġnumber Ġof Ġsolutions . Ċ Ġ* Ġ@ property Ġresults ĠA Ġlist Ġof Ġbenchmark Ġresults . Ċ Ġ*/ Ċ class ĠBenchmark Result Ġ{ ĊĠĠĠ Ġval Ġresults Ġ= Ġmutable ListOf < Benchmark <* >>() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġa Ġsingle Ġ[ benchmark ] Ġto Ġthe Ġresult . ĊĠĠĠĠ Ġ* Ġ@ param Ġbenchmark ĠThe Ġbenchmark Ġto Ġadd . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd ( benchmark : ĠBenchmark <* >) Ġ= Ġresults . add ( benchmark ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġa Ġsingle Ġbenchmark Ġfrom Ġthe Ġresult Ġwith Ġthe Ġgiven Ġ[ day ] Ġnumber . ĊĠĠĠĠ Ġ* Ġ@ param Ġday ĠThe Ġnumber Ġof Ġthe Ġday . Ġ 1 Ġor Ġ 2 Ġdigits . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġthere Ġis Ġno Ġbenchmark Ġresult Ġfor Ġthe Ġgiven Ġday . ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġbenchmark Ġfor Ġthe Ġgiven Ġday . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget ( day : ĠInt ): ĠBenchmark < *> Ġ= Ġresults . find Ġ{ Ġbenchmark Ġ-> ĊĠĠĠĠĠĠĠ Ġbenchmark . day Ġ== Ġday ĊĠĠĠ Ġ} Ġ?: Ġthrow ĠIllegalArgumentException (" No ĠBenchmark ĠResult ĠFor ĠDay Ġ$ day ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalculates Ġthe Ġtotal Ġruntime Ġof Ġall Ġthe Ġbenchmark Ġ[ results ]. ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġruntime Ġsum Ġin Ġnan oseconds . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ JsonIgnore ĊĠĠĠ Ġfun ĠgetTotal Time (): ĠLong Ġ= Ġsum Day Parts (). sum () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalculates Ġthe Ġaverage Ġruntime Ġof Ġall Ġthe Ġbenchmark Ġ[ results ]. ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġruntime Ġsum Ġin Ġnan oseconds . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ JsonIgnore ĊĠĠĠ Ġfun Ġget Avg Time (): ĠLong Ġ= Ġsum Day Parts (). average (). to Long () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIter ates Ġover Ġthe Ġ[ results ] Ġand Ġsums Ġboth Ġparts Ġtogether Ġfor Ġeach Ġday . ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġlist Ġof Ġthe Ġsums Ġof Ġboth Ġday Ġparts . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġsum Day Parts () Ġ= Ġresults . map Ġ{ Ġbenchmark Ġ-> Ġbenchmark . runtime 1 Ġ+ Ġbenchmark . runtime 2 Ġ} Ċ }