Branch :
require Marshall
Marshall
require MarshallRead
MarshallRead
loopback = fn (tag) do
str = Marshall.tag_to_str(tag)
result = MarshallRead.tag_from_str(str)
if (inspect(result) == inspect(tag)) do
{:ok, Str.size(str)}
else
{:ko, Str.size(str), result}
end
end
fn (tag) do
str = Marshall.tag_to_str(tag)
result = MarshallRead.tag_from_str(str)
if (inspect(result) == inspect(tag)) do
{:ok, Str.size(str)}
else
{:ko, Str.size(str), result}
end
end
loopback(false)
{:ok, 66}
loopback(true)
{:ok, 66}
loopback('A')
{:ok, 57}
loopback('\0')
{:ok, 57}
loopback('Z')
{:ok, 57}
loopback(0)
{:ok, 64}
loopback(1)
{:ok, 64}
loopback(2)
{:ok, 64}
loopback(255)
{:ok, 64}
loopback(256)
{:ok, 66}
loopback(-1234)
{:ok, 66}
loopback(1234)
{:ok, 66}
loopback(-123456789)
{:ok, 68}
loopback(123456789)
{:ok, 68}
loopback((F32) 0.0)
{:ok, 68}
loopback((F32) 1.0)
{:ok, 68}
loopback((F64) 0.0)
{:ok, 72}
loopback((F64) 1.0)
{:ok, 72}
loopback("")
{:ok, 76}
loopback("hello")
{:ok, 81}
loopback("héllo wörld")
{:ok, 89}
loopback([0,
1])
{:ok, 208}
loopback([[2,
3],
[4,
5]])
{:ok, 496}
loopback(%Time{})
{:ok, 112}
loopback((Ptr) 0)
{:ok, 87}
loopback(1 +i 2)
{:ok, 125}
loopback(false)
{:ok, 66}
loopback(true)
{:ok, 66}
loopback('0')
{:ok, 57}
loopback('z')
{:ok, 57}
loopback('\n')
{:ok, 57}
loopback('\t')
{:ok, 57}
loopback(255)
{:ok, 64}
loopback(127)
{:ok, 64}
loopback(128)
{:ok, 64}
loopback(-1)
{:ok, 64}
loopback(-32768)
{:ok, 66}
loopback(32767)
{:ok, 66}
loopback(65535)
{:ok, 66}
loopback(-2147483648)
{:ok, 68}
loopback(2147483647)
{:ok, 68}
loopback(4294967295)
{:ok, 68}
loopback(-9223372036854775808)
{:ok, 72}
loopback(9223372036854775807)
{:ok, 72}
loopback(18446744073709551615)
{:ok, 72}
loopback((Integer) 1024)
{:ok, 77}
loopback(10000000000000000000000000000000000)
{:ok, 93}
loopback(123456789012345678901234567890)
{:ok, 89}
loopback((F32) -1.0)
{:ok, 68}
loopback((F32) 3.141592)
{:ok, 68}
loopback((F32) 4.294966e+9)
{:ok, 68}
loopback((F64) -1.0)
{:ok, 72}
loopback((F64) 3.14159265358979)
{:ok, 72}
loopback((F64) 4.294967296e+9)
{:ok, 72}
loopback(2/6)
{:ok, 108}
loopback(1/3)
{:ok, 108}
loopback(22/7)
{:ok, 108}
loopback(0 +i 1)
{:ok, 125}
loopback(-1 +i -2)
{:ok, 125}
loopback((F32) 3.14 +i (F32) 2.71)
{:ok, 133}
loopback("test\ntab\there")
{:ok, 89}
loopback([])
{:ok, 74}
loopback([1,
2,
3,
4,
5])
{:ok, 409}
loopback([true,
false,
'A'])
{:ok, 272}
loopback(["hello",
"world"])
{:ok, 242}
loopback([[[1]]])
{:ok, 295}
loopback({1, 2, 3})
{:ok, 170}
loopback({true, 'A', "test"})
{:ok, 181}
loopback({1, 2, [3,
4]})
{:ok, 314}
loopback(do end)
{:ok, 56}
loopback(Module)
{:ok, 107}
loopback(:test)
{:ok, 105}
loopback(:hello_world)
{:ok, 112}
loopback(%{})
{:ok, 87}
loopback(%{a: 1,
b: 2})
{:ok, 259}
loopback(%{key: "value",
num: 42})
{:ok, 280}
loopback(%{nested: %{inner: true}})
{:ok, 293}
loopback(%Time{tv_sec: 1000, tv_nsec: 2000})
{:ok, 112}
loopback(%Time{tv_sec: 1 + 1, tv_nsec: 2 + 2})
{:ok, 112}
loopback((Ptr) 0)
{:ok, 87}
loopback((PtrFree) 0)
{:ok, 91}
loopback((U8) ?)
{:ok, 244}
loopback(?)
{:ok, 245}
loopback(fn (x) { x * 2 })
{:ok, 749}
loopback(fn (a, b) { a + b })
{:ok, 917}
loopback(List.reverse([]))
{:ok, 74}
loopback(a = 1)
{:ok, 64}
loopback(defmodule Test do end)
{:ok, 105}
loopback(do
1
2
3
end)
{:ok, 64}
loopback(cfn Tag "tag_add" (Tag, Tag, Result))
{:ok, 405}
loopback(%KC3.Op{sym: :-})
{:ok, 1227}
loopback((U8[]) {})
{:ok, 175}
loopback((U8[]) {0, 1, 2, 254, 255})
{:ok, 317}
loopback((U8[]) {0, 1 + 1, 2 + 2, 254, 255})
{:ok, 317}
loopback(do
a = 1
f = fn () { a } [a: 2]
f()
end)
{:ok, 64}
loopback([[A,
B],
[C,
D]])
{:ok, 648}