package Ġch . u zh . ifi . se al . bench er . analysis . call graph . dyn . jac oco Ċ Ċ import Ġch . u zh . ifi . se al . bench er . Benchmark Ċ import Ġch . u zh . ifi . se al . bench er . analysis . Jar TestHelper Ċ import Ġch . u zh . ifi . se al . bench er . analysis . call graph . CG Result Ċ import Ġch . u zh . ifi . se al . bench er . analysis . call graph . reach ability . Reach abilities Ċ import Ġch . u zh . ifi . se al . bench er . analysis . call graph . reach ability . Reach able Ċ Ċ object ĠD CT est Helper Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġempty Reach abilities ( b : ĠBenchmark ): ĠPair < Benchmark , ĠRe ach abilities > Ġ= ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach abilities ( start Ġ= Ġb , Ġreach abilities Ġ= Ġset Of ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġobject ĠB ench Parameterized Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbench 1 Reach abilities ( b : ĠBenchmark ): ĠPair < Benchmark , ĠRe ach abilities > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpb Ġ= Ġb . to Plain Method () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach abilities ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreach abilities Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Bench Parameterized . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Bench Parameterized . setup . to Plain Method (), Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= Ġpb , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core A . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core A . m , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core B . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core B . m , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core C . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core C . m , Ġlevel Ġ= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbench 1 Cg ( b : ĠBenchmark ): ĠPair < Benchmark , ĠRe ach abilities > Ġ= Ġbench 1 Reach abilities ( b ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġbench 1 C gs : ĠArray < Pair < Benchmark , ĠRe ach abilities >> Ġ= ĠJar TestHelper . Bench Parameterized . bench 1 . let Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp bs Ġ= Ġb . parameter ized Bench marks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp bs . map Ġ{ Ġbench 1 Cg ( it ) Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbench 1 Non Param C gs : ĠArray < Pair < Benchmark , ĠRe ach abilities >> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( bench 1 Cg ( Jar TestHelper . Bench Parameterized . bench 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠB ench Non Parameterized Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbench 2 Reach abilities : ĠPair < Benchmark , ĠRe ach abilities > Ġ= ĠJar TestHelper . Bench Non Parameterized . bench 2 . let Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpb Ġ= Ġb . to Plain Method () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach abilities ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreach abilities Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Bench Non Parameterized . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= Ġpb , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core C . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core C . m , Ġlevel Ġ= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbench 2 Cg : ĠPair < Benchmark , ĠRe ach abilities > Ġ= Ġbench 2 Reach abilities ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠOther Bench Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbench 3 Reach abilities : ĠPair < Benchmark , ĠRe ach abilities > Ġ= ĠJar TestHelper . Other Bench . bench 3 . let Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpb Ġ= Ġb . to Plain Method () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach abilities ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreach abilities Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Other Bench . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Other Bench . setup . to Plain Method (), Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= Ġpb , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Other Bench . te ar Down . to Plain Method (), Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core B . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core B . m , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core C . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core C . m , Ġlevel Ġ= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbench 3 Cg : ĠPair < Benchmark , ĠRe ach abilities > Ġ= Ġbench 3 Reach abilities ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠB ench Parameterized 2 Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbench 4 Reach abilities ( b : ĠBenchmark ): ĠPair < Benchmark , ĠRe ach abilities > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpb Ġ= Ġb . to Plain Method () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach abilities ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreach abilities Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Bench Parameterized 2 . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Bench Parameterized 2 . setup . to Plain Method (), Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= Ġpb , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core A . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core A . m , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core D . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Core D . m , Ġlevel Ġ= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġbench 4 Cg ( b : ĠBenchmark ): ĠPair < Benchmark , ĠRe ach abilities > Ġ= Ġbench 4 Reach abilities ( b ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbench 4 C gs : ĠArray < Pair < Benchmark , ĠRe ach abilities >> Ġ= ĠJar TestHelper . Bench Parameterized 2 . bench 4 . let Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp bs Ġ= Ġb . parameter ized Bench marks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp bs . map Ġ{ Ġbench 4 Cg ( it ) Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbench 4 Non Param C gs : ĠArray < Pair < Benchmark , ĠRe ach abilities >> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( bench 4 Cg ( Jar TestHelper . Bench Parameterized 2 . bench 4 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠB ench Parameterized 2 v 2 Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbench 4 C gs : ĠArray < Pair < Benchmark , ĠRe ach abilities >> Ġ= ĠJar TestHelper . Bench Parameterized 2 v 2 . bench 4 . let Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp bs Ġ= Ġb . parameter ized Bench marks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp bs . map Ġ{ ĠB ench Parameterized 2 . bench 4 Cg ( it ) Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbench 4 Non Param C gs : ĠArray < Pair < Benchmark , ĠRe ach abilities >> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Bench Parameterized 2 . bench 4 Cg ( Jar TestHelper . Bench Parameterized 2 v 2 . bench 4 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠNested Benchmark Ġ{ ĊĊĠĠĠĠĠĠĠ Ġobject ĠB ench 1 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġbench 1 1 Reach abilities : ĠPair < Benchmark , ĠRe ach abilities > Ġ= ĠJar TestHelper . Nested Benchmark . Bench 1 . bench 1 1 . let Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpb Ġ= Ġb . to Plain Method () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach abilities ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreach abilities Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Nested Benchmark . Bench 1 . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= Ġpb , Ġlevel Ġ= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbench 1 1 Cg : ĠPair < Benchmark , ĠRe ach abilities > Ġ= Ġbench 1 1 Reach abilities ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġbench 1 2 Reach abilities : ĠPair < Benchmark , ĠRe ach abilities > Ġ= ĠJar TestHelper . Nested Benchmark . Bench 1 . bench 1 2 . let Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpb Ġ= Ġb . to Plain Method () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach abilities ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreach abilities Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Nested Benchmark . Bench 1 . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= Ġpb , Ġlevel Ġ= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbench 1 2 Cg : ĠPair < Benchmark , ĠRe ach abilities > Ġ= Ġbench 1 2 Reach abilities ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbench 2 Reach abilities : ĠPair < Benchmark , ĠRe ach abilities > Ġ= ĠJar TestHelper . Nested Benchmark . bench 2 . let Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpb Ġ= Ġb . to Plain Method () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach abilities ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreach abilities Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Nested Benchmark . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= Ġpb , Ġlevel Ġ= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbench 2 Cg : ĠPair < Benchmark , ĠRe ach abilities > Ġ= Ġbench 2 Reach abilities ĊĊĠĠĠĠĠĠĠ Ġobject ĠB ench 3 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġbench 3 1 Reach abilities : ĠPair < Benchmark , ĠRe ach abilities > Ġ= ĠJar TestHelper . Nested Benchmark . Bench 3 . bench 3 1 . let Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpb Ġ= Ġb . to Plain Method () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach abilities ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreach abilities Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Nested Benchmark . Bench 3 . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= Ġpb , Ġlevel Ġ= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbench 3 1 Cg : ĠPair < Benchmark , ĠRe ach abilities > Ġ= Ġbench 3 1 Reach abilities ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject ĠB ench 3 2 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġbench 3 2 1 Reach abilities : ĠPair < Benchmark , ĠRe ach abilities > Ġ= ĠJar TestHelper . Nested Benchmark . Bench 3 . Bench 3 2 . bench 3 2 1 . let Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpb Ġ= Ġb . to Plain Method () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach abilities ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreach abilities Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= ĠJar TestHelper . Nested Benchmark . Bench 3 . Bench 3 2 . constructor , Ġlevel Ġ= Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach able ( from Ġ= Ġpb , Ġto Ġ= Ġpb , Ġlevel Ġ= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbench 3 2 1 Cg : ĠPair < Benchmark , ĠRe ach abilities > Ġ= Ġbench 3 2 1 Reach abilities ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcg Result ( bp 1 : ĠArray < Pair < Benchmark , ĠRe ach abilities >>, Ġbp 2 : ĠArray < Pair < Benchmark , ĠRe ach abilities >> ): ĠCG Result Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCG Result ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* bp 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ench Non Parameterized . bench 2 Cg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOther Bench . bench 3 Cg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* bp 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNested Benchmark . Bench 1 . bench 1 1 Cg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNested Benchmark . Bench 1 . bench 1 2 Cg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNested Benchmark . bench 2 Cg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNested Benchmark . Bench 3 . bench 3 1 Cg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNested Benchmark . Bench 3 . Bench 3 2 . bench 3 2 1 Cg ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠ Ġval Ġcg Result Ġ= Ġcg Result ( Bench Parameterized . bench 1 C gs , ĠB ench Parameterized 2 . bench 4 C gs ) ĊĠĠĠ Ġval Ġcg Result Non Param Ġ= Ġcg Result ( Bench Parameterized . bench 1 Non Param C gs , ĠB ench Parameterized 2 . bench 4 Non Param C gs ) ĊĊĠĠĠ Ġval Ġcg Result v 2 Ġ= Ġcg Result ( Bench Parameterized . bench 1 C gs , ĠB ench Parameterized 2 v 2 . bench 4 C gs ) ĊĠĠĠ Ġval Ġcg Result v 2 Non Param Ġ= Ġcg Result ( Bench Parameterized . bench 1 Non Param C gs , ĠB ench Parameterized 2 v 2 . bench 4 Non Param C gs ) Ċ } Ċ