package Ġcom . sk sam uel . kot est . property . ar bitrary Ċ Ċ import Ġio . kot est . core . spec . style . Fun Spec Ċ import Ġio . kot est . data . blocking . for All Ċ import Ġio . kot est . data . row Ċ import Ġio . kot est . inspect ors . for All Ċ import Ġio . kot est . matchers . long s . shouldBe Between Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . kot est . property . Ar b Ċ import Ġio . kot est . property . ar bitrary . edge cases Ċ import Ġio . kot est . property . ar bitrary . long Ċ import Ġio . kot est . property . ar bitrary . single Ċ import Ġio . kot est . property . ar bitrary . u Long Ċ import Ġio . kot est . property . check All Ċ import Ġio . kot est . property . check Coverage Ċ Ċ class ĠLong Test Ġ: ĠFun Spec ({ ĊĠĠ Ġtest ("< Long , ĠLong > Ġshould Ġgive Ġvalues Ġbetween Ġmin Ġand Ġmax Ġinclusive ") Ġ{ ĊĠĠĠĠĠ Ġ// ĠTest Ġparameters Ġinclude Ġthe Ġtest Ġfor Ġnegative Ġbounds ĊĠĠĠĠĠ Ġfor All ( ĊĠĠĠĠĠĠĠĠ Ġrow (- 1 0 L , Ġ- 1 L ), ĊĠĠĠĠĠĠĠĠ Ġrow ( 1 L , Ġ 3 L ), ĊĠĠĠĠĠĠĠĠ Ġrow (- 1 0 0 L , Ġ 1 0 0 L ), ĊĠĠĠĠĠĠĠĠ Ġrow ( Long . MAX _ VALUE Ġ- Ġ 1 0 L , ĠLong . MAX _ VALUE ), ĊĠĠĠĠĠĠĠĠ Ġrow ( Long . MIN _ VALUE , ĠLong . MIN _ VALUE Ġ+ Ġ 1 0 L ) ĊĠĠĠĠĠ Ġ) Ġ{ Ġv Min , Ġv Max Ġ-> ĊĠĠĠĠĠĠĠĠ Ġval Ġexpected Values Ġ= Ġ( v Min .. v Max ). toSet () ĊĠĠĠĠĠĠĠĠ Ġval Ġactual Values Ġ= Ġ( 1 .. 1 0 0 _ 0 0 0 ). map Ġ{ ĠA rb . long ( v Min , Ġv Max ). single () Ġ}. toSet () ĊĠĠĠĠĠĠĠĠ Ġactual Values ĠshouldBe Ġexpected Values ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} ĊĊĠĠ Ġtest (" Ar b . long Ġedge Ġcases Ġshould Ġrespect Ġmin Ġand Ġmax Ġbounds ") Ġ{ ĊĠĠĠĠĠ Ġcheck Coverage (" run ", Ġ 2 5 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġcheck All < Long , ĠLong > Ġ{ Ġmin , Ġmax Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min Ġ< Ġmax ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassify (" run ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA rb . long ( min .. max ). edge cases (). for All Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . shouldBe Between ( min , Ġmax ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} ĊĊĠĠ Ġtest (" Ar b . long Ġgenerates Ġvalues Ġin Ġrange ") Ġ{ ĊĠĠĠĠĠ Ġval Ġmin Ġ= Ġ- 1 4 0 _ 7 3 7 _ 4 8 8 _ 3 5 5 _ 3 2 8 Ġ// Ġ- 2 ^ 4 7 ĊĠĠĠĠĠ Ġval Ġmax Ġ= Ġ 1 4 0 _ 7 3 7 _ 4 8 8 _ 3 5 5 _ 3 2 7 Ġ// Ġ 2 ^ 4 7 Ġ- Ġ 1 ĊĠĠĠĠĠ Ġcheck All ( 1 0 0 _ 0 0 0 , ĠA rb . long ( min , Ġmax )) Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠ Ġvalue . shouldBe Between ( min , Ġmax ) ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} Ċ }) Ċ Ċ class ĠU Long Test Ġ: ĠFun Spec ({ ĊĠĠ Ġtest ("< UL ong , ĠU Long > Ġshould Ġgive Ġvalues Ġbetween Ġmin Ġand Ġmax Ġinclusive ") Ġ{ ĊĠĠĠĠĠ Ġfor All ( ĊĠĠĠĠĠĠĠĠ Ġrow ( 1 u L , Ġ 3 u L ), ĊĠĠĠĠĠĠĠĠ Ġrow ( 0 u L , Ġ 1 0 0 u L ), ĊĠĠĠĠĠĠĠĠ Ġrow ( UL ong . MAX _ VALUE Ġ- Ġ 1 0 u L , ĠU Long . MAX _ VALUE ), ĊĠĠĠĠĠĠĠĠ Ġrow ( UL ong . MIN _ VALUE , ĠU Long . MIN _ VALUE Ġ+ Ġ 1 0 u L ) ĊĠĠĠĠĠ Ġ) Ġ{ Ġv Min , Ġv Max Ġ-> ĊĠĠĠĠĠĠĠĠ Ġval Ġexpected Values Ġ= Ġ( v Min .. v Max ). toSet () ĊĠĠĠĠĠĠĠĠ Ġval Ġactual Values Ġ= Ġ( 1 .. 1 0 0 _ 0 0 0 ). map Ġ{ ĠA rb . u Long ( v Min , Ġv Max ). single () Ġ}. toSet () ĊĠĠĠĠĠĠĠĠ Ġactual Values ĠshouldBe Ġexpected Values ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} ĊĊĠĠ Ġtest (" Ar b . u Long Ġedge Ġcases Ġshould Ġrespect Ġmin Ġand Ġmax Ġbounds ") Ġ{ ĊĠĠĠĠĠ Ġcheck Coverage (" run ", Ġ 2 5 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġcheck All < UL ong , ĠU Long > Ġ{ Ġmin , Ġmax Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min Ġ< Ġmax ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassify (" run ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA rb . u Long ( min .. max ). edge cases (). for All Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . shouldBe Between ( min , Ġmax ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} ĊĊĠĠ Ġtest (" Ar b . u Long Ġgenerates Ġvalues Ġin Ġrange ") Ġ{ ĊĠĠĠĠĠ Ġval Ġmin Ġ= Ġ 0 u L ĊĠĠĠĠĠ Ġval Ġmax Ġ= Ġ 2 8 1 _ 4 7 4 _ 9 7 6 _ 7 1 0 _ 6 5 5 u Ġ// Ġ 2 ^ 4 8 Ġ- Ġ 1 ĊĠĠĠĠĠ Ġcheck All ( 1 0 0 _ 0 0 0 , ĠA rb . u Long ( min , Ġmax )) Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠ Ġvalue . shouldBe Between ( min , Ġmax ) ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} Ċ }) Ċ