-USING: bare multiline prettyprint prettyprint.config tools.test ;
+USING: bare multiline prettyprint prettyprint.config sequences tools.test ;
! uint
T{ data f 16 } >bare
] unit-test
+! enum
+
+{ "FOO" } [ B{ 0x00 } T{ enum f { { "FOO" 0 } { "BAR" 255 } { "BUZZ" 256 } } } bare> ] unit-test
+{ B{ 0x00 } } [ "FOO" T{ enum f { { "FOO" 0 } { "BAR" 255 } { "BUZZ" 256 } } } >bare ] unit-test
+{ "BAR" } [ B{ 0xFF 0x01 } T{ enum f { { "FOO" 0 } { "BAR" 255 } { "BUZZ" 256 } } } bare> ] unit-test
+{ B{ 0xFF 0x01 } } [ "BAR" T{ enum f { { "FOO" 0 } { "BAR" 255 } { "BUZZ" 256 } } } >bare ] unit-test
+{ "BUZZ" } [ B{ 0x80 0x02 } T{ enum f { { "FOO" 0 } { "BAR" 255 } { "BUZZ" 256 } } } bare> ] unit-test
+{ B{ 0x80 0x02 } } [ "BUZZ" T{ enum f { { "FOO" 0 } { "BAR" 255 } { "BUZZ" 256 } } } >bare ] unit-test
+
! optional<u32>
{ f } [ B{ 0x00 } T{ optional f u32 } bare> ] unit-test
{ 0 1 254 255 256 257 126 127 128 129 } T{ list f uint 10 } >bare
] unit-test
+! map<u32><str>
+
+{
+ B{
+ 0x03 0x00 0x00 0x00 0x00 0x04 0x7A 0x65 0x72 0x6F 0x01
+ 0x00 0x00 0x00 0x03 0x6F 0x6E 0x65 0xFF 0x00 0x00 0x00
+ 0x1B 0x74 0x77 0x6F 0x20 0x68 0x75 0x6E 0x64 0x72 0x65
+ 0x64 0x73 0x20 0x61 0x6E 0x64 0x20 0x66 0x69 0x66 0x74
+ 0x79 0x20 0x66 0x69 0x76 0x65
+ }
+} [
+ H{
+ { 0 "zero" }
+ { 1 "one" }
+ { 255 "two hundreds and fifty five" }
+ } T{ bare:map f u32 str } >bare
+] unit-test
+
+{
+ {
+ { 0 "zero" }
+ { 1 "one" }
+ { 255 "two hundreds and fifty five" }
+ }
+} [
+ B{
+ 0x03 0x00 0x00 0x00 0x00 0x04 0x7A 0x65 0x72 0x6F 0x01
+ 0x00 0x00 0x00 0x03 0x6F 0x6E 0x65 0xFF 0x00 0x00 0x00
+ 0x1B 0x74 0x77 0x6F 0x20 0x68 0x75 0x6E 0x64 0x72 0x65
+ 0x64 0x73 0x20 0x61 0x6E 0x64 0x20 0x66 0x69 0x66 0x74
+ 0x79 0x20 0x66 0x69 0x76 0x65
+ } T{ bare:map f u32 str } bare>
+] unit-test
+
+! union
+
+{
+ {
+ 0
+ 1
+ 1
+ -1
+ 255
+ 255
+ -255
+ "BARE"
+ }
+} [
+ {
+ B{ 0x00 0x00 }
+ B{ 0x00 0x02 }
+ B{ 0xFF 0x01 0x01 }
+ B{ 0x00 0x01 }
+ B{ 0x00 0xFE 0x03 }
+ B{ 0xFF 0x01 0xFF 0x01 }
+ B{ 0x00 0xFD 0x03 }
+ B{ 0x80 0x02 0x04 0x42 0x41 0x52 0x45 }
+ } [
+ T{ bare:union f { { int 0 } { uint 255 } { str 256 } } } bare>
+ ] sequences:map
+] unit-test
+
+! struct
+
+{
+ {
+ { "foo" 255 }
+ { "bar" -255 }
+ { "buzz" "BARE" }
+ }
+} [
+ B{ 0xFF 0x01 0xFD 0x03 0x04 0x42 0x41 0x52 0x45 }
+ T{ struct f { { "foo" uint } { "bar" int } { "buzz" str } } } bare>
+] unit-test
+
+{
+ B{ 0xFF 0x01 0xFD 0x03 0x04 0x42 0x41 0x52 0x45 }
+} [
+ {
+ { "foo" 255 }
+ { "bar" -255 }
+ { "buzz" "BARE" }
+ } T{ struct f { { "foo" uint } { "bar" int } { "buzz" str } } } >bare
+] unit-test
+
! user types / schema
{