package Ġcom . sk sam uel . kot est . property . ar bitrary Ċ Ċ import Ġio . kot est . assertions . throw ables . should Not Throw Any Ċ import Ġio . kot est . core . spec . style . Fun Spec Ċ import Ġio . kot est . matchers . collections . should Contain Exactly Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . kot est . property . Ar b Ċ import Ġio . kot est . property . Edge Config Ċ import Ġio . kot est . property . Random Source Ċ import Ġio . kot est . property . ar bitrary . Int Shrink er Ċ import Ġio . kot est . property . ar bitrary . ar bitrary Ċ import Ġio . kot est . property . ar bitrary . int Ċ import Ġio . kot est . property . ar bitrary . map Ċ import Ġio . kot est . property . ar bitrary . of Ċ import Ġio . kot est . property . ar bitrary . single Ċ import Ġio . kot est . property . ar bitrary . with Edge cases Ċ import Ġjava . util . concurrent . atomic . Atomic Integer Ċ Ċ class ĠMap Test Ġ: ĠFun Spec ({ ĊĠĠ Ġtest (" mapping Ġshould Ġonly Ġbe Ġinvoked Ġonce ") Ġ{ ĊĠĠĠĠĠ Ġval Ġcounter Ġ= ĠAtomicInteger ( 0 ) ĊĠĠĠĠĠ Ġval Ġint Ar b Ġ= ĠA rb . int ( 1 , Ġ 1 0 ). map Ġ{ ĊĠĠĠĠĠĠĠĠ Ġcounter . get And Increment () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġint Ar b . samples ( Random Source . default ()). take ( 1 ). toList () ĊĠĠĠĠĠ Ġcounter . get (). shouldBe ( 1 ) ĊĠĠ Ġ} ĊĊĠĠ Ġtest (" should Ġtransform Ġedge Ġcases ") Ġ{ ĊĠĠĠĠĠ Ġval Ġar b Ġ= ĠA rb . int ( 1 , Ġ 1 0 ). with Edge cases ( 1 ). map Ġ{ Ġ"$ it " Ġ} ĊĠĠĠĠĠ Ġar b . generate ( Random Source . default (), ĠEdge Config ( edge cases Generation Probability Ġ= Ġ 1 . 0 )). first (). value ĠshouldBe Ġ" 1 " ĊĠĠ Ġ} ĊĊĠĠ Ġtest (" should Ġpreserve Ġshrink ing ") Ġ{ ĊĠĠĠĠĠ Ġval Ġar b Ġ= Ġarbitrary ( Int Shrink er ( 1 .. 1 0 0 0 )) Ġ{ Ġrs Ġ-> ĠA rb . int ( 1 .. 1 0 0 0 ). single ( rs ) Ġ} ĊĠĠĠĠĠ Ġval Ġsample Ġ= Ġar b . map Ġ{ Ġit . toString () Ġ}. sample ( Random Source . see ded ( 1 2 3 4 L )) ĊĠĠĠĠĠ Ġval Ġshrink s Ġ= Ġsample . shrink s . children . value . map Ġ{ Ġit . value () Ġ} Ġ+ Ġsample . shrink s . value () ĊĠĠĠĠĠ Ġsample . value ĠshouldBe Ġ" 1 2 0 " ĊĠĠĠĠĠ Ġshrink s Ġshould Contain Exactly ĠlistOf ( ĊĠĠĠĠĠĠĠĠ Ġ" 1 ", ĊĠĠĠĠĠĠĠĠ Ġ" 4 0 ", ĊĠĠĠĠĠĠĠĠ Ġ" 6 0 ", ĊĠĠĠĠĠĠĠĠ Ġ" 8 0 ", ĊĠĠĠĠĠĠĠĠ Ġ" 1 1 5 ", ĊĠĠĠĠĠĠĠĠ Ġ" 1 1 6 ", ĊĠĠĠĠĠĠĠĠ Ġ" 1 1 7 ", ĊĠĠĠĠĠĠĠĠ Ġ" 1 1 8 ", ĊĠĠĠĠĠĠĠĠ Ġ" 1 1 9 ", ĊĠĠĠĠĠĠĠĠ Ġ" 1 2 0 " ĊĠĠĠĠĠ Ġ) ĊĠĠ Ġ} ĊĊĠĠ Ġtest (" Ar b . map Ġcomposition Ġshould Ġnot Ġex haust Ġcall Ġstack ") Ġ{ ĊĠĠĠĠĠ Ġvar Ġar b : ĠA rb < Int > Ġ= ĠA rb . of ( 0 ) ĊĠĠĠĠĠ Ġrepeat ( 1 0 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġar b Ġ= Ġar b . map Ġ{ Ġvalue Ġ-> Ġvalue Ġ+ Ġ 1 Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġresult Ġ= Ġshould Not Throw Any Ġ{ Ġar b . single ( Random Source . see ded ( 1 2 3 4 L )) Ġ} ĊĠĠĠĠĠ Ġresult ĠshouldBe Ġ 1 0 0 0 0 ĊĠĠ Ġ} Ċ }) Ċ