import Ġgro buf . Serializer č Ċ import Ġgro buf . Serializer Impl č Ċ import Ġorg . junit . Assert . assertEquals č Ċ import Ġorg . junit . Before č Ċ import Ġorg . junit . Test čĊč Ċ @ Suppress (" PLATFORM _ CLASS _ MAP PED _ TO _ K OT LIN ", Ġ" Remove Red undant Calls Of Conversion Methods ") č Ċ class ĠTest Boxes Ġ{ čĊĠĠĠ Ġlateinit Ġvar Ġserializer : ĠSerializer čĊčĊĠĠĠ Ġ@ Before čĊĠĠĠ Ġfun ĠsetUp () Ġ{ čĊĠĠĠĠĠĠĠ Ġserializer Ġ= ĠSerializer Impl () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġ< T From : ĠAny , ĠT To : ĠAny > Ġdo Test ( x : ĠT From , Ġexpected : ĠT To , Ġklass From : ĠClass < T From >, Ġklass To : ĠClass < T To >) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġserializer . serialize ( x , Ġklass From ) čĊĠĠĠĠĠĠĠ Ġval Ġread X Ġ= Ġserializer . deserialize ( data , Ġklass To ) čĊĠĠĠĠĠĠĠ Ġwhen Ġ( expected ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Ġ-> ĠassertEquals ( expected , Ġread X Ġas ĠFloat , Ġ 1 e - 8 f ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDouble Ġ-> ĠassertEquals ( expected , Ġread X Ġas ĠDouble , Ġ 1 e - 1 0 ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠassertEquals ( expected , Ġread X ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġval Ġb Ġ= Ġ 1 0 0 . to Byte () čĊĠĠĠ Ġprivate Ġval Ġs Ġ= Ġ 1 0 _ 0 0 0 . to Short () čĊĠĠĠ Ġprivate Ġval Ġi Ġ= Ġ 1 0 0 0 _ 0 0 0 _ 0 0 0 čĊĠĠĠ Ġprivate Ġval Ġl Ġ= Ġ 1 0 _ 0 0 0 _ 0 0 0 _ 0 0 0 čĊĠĠĠ Ġprivate Ġval Ġz Ġ= Ġtrue čĊĠĠĠ Ġprivate Ġval Ġc Ġ= Ġ' z ' čĊĠĠĠ Ġprivate Ġval Ġf Ġ= Ġ 3 . 1 4 1 5 9 f čĊĠĠĠ Ġprivate Ġval Ġd Ġ= Ġ 2 . 7 1 8 2 8 1 8 2 8 4 5 9 0 4 5 čĊčĊĠĠĠ Ġprivate Ġfun ĠBoolean . to Byte () ĠĠ Ġ= Ġ( if Ġ( this ) Ġ 1 Ġelse Ġ 0 ). to Byte () čĊĠĠĠ Ġprivate Ġfun ĠBoolean . to Short () Ġ Ġ= Ġ( if Ġ( this ) Ġ 1 Ġelse Ġ 0 ). to Short () čĊĠĠĠ Ġprivate Ġfun ĠBoolean . toInt () ĠĠĠ Ġ= Ġ( if Ġ( this ) Ġ 1 Ġelse Ġ 0 ). toInt () čĊĠĠĠ Ġprivate Ġfun ĠBoolean . to Long () ĠĠ Ġ= Ġ( if Ġ( this ) Ġ 1 Ġelse Ġ 0 ). to Long () čĊĠĠĠ Ġprivate Ġfun ĠBoolean . to Char () ĠĠ Ġ= Ġ( if Ġ( this ) Ġ 1 Ġelse Ġ 0 ). to Char () čĊĠĠĠ Ġprivate Ġfun ĠBoolean . toFloat () Ġ Ġ= Ġ( if Ġ( this ) Ġ 1 Ġelse Ġ 0 ). toFloat () čĊĠĠĠ Ġprivate Ġfun ĠBoolean . toDouble () Ġ= Ġ( if Ġ( this ) Ġ 1 Ġelse Ġ 0 ). toDouble () čĊčĊĠĠĠ Ġprivate Ġfun ĠByte . boxed () Ġ= Ġjava . lang . Byte . valueOf ( this ) Ġas Ġjava . lang . Byte čĊĠĠĠ Ġprivate Ġfun ĠShort . boxed () Ġ= Ġjava . lang . Short . valueOf ( this ) Ġas Ġjava . lang . Short čĊĠĠĠ Ġprivate Ġfun ĠInt . boxed () Ġ= Ġjava . lang . Integer . valueOf ( this ) Ġas Ġjava . lang . Integer čĊĠĠĠ Ġprivate Ġfun ĠLong . boxed () Ġ= Ġjava . lang . Long . valueOf ( this ) Ġas Ġjava . lang . Long čĊĠĠĠ Ġprivate Ġfun ĠBoolean . boxed () Ġ= Ġjava . lang . Boolean . valueOf ( this ) Ġas Ġjava . lang . Boolean čĊĠĠĠ Ġprivate Ġfun ĠChar . boxed () Ġ= Ġjava . lang . Character . valueOf ( this ) Ġas Ġjava . lang . Character čĊĠĠĠ Ġprivate Ġfun ĠFloat . boxed () Ġ= Ġjava . lang . Float . valueOf ( this ) Ġas Ġjava . lang . Float čĊĠĠĠ Ġprivate Ġfun ĠDouble . boxed () Ġ= Ġjava . lang . Double . valueOf ( this ) Ġas Ġjava . lang . Double čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Byte () Ġ{ čĊĠĠĠĠĠĠĠ Ġdo Test ( b . boxed (), Ġb . to Byte (). boxed (), Ġjava . lang . Byte :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Byte :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( s . boxed (), Ġs . to Byte (). boxed (), Ġjava . lang . Short :: class . java ĠĠĠ Ġ, Ġjava . lang . Byte :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( i . boxed (), Ġi . to Byte (). boxed (), Ġjava . lang . Integer :: class . java Ġ Ġ, Ġjava . lang . Byte :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( l . boxed (), Ġl . to Byte (). boxed (), Ġjava . lang . Long :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Byte :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( z . boxed (), Ġz . to Byte (). boxed (), Ġjava . lang . Boolean :: class . java Ġ Ġ, Ġjava . lang . Byte :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( c . boxed (), Ġc . to Byte (). boxed (), Ġjava . lang . Character :: class . java , Ġjava . lang . Byte :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( f . boxed (), Ġf . to Byte (). boxed (), Ġjava . lang . Float :: class . java ĠĠĠ Ġ, Ġjava . lang . Byte :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( d . boxed (), Ġd . to Byte (). boxed (), Ġjava . lang . Double :: class . java ĠĠ Ġ, Ġjava . lang . Byte :: class . java ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Short () Ġ{ čĊĠĠĠĠĠĠĠ Ġdo Test ( b . boxed (), Ġb . to Short (). boxed (), Ġjava . lang . Byte :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Short :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( s . boxed (), Ġs . to Short (). boxed (), Ġjava . lang . Short :: class . java ĠĠĠ Ġ, Ġjava . lang . Short :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( i . boxed (), Ġi . to Short (). boxed (), Ġjava . lang . Integer :: class . java Ġ Ġ, Ġjava . lang . Short :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( l . boxed (), Ġl . to Short (). boxed (), Ġjava . lang . Long :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Short :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( z . boxed (), Ġz . to Short (). boxed (), Ġjava . lang . Boolean :: class . java Ġ Ġ, Ġjava . lang . Short :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( c . boxed (), Ġc . to Short (). boxed (), Ġjava . lang . Character :: class . java , Ġjava . lang . Short :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( f . boxed (), Ġf . to Short (). boxed (), Ġjava . lang . Float :: class . java ĠĠĠ Ġ, Ġjava . lang . Short :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( d . boxed (), Ġd . to Short (). boxed (), Ġjava . lang . Double :: class . java ĠĠ Ġ, Ġjava . lang . Short :: class . java ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Int () Ġ{ čĊĠĠĠĠĠĠĠ Ġdo Test ( b . boxed (), Ġb . toInt (). boxed (), Ġjava . lang . Byte :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Integer :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( s . boxed (), Ġs . toInt (). boxed (), Ġjava . lang . Short :: class . java ĠĠĠ Ġ, Ġjava . lang . Integer :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( i . boxed (), Ġi . toInt (). boxed (), Ġjava . lang . Integer :: class . java Ġ Ġ, Ġjava . lang . Integer :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( l . boxed (), Ġl . toInt (). boxed (), Ġjava . lang . Long :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Integer :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( z . boxed (), Ġz . toInt (). boxed (), Ġjava . lang . Boolean :: class . java Ġ Ġ, Ġjava . lang . Integer :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( c . boxed (), Ġc . toInt (). boxed (), Ġjava . lang . Character :: class . java , Ġjava . lang . Integer :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( f . boxed (), Ġf . toInt (). boxed (), Ġjava . lang . Float :: class . java ĠĠĠ Ġ, Ġjava . lang . Integer :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( d . boxed (), Ġd . toInt (). boxed (), Ġjava . lang . Double :: class . java ĠĠ Ġ, Ġjava . lang . Integer :: class . java ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Long () Ġ{ čĊĠĠĠĠĠĠĠ Ġdo Test ( b . boxed (), Ġb . to Long (). boxed (), Ġjava . lang . Byte :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Long :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( s . boxed (), Ġs . to Long (). boxed (), Ġjava . lang . Short :: class . java ĠĠĠ Ġ, Ġjava . lang . Long :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( i . boxed (), Ġi . to Long (). boxed (), Ġjava . lang . Integer :: class . java Ġ Ġ, Ġjava . lang . Long :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( l . boxed (), Ġl . to Long (). boxed (), Ġjava . lang . Long :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Long :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( z . boxed (), Ġz . to Long (). boxed (), Ġjava . lang . Boolean :: class . java Ġ Ġ, Ġjava . lang . Long :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( c . boxed (), Ġc . to Long (). boxed (), Ġjava . lang . Character :: class . java , Ġjava . lang . Long :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( f . boxed (), Ġf . to Long (). boxed (), Ġjava . lang . Float :: class . java ĠĠĠ Ġ, Ġjava . lang . Long :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( d . boxed (), Ġd . to Long (). boxed (), Ġjava . lang . Double :: class . java ĠĠ Ġ, Ġjava . lang . Long :: class . java ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Boolean () Ġ{ čĊĠĠĠĠĠĠĠ Ġdo Test ( b . boxed (), Ġtrue . boxed (), Ġjava . lang . Byte :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( s . boxed (), Ġtrue . boxed (), Ġjava . lang . Short :: class . java ĠĠĠ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( i . boxed (), Ġtrue . boxed (), Ġjava . lang . Integer :: class . java Ġ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( l . boxed (), Ġtrue . boxed (), Ġjava . lang . Long :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( z . boxed (), Ġtrue . boxed (), Ġjava . lang . Boolean :: class . java Ġ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( c . boxed (), Ġtrue . boxed (), Ġjava . lang . Character :: class . java , Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( f . boxed (), Ġtrue . boxed (), Ġjava . lang . Float :: class . java ĠĠĠ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( d . boxed (), Ġtrue . boxed (), Ġjava . lang . Double :: class . java ĠĠ Ġ, Ġjava . lang . Boolean :: class . java ) čĊčĊĠĠĠĠĠĠĠ Ġdo Test ( 0 . to Byte () Ġ. boxed (), Ġfalse . boxed (), Ġjava . lang . Byte :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( 0 . to Short (). boxed (), Ġfalse . boxed (), Ġjava . lang . Short :: class . java ĠĠĠ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( 0 ĠĠĠĠĠĠĠĠĠ Ġ. boxed (), Ġfalse . boxed (), Ġjava . lang . Integer :: class . java Ġ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( 0 L ĠĠĠĠĠĠĠĠ Ġ. boxed (), Ġfalse . boxed (), Ġjava . lang . Long :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( false ĠĠĠĠĠ Ġ. boxed (), Ġfalse . boxed (), Ġjava . lang . Boolean :: class . java Ġ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( 0 . to Char () Ġ. boxed (), Ġfalse . boxed (), Ġjava . lang . Character :: class . java , Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( 0 . 0 f ĠĠĠĠĠĠ Ġ. boxed (), Ġfalse . boxed (), Ġjava . lang . Float :: class . java ĠĠĠ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( 0 . 0 ĠĠĠĠĠĠĠ Ġ. boxed (), Ġfalse . boxed (), Ġjava . lang . Double :: class . java ĠĠ Ġ, Ġjava . lang . Boolean :: class . java ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Char () Ġ{ čĊĠĠĠĠĠĠĠ Ġdo Test ( b . boxed (), Ġb . to Char (). boxed (), Ġjava . lang . Byte :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Character :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( s . boxed (), Ġs . to Char (). boxed (), Ġjava . lang . Short :: class . java ĠĠĠ Ġ, Ġjava . lang . Character :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( i . boxed (), Ġi . to Char (). boxed (), Ġjava . lang . Integer :: class . java Ġ Ġ, Ġjava . lang . Character :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( l . boxed (), Ġl . to Char (). boxed (), Ġjava . lang . Long :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Character :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( z . boxed (), Ġz . to Char (). boxed (), Ġjava . lang . Boolean :: class . java Ġ Ġ, Ġjava . lang . Character :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( c . boxed (), Ġc . to Char (). boxed (), Ġjava . lang . Character :: class . java , Ġjava . lang . Character :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( f . boxed (), Ġf . to Char (). boxed (), Ġjava . lang . Float :: class . java ĠĠĠ Ġ, Ġjava . lang . Character :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( d . boxed (), Ġd . to Char (). boxed (), Ġjava . lang . Double :: class . java ĠĠ Ġ, Ġjava . lang . Character :: class . java ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Float () Ġ{ čĊĠĠĠĠĠĠĠ Ġdo Test ( b . boxed (), Ġb . toFloat (). boxed (), Ġjava . lang . Byte :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Float :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( s . boxed (), Ġs . toFloat (). boxed (), Ġjava . lang . Short :: class . java ĠĠĠ Ġ, Ġjava . lang . Float :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( i . boxed (), Ġi . toFloat (). boxed (), Ġjava . lang . Integer :: class . java Ġ Ġ, Ġjava . lang . Float :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( l . boxed (), Ġl . toFloat (). boxed (), Ġjava . lang . Long :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Float :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( z . boxed (), Ġz . toFloat (). boxed (), Ġjava . lang . Boolean :: class . java Ġ Ġ, Ġjava . lang . Float :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( c . boxed (), Ġc . toFloat (). boxed (), Ġjava . lang . Character :: class . java , Ġjava . lang . Float :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( f . boxed (), Ġf . toFloat (). boxed (), Ġjava . lang . Float :: class . java ĠĠĠ Ġ, Ġjava . lang . Float :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( d . boxed (), Ġd . toFloat (). boxed (), Ġjava . lang . Double :: class . java ĠĠ Ġ, Ġjava . lang . Float :: class . java ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Double () Ġ{ čĊĠĠĠĠĠĠĠ Ġdo Test ( b . boxed (), Ġb . toDouble (). boxed (), Ġjava . lang . Byte :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Double :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( s . boxed (), Ġs . toDouble (). boxed (), Ġjava . lang . Short :: class . java ĠĠĠ Ġ, Ġjava . lang . Double :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( i . boxed (), Ġi . toDouble (). boxed (), Ġjava . lang . Integer :: class . java Ġ Ġ, Ġjava . lang . Double :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( l . boxed (), Ġl . toDouble (). boxed (), Ġjava . lang . Long :: class . java ĠĠĠĠ Ġ, Ġjava . lang . Double :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( z . boxed (), Ġz . toDouble (). boxed (), Ġjava . lang . Boolean :: class . java Ġ Ġ, Ġjava . lang . Double :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( c . boxed (), Ġc . toDouble (). boxed (), Ġjava . lang . Character :: class . java , Ġjava . lang . Double :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( f . boxed (), Ġf . toDouble (). boxed (), Ġjava . lang . Float :: class . java ĠĠĠ Ġ, Ġjava . lang . Double :: class . java ) čĊĠĠĠĠĠĠĠ Ġdo Test ( d . boxed (), Ġd . toDouble (). boxed (), Ġjava . lang . Double :: class . java ĠĠ Ġ, Ġjava . lang . Double :: class . java ) čĊĠĠĠ Ġ} č Ċ }