package Ġit . uni bo . tup ro log . serialize Ċ Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠTest Term Deserializer Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest T ailed List Serialization In JSON () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Json , Ġde serializer . mime Type ) ĊĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ("{ \" fun \":\" member \",\" args \": [{ \" var \":\" H \" },{ \" list \": [{ \" var \":\" H \" }], \" tail \":{\" var \":\" _ \" }} ]} ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstruct Of (" member ", Ġvar Of (" H "), Ġcons Of ( var Of (" H "), Ġanonymous ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest T ailed List Serialization In YAML () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Yaml ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Yaml , Ġde serializer . mime Type ) ĊĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| fun : Ġmember ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| args : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ- Ġvar : ĠH ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ- Ġlist : ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ- Ġvar : ĠH ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġtail : ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġvar : Ġ_ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstruct Of (" member ", Ġvar Of (" H "), Ġcons Of ( var Of (" H "), Ġanonymous ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Atom Deserialization In JSON () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Json , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ("\" hello \" ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġatom Of (" hello ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ("\" other Ġatom \" ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġatom Of (" other Ġatom ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Atom Deserialization In Yaml () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Yaml ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Yaml , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ("\" hello \" ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġatom Of (" hello ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ("\" other Ġatom \" ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġatom Of (" other Ġatom ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Numeric Deserialization In JSON () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Json , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works (" 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠnumOf ( 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works (" 3 . 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠnumOf ( 3 . 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Numeric Deserialization In YAML () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Yaml ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Yaml , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works (" 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠnumOf ( 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works (" 3 . 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠnumOf ( 3 . 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest List Deserialization In JSON () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Json , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ("{ \" list \":[\" hello \", 1 , true ]} ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( atom Of (" hello "), ĠnumOf ( 1 ), Ġtruth Of ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest List Deserialization In YAML () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Yaml ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Yaml , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| list : ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġhello ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ( actual ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( atom Of (" hello "), ĠnumOf ( 1 ), Ġtruth Of ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Block Deserialization In JSON () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Json , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ("{ \" block \":[\" hello \", 1 , Ġfalse ]} ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Of ( atom Of (" hello "), ĠnumOf ( 1 ), Ġtruth Of ( false )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Block Deserialization In YAML () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Yaml ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Yaml , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| block : ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġ" hello " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ( actual ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Of ( atom Of (" hello "), ĠnumOf ( 1 ), Ġtruth Of ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Struct Deserialization In JSON () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Json , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ("{ \" fun \":\" f \",\" args \":[\" hello \", 2 ]} ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstruct Of (" f ", Ġatom Of (" hello "), ĠnumOf ( 2 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ("{ \" fun \":\" f \",\" args \":[\" pro va Ġ 2 \", {\" real \": 3 . 0 },{ \" list \":[\" qua Ġci Ġva Ġuna Ġlista \", true ]} ]} ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstruct Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġatom Of (" pro va Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreal Of ( 3 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( atom Of (" qua Ġci Ġva Ġuna Ġlista "), Ġtruth Of ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Struct Deserialization In YAML () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Yaml ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Yaml , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġvar Ġactual Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| fun : Ġf ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| args : ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġhello ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ( actual ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstruct Of (" f ", Ġatom Of (" hello "), ĠnumOf ( 2 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġactual Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| fun : Ġ" f " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| args : ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġ" pro va Ġ 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġreal : Ġ 3 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|- Ġlist : ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ- Ġ" qua Ġci Ġva Ġuna Ġlista " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ- Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ( actual ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstruct Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġatom Of (" pro va Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreal Of ( 3 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( atom Of (" qua Ġci Ġva Ġuna Ġlista "), Ġtruth Of ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Variables Deserialization In JSON () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Json ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Json , Ġde serializer . mime Type ) ĊĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ("{ \" var \":\" X \" }") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Of (" X ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Variables Deserialization In YAML () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Yaml ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Yaml , Ġde serializer . mime Type ) ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| var : Ġ" X " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works ( actual ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Of (" X ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Constant Deserialization In JSON () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Json , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works (" true ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtruth Of ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works (" false ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtruth Of ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Constant Deserialization In YAML () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġde serializer : ĠTerm Deserializer Ġ= ĠTerm Deserializer . of ( MimeType . Yaml ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( MimeType . Yaml , Ġde serializer . mime Type ) ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works (" true ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtruth Of ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġde serializer . assert Term Deserialization Works (" false ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtruth Of ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ