/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ ĊĊ Ċ package Ġorg . jetbrains . analyzer Ċ Ċ import Ġkotlin . test .* Ċ import Ġkotlin . math . abs Ċ import Ġorg . jetbrains . report . Benchmark Result Ċ Ċ class ĠAnalyzer Tests Ġ{ ĊĠĠĠ Ġprivate Ġval Ġeps Ġ= Ġ 0 . 0 0 0 0 0 1 ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Mean Variance Bench marks (): ĠPair < Mean Variance Benchmark , ĠMean Variance Benchmark > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Mean Ġ= ĠBenchmark Result (" test Benchmark ", ĠBenchmark Result . Status . PAS SED , Ġ 9 . 0 , ĠBenchmark Result . Metric . EXEC UTION _ TIME , Ġ 9 . 0 , Ġ 1 0 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Variance Ġ= ĠBenchmark Result (" test Benchmark ", ĠBenchmark Result . Status . PAS SED , Ġ 0 . 0 0 0 1 , ĠBenchmark Result . Metric . EXEC UTION _ TIME , Ġ 0 . 0 0 0 1 , Ġ 1 0 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= ĠMean Variance Benchmark ( first Mean , Ġfirst Variance ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsecond Mean Ġ= ĠBenchmark Result (" test Benchmark ", ĠBenchmark Result . Status . PAS SED , Ġ 1 0 . 0 , ĠBenchmark Result . Metric . EXEC UTION _ TIME , Ġ 1 0 . 0 , Ġ 1 0 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Variance Ġ= ĠBenchmark Result (" test Benchmark ", ĠBenchmark Result . Status . PAS SED , Ġ 0 . 0 0 0 1 , ĠBenchmark Result . Metric . EXEC UTION _ TIME , Ġ 0 . 0 0 0 1 , Ġ 1 0 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Ġ= ĠMean Variance Benchmark ( second Mean , Ġsecond Variance ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPair ( first , Ġsecond ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Geo Mean () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnumbers Ġ= ĠlistOf ( 4 . 0 , Ġ 6 . 0 , Ġ 9 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġge ometric Mean ( numbers ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ 6 . 0 ĊĠĠĠĠĠĠĠ ĠassertTrue ( abs ( value Ġ- Ġexpected ) Ġ< Ġeps ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Compute Mean Variance () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnumbers Ġ= ĠlistOf ( 1 0 . 1 , Ġ 1 0 . 2 , Ġ 1 0 . 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġcompute Mean Variance ( numbers ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Mean Ġ= Ġ 1 0 . 2 ĊĠĠĠĠĠĠĠ Ġval Ġexpected Variance Ġ= Ġ 0 . 0 7 8 7 2 4 5 5 ĊĠĠĠĠĠĠĠ ĠassertTrue ( abs ( value . mean Ġ- Ġexpected Mean ) Ġ< Ġeps ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( abs ( value . variance Ġ- Ġexpected Variance ) Ġ< Ġeps ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcalc Percentage Diff () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinputs Ġ= Ġcreate Mean Variance Bench marks () ĊĊĠĠĠĠĠĠĠ Ġval Ġpercent Ġ= Ġinputs . first . calc Percentage Diff ( inputs . second ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Mean Ġ= Ġ- 9 . 9 9 8 0 9 9 9 8 ĊĠĠĠĠĠĠĠ Ġval Ġexpected Variance Ġ= Ġ 0 . 0 0 2 1 ĊĠĠĠĠĠĠĠ ĠassertTrue ( abs ( percent . mean Ġ- Ġexpected Mean ) Ġ< Ġeps ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( abs ( percent . variance Ġ- Ġexpected Variance ) Ġ< Ġeps ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcalc Ratio () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinputs Ġ= Ġcreate Mean Variance Bench marks () ĊĊĠĠĠĠĠĠĠ Ġval Ġratio Ġ= Ġinputs . first . calc Ratio ( inputs . second ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Mean Ġ= Ġ 0 . 9 ĊĠĠĠĠĠĠĠ Ġval Ġexpected Variance Ġ= Ġ 0 . 0 0 0 0 1 8 9 9 ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( abs ( ratio . mean Ġ- Ġexpected Mean ) Ġ< Ġeps ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( abs ( ratio . variance Ġ- Ġexpected Variance ) Ġ< Ġeps ) ĊĠĠĠ Ġ} Ċ } Ċ