def METHOD_NAME(self):
    c = "squirrel"
    time = 0
    global l
    l = []
    def x(time):
        time += 1
        if time == 1:
            b = "dog"
        else:
            b = "banana"
        l.append(b)
        l.append(c)
        def y(d):
            a = "cat"
            l.append(a)
            l.append(b)
            l.append(d)
            def z():
                for i in range(2*time):
                    yield i,a,b,c,d
            return z
        return y("blorp")
    l2 = []
    for v in x(time)():
        l2.append(v)
    for v in x(time)():
        l2.append(v)
    self.assertEqual((l, l2), (['dog', 'squirrel', 'cat', 'dog', 'blorp', 'dog', 'squirrel', 'cat', 'dog', 'blorp'], [(0, 'cat', 'dog', 'squirrel', 'blorp'), (1, 'cat', 'dog', 'squirrel', 'blorp'), (0, 'cat', 'dog', 'squirrel', 'blorp'), (1, 'cat', 'dog', 'squirrel', 'blorp')]))
    self.assertEqual(globals()['bar'], 11)
    self.assertTrue('foo' in globals())
    self.assertTrue(baz(10))
    y = MyClass()
    self.assertEqual(y.l, ["__main__", True, type(foo)])