// ĠCopyright Ġ 2 0 2 0 Ġ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 . measurement . du ch y . deploy . g cloud . spanner . computation Ċ Ċ import Ġjava . lang . Long . parse Unsigned Long Ċ import Ġjava . time . Clock Ċ import Ġjava . time . Instant Ċ import Ġjava . time . Zone Id Ċ import Ġkotlin . test . assertEquals Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠLocal Computation Id Generators Test Ġ{ ĊĠ Ġ@ Test ĊĠ Ġfun Ġ` gen Ġlocal Ġid `() Ġ{ ĊĠĠĠ Ġval Ġtest Time Ġ= Ġ 0 x 0 FFFF FFF _ 1 2 3 0 AB CD ĊĠĠĠ Ġval Ġgen Ġ= ĊĠĠĠĠĠ ĠGlobal Bits Plus TimeStamp Id Generator ( ĊĠĠĠĠĠĠĠ ĠClock . fixed ( Instant . of Epoch Milli ( test Time ), ĠZone Id . system Default ()) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġval Ġglobal Id Ġ= Ġ" 1 2 3 " ĊĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠ Ġparse Unsigned Long (" B 3 D 5 0 C 4 8 FFFF FFF 0 ", Ġ 1 6 ) Ġor Ġglobal Id . hashCode (). to Long (), ĊĠĠĠĠĠ Ġgen . local Id ( global Id ) ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ