code: def test_construct_tracked_optimizers_and_schedulers(self) -> None:
      device = init_from_env()
      module = torch.nn.Linear(10, 10)
  
      auto_unit = DummyAutoUnit(module=module)
      auto_unit.module2 = torch.nn.Linear(10, 10).to(device)
      auto_unit.optim2 = torch.optim.Adam(
          auto_unit.module2.parameters()
      )
  
      with patch(
          "torchtnt.framework.unit._is_fsdp_module",
          side_effect=lambda m: m == module,
      ):
          result = (
              auto_unit._construct_tracked_optimizers_and_schedulers()
          )
  
      self.assertTrue(
          isinstance(result["optimizer"], FSDPOptimizerWrapper)
      )
      self.assertTrue(
          isinstance(result["optim2"], torch.optim.Optimizer)
      )
      self.assertTrue(isinstance(result["lr_scheduler"], TLRScheduler))
  
imports: import unittest
  from typing import Any, Dict
  from unittest.mock import patch
  import torch
  from torch import nn
  from torchtnt.framework._test_utils import DummyAutoUnit
  from torchtnt.framework.unit import AppStateMixin
  from torchtnt.utils.env import init_from_env
  from torchtnt.utils.lr_scheduler import TLRScheduler
  from torchtnt.utils.prepare_module import FSDPOptimizerWrapper
label_desc: Use image node_id 8 for calling the AppStateMixinTest obj's underlying member method code with example usage: obj.test_construct_tracked_optimizers_and_schedulers() without return types