package Ġorg . art rev . te oria . numbers . long s Ċ Ċ import Ġorg . junit . experimental . the ories . Parameter Signature Ċ import Ġorg . junit . experimental . the ories . Parameter Supplier Ċ import Ġorg . junit . experimental . the ories . Potential Assignment Ċ import Ġkotlin . random . Random Ċ Ċ /** Ċ Ġ* Ġ@ see Ġorg . art rev . te oria . numbers . long s . Long s Below Ċ Ġ* Ġ@ see Ġorg . junit . experimental . the ories . Parameter Supplier Ċ Ġ*/ Ċ internal Ġclass ĠLong s Below Supplier Ġ: ĠParameter Supplier () Ġ{ ĊĠĠĠ Ġ@ Throws ( Throwable :: class ) ĊĠĠĠ Ġoverride Ġfun ĠgetValue Sources ( sig : ĠParameter Signature ): ĠList < Potential Assignment > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbelow : ĠLong s Below Ġ= Ġsig . getAnnotation ( Long s Below :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= ĠLong . MIN _ VALUE ĊĠĠĠĠĠĠĠ Ġval Ġuntil Ġ= Ġif Ġ( below . inclusive ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbelow . value Ġ+ Ġ 1 L ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbelow . value ĊĊĠĠĠĠĠĠĠ Ġreturn Ġgenerate Sequence Ġ{ ĠRandom . next Long ( from , Ġuntil ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. distinct () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( below . limit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠPot ential Assignment . for Value ( ASSIGN MENT _ VALUE _ NAME , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠASS IGN MENT _ VALUE _ NAME Ġ= Ġ" long s _ below " ĊĠĠĠ Ġ} Ċ } Ċ