def test_reduce_undef_truthvals(self): a = expressions.Var('a') b = expressions.Var('b') self.assertEqual( True & expressions._Undefined() , expressions.undefined() ) self.assertEqual( False & expressions._Undefined(), False ) self.assertEqual( expressions._Undefined() & True, expressions.undefined() ) self.assertEqual( expressions._Undefined() & False, False) self.assertEqual( expressions._Undefined() & expressions._Undefined(), expressions.undefined() ) self.assertEqual( expressions._Undefined() & expressions._Undefined() & expressions._Undefined(), expressions.undefined() ) self.assertEqual( (a==a).evaluate(), True ) self.assertEqual( (a==b).evaluate(), expressions.undefined() ) self.assertEqual( (a-a==1).evaluate(), False ) self.assertEqual( (a==a) & (a==a), True ) self.assertEqual( (a==a) & (a==b), expressions.undefined() ) self.assertEqual( (a==a) & (a-a==1), False ) self.assertEqual(expressions._Undefined() & (a==b), expressions.undefined())
def test_undefined(self): undef = expressions._Undefined() self.assertIs( undef, undef ) self.assertIs( undef + 1, undef ) self.assertIs( undef - 1, undef ) self.assertIs( undef * 5, undef ) self.assertIs( undef * -5, undef ) self.assertIs( undef - undef, undef ) self.assertEqual( undef * 0, 0 ) self.assertEqual( 0 * undef, 0 ) self.assertRaises( AttributeError, getattr, undef, '__div__' )