package Ġcombo . util Ċ Ċ import Ġcombo . test . assert Content Equals Ċ import Ġkotlin . random . Random Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠInt Union Collection Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠInt Union Collection ( Int HashSet (), ĠInt ArrayList ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġset . size ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( set . contains (- 1 )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( set . contains ( 0 )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( set . contains ( 1 )) ĊĠĠĠĠĠĠĠ ĠassertTrue ( set . isEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( set . toArray (). isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġempty And One () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠInt Union Collection ( Int Range Collection ( 0 , Ġ 0 ), ĠInt ArrayList ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġset . size ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( set . isEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( set . contains ( 0 )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( set . contains (- 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġone And One () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠInt Union Collection ( Int ArrayList ( int ArrayOf ( 1 )), ĠInt ArrayList ( int ArrayOf ( 1 ))) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġset . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( set . contains ( 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġto Array () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠInt Union Collection ( Int Range Collection ( 1 0 , Ġ 1 5 ), ĠInt Range Collection ( 1 6 , Ġ 1 9 )) ĊĠĠĠĠĠĠĠ Ġassert Content Equals (( 1 0 .. 1 9 ). toList (). to IntArray (), Ġset . toArray ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrandom On Singleton () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠInt Range Collection ( 5 , Ġ 5 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 5 , Ġset . random ( Random )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrandom () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcol Ġ= ĠInt Union Collection ( Int ArrayList ( int ArrayOf ( 0 , Ġ 1 , Ġ 2 )), ĠInt ArrayList ( int ArrayOf ( 3 ))) ĊĠĠĠĠĠĠĠ Ġval Ġrng Ġ= ĠRandom ( 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= Ġgenerate Sequence Ġ{ Ġcol . random ( rng ) Ġ}. take ( 1 0 0 ). toSet () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġset . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcopy Same () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġs 1 Ġ= ĠInt Union Collection ( Int ArrayList ( IntArray ( 1 0 ) Ġ{ Ġit Ġ}), ĠInt ArrayList ( IntArray ( 1 0 ) Ġ{ Ġ- it Ġ})) ĊĠĠĠĠĠĠĠ Ġval Ġs 2 Ġ= Ġs 1 . copy () ĊĠĠĠĠĠĠĠ ĠassertEquals ( s 1 . size , Ġs 2 . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġs 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( i Ġin Ġs 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpermutation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġs 1 Ġ= ĠInt Union Collection ( Int ArrayList ( IntArray ( 1 0 ) Ġ{ Ġit Ġ}), ĠInt ArrayList ( IntArray ( 1 0 ) Ġ{ Ġ- it Ġ})) ĊĠĠĠĠĠĠĠ Ġval Ġs 2 Ġ= Ġs 1 . permutation ( Random ). as Sequence (). toList () ĊĠĠĠĠĠĠĠ Ġassert Content Equals ( s 1 . toArray (). also Ġ{ Ġit . sort () Ġ}, Ġs 2 . to IntArray (). also Ġ{ Ġit . sort () Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġempty Per mutation () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , ĠInt Union Collection ( Int ArrayList ( 0 ), ĠInt ArrayList ( 0 )). permutation ( Random ). as Sequence (). count ()) ĊĠĠĠ Ġ} Ċ }