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, 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}