def METHOD_NAME(self):
    def custom_logic(initial_value, gamma, current_step):
        return initial_value * gamma ** (current_step % 9)
    net = ToyNet(value=-1)
    engine = Engine(lambda e, b: None)
    ParamSchedulerHandler(
        parameter_setter=net.set_value,
        value_calculator=custom_logic,
        vc_kwargs={"initial_value": 10, "gamma": 0.99},
        epoch_level=True,
        event=Events.EPOCH_COMPLETED,
    ).attach(engine)
    engine.run([0] * 8, max_epochs=2)
    assert_allclose(net.get_value(), 10 * 0.99 * 0.99)