code: def _find_optimizers_for_FSDP_module() -> None:
      device = init_from_env()
      module1 = FSDP(torch.nn.Linear(10, 10).to(device))
      module2 = torch.nn.Linear(10, 10)
      optim1 = torch.optim.Adam(module1.parameters())
      optim2 = torch.optim.Adagrad(module2.parameters())
  
      opts: Dict[str, Optimizer] = {"optim1": optim1, "optim2": optim2}
      optim_list = _find_optimizers_for_module(module1, opts)
      optim_name, _ = optim_list[0]
  
      tc = unittest.TestCase()
      tc.assertEqual(optim_name, "optim1")
      optim_list = _find_optimizers_for_module(module2, opts)
      optim_name, _ = optim_list[0]
      tc.assertEqual(optim_name, "optim2")
  
file_path: tnt/tests/framework/test_unit_utils.py
imports: import unittest
  from typing import Dict, Iterator
  import torch
  from torch.distributed.fsdp import FullyShardedDataParallel
  from torch.optim import Optimizer
  from torchtnt.framework._unit_utils import _find_optimizers_for_module, _step_requires_iterator
  from torchtnt.framework.state import State
  from torchtnt.utils.env import init_from_env
  from torchtnt.utils.test_utils import spawn_multi_process
label_desc: Use image node_id 4 for calling the UnitUtilsTest obj's underlying member method code with example usage: obj._find_optimizers_for_FSDP_module() without return types