/* Ċ Ġ* ĠCopyright Ġ@ Ġ 2 0 1 8 Ġ- Ġpresent Ġ 8 x 8 , ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 . j its i . nl j . stats Ċ Ċ import Ġio . kot est . assertions . throw ables . should Throw Ċ import Ġio . kot est . core . spec . Isolation Mode Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . kot est . core . spec . style . Should Spec Ċ import Ġio . kot est . matchers . types . shouldBe InstanceOf Ċ import Ġorg . j its i . utils . Ordered JsonObject Ċ import Ġjava . lang . IllegalArgumentException Ċ Ċ class ĠDelay Stats Test Ġ: ĠShould Spec () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġisolation Mode (): ĠI sol ation Mode ? Ġ= ĠI sol ation Mode . Instance Per Leaf ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" adding Ġstats ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdelay Stats Ġ= ĠDelay Stats ( long ArrayOf ( 2 , Ġ 5 , Ġ 2 0 0 , Ġ 9 9 9 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" calculate Ġthe Ġaverage Ġcorrectly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 0 ) Ġ{ Ġdelay Stats . add Delay ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 0 ) Ġ{ Ġdelay Stats . add Delay ( 5 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . snapshot . average ĠshouldBe Ġ 3 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" calculate Ġthe Ġmax Ġcorrectly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 0 ) Ġ{ Ġdelay Stats . add Delay ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 0 ) Ġ{ Ġdelay Stats . add Delay ( 5 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . add Delay ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . snapshot . max Value ĠshouldBe Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" export Ġthe Ġbuckets Ġcorrectly Ġto Ġjson ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 0 ) Ġ{ Ġdelay Stats . add Delay ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 0 ) Ġ{ Ġdelay Stats . add Delay ( 5 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . add Delay ( 1 5 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . add Delay ( 1 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuckets Json Ġ= Ġdelay Stats . toJson ()[" buckets "] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuckets Json . shouldBe InstanceOf < Ordered JsonObject >() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuckets Json [" <= Ġ 2 Ġms "] ĠshouldBe Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuckets Json [" <= Ġ 5 Ġms "] ĠshouldBe Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuckets Json [" <= Ġ 2 0 0 Ġms "] ĠshouldBe Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuckets Json [ "> Ġ 9 9 9 Ġms "] ĠshouldBe Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" calculate Ġp 9 9 Ġand Ġp 9 9 9 Ġcorrectly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . snapshot . buckets . p 9 9 bound ĠshouldBe Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . snapshot . buckets . p 9 9 9 bound ĠshouldBe Ġ- 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 2 0 0 ) Ġ{ Ġdelay Stats . add Delay ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . snapshot . buckets . p 9 9 bound ĠshouldBe Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . snapshot . buckets . p 9 9 9 bound ĠshouldBe Ġ- 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 8 0 0 ) Ġ{ Ġdelay Stats . add Delay ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . snapshot . buckets . p 9 9 9 bound ĠshouldBe Ġ 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . add Delay ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . add Delay ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . snapshot . buckets . p 9 9 bound ĠshouldBe Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . snapshot . buckets . p 9 9 9 bound ĠshouldBe Ġ 5 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 2 0 0 0 ) Ġ{ Ġdelay Stats . add Delay ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Stats . snapshot . buckets . p 9 9 9 bound ĠshouldBe Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcontext (" initial izing Ġwith Ġinvalid Ġthresholds Ġshould Ġthrow ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDelay Stats ( long ArrayOf ( 2 , Ġ 1 0 , Ġ 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ