package Ġpb and k Ċ Ċ import Ġpb and k . test pb . Bar Ċ import Ġpb and k . test pb . Foo Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assert Content Equals Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠRe peated Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Repeated Message () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġused Ġto Ġfail Ġbecause Ġit Ġassumed Ġmessages Ġcould Ġbe Ġpacked ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= Ġbyte ArrayOf ( 1 0 , Ġ 6 , Ġ 1 0 , Ġ 4 , Ġ 1 0 2 , Ġ 1 1 1 , Ġ 1 1 1 , Ġ 4 9 , Ġ 1 0 , Ġ 6 , Ġ 1 0 , Ġ 4 , Ġ 1 0 2 , Ġ 1 1 1 , Ġ 1 1 1 , Ġ 5 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠBar ( fo os Ġ= ĠlistOf ( Foo (` val ` Ġ= Ġ" foo 1 "), ĠFoo (` val ` Ġ= Ġ" foo 2 "))) ĊĊĠĠĠĠĠĠĠ Ġassert Content Equals ( expected . encode To ByteArray (), Ġbytes ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , ĠBar . decode From ByteArray ( bytes )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest List With Size Equality () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist 1 Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġlist 2 Ġ= ĠList With Size . Builder < Int >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( 3 ) ĊĠĠĠĠĠĠĠ Ġ}. fixed () ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġused Ġto Ġfail Ġbecause Ġ` List With Size ` Ġdidn 't Ġproperly Ġdelegate Ġequality Ġto Ġthe Ġunderlying Ġlist . ĊĠĠĠĠĠĠĠ Ġ// ĠIt Ġonly Ġfailed Ġon ĠKotlin / JS Ġand Ġnot Ġon ĠKotlin / JVM Ġbecause Ġon ĠKotlin / JVM Ġthe Ġ` List ` Ġinterface Ġdeleg ates Ġto Ġthe ĊĠĠĠĠĠĠĠ Ġ// ĠJVM Ġversion Ġof Ġ` List `, Ġwhich Ġdefines Ġa Ġcorrect Ġversion Ġof Ġthe Ġ` equals ()` Ġmethod . ĠWhere as Ġthe Ġpure ĠKotlin ĊĠĠĠĠĠĠĠ Ġ// Ġversion Ġof Ġ` List ` Ġdoes Ġnot Ġinclude Ġan Ġ` equals ()` Ġdefinition . ĊĠĠĠĠĠĠĠ ĠassertEquals ( list 1 , Ġlist 2 ) ĊĠĠĠ Ġ} Ċ } ĊĊ