/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġandroidx . benchmark Ċ Ċ import Ġandroidx . test . filters . Small Test Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ @ Small Test Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠBenchmark State Test Ġ{ ĊĠĠĠ Ġprivate Ġfun Ġms 2 ns ( ms : ĠLong ): ĠLong Ġ= ĠTimeUnit . MILLISECONDS . to Nan os ( ms ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsimple () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġwould Ġbe Ġbetter Ġto Ġmock Ġthe Ġclock , Ġbut Ġgoing Ġwith Ġminimal Ġchanges Ġfor Ġnow ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠBenchmark State () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( state . keep Running ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . pause Timing () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . resume Timing () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmedian Ġ= Ġstate . stats . median ĊĠĠĠĠĠĠĠ ĠassertTrue (" median Ġ$ median Ġshould Ġbe Ġbetween Ġ 2 ms Ġand Ġ 4 ms ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġms 2 ns ( 2 ) Ġ< Ġmedian Ġ&& Ġmedian Ġ< Ġms 2 ns ( 4 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġide Summary () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsummary 1 Ġ= ĠBenchmark State (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( keep Running ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. ide Summary Line (" foo ") ĊĠĠĠĠĠĠĠ Ġval Ġsummary 2 Ġ= ĠBenchmark State (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( keep Running ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnothing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. ide Summary Line (" foo Bar Long er Key ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( summary 1 . indexOf (" foo "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsummary 2 . indexOf (" foo ")) ĊĠĠĠ Ġ} Ċ } Ċ