Skip to content

Commit 9d4cb99

Browse files
committed
Added tests for bitwise operations and some more arithmetics.
1 parent e586542 commit 9d4cb99

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

future/tests/test_int.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

693761
if __name__ == "__main__":
694762
unittest.main()

0 commit comments

Comments
 (0)