Example #1
0
def test_clone_without_forcing_manager():
    @clone
    @parse
    def f(x, y):
        return x * y

    clone(f)
    clone(f)
    GraphManager(f)
Example #2
0
def opt_newg(optimizer, node, equiv):
    from myia.ir import clone

    @parse
    def newf(a, b):
        return a - (a + b)
    return Constant(clone(newf))
Example #3
0
def opt_newg_bad(optimizer, node, equiv):
    from myia.ir import clone

    @parse
    def newf(a):
        return a + a
    return Constant(clone(newf))
Example #4
0
def test_clone_dangling_parameters():
    g = Graph()
    g.output = Parameter(g)

    g2 = clone(g)

    assert isinstance(g2.output, Parameter)
    assert g2.output.graph == g2
    assert len(g2.parameters) == 0
Example #5
0
def test_return_closure_partial():
    """Return a closure (after closure conversion)."""
    @parse
    def f(x, y):
        def g():
            return x + y
        return g

    f = clone(closure_convert(f))
    f = compile(f)

    g = f(4, 5)
    assert g() == 9