Exemplo n.º 1
0
def test_fcode_Piecewise():
    expr = Piecewise((x, x < 1), (x**2, True))
    assert fcode(expr) == "merge(x, x**2, x < 1)"
    expr = Piecewise((Assign(c, x), x < 1), (Assign(c, x**2), True))
    assert fcode(expr) == (
            "if (x < 1) then\n"
            "    c = x\n"
            "else\n"
            "    c = x**2\n"
            "end if"
    )
    expr = Piecewise((x, x < 1), (x + 1, x < 2), (x**2, True))
    assert fcode(expr) == "merge(x, merge(x + 1, x**2, x < 2), x < 1)"
    expr = Piecewise((Assign(c, x), x < 1), (Assign(c, x + 1), x < 2), (Assign(c, x**2), True))
    assert fcode(expr) == (
            "if (x < 1) then\n"
            "    c = x\n"
            "else if (x < 2) then\n"
            "    c = x + 1\n"
            "else\n"
            "    c = x**2\n"
            "end if")
    # Check that Piecewise without a True (default) condition error
    expr = Piecewise((x, x < 1), (x**2, x > 1), (sin(x), x > 0))
    raises(ValueError, lambda: fcode(expr))
Exemplo n.º 2
0
def test_ccode_Piecewise():
    expr = Piecewise((x, x < 1), (x**2, True))
    assert ccode(expr) == ("((x < 1) ? (\n"
                           "    x\n"
                           ")\n"
                           ": (\n"
                           "    pow(x, 2)\n"
                           "))")
    expr = Piecewise((Assign(c, x), x < 1), (Assign(c, x**2), True))
    assert ccode(expr) == ("if (x < 1) {\n"
                           "    c = x;\n"
                           "}\n"
                           "else {\n"
                           "    c = pow(x, 2);\n"
                           "}")
    expr = Piecewise((x, x < 1), (x + 1, x < 2), (x**2, True))
    assert ccode(expr) == ("((x < 1) ? (\n"
                           "    x\n"
                           ")\n"
                           ": ((x < 2) ? (\n"
                           "    x + 1\n"
                           ")\n"
                           ": (\n"
                           "    pow(x, 2)\n"
                           ")))")
    expr = Piecewise((Assign(c, x), x < 1), (Assign(c, x + 1), x < 2),
                     (Assign(c, x**2), True))
    assert ccode(expr) == ("if (x < 1) {\n"
                           "    c = x;\n"
                           "}\n"
                           "else if (x < 2) {\n"
                           "    c = x + 1;\n"
                           "}\n"
                           "else {\n"
                           "    c = pow(x, 2);\n"
                           "}")
    # Check that Piecewise without a True (default) condition error
    expr = Piecewise((x, x < 1), (x**2, x > 1), (sin(x), x > 0))
    raises(ValueError, lambda: ccode(expr))
Exemplo n.º 3
0
def test_fcode_For():
    f = For(x, Range(0, 10, 2), [Assign(y, x * y)])
    sol = fcode(f)
    assert sol == ("do x = 0, 10, 2\n" "    y = x*y\n" "end do")
Exemplo n.º 4
0
def test_fcode_Assign():
    assert fcode(Assign(x, y + z)) == 'x = y + z'
Exemplo n.º 5
0
def test_ccode_Assign():
    assert ccode(Assign(x, y + z)) == 'x = y + z;'
    assert ccode(AugAssign(x, '+', y + z)) == 'x += y + z;'