code: def test(self, optimizer_constructor, zero_stage=2):
      if not bf16_required_version_check():
          pytest.skip(
              " DeepSpeed BFloat16 tests need torch >= 1.10, NCCL >= 2.10.3, CUDA > =11.0 and HW support for BFloat16 to run correctly"
          )
  
      config_dict = {
          "train_micro_batch_size_per_gpu": 2,
          "steps_per_print": 1,
          "fp16": {"enabled": False},
          "bf16": {"enabled": True},
          "zero_optimization": {"stage": zero_stage},
      }
      hidden_dim = 10
  
      model = SimpleModel(hidden_dim)
      client_optimizer = optimizer_constructor(
          params=model.parameters()
      )
      model, _, _, _ = deepspeed.initialize(
          config=config_dict, model=model, optimizer=client_optimizer
      )
  
imports: import torch
  import deepspeed
  import pytest
  from deepspeed.ops.adam import FusedAdam
  from unit.common import DistributedTest
  from deepspeed.ops.op_builder import CPUAdamBuilder
  from unit.simple_model import SimpleModel, SimpleOptimizer, random_dataloader
  from unit.util import bf16_required_version_check
  from deepspeed import comm
label_desc: Use image node_id 1 for calling the TestZeroSupportedClientOptimizer obj's underlying member method code with example usage: obj.test(optimizer_constructor, zero_stage) without return types