Edit

kc3-lang/kc3/test/ikc3/marshall.out.expected

Branch :

  • test/ikc3/marshall.out.expected
  • 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}