code: def test_max_step_computation_with_sched_no_ops(self):
      def train(
          max_steps,
          accumulate_grad_batches,
          limit_train_batches,
          devices,
          batch_size,
          dataset_len,
          drop_last,
      ):
          trainer = pl.Trainer(
              max_steps=max_steps,
              strategy="ddp_spawn",
              accelerator="cpu",
              devices=devices,
              accumulate_grad_batches=accumulate_grad_batches,
              limit_train_batches=limit_train_batches,
              enable_checkpointing=False,
              enable_progress_bar=False,
          )
          model = ExampleModel(
              batch_size, dataset_len, drop_last, max_steps
          )
          trainer.callbacks.append(SchedulerNoOpCallback())
          trainer.fit(model)
  
      # This test will break once we and lightning upgrade to pytorch 1.7.0 due to a bug fix in pytorch 1.7.0
      train(
          max_steps=20,
          accumulate_grad_batches=1,
          limit_train_batches=1.0,
          devices=4,
          batch_size=60,
          dataset_len=2000,
          drop_last=True,
      )
  
imports: import math
  import random
  import omegaconf
  import pytest
  import pytorch_lightning
  import torch
  import torch.optim
  from pytorch_lightning.utilities import rank_zero_only
  from nemo.core import config, optim
  from nemo.core.optim.lr_scheduler import AVAILABLE_SCHEDULERS
  from nemo.core.optim.optimizers import AVAILABLE_OPTIMIZERS
  from nemo.utils import logging
label_desc: Use image node_id 23 for calling the TestOptimizersSchedulers obj's underlying member method code with example usage: obj.test_max_step_computation_with_sched_no_ops() without return types