package Ġm ary k . core . models Ċ Ċ import Ġm ary k . core . protobuf . Write Cache Ċ import Ġm ary k . json . Json Reader Ċ import Ġm ary k . json . Json Writer Ċ import Ġm ary k . lib . extensions . init ByteArray By Hex Ċ import Ġm ary k . lib . extensions . to Hex Ċ import Ġm ary k . test . Byte Collector Ċ import Ġm ary k . test . models . Simple M ary k Model Ċ import Ġm ary k . yaml . Yaml Writer Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . expect Ċ Ċ private Ġval Ġtest Values Ġ= ĠSimple M ary k Model ( ĊĠĠĠ Ġvalue Ġ= Ġ" ha as " Ċ ) Ċ Ċ internal Ġclass ĠSimple DataModel Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġconstruct By Map () Ġ{ ĊĠĠĠĠĠĠĠ Ġexpect ( test Values ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple M ary k Model . values Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap NonNull s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġwith Ġtest Values Ġ{ Ġvalue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġvalidate () Ġ{ ĊĠĠĠĠĠĠĠ ĠSimple M ary k Model . validate ( test Values ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwrite Into JSONObject () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= ĠJson Writer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple M ary k Model . write Json ( test Values , Ġwriter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" {" value ":" ha as "} """. trim Indent (), Ġoutput ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwrite Into Pretty JSONObject () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= ĠJson Writer ( pretty Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple M ary k Model . write Json ( test Values , Ġwriter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ" ha as " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwrite Into YAML Object () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= ĠYaml Writer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple M ary k Model . write Json ( test Values , Ġwriter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue : Ġha as ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠwriteTo Proto Buf Bytes () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbc Ġ= ĠByte Collector () ĊĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠWrite Cache () ĊĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠSimple M ary k Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" hay " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbc . reserve ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple M ary k Model . calculate Proto Buf Length ( map , Ġcache ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠSimple M ary k Model . write Proto Buf ( map , Ġcache , Ġbc :: write ) ĊĊĠĠĠĠĠĠĠ Ġexpect (" 0 a 0 3 6 8 6 1 7 9 ") Ġ{ Ġbc . bytes !!. to Hex () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġconvert Proto Buf Bytes ToMap () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= Ġinit ByteArray By Hex (" 0 a 0 3 6 8 6 1 7 9 0 0 0 8 1 0 2 0 1 9 4 0 0 c 7 0 a 3 d 7 0 a 3 d 7 2 2 0 ccf 7 9 4 d 1 0 5 2 8 0 1 3 0 0 2 6 a 0 9 0 1 0 5 0 1 0 5 0 1 0 5 0 1 0 5 0 1 ") ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠSimple M ary k Model . read Proto Buf ( bytes . size , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytes [ index ++] ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġexpect ( 1 ) Ġ{ Ġmap . size Ġ} ĊĠĠĠĠĠĠĠ Ġexpect (" hay ") Ġ{ Ġmap Ġ{ Ġvalue Ġ} Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠconvertTo Proto Buf And Back () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbc Ġ= ĠByte Collector () ĊĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠWrite Cache () ĊĊĠĠĠĠĠĠĠ Ġbc . reserve ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple M ary k Model . calculate Proto Buf Length ( test Values , Ġcache ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠSimple M ary k Model . write Proto Buf ( test Values , Ġcache , Ġbc :: write ) ĊĊĠĠĠĠĠĠĠ Ġexpect (" 0 a 0 4 6 8 6 1 6 1 7 3 ") Ġ{ Ġbc . bytes !!. to Hex () Ġ} ĊĊĠĠĠĠĠĠĠ Ġexpect ( test Values ) Ġ{ ĠSimple M ary k Model . read Proto Buf ( bc . size , Ġbc :: read ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġconvert Map To JSON And Back ToMap () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġoutput Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= Ġ{ Ġstring : ĠString Ġ-> Ġoutput Ġ+= Ġstring Ġ} ĊĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Writer ( writer Ġ= Ġwriter ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Writer ( pretty Ġ= Ġtrue , Ġwriter Ġ= Ġwriter ) ĊĠĠĠĠĠĠĠ Ġ). forEach Ġ{ Ġgenerator Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple M ary k Model . write Json ( test Values , Ġgenerator ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Ġ= Ġ{ ĠJson Reader ( reader Ġ= Ġ{ Ġoutput [ index ++] Ġ}) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( test Values ) Ġ{ ĠSimple M ary k Model . read Json ( reader Ġ= Ġreader ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ