package Ġassert k . assertions Ċ Ċ import Ġassert k . Assert Ċ import Ġassert k . Platform Name Ċ import Ġassert k . all Ċ import Ġassert k . assertions . support . expected Ċ import Ġassert k . assertions . support . show Ċ import Ġassert k . assertions . support . fail Ċ Ċ $ T :$ N :$ E Ġ= ĠByteArray : byteArray : Byte , ĠInt Array : int Array : Int , ĠShort Array : short Array : Short , ĠLong Array : long Array : Long , ĠFloat Array : float Array : Float , ĠDouble Array : double Array : Double , ĠChar Array : char Array : Char Ċ Ċ /** Ċ Ġ* ĠReturns Ġan Ġassert Ġon Ġthe Ġ$ T 's Ġsize . Ċ Ġ*/ Ċ @ Platform Name ("$ N Size ") Ċ fun ĠAssert <$ T >. size () Ġ= Ġprop (" size ") Ġ{ Ġit . size Ġ} Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġcontents Ġare Ġequal Ġto Ġthe Ġexpected Ġone , Ġusing Ġ[ content Deep Equals ]. Ċ Ġ* Ġ@ see Ġis Not EqualTo Ċ Ġ*/ Ċ fun ĠAssert <$ T >. isEqualTo ( expected : Ġ$ T ) Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġif Ġ( actual . content Equals ( expected )) Ġreturn ĊĠĠĠ Ġfail ( expected , Ġactual ) Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġcontents Ġare Ġnot Ġequal Ġto Ġthe Ġexpected Ġone , Ġusing Ġ[ content Deep Equals ]. Ċ Ġ* Ġ@ see Ġis EqualTo Ċ Ġ*/ Ċ fun ĠAssert <$ T >. isNot EqualTo ( expected : Ġ$ T ) Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġif Ġ(!( actual . content Equals ( expected ))) Ġreturn ĊĠĠĠ Ġval Ġshow Expected Ġ= Ġshow ( expected ) ĊĠĠĠ Ġval Ġshow Actual Ġ= Ġshow ( actual ) ĊĠĠĠ Ġ// Ġif Ġthey Ġdisplay Ġthe Ġsame , Ġonly Ġshow Ġone . ĊĠĠĠ Ġif Ġ( show Expected Ġ== Ġshow Actual ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexpected (" to Ġnot Ġbe Ġequal Ġto :$ show Actual ") ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġexpected (" :$ show Expected Ġnot Ġto Ġbe Ġequal Ġto :$ show Actual ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġis Ġempty . Ċ Ġ* Ġ@ see Ġ[ isNotEmpty ] Ċ Ġ* Ġ@ see Ġ[ isNull OrEmpty ] Ċ Ġ*/ Ċ @ Platform Name ("$ N IsEmpty ") Ċ fun ĠAssert <$ T >. isEmpty () Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġif Ġ( actual . isEmpty ()) Ġreturn ĊĠĠĠ Ġexpected (" to Ġbe Ġempty Ġbut Ġwas :${ show ( actual )} ") Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġis Ġnot Ġempty . Ċ Ġ* Ġ@ see Ġ[ isEmpty ] Ċ Ġ*/ Ċ @ Platform Name ("$ N Is NotEmpty ") Ċ fun ĠAssert <$ T >. isNotEmpty () Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġif Ġ( actual . isNotEmpty ()) Ġreturn ĊĠĠĠ Ġexpected (" to Ġnot Ġbe Ġempty ") Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġis Ġnull Ġor Ġempty . Ċ Ġ* Ġ@ see Ġ[ isEmpty ] Ċ Ġ*/ Ċ @ Platform Name ("$ N IsNullOrEmpty ") Ċ fun ĠAssert <$ T ?> . isNull OrEmpty () Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġif Ġ( actual Ġ== Ġnull Ġ|| Ġactual . isEmpty ()) Ġreturn ĊĠĠĠ Ġexpected (" to Ġbe Ġnull Ġor Ġempty Ġbut Ġwas :${ show ( actual )} ") Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġhas Ġthe Ġexpected Ġsize . Ċ Ġ*/ Ċ @ Platform Name ("$ N Has Size ") Ċ fun ĠAssert <$ T >. has Size ( size : ĠInt ) Ġ{ ĊĠĠĠ Ġsize (). isEqualTo ( size ) Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġhas Ġthe Ġsame Ġsize Ġas Ġthe Ġexpected Ġarray . Ċ Ġ*/ Ċ @ Platform Name ("$ N Has Same Size As ") Ċ fun ĠAssert <$ T >. has Same Size As ( other : Ġ$ T ) Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġval Ġactual Size Ġ= Ġactual . size ĊĠĠĠ Ġval Ġother Size Ġ= Ġother . size ĊĠĠĠ Ġif Ġ( actual Size Ġ== Ġother Size ) Ġreturn ĊĠĠĠ Ġexpected (" to Ġhave Ġsame Ġsize Ġas :${ show ( other )} Ġ($ other Size ) Ġbut Ġwas Ġsize : ($ actual Size )") Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġcontains Ġthe Ġexpected Ġelement , Ġusing Ġ` in `. Ċ Ġ* Ġ@ see Ġ[ does Not Contain ] Ċ Ġ*/ Ċ @ Platform Name ("$ N Contains ") Ċ fun ĠAssert <$ T >. contains ( element : Ġ$ E ) Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġif Ġ( element Ġin Ġactual ) Ġreturn ĊĠĠĠ Ġexpected (" to Ġcontain :${ show ( element )} Ġbut Ġwas :${ show ( actual )} ") Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġdoes Ġnot Ġcontain Ġthe Ġexpected Ġelement , Ġusing Ġ` ! in `. Ċ Ġ* Ġ@ see Ġ[ contains ] Ċ Ġ*/ Ċ @ Platform Name ("$ N DoesNot Contain ") Ċ fun ĠAssert <$ T >. does Not Contain ( element : Ġ$ E ) Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġif Ġ( element Ġ! in Ġactual ) Ġreturn ĊĠĠĠ Ġexpected (" to Ġnot Ġcontain :${ show ( element )} Ġbut Ġwas :${ show ( actual )} ") Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġdoes Ġnot Ġcontain Ġany Ġof Ġthe Ġexpected Ġelements . Ċ Ġ* Ġ@ see Ġ[ contains All ] Ċ Ġ*/ Ċ fun ĠAssert <$ T >. contains None ( var arg Ġelements : Ġ$ E ) Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġif Ġ( elements . none Ġ{ Ġit Ġin Ġactual Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġnot Expected Ġ= Ġelements . filter Ġ{ Ġit Ġin Ġactual Ġ} ĊĠĠĠ Ġexpected (" to Ġcontain Ġnone Ġof :${ show ( elements )} Ġsome Ġelements Ġwere Ġnot Ġexpected :${ show ( not Expected )} ") Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġcontains Ġall Ġthe Ġexpected Ġelements , Ġin Ġany Ġorder . ĠThe Ġarray Ġmay Ġalso Ġcontain Ċ Ġ* Ġadditional Ġelements . Ċ Ġ* Ġ@ see Ġ[ contains Exactly ] Ċ Ġ*/ Ċ @ Platform Name ("$ N Contains All ") Ċ fun ĠAssert <$ T >. contains All ( var arg Ġelements : Ġ$ E ) Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġif Ġ( elements . all Ġ{ Ġactual . contains ( it ) Ġ}) Ġreturn ĊĠĠĠ Ġval Ġnot Found Ġ= Ġelements . filter Not Ġ{ Ġit Ġin Ġactual Ġ} ĊĠĠĠ Ġexpected (" to Ġcontain Ġall :${ show ( elements )} Ġsome Ġelements Ġwere Ġnot Ġfound :${ show ( not Found )} ") Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġan Ġassert Ġthat Ġassertion Ġon Ġthe Ġvalue Ġat Ġthe Ġgiven Ġindex Ġin Ġthe Ġarray . Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* ĠassertThat ($ N Of ( 0 , Ġ 1 , Ġ 2 )). index ( 1 ) Ġ{ Ġit . is Positive () Ġ} Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ @ Platform Name ("$ N Index Old ") Ċ @ Deprecated ( message Ġ= Ġ" Use Ġindex ( index ) Ġinstead .", Ġreplace With Ġ= ĠReplace With (" index ( index ). let ( f )"), Ġlevel Ġ= ĠDeprec ation Level . ERROR ) Ċ fun ĠAssert <$ T >. index ( index : ĠInt , Ġf : Ġ( Assert <$ E >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġindex ( index ). let ( f ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġan Ġassert Ġthat Ġassertion Ġon Ġthe Ġvalue Ġat Ġthe Ġgiven Ġindex Ġin Ġthe Ġarray . Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* ĠassertThat ($ N Of ( 0 , Ġ 1 , Ġ 2 )). index ( 1 ). is Positive () Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ @ Platform Name ("$ N Index ") Ċ fun ĠAssert <$ T >. index ( index : ĠInt ): ĠAssert <$ E > Ġ= ĊĠĠĠ Ġtransform ("${ name Ġ?: Ġ"" }${ show ( index , Ġ" [] ") }") Ġ{ Ġactual Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġin Ġ 0 Ġuntil Ġactual . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual [ index ] ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected (" index Ġto Ġbe Ġin Ġrange :[ 0 -${ actual . size }) Ġbut Ġwas :${ show ( index )} ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ /** Ċ Ġ* ĠAssert s Ġthe Ġ$ T Ġcontains Ġexactly Ġthe Ġexpected Ġelements . ĠThey Ġmust Ġbe Ġin Ġthe Ġsame Ġorder Ġand Ċ Ġ* Ġthere Ġmust Ġnot Ġbe Ġany Ġextra Ġelements . Ċ Ġ* Ġ@ see Ġ[ contains All ] Ċ Ġ*/ Ċ @ Platform Name ("$ N Contains Exactly ") Ċ fun ĠAssert <$ T >. contains Exactly ( var arg Ġelements : Ġ$ E ) Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġif Ġ( actual . content Equals ( elements )) Ġreturn ĊĊĠĠĠ Ġexpected ( list Differ Expected ( elements . toList (), Ġactual . toList ())) Ċ } Ċ Ċ /** Ċ Ġ* ĠAssert s Ġon Ġeach Ġitem Ġin Ġthe Ġ$ T . ĠThe Ġgiven Ġlambda Ġwill Ġbe Ġrun Ġfor Ġeach Ġitem . Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* ĠassertThat ($ N Of (" one ", Ġ" two ")). each Ġ{ Ċ Ġ* ĠĠ Ġit . has Length ( 3 ) Ċ Ġ* Ġ} Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ @ Platform Name ("$ NE ach ") Ċ fun ĠAssert <$ T >. each ( f : Ġ( Assert <$ E >) Ġ-> ĠUnit ) Ġ= Ġgiven Ġ{ Ġactual Ġ-> ĊĠĠĠ Ġall Ġ{ ĊĠĠĠĠĠĠĠ Ġactual . forEach Indexed Ġ{ Ġindex , Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf ( assertThat ( item , Ġname Ġ= Ġ"${ name Ġ?: Ġ"" }${ show ( index , Ġ" [] ")} ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ