package Ġcom . ker ook er . simple feature th rott ler Ċ Ċ import Ġio . kot lint est . matchers . num erics . shouldBe InRange Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . kot lint est . specs . Fun Spec Ċ Ċ class ĠTh rott ler Test Ġ: ĠFun Spec () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtest (" Default Ġthrottle Ġshould Ġbe Ġ 0 . 0 Ġ( never Ġthrottle )") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġth rott ler Ġ= ĠTh rott ler () ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 _ 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġth rott ler . should Throttle () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġtest (" Should Ġthrottle ĠX % Ġif Ġpercentage Ġwas Ġset ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġth rott ler Ġ= ĠTh rott ler ( percentage To Throttle Ġ= Ġ 3 3 . 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġth rott led Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġun th rott led Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 0 _ 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( th rott ler . should Throttle ()) Ġth rott led ++ Ġelse Ġun th rott led ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġth rott led ĠshouldBe InRange Ġ 3 2 _ 0 0 0 .. 3 4 _ 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun th rott led ĠshouldBe InRange Ġ 6 5 _ 0 0 0 .. 6 7 _ 0 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġtest (" Should Ġthrottle Ġ 1 0 0 % Ġif Ġpercentage Ġis Ġset Ġto Ġ 1 0 0 % ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġth rott ler Ġ= ĠTh rott ler ( percentage To Throttle Ġ= Ġ 1 0 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 0 _ 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġth rott ler . should Throttle () ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġtest (" Should Ġthrottle Ġthe Ġspecified ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġth rott led Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġun th rott led Ġ= Ġ 0 ĊĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 0 _ 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Th rott ler . should Throttle ( percentage To Throttle Ġ= Ġ 3 3 . 3 )) Ġth rott led ++ Ġelse Ġun th rott led ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġth rott led ĠshouldBe InRange Ġ 3 2 _ 0 0 0 .. 3 4 _ 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun th rott led ĠshouldBe InRange Ġ 6 5 _ 0 0 0 .. 6 7 _ 0 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }