def METHOD_NAME(self):
    class aug_test:
        def __init__(self, value):
            self.val = value
        def __radd__(self, val):
            return self.val + val
        def __add__(self, val):
            return aug_test(self.val + val)
    class aug_test2(aug_test):
        def __iadd__(self, val):
            self.val = self.val + val
            return self
    class aug_test3(aug_test):
        def __iadd__(self, val):
            return aug_test3(self.val + val)
    x = aug_test(1)
    y = x
    x += 10
    self.assertIsInstance(x, aug_test)
    self.assertTrue(y is not x)
    self.assertEqual(x.val, 11)
    x = aug_test2(2)
    y = x
    x += 10
    self.assertTrue(y is x)
    self.assertEqual(x.val, 12)
    x = aug_test3(3)
    y = x
    x += 10
    self.assertIsInstance(x, aug_test3)
    self.assertTrue(y is not x)
    self.assertEqual(x.val, 13)