def METHOD_NAME(self, scheduler_name, scheduler_params, expected_lr, epochs=2, test_resume=False):
    trainer = Trainer("test_" + scheduler_name + "_torch_scheduler")
    dataloader = classification_test_dataloader(batch_size=10)
    model = models.get(Models.RESNET18, num_classes=5)
    train_params = {
        "max_epochs": epochs,
        "lr_mode": {scheduler_name: scheduler_params},
        "lr_warmup_epochs": 0,
        "initial_lr": 0.1,
        "loss": torch.nn.CrossEntropyLoss(),
        "optimizer": "SGD",
        "criterion_params": {},
        "optimizer_params": {"weight_decay": 1e-4, "momentum": 0.9},
        "train_metrics_list": [DummyMetric()],
        "valid_metrics_list": [DummyMetric()],
        "metric_to_watch": "DummyMetric",
        "greater_metric_to_watch_is_better": True,
    }
    trainer.train(model=model, training_params=train_params, train_loader=dataloader, valid_loader=dataloader)
    if test_resume:
        train_params["max_epochs"] = epochs + 1
        train_params["resume"] = True
        trainer.train(model=model, training_params=train_params, train_loader=dataloader, valid_loader=dataloader)
    self.assertAlmostEqual(expected_lr, trainer.optimizer.param_groups[0]["lr"], delta=1e-8)