From 39066900773e7857faf2d02e7ed51b71d219d97d Mon Sep 17 00:00:00 2001 From: godosa Date: Tue, 6 Oct 2026 23:39:36 +0200 Subject: godosa-engine: initial public history --- src/Godosa.Core.Tests/Input/MenuCursorTests.cs | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/Godosa.Core.Tests/Input/MenuCursorTests.cs (limited to 'src/Godosa.Core.Tests/Input/MenuCursorTests.cs') diff --git a/src/Godosa.Core.Tests/Input/MenuCursorTests.cs b/src/Godosa.Core.Tests/Input/MenuCursorTests.cs new file mode 100644 index 0000000..79a1184 --- /dev/null +++ b/src/Godosa.Core.Tests/Input/MenuCursorTests.cs @@ -0,0 +1,42 @@ +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); + } +} -- cgit