예제 #1
0
    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())
예제 #2
0
 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__' )