@@ -4392,6 +4392,41 @@ def test_operators(self):
43924392 df = DataFrame ({'a' : ['a' , None , 'b' ]})
43934393 assert_frame_equal (df + df , DataFrame ({'a' : ['aa' , np .nan , 'bb' ]}))
43944394
4395+ def test_operators_boolean (self ):
4396+
4397+ # GH 5808
4398+ # empty frames, non-mixed dtype
4399+
4400+ result = DataFrame (index = [1 ]) & DataFrame (index = [1 ])
4401+ assert_frame_equal (result ,DataFrame (index = [1 ]))
4402+
4403+ result = DataFrame (index = [1 ]) | DataFrame (index = [1 ])
4404+ assert_frame_equal (result ,DataFrame (index = [1 ]))
4405+
4406+ result = DataFrame (index = [1 ]) & DataFrame (index = [1 ,2 ])
4407+ assert_frame_equal (result ,DataFrame (index = [1 ,2 ]))
4408+
4409+ result = DataFrame (index = [1 ],columns = ['A' ]) & DataFrame (index = [1 ],columns = ['A' ])
4410+ assert_frame_equal (result ,DataFrame (index = [1 ],columns = ['A' ]))
4411+
4412+ result = DataFrame (True ,index = [1 ],columns = ['A' ]) & DataFrame (True ,index = [1 ],columns = ['A' ])
4413+ assert_frame_equal (result ,DataFrame (True ,index = [1 ],columns = ['A' ]))
4414+
4415+ result = DataFrame (True ,index = [1 ],columns = ['A' ]) | DataFrame (True ,index = [1 ],columns = ['A' ])
4416+ assert_frame_equal (result ,DataFrame (True ,index = [1 ],columns = ['A' ]))
4417+
4418+ # boolean ops
4419+ result = DataFrame (1 ,index = [1 ],columns = ['A' ]) | DataFrame (True ,index = [1 ],columns = ['A' ])
4420+ assert_frame_equal (result ,DataFrame (1 ,index = [1 ],columns = ['A' ]))
4421+
4422+ def f ():
4423+ DataFrame (1.0 ,index = [1 ],columns = ['A' ]) | DataFrame (True ,index = [1 ],columns = ['A' ])
4424+ self .assertRaises (TypeError , f )
4425+
4426+ def f ():
4427+ DataFrame ('foo' ,index = [1 ],columns = ['A' ]) | DataFrame (True ,index = [1 ],columns = ['A' ])
4428+ self .assertRaises (TypeError , f )
4429+
43954430 def test_operators_none_as_na (self ):
43964431 df = DataFrame ({"col1" : [2 , 5.0 , 123 , None ],
43974432 "col2" : [1 , 2 , 3 , 4 ]}, dtype = object )
0 commit comments