def METHOD_NAME():
    ctx = QueryContext()
    ctx[Variable("x")] = Literal(2)
    eq(_eval(_translate((p.Expression.parseString("2+?x")[0])), ctx).value, 4)
    eq(_eval(_translate((p.Expression.parseString("?x+3")[0])), ctx).value, 5)
    eq(_eval(_translate((p.Expression.parseString("3-?x")[0])), ctx).value, 1)
    eq(_eval(_translate((p.Expression.parseString("?x*3")[0])), ctx).value, 6)
    eq(_eval(_translate((p.Expression.parseString("4/?x")[0])), ctx).value, 2)
    eq(_eval(_translate((p.Expression.parseString("?x+?x+?x")[0])), ctx).value, 6)
    eq(_eval(_translate((p.Expression.parseString("?x-?x+?x")[0])), ctx).value, 2)
    eq(_eval(_translate((p.Expression.parseString("(?x-?x)+?x")[0])), ctx).value, 2)
    eq(_eval(_translate((p.Expression.parseString("?x-(?x+?x)")[0])), ctx).value, -2)
    eq(_eval(_translate((p.Expression.parseString("?x*?x*?x")[0])), ctx).value, 8)
    eq(_eval(_translate((p.Expression.parseString("4/?x*?x")[0])), ctx).value, 4)
    eq(_eval(_translate((p.Expression.parseString("8/4*?x")[0])), ctx).value, 4)
    eq(_eval(_translate((p.Expression.parseString("8/(4*?x)")[0])), ctx).value, 1)
    eq(_eval(_translate((p.Expression.parseString("(?x/?x)*?x")[0])), ctx).value, 2)
    eq(_eval(_translate((p.Expression.parseString("4/(?x*?x)")[0])), ctx).value, 1)