示例#1
0
def test_out_complex2(path: str) -> bool:
    w = scalgoproto.Writer()

    m = w.construct_table(base.MemberOut)
    m.id = 42

    b = w.construct_bytes(b"bytes")
    t = w.construct_text("text")

    l = w.construct_enum_list(base.NamedUnionEnumList, 2)
    l[0] = base.NamedUnionEnumList.x
    l[1] = base.NamedUnionEnumList.z

    l2 = w.construct_struct_list(complex2.Complex2L, 1)
    l2[0] = complex2.Complex2L(2, True)

    l3 = w.construct_union_list(base.NamedUnionOut, 2)
    l3[0].text = t
    l3[1].my_bytes = b

    r = w.construct_table(complex2.Complex2Out)
    r.u1.member = m
    r.u2.text = t
    r.u3.my_bytes = b
    r.u4.enum_list = l
    r.u5.add_a()

    m2 = r.add_hat()
    m2.id = 43

    r.l = l2
    r.s = complex2.Complex2S(complex2.Complex2SX.p, complex2.Complex2SY(8))
    r.l2 = l3
    data = w.finalize(r)
    return validate_out(data, path)
示例#2
0
def test_out_inplace(path: str) -> bool:
    w = scalgoproto.Writer()
    name = w.construct_text("nilson")
    u = w.construct_table(base.InplaceUnionOut)
    u.u.add_monkey().name = name

    u2 = w.construct_table(base.InplaceUnionOut)
    u2.u.add_text().t = "foobar"

    t = w.construct_table(base.InplaceTextOut)
    t.id = 45
    t.t = "cake"

    b = w.construct_table(base.InplaceBytesOut)
    b.id = 46
    b.b = b"hi"

    l = w.construct_table(base.InplaceListOut)
    l.id = 47
    ll = l.add_l(2)
    ll[0] = 24
    ll[1] = 99

    root = w.construct_table(base.InplaceRootOut)
    root.u = u
    root.u2 = u2
    root.t = t
    root.b = b
    root.l = l
    data = w.finalize(root)
    return validate_out(data, path)
示例#3
0
def test_out_complex(path: str) -> bool:
    w = scalgoproto.Writer()

    m = w.construct_table(base.MemberOut)
    m.id = 42

    l = w.construct_int32_list(31)
    for i in range(31):
        l[i] = 100 - 2 * i

    l2 = w.construct_enum_list(base.MyEnum, 2)
    l2[0] = base.MyEnum.a

    l3 = w.construct_struct_list(base.MyStruct, 1)

    b = w.construct_bytes(b"bytes")
    t = w.construct_text("text")

    l4 = w.construct_text_list(200)
    for i in range(1, len(l4), 2):
        l4[i] = "HI THERE"
    l5 = w.construct_bytes_list(1)
    l5[0] = b

    l6 = w.construct_table_list(base.MemberOut, 3)
    l6[0] = m
    l6[2] = m

    l7 = w.construct_float32_list(2)
    l7[1] = 98.0

    l8 = w.construct_float64_list(3)
    l8[2] = 78.0

    l9 = w.construct_uint8_list(2)
    l9[0] = 4

    l10 = w.construct_bool_list(10)
    l10[0] = True
    l10[2] = True
    l10[8] = True

    s = w.construct_table(base.ComplexOut)
    s.member = m
    s.text = t
    s.my_bytes = b
    s.int_list = l
    s.struct_list = l3
    s.enum_list = l2
    s.text_list = l4
    s.bytes_list = l5
    s.member_list = l6
    s.f32list = l7
    s.f64list = l8
    s.u8list = l9
    s.blist = l10

    data = w.finalize(s)
    return validate_out(data, path)
示例#4
0
def test_out_extend2(path: str) -> bool:
    w = scalgoproto.Writer()
    root = w.construct_table(base.Gen2Out)
    root.aa = 80
    root.bb = 81
    cake = root.u.add_cake()
    cake.v = 45
    data = w.finalize(root)
    return validate_out(data, path)
示例#5
0
def test_copy_extend2(path: str) -> bool:
    data1 = read_in(path)
    reader1 = scalgoproto.Reader(data1)
    root1 = reader1.root(base.Gen3In)

    writer = scalgoproto.Writer()
    root2 = writer.copy(base.Gen3Out, root1)
    data2 = writer.finalize(root2)

    reader2 = scalgoproto.Reader(data2)
    root3 = reader2.root(base.Gen3In)
    return test_extend2_part(root3)
示例#6
0
def test_out_extend2(path: str) -> bool:
    w = scalgoproto.Writer()
    root = w.construct_table(base.Gen2Out)
    root.aa = 80
    root.bb = 81
    cake = root.u.add_cake()
    cake.v = 45

    l = root.add_direct_member_list(4)
    l[0].id = 100
    l[1].id = 101
    l[2].id = 102
    l[3].id = 103
    data = w.finalize(root)
    return validate_out(data, path)
示例#7
0
def for_copy() -> union.Table3In:
    w = scalgoproto.Writer()
    root = w.construct_table(union.Table3Out)

    v1 = root.add_v1()
    v1.a.v1 = "ctext1"
    v1.b.v1 = "ctext2"

    v2 = root.add_v2()
    v2.a.v2 = b"cbytes1"
    v2.b.v2 = b"cbytes2"

    v3 = root.add_v3()
    v3.a.add_v3().a = 101
    v3.b.add_v3().a = 102

    v4 = root.add_v4()
    v4.a.add_v4().a = 103
    v4.b.add_v4().a = 104

    v5 = root.add_v5()
    v5.a.add_v5(1)[0] = "ctext3"
    v5.b.add_v5(1)[0] = "ctext4"

    v6 = root.add_v6()
    v6.a.add_v6(1)[0] = b"cbytes3"
    v6.b.add_v6(1)[0] = b"cbytes4"

    v7 = root.add_v7()
    v7.a.add_v7(1).add(0).a = 105
    v7.b.add_v7(1).add(0).a = 106

    v8 = root.add_v8()
    v8.a.add_v8(1).add(0).a = 107
    v8.b.add_v8(1).add(0).a = 108

    v9 = root.add_v9()
    v9.a.add_v9(1)[0] = 109
    v9.b.add_v9(1)[0] = 110

    v10 = root.add_v10()
    v10.a.add_v10(1)[0] = True
    v10.b.add_v10(1)[0] = True

    d = w.finalize(root)

    r = scalgoproto.Reader(d)
    return r.root(union.Table3In)
示例#8
0
def test_out(path: str) -> bool:
    w = scalgoproto.Writer()
    s = w.construct_table(base.SimpleOut)
    s.e = base.MyEnum.c
    s.s = base.FullStruct(
        base.MyEnum.d,
        base.MyStruct(42, 27.0, True),
        False,
        8,
        9,
        10,
        11,
        -8,
        -9,
        -10,
        -11,
        27.0,
        22.0,
    )
    s.b = True
    s.u8 = 242
    s.u16 = 4024
    s.u32 = 124474
    s.u64 = 5465778
    s.i8 = -40
    s.i16 = 4025
    s.i32 = 124475
    s.i64 = 5465779
    s.f = 2.0
    s.d = 3.0
    s.os = base.MyStruct(43, 28.0, False)
    s.ob = False
    s.ou8 = 252
    s.ou16 = 4034
    s.ou32 = 124464
    s.ou64 = 5465768
    s.oi8 = -60
    s.oi16 = 4055
    s.oi32 = 124465
    s.oi64 = 5465729
    s.of = 5.0
    s.od = 6.4
    data = w.finalize(s)
    return validate_out(data, path)
示例#9
0
def test_out_union(path: str) -> bool:
    i = for_copy()

    w = scalgoproto.Writer()
    root = w.construct_table(union.Table3Out)

    v1 = root.add_v1()
    v1.a.v1 = "text1"
    v1.b.v1 = "text2"
    v1.c.v1 = w.construct_text("text3")
    v1.d.v1 = i.v1.a.v1
    v1.e.v1 = i.v1.b.v1

    v2 = root.add_v2()
    v2.a.v2 = b"bytes1"
    v2.b.v2 = b"bytes2"
    v2.c.v2 = w.construct_bytes(b"bytes3")
    v2.d.v2 = i.v2.a.v2
    v2.e.v2 = i.v2.b.v2

    v3 = root.add_v3()
    v3.a.add_v3().a = 1
    v3.b.add_v3().a = 2
    t1 = w.construct_table(union.Table1Out)
    t1.a = 3
    v3.c.v3 = t1
    v3.d.v3 = i.v3.a.v3
    v3.e.v3 = i.v3.b.v3

    v4 = root.add_v4()
    v4.a.add_v4().a = 4
    v4.b.add_v4().a = 5
    t4 = w.construct_table(union.Union1V4Out)
    t4.a = 6
    v4.c.v4 = t4
    v4.d.v4 = i.v4.a.v4
    v4.e.v4 = i.v4.b.v4

    v5 = root.add_v5()
    v5.a.add_v5(1)[0] = "text4"
    v5.b.add_v5(1)[0] = "text5"
    t5 = w.construct_text_list(1)
    t5[0] = "text6"
    v5.c.v5 = t5
    v5.d.v5 = i.v5.a.v5
    v5.e.v5 = i.v5.b.v5

    v6 = root.add_v6()
    v6.a.add_v6(1)[0] = b"bytes4"
    tt6 = v6.b.add_v6(1)
    tt6[0] = w.construct_bytes(b"bytes5")
    t6 = w.construct_bytes_list(1)
    t6[0] = w.construct_bytes(b"bytes6")
    v6.c.v6 = t6
    v6.d.v6 = i.v6.a.v6
    v6.e.v6 = i.v6.b.v6

    v7 = root.add_v7()
    v7.a.add_v7(1).add(0).a = 7
    v7.b.add_v7(1).add(0).a = 8
    t7 = w.construct_table_list(union.Table1Out, 1)
    t7.add(0).a = 9
    v7.c.v7 = t7
    v7.d.v7 = i.v7.a.v7
    v7.e.v7 = i.v7.b.v7

    v8 = root.add_v8()
    v8.a.add_v8(1).add(0).a = 10
    v8.b.add_v8(1).add(0).a = 11
    t8 = w.construct_table_list(union.Union1V8Out, 1)
    t8.add(0).a = 12
    v8.c.v8 = t8
    v8.d.v8 = i.v8.a.v8
    v8.e.v8 = i.v8.b.v8

    v9 = root.add_v9()
    v9.a.add_v9(1)[0] = 13
    v9.b.add_v9(1)[0] = 14
    t9 = w.construct_uint32_list(1)
    t9[0] = 15
    v9.c.v9 = t9
    v9.d.v9 = i.v9.a.v9
    v9.e.v9 = i.v9.b.v9

    v10 = root.add_v10()
    v10.a.add_v10(1)[0] = True
    v10.b.add_v10(1)[0] = False
    t10 = w.construct_bool_list(1)
    t10[0] = True
    v10.c.v10 = t10
    v10.d.v10 = i.v10.a.v10
    v10.e.v10 = i.v10.b.v10

    data = w.finalize(root)
    return validate_out(data, path)
示例#10
0
def test_out_extend1(path: str) -> bool:
    w = scalgoproto.Writer()
    root = w.construct_table(base.Gen1Out)
    root.aa = 77
    data = w.finalize(root)
    return validate_out(data, path)
示例#11
0
def test_out_default(path: str) -> bool:
    w = scalgoproto.Writer()
    s = w.construct_table(base.SimpleOut)
    data = w.finalize(s)
    return validate_out(data, path)