code: def test(self, zero_stage=2, use_cpu_offload=False):
      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"
          )
  
      if (
          use_cpu_offload
          and not deepspeed.ops.__compatible_ops__[CPUAdamBuilder.NAME]
      ):
          pytest.skip("cpu-adam is not compatible")
  
      config_dict = {
          "train_micro_batch_size_per_gpu": 4,
          "steps_per_print": 1,
          "fp16": {
              "enabled": False,
          },
          "bf16": {"enabled": True},
          "zero_optimization": {
              "stage": zero_stage,
              "cpu_offload": use_cpu_offload,
          },
          "zero_allow_untested_optimizer": False,
      }
  
      hidden_dim = 10
      model = SimpleModel(hidden_dim)
      optimizer = SimpleOptimizer(model.parameters())
      with pytest.raises(AssertionError):
          model, optim, _, _ = deepspeed.initialize(
              config=config_dict,
              model=model,
              optimizer=optimizer,
              model_parameters=model.parameters(),
          )
  
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 TestZeroAllowUntestedOptimizer obj's underlying member method code with example usage: obj.test(zero_stage, use_cpu_offload) without return types