code: def test_func_w_decorator(self, make_decorator, wrapper_first):
      x = 1
  
      def decorator_foo(func):
          def wrapper(*args, **kwargs):
              return func(*args, **kwargs)
  
          if wrapper_first:
              return make_decorator(wrapper, func)
          else:
              return make_decorator(func, wrapper)
  
      @decorator_foo
      @decorator_foo
      def f():
          @decorator_foo
          @decorator_foo
          def g():
              return x + 1
  
          return g()
  
      func_map = free_vars_detect._detect_function_free_vars(f)
      self.assertIn("f", func_map.keys())
      self.assertLen(func_map.keys(), 2)
      free_vars = get_var_name(func_map["f"])
      self.assertSequenceEqual(free_vars, ["decorator_foo", "x"])
  
imports: import functools
  import unittest
  from absl.testing import parameterized
  import numpy
  from tensorflow.core.function.capture import free_vars_detect
  from tensorflow.python.util import tf_decorator
label_desc: Use image node_id 27 for calling the FreeVarDetectionTest obj's underlying member method code with example usage: obj.test_func_w_decorator(make_decorator, wrapper_first) and returns: g, func, make_decorator, make_decorator, unknown