def test_arithmetic_var():
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)
评论列表
文章目录