package Ġcom . github . j corn az . col le kt . test Ċ Ċ import Ġcom . github . j corn az . col le kt . api . Persistent List Factory Ċ import Ġcom . github . j corn az . col le kt . api . of Ċ import Ġkotlin . test .* Ċ Ċ public Ġabstract Ġclass ĠPersistent List Test Ġ: ĠPersistent Collection Test () Ġ{ ĊĠĠĠ Ġpublic Ġabstract Ġoverride Ġval Ġfactory : ĠPersistent List Factory ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Support Duplicate Elements () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġfactory . of ( 1 , Ġ 2 , Ġ 2 , Ġ 3 ). size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠshouldBe Accessible ByIndex () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġlist [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġlist [ 1 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġlist [ 2 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġlist [ 3 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwrong Index Should Throw Index OutOf Bound Exception () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 2 , Ġ 3 ) ĊĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġlist [- 1 ] Ġ} ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġlist [ 4 ] Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠindexOf First Should Return The First Index () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 2 , Ġ 3 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġlist . indexOf ( 1 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġlist . indexOf ( 2 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġlist . indexOf ( 3 )) ĊĠĠĠĠĠĠĠ ĠassertEquals (- 1 , Ġlist . indexOf ( 4 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlast IndexOf Should Return The Last Index () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 2 , Ġ 3 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġlist . lastIndexOf ( 1 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġlist . lastIndexOf ( 2 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġlist . lastIndexOf ( 3 )) ĊĠĠĠĠĠĠĠ ĠassertEquals (- 1 , Ġlist . lastIndexOf ( 4 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġiteration Should Preserve Order () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġiterator Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ). iterator () ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( iterator . hasNext ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġiterator . next ()) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( iterator . hasNext ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġiterator . next ()) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( iterator . hasNext ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġiterator . next ()) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( iterator . hasNext ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġiterator . next ()) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( iterator . hasNext ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġreverse Iteration Should Return Elements From The Last To The First () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġiterator Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ). list Iterator ( 4 ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( iterator . has Previous ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġiterator . previous ()) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( iterator . has Previous ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġiterator . previous ()) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( iterator . has Previous ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġiterator . previous ()) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( iterator . has Previous ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġiterator . previous ()) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( iterator . has Previous ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġelements In Different Order Should Not Be Equals () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( factory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ), Ġfactory . of ( 1 , Ġ 4 , Ġ 3 , Ġ 2 )) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( factory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ), Ġfactory . of ( 4 , Ġ 3 , Ġ 2 , Ġ 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdifferent Occurrence Count Of Element Should Not Be Equals () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( factory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 3 ), Ġfactory . of ( 1 , Ġ 2 , Ġ 3 )) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( factory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 3 ), Ġfactory . of ( 1 , Ġ 2 , Ġ 2 , Ġ 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġequivalent List ShouldBe Equals Std List () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ), ĠlistOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 ), ĠlistOf ( 1 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of (), ĠlistOf < Int >()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . empty (), Ġempty List < Int >()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdifferent List Should Not Equals Std List () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( factory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ), ĠlistOf ( 4 , Ġ 3 , Ġ 2 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( factory . of ( 1 , Ġ 2 , Ġ 2 , Ġ 3 ), ĠlistOf ( 1 , Ġ 2 , Ġ 3 )) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( factory . of ( 1 , Ġ 2 , Ġ 3 ), ĠlistOf ( 1 , Ġ 2 , Ġ 3 , Ġ 3 )) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( factory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ), ĠlistOf ( 1 , Ġ 2 , Ġ 4 )) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( factory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ), Ġempty List < Int >()) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( factory . empty (), ĠlistOf ( 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠhashCode ShouldBe Cons istent With Std List () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ). hashCode (), Ġfactory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ). hashCode ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( emptyList < Int >(). hashCode (), Ġfactory . empty < Int >(). hashCode ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsub List Should Return Elements Between The Given Indexes () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub List Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ). sub List ( 1 , Ġ 3 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 2 , Ġ 3 ), Ġsub List ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( sub List . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġsub List [- 1 ] Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsub List [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġsub List [ 1 ]) ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġsub List [ 2 ] Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsub List Should Return Empty List When To Index And From Index Are Equals () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . empty (), Ġfactory . empty < Int >(). sub List ( 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . empty (), Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). sub List ( 1 , Ġ 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsub List Should Return Equivalent List For Index Between 0 And Size () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 , Ġ 2 , Ġ 3 ), Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). sub List ( 0 , Ġ 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsub List Should Throw Index OutOf Bound Exception For Wrong Indexes () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . empty < Int >(). sub List (- 1 , Ġ 0 ) Ġ} ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . empty < Int >(). sub List ( 0 , Ġ 1 ) Ġ} ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). sub List (- 1 , Ġ 2 ) Ġ} ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). sub List ( 2 , Ġ 4 ) Ġ} ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). sub List ( 2 , Ġ 1 ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsplit Should Return Two Lists () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 , Ġ 2 ) Ġto Ġfactory . of ( 3 , Ġ 4 ), Ġsource . split ( 2 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . empty < Int >() Ġto Ġfactory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ), Ġsource . split ( 0 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) Ġto Ġfactory . empty (), Ġsource . split ( 4 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsplit Should Return Two Empty Lists If The Source IsEmpty () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . empty < Int >() Ġto Ġfactory . empty (), Ġfactory . empty < Int >(). split ( 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsplit Should Throw Index OutOf Bound Exception For Wrong Indexes () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . empty < Int >(). split (- 1 ) Ġ} ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). split (- 1 ) Ġ} ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). split ( 4 ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġempty Sub List Should Return Empty List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub List Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ). sub List ( 1 , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( sub List . isEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( sub List , Ġfactory . empty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwith Should Return Collection With The Element Re placed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsource . with ( 1 , Ġ 4 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġresult [ 1 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( result , Ġfactory . of ( 1 , Ġ 4 , Ġ 3 )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsource [ 1 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( source , Ġfactory . of ( 1 , Ġ 2 , Ġ 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwith Should Throw Index OutOf Bound If Index Is OutOf Bound () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfactory . empty < Int >(). with ( 0 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). with (- 1 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). with ( 3 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġplus AtIndex Should Return Collection With The Element () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist 1 Ġ= Ġfactory . empty < Int >() ĊĠĠĠĠĠĠĠ Ġval Ġlist 2 Ġ= Ġlist 1 . plus ( index Ġ= Ġ 0 , Ġelement Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġlist 3 Ġ= Ġlist 2 . plus ( index Ġ= Ġ 0 , Ġelement Ġ= Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġlist 4 Ġ= Ġlist 3 . plus ( index Ġ= Ġ 1 , Ġelement Ġ= Ġ 2 ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( list 1 . isEmpty ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġlist 2 [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġlist 3 [ 1 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġlist 4 [ 2 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġlist 3 [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġlist 4 [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġlist 4 [ 1 ]) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . empty (), Ġlist 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 0 ), Ġlist 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 , Ġ 0 ), Ġlist 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 , Ġ 2 , Ġ 0 ), Ġlist 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġplus Collection AtIndex Should Return A Collection With The Given Collection Inserted AtIndex () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcol 1 Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġcol 2 Ġ= Ġfactory . of ( 4 , Ġ 5 , Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcol 1 . plus ( 1 , Ġcol 2 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 , Ġ 2 , Ġ 3 ), Ġcol 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 4 , Ġ 5 , Ġ 6 ), Ġcol 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 2 , Ġ 3 ), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġplus Empty Collection AtIndex Should Return An Equal Collection () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcol Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( col , Ġcol . plus ( 1 , Ġfactory . empty ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġminus Index Should Return A Collection Without The Under ling Element () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcol Ġ= Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcol . minus Index ( 1 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (- 1 , Ġresult . indexOf ( 2 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 , Ġ 2 , Ġ 3 ), Ġcol ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( factory . of ( 1 , Ġ 3 ), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġminus Index Should Throw Index OutOf Bound For Wrong Indexes () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . empty < Int >(). minus Index ( 0 ) Ġ} ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . empty < Int >(). minus Index (- 1 ) Ġ} ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). minus Index (- 1 ) Ġ} ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ Ġfactory . of ( 1 , Ġ 2 , Ġ 3 ). minus Index ( 3 ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ