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, 58}
loopback(true)
{:ok, 58}
loopback('A')
{:ok, 49}
loopback('\0')
{:ok, 49}
loopback('Z')
{:ok, 49}
loopback(0)
{:ok, 56}
loopback(1)
{:ok, 56}
loopback(2)
{:ok, 56}
loopback(255)
{:ok, 56}
loopback(256)
{:ok, 58}
loopback(-1234)
{:ok, 58}
loopback(1234)
{:ok, 58}
loopback(-123456789)
{:ok, 60}
loopback(123456789)
{:ok, 60}
loopback((F32) 0.0)
{:ok, 60}
loopback((F32) 1.0)
{:ok, 60}
loopback((F64) 0.0)
{:ok, 64}
loopback((F64) 1.0)
{:ok, 64}
loopback((F128) 0.0)
{:ok, 73}
loopback((F128) 1.0)
{:ok, 73}
loopback("")
{:ok, 68}
loopback("hello")
{:ok, 73}
loopback("héllo wörld")
{:ok, 81}
loopback([0, 1])
{:ok, 200}
loopback([[2, 3], [4, 5]])
{:ok, 488}
loopback(%Time{})
{:ok, 104}
loopback((Ptr) 0)
{:ok, 79}
loopback(1 +i 2)
{:ok, 117}
loopback(false)
{:ok, 58}
loopback(true)
{:ok, 58}
loopback('0')
{:ok, 49}
loopback('z')
{:ok, 49}
loopback('\n')
{:ok, 49}
loopback('\t')
{:ok, 49}
loopback(255)
{:ok, 56}
loopback(127)
{:ok, 56}
loopback(128)
{:ok, 56}
loopback(-1)
{:ok, 56}
loopback(-32768)
{:ok, 58}
loopback(32767)
{:ok, 58}
loopback(65535)
{:ok, 58}
loopback(-2147483648)
{:ok, 60}
loopback(2147483647)
{:ok, 60}
loopback(4294967295)
{:ok, 60}
loopback(-9223372036854775808)
{:ok, 64}
loopback(9223372036854775807)
{:ok, 64}
loopback(18446744073709551615)
{:ok, 64}
loopback((Integer) 1024)
{:ok, 71}
loopback(10000000000000000000000000000000000)
{:ok, 84}
loopback(123456789012345678901234567890)
{:ok, 82}
loopback((F32) -1.0)
{:ok, 60}
loopback((F32) 3.141592)
{:ok, 60}
loopback((F32) 4.294966e+9)
{:ok, 60}
loopback((F64) -1.0)
{:ok, 64}
loopback((F64) 3.14159265358979)
{:ok, 64}
loopback((F64) 4.294967296e+9)
{:ok, 64}
loopback((F128) -1.0)
{:ok, 73}
loopback((F128) 3.141592653589793237862287655914883)
{:ok, 73}
loopback(2/6)
{:ok, 102}
loopback(1/3)
{:ok, 102}
loopback(22/7)
{:ok, 102}
loopback(0 +i 1)
{:ok, 117}
loopback(-1 +i -2)
{:ok, 117}
loopback((F32) 3.14 +i (F32) 2.71)
{:ok, 125}
loopback("test\ntab\there")
{:ok, 81}
loopback([])
{:ok, 66}
loopback([1, 2, 3, 4, 5])
{:ok, 401}
loopback([true, false, 'A'])
{:ok, 264}
loopback(["hello", "world"])
{:ok, 234}
loopback([[[1]]])
{:ok, 287}
loopback({1, 2, 3})
{:ok, 143}
loopback({true, 'A', "test"})
{:ok, 154}
loopback({1, 2, [3, 4]})
{:ok, 287}
loopback(do end)
{:ok, 48}
loopback(Module)
{:ok, 99}
loopback(:test)
{:ok, 97}
loopback(:hello_world)
{:ok, 104}
loopback(%{})
{:ok, 79}
loopback(%{a: 1,
b: 2})
{:ok, 251}
loopback(%{key: "value",
num: 42})
{:ok, 272}
loopback(%{nested: %{inner: true}})
{:ok, 285}
loopback(%Time{tv_sec: 1000, tv_nsec: 2000})
{:ok, 104}
loopback(%Time{tv_sec: 1 + 1, tv_nsec: 2 + 2})
{:ok, 104}
loopback((Ptr) 0)
{:ok, 79}
loopback((PtrFree) 0)
{:ok, 83}
loopback((U8) ?)
{:ok, 236}
loopback(?)
{:ok, 237}
loopback(fn (x) { x * 2 })
{:ok, 801}
loopback(fn (a, b) { a + b })
{:ok, 998}
loopback(List.reverse([]))
{:ok, 66}
loopback(a = 1)
{:ok, 56}
loopback(defmodule Test do end)
{:ok, 97}
loopback(do
1
2
3
end)
{:ok, 56}
loopback(cfn Tag "tag_add" (Tag, Tag, Result))
{:ok, 459}
loopback(%KC3.Op{sym: :-})
{:ok, 1608}
loopback((U8[]) {})
{:ok, 167}
loopback((U8[]) {0, 1, 2, 254, 255})
{:ok, 309}
loopback((U8[]) {0, 1 + 1, 2 + 2, 254, 255})
{:ok, 309}
loopback(do
a = 1
f = fn () { a } [a: 2]
f()
end)
{:ok, 56}
loopback([[A, B], [C, D]])
{:ok, 640}