package Ġit . code wit ht he ital ians . benchmark . lists Ċ Ċ import Ġandroidx . benchmark . junit 4 . Benchmark Rule Ċ import Ġandroidx . benchmark . junit 4 . measure Repeated Ċ import Ġit . code wit ht he ital ians . benchmark . support . Black Hole Ċ import Ġkotlinx . collections . immutable . to ImmutableList Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . Parameterized Ċ import Ġorg . p collections . Tree P Vector Ċ Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠIteration Benchmark ( private Ġval Ġsize : ĠInt ) Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġbenchmark Rule Ġ= ĠBenchmark Rule () ĊĊĠĠĠ Ġprivate Ġval Ġbh Ġ= ĠBlack Hole () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Parameterized . Parameters ( name Ġ= Ġ" size ={ 0 }") ĊĠĠĠĠĠĠĠ Ġfun Ġdata (): ĠArray < Int > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 _ 0 0 0 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġkotlin List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠList ( size ) Ġ{ Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġbenchmark Rule . measure Repeated Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġlist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbh . consume ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtree P Vector () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠTree P Vector . from ( List ( size ) Ġ{ Ġit Ġ}) ĊĠĠĠĠĠĠĠ Ġbenchmark Rule . measure Repeated Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġlist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbh . consume ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġkotlin ImmutableList () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠList ( size ) Ġ{ Ġit Ġ}. to ImmutableList () ĊĠĠĠĠĠĠĠ Ġbenchmark Rule . measure Repeated Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġlist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbh . consume ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }