def METHOD_NAME(
    self,
    modifier_lambda,
    model_lambda,
    optim_lambda,
    test_steps_per_epoch,  # noqa: F811
):
    modifier = modifier_lambda()
    model = model_lambda()
    optimizer = optim_lambda(model)
    self.initialize_helper(modifier, model)
    # get expected param groups and original values
    param_group_idxs = (
        modifier.param_groups
        if modifier.param_groups
        else list(range(len(optimizer.param_groups)))
    )
    # test pre start epoch
    for epoch in range(int(modifier.start_epoch)):
        assert not modifier.update_ready(epoch, test_steps_per_epoch)
    for idx in param_group_idxs:
        assert optimizer.param_groups[idx]["weight_decay"] != modifier.weight_decay
    # test start epoch + update
    assert modifier.update_ready(modifier.start_epoch, test_steps_per_epoch)
    modifier.scheduled_update(
        model, optimizer, modifier.start_epoch, test_steps_per_epoch
    )
    for idx in param_group_idxs:
        assert optimizer.param_groups[idx]["weight_decay"] == modifier.weight_decay