def METHOD_NAME(self):
    # Test for a bug encountered while changing long_hash.
    #
    # Given objects x and y, it should be possible for y's
    # __hash__ method to return hash(x) in order to ensure that
    # hash(x) == hash(y).  But hash(x) is not exactly equal to the
    # result of x.__hash__(): there's some internal normalization
    # to make sure that the result fits in a C long, and is not
    # equal to the invalid hash value -1.  This internal
    # normalization must therefore not change the result of
    # hash(x) for any x.
    class HalibutProxy:
        def __hash__(self):
            return hash('halibut')
        def __eq__(self, other):
            return other == 'halibut'
    x = {'halibut', HalibutProxy()}
    self.assertEqual(len(x), 1)