code: def test_shape(self, input_param, expected_lr):
      net = SchedulerTestNet()
      optimizer = torch.optim.Adam(net.parameters(), lr=1.0)
      scheduler = WarmupCosineSchedule(optimizer, **input_param)
      self.assertEqual(len([scheduler.get_last_lr()[0]]), 1)
      lrs_1 = []
      for _ in range(input_param["t_total"]):
          lrs_1.append(float(f"{scheduler.get_last_lr()[0]:.3f}"))
          optimizer.step()
          scheduler.step()
      for a, b in zip(lrs_1, expected_lr):
          self.assertEqual(
              a, b, msg=f"LR is wrong ! expected {b}, got {a}"
          )
  
file_path: MONAI/tests/test_lr_scheduler.py
imports: from __future__ import annotations
  import unittest
  import torch
  from parameterized import parameterized
  from monai.optimizers.lr_scheduler import WarmupCosineSchedule
label_desc: Use image node_id 1 for calling the TestLRSCHEDULER obj's underlying member method code with example usage: obj.test_shape(input_param, expected_lr) without return types