using Godosa.Core.Input; using Xunit; namespace Godosa.Core.Tests.Input; public class MenuCursorTests { [Fact] public void Move_WrapsAround() { var c = new MenuCursor(); c.Clamp(3); c.Move(-1, 3); Assert.Equal(2, c.Index); c.Move(+1, 3); Assert.Equal(0, c.Index); c.Move(+1, 3); Assert.Equal(1, c.Index); } [Fact] public void Clamp_KeepsIndexInsideAShrinkingList_AndEmptyMeansNone() { var c = new MenuCursor(); c.Clamp(5); c.Move(+1, 5); c.Move(+1, 5); c.Move(+1, 5); c.Clamp(2); Assert.Equal(1, c.Index); c.Clamp(0); Assert.Equal(-1, c.Index); c.Move(+1, 0); Assert.Equal(-1, c.Index); c.Clamp(4); Assert.Equal(0, c.Index); } }