// ĠCopyright Ġ 2 0 2 1 ĠThe ĠCross - Media ĠMeasurement ĠAuthors Ċ // Ċ // Ġ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 . wf an et . panel match . client . private membership Ċ Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġcom . google . common . truth . Truth . assert With Message Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠQuery Id Generator Test Ġ{ ĊĠ Ġ@ Test ĊĠ Ġfun Ġgenerates Ent ire Range () Ġ{ ĊĠĠĠ Ġfor Ġ( size Ġin ĠlistOf ( 0 , Ġ 1 , Ġ 2 , Ġ 1 0 , Ġ 1 0 0 )) Ġ{ ĊĠĠĠĠĠ Ġassert With Message (" Range Ġsize : Ġ$ size ") ĊĠĠĠĠĠĠĠ Ġ. that ( generate Query Ids ( size ). as Sequence (). toList ()) ĊĠĠĠĠĠĠĠ Ġ. contains Exactly Elements In ( 0 Ġuntil Ġsize ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġgenerates All Sequences () Ġ{ ĊĠĠĠ Ġval Ġsize Ġ= Ġ 5 ĊĠĠĠ Ġval Ġnum Per mutations Ġ= Ġ 5 Ġ* Ġ 4 Ġ* Ġ 3 Ġ* Ġ 2 ĊĠĠĠ Ġval Ġiterations Per Per mutation Ġ= Ġ 1 0 0 ĊĠĠĠ Ġval Ġnum Iterations Ġ= Ġnum Per mutations Ġ* Ġiterations Per Per mutation ĊĊĠĠĠ Ġval Ġhistogram Ġ= ĊĠĠĠĠĠ Ġ( 0 Ġuntil Ġnum Iterations ) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġgenerate Query Ids ( size ). as Sequence (). toList () Ġ} ĊĠĠĠĠĠĠĠ Ġ. grouping By Ġ{ Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ. each Count () ĊĊĠĠĠ ĠassertThat ( histogram . size ). isEqualTo ( num Per mutations ) ĊĠĠĠ ĠassertThat ( histogram . values . min OrNull ()). is At Least ( iterations Per Per mutation Ġ/ Ġ 2 ) ĊĠĠĠ ĠassertThat ( histogram . values . max OrNull ()). is At Most ( iterations Per Per mutation Ġ* Ġ 2 ) ĊĠ Ġ} Ċ } Ċ