async def METHOD_NAME(widget, probe, on_change):
    widget.tick_count = 5
    widget.min = 0
    widget.max = 10
    widget.value = prev_value = 5
    for value_in, value_out in [
        (0, 0),
        (1, 0),
        (2, 2.5),
        (2.5, 2.5),
        (3, 2.5),
        (4, 5),
        (9, 10),
    ]:
        on_change.reset_mock()
        assert_set_value(widget, value_in, value_out)
        await probe.redraw(
            message="Slider value with tick should be {}, {}".format(
                value_in, value_out
            )
        )
        assert probe.position == approx(value_out / 10, abs=ACCURACY)
        if value_out == prev_value:
            on_change.assert_not_called()
        else:
            on_change.assert_called_once_with(widget)
        prev_value = value_out