(self, cls=complex)
| 740 | self.assertRaises(ValueError, complex, lit) |
| 741 | |
| 742 | def test_from_number(self, cls=complex): |
| 743 | def eq(actual, expected): |
| 744 | self.assertEqual(actual, expected) |
| 745 | self.assertIs(type(actual), cls) |
| 746 | |
| 747 | eq(cls.from_number(3.14), 3.14+0j) |
| 748 | eq(cls.from_number(3.14j), 3.14j) |
| 749 | eq(cls.from_number(314), 314.0+0j) |
| 750 | eq(cls.from_number(OtherComplexSubclass(3.14, 2.72)), 3.14+2.72j) |
| 751 | eq(cls.from_number(WithComplex(3.14+2.72j)), 3.14+2.72j) |
| 752 | eq(cls.from_number(WithFloat(3.14)), 3.14+0j) |
| 753 | eq(cls.from_number(WithIndex(314)), 314.0+0j) |
| 754 | |
| 755 | cNAN = complex(NAN, NAN) |
| 756 | x = cls.from_number(cNAN) |
| 757 | self.assertTrue(x != x) |
| 758 | self.assertIs(type(x), cls) |
| 759 | if cls is complex: |
| 760 | self.assertIs(cls.from_number(cNAN), cNAN) |
| 761 | |
| 762 | self.assertRaises(TypeError, cls.from_number, '3.14') |
| 763 | self.assertRaises(TypeError, cls.from_number, b'3.14') |
| 764 | self.assertRaises(TypeError, cls.from_number, MyInt(314)) |
| 765 | self.assertRaises(TypeError, cls.from_number, {}) |
| 766 | self.assertRaises(TypeError, cls.from_number) |
| 767 | |
| 768 | def test_from_number_subclass(self): |
| 769 | self.test_from_number(ComplexSubclass) |
no test coverage detected