Пример #1
0
def test_tuple():
    x = relay.Var('x')
    assert well_formed(x)
    v = relay.Constant(tvm.nd.array(10))
    let = relay.Let(x, v, x)
    assert well_formed(let)
    assert well_formed(relay.Tuple([v, v]))
    assert not well_formed(relay.Tuple([let, let]))
Пример #2
0
def test_adt():
    mod = relay.Module()
    p = Prelude(mod)
    x = relay.Var("x")
    s_case = relay.Clause(relay.PatternConstructor(p.s, [relay.PatternVar(x)]),
                          x)
    default_case = relay.Clause(relay.PatternVar(x), x)
    m0 = relay.Match(p.z(), [default_case])
    m1 = relay.Match(p.z(), [s_case, default_case])
    assert well_formed(m0)
    assert not well_formed(m1)
Пример #3
0
def test_let():
    x = relay.Var("x")
    assert well_formed(x)
    v = relay.Constant(tvm.nd.array(10))
    ty = None
    let = relay.Let(x, v, x)
    assert well_formed(let)
    assert not well_formed(relay.Let(x, v, let))
    f = relay.Function([x], x, ty)
    assert well_formed(f)
    assert well_formed(
        relay.Let(relay.Var("y"), f, relay.Let(relay.Var("z"), f, v)))
Пример #4
0
def test_well_formed():
    x = relay.Var('x')
    assert well_formed(x)
    v = relay.Constant(tvm.nd.array(10))
    ty = None
    let = relay.Let(x, v, x, ty)
    assert well_formed(let)
    assert not well_formed(relay.Let(x, v, let, ty))
    f = relay.Function([relay.Param(x, ty)], ty, x)
    assert well_formed(f)
    # this test should pass in case of weak uniqueness (only test for shadowing)
    # but we want all binder to be distinct from each other.
    assert not well_formed(relay.Let(relay.Var("y"), f,
                                     relay.Let(relay.Var("z"), f, v, ty), ty))
Пример #5
0
def test_tuple_get_item():
    t = relay.Var('t')
    assert well_formed(relay.TupleGetItem(t, 2))