package Ġcost anza . ge orge . properties Ċ Ċ import Ġcost anza . ge orge . reflect .* Ċ import Ġcost anza . ge orge . reflect . operations . Deserializer Ċ import Ġcost anza . ge orge . reflect . operations . Serializer Ċ import Ġcost anza . ge orge . reflect . typed properties . String Property Ċ import Ġcost anza . ge orge . reflect . typed properties . extra Slash Ċ import Ġcost anza . ge orge . reflect . typed properties . remove Extra Slash Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠString Token Tests Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest String Wrap And Un wrap () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstr Ġ= Ġ""" my Ġ\ name Ġ" And rew " Ġmeans Ġ" something """" ĊĊĠĠĠĠĠĠĠ Ġval Ġextra Ġ= Ġextra Slash ( str ) ĊĠĠĠĠĠĠĠ Ġprintln (" adding Ġ 1 Ġslash Ġ$ extra ") ĊĠĠĠĠĠĠĠ ĠassertEquals (""" my Ġ\\ name Ġ\" And rew \" Ġmeans Ġ\" something \ """ ", Ġextra ) ĊĊĠĠĠĠĠĠĠ Ġval Ġextra extra Ġ= Ġextra Slash ( extra ) ĊĠĠĠĠĠĠĠ Ġprintln (" adding Ġ 2 Ġslash Ġ$ extra extra ") ĊĠĠĠĠĠĠĠ ĠassertEquals (""" my Ġ\ \\ name Ġ\ \" And rew \ \" Ġmeans Ġ\ \" something \\ """ ", Ġextra extra ) ĊĊĠĠĠĠĠĠĠ Ġval Ġu extra extra Ġ= Ġremove Extra Slash ( extra extra ) ĊĠĠĠĠĠĠĠ Ġprintln (" un wrapping Ġ 2 Ġslash Ġ$ u extra extra ") ĊĠĠĠĠĠĠĠ ĠassertEquals (""" my Ġ\\ name Ġ\" And rew \" Ġmeans Ġ\" something \ """ ", Ġu extra extra ) ĊĊĠĠĠĠĠĠĠ Ġval Ġu extra Ġ= Ġremove Extra Slash ( extra ) ĊĠĠĠĠĠĠĠ Ġprintln (" un wrapping Ġ 1 Ġslash Ġ$ u extra ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( str , Ġu extra ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠTest Entity ( var Ġname : ĠString Ġ= Ġ"", Ġvar Ġaddress : ĠString Ġ= Ġ"") : ĠI Reflect , ĠReflect Base () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġobject Type Ġ= Ġ" test entity " ĊĠĠĠĠĠĠĠ Ġvar Ġprop _ name Ġ= ĠString Property ( this , Ġ" name ", Ġfalse , Ġ"", Ġ{ name }, Ġ{ name Ġ= Ġit }) ĊĠĠĠĠĠĠĠ Ġvar Ġprop _ address Ġ= ĠString Property ( this , Ġ" address ", Ġfalse , Ġ"", Ġ{ address }, Ġ{ address Ġ= Ġit }) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Pop Strings () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ""" Ġ" and rew " Ġ""" ĊĠĠĠĠĠĠĠ Ġval Ġaddr Ġ= Ġ""" Ġ" ma \ l \ i bu ! Ġ""" ĊĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= ĠTest Entity ( name , Ġaddr ) ĊĠĠĠĠĠĠĠ Ġval Ġserial Ġ= ĠSerializer (). serialize ( first ) ĊĠĠĠĠĠĠĠ Ġvar Ġsecond Ġ= ĠTest Entity ( serial , Ġserial ) ĊĠĠĠĠĠĠĠ Ġval Ġs serial Ġ= ĠSerializer (). serialize ( second ) ĊĊĠĠĠĠĠĠĠ Ġprintln ( ss erial ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġnow Ġdeserialize Ġin Ġ 2 Ġparts ĊĠĠĠĠĠĠĠ Ġval Ġregistry Ġ= ĠObjectType Registry () ĊĠĠĠĠĠĠĠ Ġregistry . add ( ObjectType Ġ{ ĠTest Entity () Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// Ġfirst Ġpart ĊĠĠĠĠĠĠĠ Ġval Ġd second : ĠTest Entity Ġ= ĠDeserial izer ( registry ). deserialize ( Token Provider ( ss erial )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( serial , Ġd second . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( serial , Ġd second . address ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġsecond Ġpart ĊĠĠĠĠĠĠĠ Ġval Ġd first : ĠTest Entity Ġ= ĠDeserial izer ( registry ). deserialize ( Token Provider ( d second . name )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( name , Ġd first . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( addr , Ġd first . address ) ĊĠĠĠ Ġ} Ċ }