package Ġutil Ċ Ċ import Ġkotlin . test .* Ċ Ċ class ĠTest Object Pool Ġ{ ĊĊĠĠĠ Ġclass ĠTest Object Ġ( val Ġi : ĠInt ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Object Pool Re cycl ing () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcounter Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġpool Ġ= ĠObject Pool { ĠTest Object ( counter ++) Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġused Ġ= ĠArrayList < Test Object >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġused . add ( pool . get ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 .. 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpool . recycle ( used . remove At ( used . last Index )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpool . up keep () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 .. 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġused . add ( pool . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpool . up keep () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 , Ġcounter ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpool . recycle ( used . remove At ( used . last Index )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ