code: def test_get_optimizers(self):
      # ordering covered in test_configure_optimizers
      trainer = self._construct_trainer()
      optimizers = trainer.get_optimizers()
      self.assertIsNotNone(optimizers[0])
      trainer = self._construct_trainer(use_value_net=False)
      optimizers = trainer.get_optimizers()
      self.assertIsNone(optimizers[0])
  
imports: import unittest
  from collections import defaultdict
  from unittest import mock
  import torch
  from reagent.core.types import PolicyGradientInput
  from reagent.evaluation.evaluator import get_metrics_to_score
  from reagent.gym.policies.policy import Policy
  from reagent.gym.policies.samplers.discrete_sampler import SoftmaxActionSampler
  from reagent.models.dueling_q_network import DuelingQNetwork
  from reagent.models.fully_connected_network import FloatFeatureFullyConnected
  from reagent.training.parameters import PPOTrainerParameters
  from reagent.training.ppo_trainer import PPOTrainer
  from reagent.workflow.types import RewardOptions
label_desc: Use image node_id 6 for calling the TestPPO obj's underlying member method code with example usage: obj.test_get_optimizers() without return types