code: def test_lambda_lr(self, lr_mock):
      state = {
          torchbearer.OPTIMIZER: "optimizer",
          torchbearer.EPOCH: 0,
          torchbearer.MODEL: Mock(),
      }
  
      scheduler = ReduceLROnPlateau(
          monitor="test",
          mode="max",
          factor=0.2,
          patience=100,
          verbose=True,
          threshold=10,
          threshold_mode="thresh",
          cooldown=5,
          min_lr=0.1,
          eps=1e-4,
          step_on_batch=True,
      )
      scheduler.on_start(state)
  
      lr_mock.assert_called_with(
          "optimizer",
          mode="max",
          factor=0.2,
          patience=100,
          verbose=True,
          threshold=10,
          threshold_mode="thresh",
          cooldown=5,
          min_lr=0.1,
          eps=1e-4,
          last_epoch=-1,
      )
      self.assertTrue(scheduler._step_on_batch)
      self.assertTrue(scheduler._monitor == "test")
  
imports: from unittest import TestCase
  from mock import patch, Mock
  import warnings
  import torchbearer
  from torchbearer.bases import _pytorch_version_gt
  from torchbearer.callbacks import TorchScheduler, LambdaLR, StepLR, MultiStepLR, ExponentialLR, CosineAnnealingLR, ReduceLROnPlateau, CyclicLR
label_desc: Use image node_id 1 for calling the TestReduceLROnPlateau obj's underlying member method code with example usage: obj.test_lambda_lr(lr_mock) without return types