def METHOD_NAME(self):
    obj = Cached()
    value = iter(range(3))  # iter for Py2
    cache = {(value,): 1}
    obj.cached_next(value)  # cache args
    clear_method_caches(obj)
    self.set_of_names_equal(obj, set())
    self.assertEqual(obj.cached_next(value), 1)
    self.set_of_names_equal(obj, {NAMES})
    self.assertEqual(getattr(obj, CACHE_NAME), cache)