Mercurial > genshi > mirror
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 |