(self)
| 1751 | self.assertEqual(pya.B.has_inst(), False) |
| 1752 | |
| 1753 | def test_29(self): |
| 1754 | |
| 1755 | # copy/ref semantics on return |
| 1756 | |
| 1757 | c = pya.C() |
| 1758 | |
| 1759 | cd = pya.CopyDetector(42) |
| 1760 | |
| 1761 | cd2 = c.pass_cd_direct(cd) |
| 1762 | self.assertEqual(cd2.x(), 42) |
| 1763 | # two copies: one for return statement and then one for the new object |
| 1764 | self.assertEqual(cd2.xx(), 44) |
| 1765 | |
| 1766 | cd2 = c.pass_cd_cref(cd) |
| 1767 | self.assertEqual(cd2.x(), 42) |
| 1768 | self.assertEqual(cd2.xx(), 43) |
| 1769 | |
| 1770 | cd2 = c.pass_cd_cref_as_copy(cd) |
| 1771 | self.assertEqual(cd2.x(), 42) |
| 1772 | self.assertEqual(cd2.xx(), 43) |
| 1773 | |
| 1774 | cd2 = c.pass_cd_cref_as_ref(cd) |
| 1775 | self.assertEqual(cd2.x(), 42) |
| 1776 | self.assertEqual(cd2.xx(), 42) |
| 1777 | |
| 1778 | cd2 = c.pass_cd_cptr(cd) |
| 1779 | self.assertEqual(cd2.x(), 42) |
| 1780 | self.assertEqual(cd2.xx(), 42) |
| 1781 | |
| 1782 | cd2 = c.pass_cd_cptr_as_copy(cd) |
| 1783 | self.assertEqual(cd2.x(), 42) |
| 1784 | self.assertEqual(cd2.xx(), 43) |
| 1785 | |
| 1786 | cd2 = c.pass_cd_cptr_as_ref(cd) |
| 1787 | self.assertEqual(cd2.x(), 42) |
| 1788 | self.assertEqual(cd2.xx(), 42) |
| 1789 | |
| 1790 | cd2 = c.pass_cd_ptr(cd) |
| 1791 | self.assertEqual(cd2.x(), 42) |
| 1792 | self.assertEqual(cd2.xx(), 42) |
| 1793 | |
| 1794 | cd2 = c.pass_cd_ptr_as_copy(cd) |
| 1795 | self.assertEqual(cd2.x(), 42) |
| 1796 | self.assertEqual(cd2.xx(), 43) |
| 1797 | |
| 1798 | cd2 = c.pass_cd_ptr_as_ref(cd) |
| 1799 | self.assertEqual(cd2.x(), 42) |
| 1800 | self.assertEqual(cd2.xx(), 42) |
| 1801 | |
| 1802 | cd2 = c.pass_cd_ref(cd) |
| 1803 | self.assertEqual(cd2.x(), 42) |
| 1804 | self.assertEqual(cd2.xx(), 42) |
| 1805 | |
| 1806 | cd2 = c.pass_cd_ref_as_copy(cd) |
| 1807 | self.assertEqual(cd2.x(), 42) |
| 1808 | self.assertEqual(cd2.xx(), 43) |
| 1809 | |
| 1810 | cd2 = c.pass_cd_ref_as_ref(cd) |
nothing calls this directly
no test coverage detected