comparison markup/tests/eval.py @ 32:2224a52256ca trunk

A couple more operators supported in expressions.
author cmlenz
date Wed, 28 Jun 2006 19:13:47 +0000
parents 2ab5fa60575d
children 59eb24184e9c
comparison
equal deleted inserted replaced
31:2ab5fa60575d 32:2224a52256ca
62 62
63 def test_unaryop_not(self): 63 def test_unaryop_not(self):
64 self.assertEqual(False, Expression("not True").evaluate({})) 64 self.assertEqual(False, Expression("not True").evaluate({}))
65 self.assertEqual(False, Expression("not x").evaluate({'x': True})) 65 self.assertEqual(False, Expression("not x").evaluate({'x': True}))
66 66
67 def test_unaryop_inv(self):
68 self.assertEqual(-2, Expression("~1").evaluate({}))
69 self.assertEqual(-2, Expression("~x").evaluate({'x': 1}))
70
67 def test_binop_add(self): 71 def test_binop_add(self):
68 self.assertEqual(3, Expression("2 + 1").evaluate({})) 72 self.assertEqual(3, Expression("2 + 1").evaluate({}))
69 self.assertEqual(3, Expression("x + y").evaluate({'x': 2, 'y': 1})) 73 self.assertEqual(3, Expression("x + y").evaluate({'x': 2, 'y': 1}))
70 74
71 def test_binop_sub(self): 75 def test_binop_sub(self):
94 98
95 def test_binop_mod(self): 99 def test_binop_mod(self):
96 self.assertEqual(1, Expression("3 % 2").evaluate({})) 100 self.assertEqual(1, Expression("3 % 2").evaluate({}))
97 self.assertEqual(1, Expression("x % y").evaluate({'x': 3, 'y': 2})) 101 self.assertEqual(1, Expression("x % y").evaluate({'x': 3, 'y': 2}))
98 102
103 def test_binop_and(self):
104 self.assertEqual(0, Expression("1 & 0").evaluate({}))
105 self.assertEqual(0, Expression("x & y").evaluate({'x': 1, 'y': 0}))
106
107 def test_binop_or(self):
108 self.assertEqual(1, Expression("1 | 0").evaluate({}))
109 self.assertEqual(1, Expression("x | y").evaluate({'x': 1, 'y': 0}))
110
99 def test_binop_contains(self): 111 def test_binop_contains(self):
100 self.assertEqual(True, Expression("1 in (1, 2, 3)").evaluate({})) 112 self.assertEqual(True, Expression("1 in (1, 2, 3)").evaluate({}))
101 self.assertEqual(True, Expression("x in y").evaluate({'x': 1, 113 self.assertEqual(True, Expression("x in y").evaluate({'x': 1,
102 'y': (1, 2, 3)})) 114 'y': (1, 2, 3)}))
103 115
104 def test_binop_not_contains(self): 116 def test_binop_not_contains(self):
105 self.assertEqual(True, Expression("4 not in (1, 2, 3)").evaluate({})) 117 self.assertEqual(True, Expression("4 not in (1, 2, 3)").evaluate({}))
106 self.assertEqual(True, Expression("x not in y").evaluate({'x': 4, 118 self.assertEqual(True, Expression("x not in y").evaluate({'x': 4,
107 'y': (1, 2, 3)})) 119 'y': (1, 2, 3)}))
120
121 def test_binop_is(self):
122 self.assertEqual(True, Expression("1 is 1").evaluate({}))
123 self.assertEqual(True, Expression("x is y").evaluate({'x': 1, 'y': 1}))
124 self.assertEqual(False, Expression("1 is 2").evaluate({}))
125 self.assertEqual(False, Expression("x is y").evaluate({'x': 1, 'y': 2}))
126
127 def test_binop_is_not(self):
128 self.assertEqual(True, Expression("1 is not 2").evaluate({}))
129 self.assertEqual(True, Expression("x is not y").evaluate({'x': 1,
130 'y': 2}))
131 self.assertEqual(False, Expression("1 is not 1").evaluate({}))
132 self.assertEqual(False, Expression("x is not y").evaluate({'x': 1,
133 'y': 1}))
108 134
109 def test_boolop_and(self): 135 def test_boolop_and(self):
110 self.assertEqual(False, Expression("True and False").evaluate({})) 136 self.assertEqual(False, Expression("True and False").evaluate({}))
111 self.assertEqual(False, Expression("x and y").evaluate({'x': True, 137 self.assertEqual(False, Expression("x and y").evaluate({'x': True,
112 'y': False})) 138 'y': False}))
121 self.assertEqual(True, Expression("x == y").evaluate({'x': 1, 'y': 1})) 147 self.assertEqual(True, Expression("x == y").evaluate({'x': 1, 'y': 1}))
122 148
123 def test_compare_ne(self): 149 def test_compare_ne(self):
124 self.assertEqual(False, Expression("1 != 1").evaluate({})) 150 self.assertEqual(False, Expression("1 != 1").evaluate({}))
125 self.assertEqual(False, Expression("x != y").evaluate({'x': 1, 'y': 1})) 151 self.assertEqual(False, Expression("x != y").evaluate({'x': 1, 'y': 1}))
152 self.assertEqual(False, Expression("1 <> 1").evaluate({}))
153 self.assertEqual(False, Expression("x <> y").evaluate({'x': 1, 'y': 1}))
126 154
127 def test_compare_lt(self): 155 def test_compare_lt(self):
128 self.assertEqual(True, Expression("1 < 2").evaluate({})) 156 self.assertEqual(True, Expression("1 < 2").evaluate({}))
129 self.assertEqual(True, Expression("x < y").evaluate({'x': 1, 'y': 2})) 157 self.assertEqual(True, Expression("x < y").evaluate({'x': 1, 'y': 2}))
130 158
Copyright (C) 2012-2017 Edgewall Software