@@ -655,6 +655,13 @@ def test_upcasting_to_floats(self):
655655 self .assertTrue (isinstance (a % 0.5 , float ))
656656 self .assertTrue (isinstance (0.5 % a , float ))
657657
658+ # Power with floats.
659+ self .assertEqual (1.0 ** a , 1.0 )
660+ self .assertTrue (isinstance (1.0 ** a , float ))
661+
662+ self .assertEqual (a ** 1.0 , a )
663+ self .assertTrue (isinstance (a ** 1.0 , float ))
664+
658665 def test_upcasting_to_complex (self ):
659666 """
660667 Integers should automatically be upcasted to complex numbers for
@@ -689,6 +696,67 @@ def test_upcasting_to_complex(self):
689696 self .assertTrue (isinstance (a / 0.5j , complex ))
690697 self .assertTrue (isinstance (0.5j / a , complex ))
691698
699+ # Power with floats.
700+ self .assertEqual (5.0j ** int (1 ), 5.0j )
701+ self .assertTrue (isinstance (5.0j ** int (1 ), complex ))
702+
703+ self .assertEqual (a ** 1.0j , 3.0 ** 1.0j )
704+ self .assertTrue (isinstance (a ** 1.0j , complex ))
705+
706+ def test_more_arithmetics (self ):
707+ """
708+ More arithmetic tests to improve test coverage.
709+ """
710+ a = int (3 )
711+ b = int (5 )
712+
713+ self .assertEqual (b - a , 2 )
714+ self .assertTrue (isinstance (b - a , int ))
715+
716+ self .assertEqual (a * b , 15 )
717+ self .assertTrue (isinstance (a * b , int ))
718+
719+ self .assertEqual (b % a , 2 )
720+ self .assertTrue (isinstance (b % a , int ))
721+
722+ self .assertEqual (a ** b , 243 )
723+ self .assertTrue (isinstance (a ** b , int ))
724+
725+ def test_bitwise_operations (self ):
726+ """
727+ Tests bitwise operations.
728+ """
729+ a = int (3 )
730+ b = int (1 )
731+
732+ self .assertEqual (a >> b , 1 )
733+ self .assertEqual (a >> 1 , 1 )
734+ self .assertTrue (isinstance (a >> b , int ))
735+ self .assertTrue (isinstance (a >> 1 , int ))
736+
737+ self .assertEqual (a << b , 6 )
738+ self .assertEqual (a << 1 , 6 )
739+ self .assertTrue (isinstance (a << b , int ))
740+ self .assertTrue (isinstance (a << 1 , int ))
741+
742+ self .assertEqual (a & b , 1 )
743+ self .assertEqual (a & 1 , 1 )
744+ self .assertTrue (isinstance (a & b , int ))
745+ self .assertTrue (isinstance (a & 1 , int ))
746+
747+ self .assertEqual (a | b , 3 )
748+ self .assertEqual (a | 1 , 3 )
749+ self .assertTrue (isinstance (a | b , int ))
750+ self .assertTrue (isinstance (a | 1 , int ))
751+
752+ self .assertEqual (a ^ b , 2 )
753+ self .assertEqual (a ^ 1 , 2 )
754+ self .assertTrue (isinstance (a ^ b , int ))
755+ self .assertTrue (isinstance (a ^ 1 , int ))
756+
757+ self .assertEqual (~ a , - 4 )
758+ self .assertTrue (isinstance (~ a , int ))
759+
692760
693761if __name__ == "__main__" :
694762 unittest .main ()
0 commit comments