code: def _parametrize_correlated_parameters(metafunc):
      parametrize_needed = {}
  
      for (
          name,
          fixturedefs,
      ) in metafunc.definition._fixtureinfo.name2fixturedefs.items():
          fixturedef = fixturedefs[-1]
          if hasattr(fixturedef.func, "parametrize_group") and hasattr(
              fixturedef.func, "parametrize_values"
          ):
              group = fixturedef.func.parametrize_group
              values = fixturedef.func.parametrize_values
              ids = fixturedef.func.parametrize_ids
              if group in parametrize_needed:
                  assert ids == parametrize_needed[group]["ids"]
              else:
                  parametrize_needed[group] = {"ids": ids, "params": []}
              parametrize_needed[group]["params"].append((name, values))
  
      for parametrize_group in parametrize_needed.values():
          params = parametrize_group["params"]
          ids = parametrize_group["ids"]
          if len(params) == 1:
              name, values = params[0]
              metafunc.parametrize(name, values, indirect=True, ids=ids)
          else:
              names = ",".join(name for name, values in params)
              value_sets = zip(*[values for name, values in params])
              metafunc.parametrize(
                  names, value_sets, indirect=True, ids=ids
              )
  
file_path: tvm/python/tvm/testing/plugin.py
imports: import pytest
  import _pytest
  import tvm
  from tvm.testing import utils
label_desc: Use image node_id 13 for calling a global function with example usage: _parametrize_correlated_parameters(metafunc) without return types