public void TestLimitedDistance()
        {
            AddStep("create limited grid", () =>
            {
                Children = new Drawable[]
                {
                    new Box
                    {
                        RelativeSizeAxes = Axes.Both,
                        Colour           = Color4.SlateGray
                    },
                    grid = new OsuDistanceSnapGrid(new HitCircle {
                        Position = grid_position
                    }, new HitCircle {
                        StartTime = 200
                    }),
                    new SnappingCursorContainer {
                        GetSnapPosition = v => grid.GetSnappedPosition(grid.ToLocalSpace(v)).position
                    }
                };
            });

            AddStep("move mouse outside grid", () => InputManager.MoveMouseTo(grid.ToScreenSpace(grid_position + new Vector2(beat_length, 0) * 3f)));
            assertSnappedDistance(beat_length);
        }
        public void Setup() => Schedule(() =>
        {
            editorBeatmap.Difficulty.SliderMultiplier = 1;
            editorBeatmap.ControlPointInfo.Clear();
            editorBeatmap.ControlPointInfo.Add(0, new TimingControlPoint {
                BeatLength = beat_length
            });
            snapProvider.DistanceSpacingMultiplier.Value = 1;

            Children = new Drawable[]
            {
                new Box
                {
                    RelativeSizeAxes = Axes.Both,
                    Colour           = Color4.SlateGray
                },
                grid = new OsuDistanceSnapGrid(new HitCircle {
                    Position = grid_position
                }),
                new SnappingCursorContainer {
                    GetSnapPosition = v => grid.GetSnappedPosition(grid.ToLocalSpace(v)).position
                }
            };
        });