初始提交:WinUI 3 一键运行轮盘工具
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
using OneClickRun.Core.Logic;
|
||||
using Xunit;
|
||||
|
||||
namespace OneClickRun.Core.Tests;
|
||||
|
||||
public class WheelMathTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(0, 0)]
|
||||
[InlineData(44.9, 0)]
|
||||
[InlineData(45, 1)]
|
||||
[InlineData(90, 2)]
|
||||
[InlineData(359.9, 7)]
|
||||
[InlineData(-45, 7)]
|
||||
[InlineData(360, 0)]
|
||||
public void GetSectorIndex_MapsAngles(double angle, int expected)
|
||||
{
|
||||
Assert.Equal(expected, WheelMath.GetSectorIndex(8, angle));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetSectorIndex_SingleSector_AlwaysZero()
|
||||
{
|
||||
Assert.Equal(0, WheelMath.GetSectorIndex(1, 123.4));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetSectorIndex_NoSectors_ReturnsMinusOne()
|
||||
{
|
||||
Assert.Equal(-1, WheelMath.GetSectorIndex(0, 10));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(0, -1, 0)]
|
||||
[InlineData(1, 0, 90)]
|
||||
[InlineData(0, 1, 180)]
|
||||
[InlineData(-1, 0, 270)]
|
||||
public void AngleFromVector_CardinalDirections(double dx, double dy, double expected)
|
||||
{
|
||||
Assert.Equal(expected, WheelMath.AngleFromVector(dx, dy), 3);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PolarPoint_Top()
|
||||
{
|
||||
var (x, y) = WheelMath.PolarPoint(100, 100, 50, 0);
|
||||
Assert.Equal(100, x, 3);
|
||||
Assert.Equal(50, y, 3);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PolarPoint_Right()
|
||||
{
|
||||
var (x, y) = WheelMath.PolarPoint(100, 100, 50, 90);
|
||||
Assert.Equal(150, x, 3);
|
||||
Assert.Equal(100, y, 3);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TryGetSwipeIndex_DeadZone_ReturnsFalse()
|
||||
{
|
||||
Assert.False(WheelMath.TryGetSwipeIndex(8, 5, 0, 10, out _));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TryGetSwipeIndex_NoCommands_ReturnsFalse()
|
||||
{
|
||||
Assert.False(WheelMath.TryGetSwipeIndex(0, 100, 0, 10, out _));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(0, -100, 0)]
|
||||
[InlineData(100, 0, 2)]
|
||||
[InlineData(0, 100, 4)]
|
||||
[InlineData(-100, 0, 6)]
|
||||
public void TryGetSwipeIndex_Directions(double dx, double dy, int expected)
|
||||
{
|
||||
Assert.True(WheelMath.TryGetSwipeIndex(8, dx, dy, 10, out int index));
|
||||
Assert.Equal(expected, index);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user