code: def test_reduce_lr_on_plateau_scheduler_asserts():
      tensor1 = torch.zeros([1], requires_grad=True)
      tensor2 = torch.zeros([1], requires_grad=True)
      optimizer = torch.optim.SGD(
          [{"params": [tensor1]}, {"params": [tensor2]}], lr=1
      )
  
      with pytest.raises(
          TypeError,
          match=r"When param_group_index is given, min_lr should be a float, but given",
      ):
          ReduceLROnPlateauScheduler(
              optimizer,
              metric_name="acc",
              min_lr=[1e-7, 1e-8],
              param_group_index=0,
          )
  
      with pytest.raises(
          ValueError,
          match=r"Argument engine should have in its 'state', attribute 'metrics' which itself has the metric",
      ):
          scheduler = ReduceLROnPlateauScheduler(
              optimizer, metric_name="acc"
          )
          evaluator = Engine(lambda engine, batch: None)
          scheduler(evaluator)
  
      with pytest.raises(
          ValueError,
          match=r"Length of argument metric_values should be equal to num_events.",
      ):
          metric_values = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
          ReduceLROnPlateauScheduler.simulate_values(
              5, metric_values, 0.01
          )
  
imports: from unittest.mock import MagicMock, patch
  import numpy
  import pytest
  import torch
  from torch.optim.lr_scheduler import CosineAnnealingWarmRestarts, ExponentialLR, StepLR
  from ignite.engine import Engine, Events
  from ignite.handlers.param_scheduler import ConcatScheduler, CosineAnnealingScheduler, create_lr_scheduler_with_warmup, LinearCyclicalScheduler, LRScheduler, ParamGroupScheduler, ParamScheduler, PiecewiseLinear, ReduceLROnPlateauScheduler
  from tests.ignite.contrib.handlers import MockFP16DeepSpeedZeroOptimizer
label_desc: Use image node_id 26 for calling a global function with example usage: test_reduce_lr_on_plateau_scheduler_asserts() without return types