package Ġpb and k Ċ Ċ import Ġcom . google . protobuf _ test _ messages . proto 3 . Test Messages Proto 3 Ċ import Ġpb and k . test pb . Foreign Enum Ċ import Ġpb and k . test pb . Message With Map Ċ import Ġpb and k . test pb . Test All Types Proto 3 Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠJ vm Map Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Map () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Map Ġ= Ġmap Of (" 1 " Ġto Ġ" a ", Ġ" 2 " Ġto Ġ" b ", Ġ" blah blah blah " Ġto Ġ" 5 0 0 0 ") ĊĠĠĠĠĠĠĠ Ġ// ĠGenerate Ġa ĠJava Ġversion Ġof Ġthe Ġproto Ġand Ġdeserialize ĠKotlin Ġversion Ġand Ġvice - ver sa ĊĠĠĠĠĠĠĠ Ġval Ġbuilt Java Obj Ġ= Ġpb and k . test pb . java . Test . Message With Map . newBuilder (). put All Map ( test Map ). build () ĊĠĠĠĠĠĠĠ Ġval Ġbuilt Kotlin Obj Ġ= ĠMessage With Map ( test Map ) ĊĠĠĠĠĠĠĠ Ġpb and k Java Round trip Test ( built Java Obj , Ġbuilt Kotlin Obj , ĠMessage With Map . Companion ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Map Decode Type () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage With Map Ġ= ĠMessage With Map ( map Of (" 1 " Ġto Ġ" a ", Ġ" 2 " Ġto Ġ" b ", Ġ" blah blah blah " Ġto Ġ" 5 0 0 0 ")) ĊĠĠĠĠĠĠĠ Ġval Ġdeserialized Ġ= ĠMessage With Map . decode From ByteArray ( message With Map . encode To ByteArray ()) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthat Ġmap - with - size ĊĠĠĠĠĠĠĠ ĠassertTrue ( de serialized . map Ġis ĠMessage Map ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Map Default Values () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilt Java Obj Ġ= ĠTest Messages Proto 3 . Test All Types Proto 3 . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put All Map String Foreign Enum ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 1 " Ġto ĠTest Messages Proto 3 . Foreign Enum . FOREIGN _ FOO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 9 9 " Ġto ĠTest Messages Proto 3 . Foreign Enum . FOREIGN _ BAR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put All Map Int 3 2 Int 3 2 ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 Ġto Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 9 Ġto Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put All Map String String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 1 " Ġto Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 9 9 " Ġto Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilt Kotlin Obj Ġ= ĠTest All Types Proto 3 ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap String Foreign Enum Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 1 " Ġto ĠForeign Enum . FOREIGN _ FOO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 9 9 " Ġto ĠForeign Enum . FOREIGN _ BAR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Int 3 2 Int 3 2 Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 Ġto Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 9 Ġto Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap String String Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 1 " Ġto Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 9 9 " Ġto Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġpb and k Java Round trip Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt Java Obj , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt Kotlin Obj , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest All Types Proto 3 . Companion , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprotobuf - java Ġand Ġpb and k Ġencoded Ġrepresentations Ġwill Ġbe Ġdifferent Ġbecause Ġprotobuf - java Ġserial izes Ġmap ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġentries Ġwith Ġdefault Ġvalues Ġwhereas Ġpb and k Ġomit s Ġthem . ĠBoth Ġapproaches Ġare Ġallowed Ġby Ġthe Ġproto 3 Ġspec . ĠSo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġeven Ġthough Ġsizes Ġand Ġbytes Ġwill Ġbe Ġdifferent , Ġprotobuf - java Ġand Ġpb and k Ġshould Ġstill Ġbe Ġable Ġto Ġread Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbytes Ġgenerated Ġby Ġthe Ġother Ġlibrary . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġen codings Must Be Equal Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }