package Ġcom . open md m . client . test Ċ Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . Parameterized Ċ Ċ private Ġconst Ġval ĠUN EXPECTED Ġ= Ġ" unexpected Ġerror !" Ċ Ċ private Ġconst Ġval ĠINT Ġ= Ġ 1 Ċ private Ġconst Ġval ĠLONG Ġ= Ġ 1 L Ċ private Ġconst Ġval ĠDOUBLE Ġ= Ġ 1 . 0 Ċ private Ġconst Ġval ĠFLOAT Ġ= Ġ 1 . 0 f Ċ private Ġconst Ġval ĠBOOL Ġ= Ġtrue Ċ Ċ private Ġdata Ġclass ĠData Class ( ĊĠĠĠ Ġval Ġint : ĠInt , ĊĠĠĠ Ġval Ġboolean : ĠBoolean , ĊĠĠĠ Ġval Ġdouble : ĠDouble , Ċ ) Ċ Ċ private Ġval ĠDATA 1 Ġ= ĠData Class ( INT , ĠBOOL , ĠDOUBLE ) Ċ private Ġval ĠDATA 2 Ġ= ĠData Class ( INT , ĠBOOL , ĠDOUBLE ) Ċ Ċ private Ġabstract Ġclass ĠAbstract Class Ċ private Ġobject ĠFinal Class Ġ: ĠAbstract Class () Ċ private Ġinterface ĠI Interface Ċ private Ġobject ĠInterface Impl Ġ: ĠI Interface Ċ Ċ private Ġval ĠINT S Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) Ċ private Ġval ĠLONG S Ġ= ĠlistOf ( 1 L , Ġ 2 L , Ġ 3 L ) Ċ private Ġval ĠDOUBLE S Ġ= ĠlistOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 ) Ċ private Ġval ĠFLOAT S Ġ= ĠlistOf ( 1 . 0 f , Ġ 2 . 0 f , Ġ 3 . 0 f ) Ċ private Ġval ĠBOOL S Ġ= ĠlistOf ( true , Ġfalse , Ġtrue ) Ċ Ċ private Ġfun Ġcheck Failed ( call : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġcall . invoke () ĊĠĠĠĠĠĠĠ Ġthrow ĠAssertionError ( UN EXPECTED ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠAssertionError ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( e . message Ġ== ĠUN EXPECTED ) Ġthrow Ġe ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠAssert Equals Valid Tests ( private Ġval Ġexpected : ĠAny , Ġprivate Ġval Ġactual : ĠAny ) Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertEquals Ġvalid `() Ġ= ĠassertEquals ( expected , Ġactual ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Parameterized . Parameters ĊĠĠĠĠĠĠĠ Ġfun Ġdata () Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( INT , ĠINT ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( INT , ĠINT ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( LONG , ĠLONG ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( FLOAT , ĠFLOAT ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( DOUBLE , ĠDOUBLE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( BOOL , ĠBOOL ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( DATA 1 . boolean , ĠBOOL ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( DATA 1 . int , ĠINT ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( DATA 1 . double , ĠDOUBLE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( DATA 1 , ĠDATA 2 ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠAssert Not Equals Valid Tests ( private Ġval Ġa : ĠAny , Ġprivate Ġval Ġb : ĠAny ) Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertNot Equals Ġvalid `() Ġ= Ġassert Not Equals ( a , Ġb ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Parameterized . Parameters ĊĠĠĠĠĠĠĠ Ġfun Ġdata () Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( 0 , Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( INT , ĠBOOL ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( INT , ĠLONG ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( INT , ĠFLOAT ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( INT , ĠDOUBLE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( DATA 1 , ĠDOUBLE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( INT , Ġ" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( LONG , Ġ" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( LONG , Ġ" 1 L "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( DOUBLE , Ġ" 1 . 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( FLOAT , Ġ" 1 . 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( FLOAT , Ġ" 1 . 0 f "), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠAssert True Or False Tests Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertTrue Ġvalid `() Ġ= ĠassertTrue ( true ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertTrue Ġinvalid Ġ 1 `() Ġ= Ġcheck Failed Ġ{ ĠassertTrue ( false ) Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertTrue Ġinvalid Ġ 2 `() Ġ= Ġcheck Failed Ġ{ ĠassertTrue ( null ) Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertFalse Ġvalid `() Ġ= ĠassertFalse ( false ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertFalse Ġinvalid Ġ 1 `() Ġ= Ġcheck Failed Ġ{ ĠassertFalse ( true ) Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertFalse Ġinvalid Ġ 2 `() Ġ= Ġcheck Failed Ġ{ ĠassertFalse ( null ) Ġ} Ċ } Ċ Ċ class ĠAssert Is Type Tests Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġvalid Ġ 1 `() Ġ= Ġassert Is Type < Data Class >( DATA 1 ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġvalid Ġ 2 `() Ġ= Ġassert Is Type < Int >( INT ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġvalid Ġ 3 `() Ġ= Ġassert Is Type < Double >( DOUBLE ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġvalid Ġ 4 `() Ġ= Ġassert Is Type < Boolean >( BOOL ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġvalid Ġ 5 `() Ġ= Ġassert Is Type < Float >( FLOAT ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġvalid Ġ 6 `() Ġ= Ġassert Is Type < Double >( DATA 1 . double ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġinvalid Ġ 1 `() Ġ= Ġcheck Failed Ġ{ Ġassert Is Type < Abstract Class >( Final Class ) Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġinvalid Ġ 2 `() Ġ= Ġcheck Failed Ġ{ Ġassert Is Type < I Interface >( Interface Impl ) Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġinvalid Ġ 3 `() Ġ= Ġcheck Failed Ġ{ Ġassert Is Type < Int >( LONG ) Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġinvalid Ġ 4 `() Ġ= Ġcheck Failed Ġ{ Ġassert Is Type < Int >( BOOL ) Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assertIs Type Ġinvalid Ġ 5 `() Ġ= Ġcheck Failed Ġ{ Ġassert Is Type < Boolean >( INT ) Ġ} Ċ } Ċ Ċ class ĠAssert Is Type Or Subclass Tests Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġvalid Ġ 1 `() Ġ= Ġassert Is Type Or Subclass < Data Class >( DATA 1 ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġvalid Ġ 2 `() Ġ= Ġassert Is Type Or Subclass < Int >( INT ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġvalid Ġ 3 `() Ġ= Ġassert Is Type Or Subclass < Double >( DOUBLE ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġvalid Ġ 4 `() Ġ= Ġassert Is Type Or Subclass < Boolean >( BOOL ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġvalid Ġ 5 `() Ġ= Ġassert Is Type Or Subclass < Float >( FLOAT ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġvalid Ġ 6 `() Ġ= Ġassert Is Type Or Subclass < Double >( DATA 1 . double ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġvalid Ġ 7 `() Ġ= Ġassert Is Type Or Subclass < Abstract Class >( Final Class ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġvalid Ġ 8 `() Ġ= Ġassert Is Type Or Subclass < I Interface >( Interface Impl ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġinvalid Ġ 1 `() Ġ= Ġcheck Failed Ġ{ Ġassert Is Type Or Subclass < Int >( LONG ) Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġinvalid Ġ 2 `() Ġ= Ġcheck Failed Ġ{ Ġassert Is Type Or Subclass < Int >( BOOL ) Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert Subclass Ġinvalid Ġ 3 `() Ġ= Ġcheck Failed Ġ{ Ġassert Is Type Or Subclass < Boolean >( INT ) Ġ} Ċ } Ċ Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠAssert List Equals Valid Tests ( private Ġval Ġa : ĠList < Any >, Ġprivate Ġval Ġb : ĠList < Any >) Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assert List Equals Ġvalid `() Ġ= Ġassert List Equals ( a , Ġb ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Parameterized . Parameters ĊĠĠĠĠĠĠĠ Ġfun Ġdata () Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( INT S , ĠINT S ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( INT S , Ġcopy Of ( INT S )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( LONG S , ĠLONG S ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( LONG S , Ġcopy Of ( LONG S )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( FLOAT S , ĠFLOAT S ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( FLOAT S , Ġcopy Of ( FLOAT S )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( DOUBLE S , ĠDOUBLE S ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( DOUBLE S , Ġcopy Of ( DOUBLE S )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( BOOL S , ĠBOOL S ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( BOOL S , Ġcopy Of ( BOOL S )), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġ< T > Ġcopy Of ( list : ĠList < T >): ĠList < T > Ġ= Ġarray ListOf < T >(). apply Ġ{ Ġadd All ( list ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ