package Ġcom . so y wiz . kor io . stream Ċ Ċ import Ġcom . so y wiz . k mem .* Ċ import Ġcom . so y wiz . kor io . async .* Ċ import Ġkotlin . test .* Ċ Ċ class ĠSync Stream Test 2 Ġ{ Ċ ĉ @ Test Ċ ĉ fun Ġname () Ġ{ Ċĉ ĉ val Ġbuffer Ġ= ĠByteArray Builder () Ċĉ ĉ val Ġout Ġ= ĠMemory Sync Stream ( buffer ) Ċĉ ĉ assertEquals ( 0 L , Ġout . position ) Ċĉ ĉ assertEquals ( 0 L , Ġout . length ) Ċĉ ĉ out . write 8 ( 0 x 0 1 ) Ċĉ ĉ out . write 8 ( 0 x 0 2 ) Ċĉ ĉ out . write 1 6 LE ( 0 x 0 3 0 4 ) Ċĉ ĉ assertEquals ( 4 L , Ġout . position ) Ċĉ ĉ assertEquals ( 4 L , Ġout . length ) Ċĉ ĉ out . position Ġ= Ġ 0 L Ċĉ ĉ assertEquals ( 0 L , Ġout . position ) Ċĉ ĉ assertEquals ( 4 L , Ġout . length ) Ċĉ ĉ assertEquals ( 0 x 0 1 0 2 , Ġout . read U 1 6 BE ()) Ċĉ ĉ assertEquals ( 0 x 0 3 0 4 , Ġout . read U 1 6 LE ()) Ċĉ ĉ assertEquals ( 4 0 9 6 , Ġbuffer . data . size ) Ċĉ ĉ assertEquals ( 4 , Ġbuffer . toByteArray (). size ) Ċ ĉ } ĊĊ ĉ @ Test Ċ ĉ fun Ġtest Arrays () Ġ= Ġsuspend Test Ġ{ Ċĉ ĉ val Ġout Ġ= ĠMemory Sync Stream () Ċĉ ĉ for Ġ( n Ġin Ġ 0 Ġuntil Ġ 6 ) Ġout . write 3 2 LE ( n Ġ* Ġn ) Ċĉ ĉ out . position Ġ= Ġ 0 L Ċĉ ĉ assertEquals ( Ċĉĉ ĉ "[ 0 , Ġ 1 , Ġ 4 , Ġ 9 , Ġ 1 6 , Ġ 2 5 ]", Ġout . read IntArray LE ( 6 ). toList (). toString () Ċĉ ĉ ) Ċĉ ĉ out . position Ġ= Ġ 0 L Ċĉ ĉ out . write IntArray LE ( int ArrayOf (- 1 , Ġ- 2 , Ġ- 3 , Ġ- 4 , Ġ- 5 , Ġ- 6 , Ġ- 7 , Ġ- 8 )) Ċĉ ĉ out . position Ġ= Ġ 0 L Ċĉ ĉ assertEquals ( Ċĉĉ ĉ " [- 1 , Ġ- 2 , Ġ- 3 , Ġ- 4 , Ġ- 5 , Ġ- 6 , Ġ- 7 , Ġ- 8 ]", Ċĉĉ ĉ out . read IntArray LE ( 8 ). toList (). toString () Ċĉ ĉ ) Ċ ĉ } ĊĊ ĉ @ Test Ċ ĉ fun Ġtest 2 () Ġ= Ġsuspend Test Ġ{ Ċĉ ĉ val Ġout Ġ= ĠMemory Sync Stream () Ċĉ ĉ out . write 1 6 BE ( 0 x 1 2 3 4 ) Ċĉ ĉ val Ġbb Ġ= Ġout . toByteArray () Ċĉ ĉ assertEquals ( byte ArrayOf ( 0 x 1 2 , Ġ 0 x 3 4 ). toList (), Ġbb . toList ()) Ċ ĉ } ĊĊ ĉ @ Test Ċ ĉ fun Ġtest U VL () Ġ{ Ċĉ ĉ val Ġvalues Ġ= ĠlistOf ( 0 , Ġ 1 , Ġ 3 3 , Ġ 1 2 7 , Ġ 1 2 8 , Ġ 2 5 5 , Ġ 2 5 6 , Ġ 1 9 8 5 , Ġ 9 1 2 3 4 , Ġ 2 1 3 1 2 3 1 , ĠInt . MAX _ VALUE ) Ċĉ ĉ val Ġout Ġ= ĠMemory Sync Stream () Ċĉ ĉ for Ġ( v Ġin Ġvalues ) Ġout . write U _ VL ( v ) Ċĉ ĉ out . position Ġ= Ġ 0 Ċĉ ĉ val Ġread Values Ġ= Ġvalues . indices . map Ġ{ Ġout . read U _ VL () Ġ} Ċĉ ĉ assertEquals ( values , Ġread Values ) Ċ ĉ } ĊĊ ĉ @ Test Ċ ĉ fun Ġtest S VL () Ġ{ Ċĉ ĉ val Ġvalues Ġ= ĠlistOf ( Ċĉĉ ĉ Int . MIN _ VALUE , Ċĉĉ ĉ - 2 1 3 1 2 3 1 , Ċĉĉ ĉ - 9 1 2 3 4 , Ċĉĉ ĉ - 1 9 8 5 , Ċĉĉ ĉ - 2 5 6 , Ċĉĉ ĉ - 2 5 5 , Ċĉĉ ĉ - 1 2 8 , Ċĉĉ ĉ - 1 2 7 , Ċĉĉ ĉ - 3 3 , Ċĉĉ ĉ - 1 , Ċĉĉĉ 0 , Ċĉĉĉ 1 , Ċĉĉĉ 3 3 , Ċĉĉĉ 1 2 7 , Ċĉĉĉ 1 2 8 , Ċĉĉĉ 2 5 5 , Ċĉĉĉ 2 5 6 , Ċĉĉĉ 1 9 8 5 , Ċĉĉĉ 9 1 2 3 4 , Ċĉĉĉ 2 1 3 1 2 3 1 , Ċĉĉ ĉ Int . MAX _ VALUE Ċĉ ĉ ) Ċĉ ĉ val Ġout Ġ= ĠMemory Sync Stream () Ċĉ ĉ for Ġ( v Ġin Ġvalues ) Ġout . write S _ VL ( v ) Ċĉ ĉ out . position Ġ= Ġ 0 Ċĉ ĉ val Ġread Values Ġ= Ġvalues . indices . map Ġ{ Ġout . read S _ VL () Ġ} Ċĉ ĉ assertEquals ( values , Ġread Values ) Ċ ĉ } Ċ }