refactor(chess): 重构象棋程序基础结构,使用Nullable重构核心代码
- 更新了多个文件的代码结构和类型定义,提高了代码的健壮性和可维护性 - 优化了事件处理、棋子管理和移动逻辑,为后续功能扩展打下坚实基础 - 修复了一些潜在的空指针异常问题,提高了程序的稳定性 - 修复部分bug
This commit is contained in:
93
Test/src/TestVector.cs
Normal file
93
Test/src/TestVector.cs
Normal file
@ -0,0 +1,93 @@
|
||||
using Vector;
|
||||
namespace Test;
|
||||
public class TestsVector
|
||||
{
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Test1()
|
||||
{
|
||||
Assert.Pass();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestVector2I_Constructors()
|
||||
{
|
||||
// Arrange & Act
|
||||
var v1 = new Vector2I();
|
||||
var v2 = new Vector2I(1, 2);
|
||||
var v3 = new Vector2I(v2);
|
||||
|
||||
// Assert
|
||||
Assert.That(v1.X, Is.EqualTo(0));
|
||||
Assert.That(v1.Y, Is.EqualTo(0));
|
||||
Assert.That(v2.X, Is.EqualTo(1));
|
||||
Assert.That(v2.Y, Is.EqualTo(2));
|
||||
Assert.That(v3.X, Is.EqualTo(1));
|
||||
Assert.That(v3.Y, Is.EqualTo(2));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestVector2I_Operators()
|
||||
{
|
||||
// Arrange
|
||||
var v1 = new Vector2I(1, 2);
|
||||
var v2 = new Vector2I(3, 4);
|
||||
|
||||
// Act
|
||||
var v3 = v1 + v2;
|
||||
var v4 = v1 - v2;
|
||||
var v5 = v1 * v2;
|
||||
|
||||
// Assert
|
||||
Assert.That(v3, Is.EqualTo(new Vector2I(4, 6)));
|
||||
Assert.That(v4, Is.EqualTo(new Vector2I(-2, -2)));
|
||||
Assert.That(v5, Is.EqualTo(new Vector2I(3, 8)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTrans2DI_Constructors()
|
||||
{
|
||||
// Arrange & Act
|
||||
var t1 = new Trans2DI();
|
||||
var t2 = new Trans2DI(new Vector2I(1, 0), new Vector2I(0, 1), new Vector2I(0, 0));
|
||||
var t3 = new Trans2DI(t2);
|
||||
var t4 = new Trans2DI(1, 0, 0, 1, 0, 0);
|
||||
|
||||
// Assert
|
||||
Assert.That(t1.XAxis, Is.EqualTo(new Vector2I(1, 0)));
|
||||
Assert.That(t1.YAxis, Is.EqualTo(new Vector2I(0, 1)));
|
||||
Assert.That(t1.Origin, Is.EqualTo(new Vector2I(0, 0)));
|
||||
|
||||
Assert.That(t2.XAxis, Is.EqualTo(new Vector2I(1, 0)));
|
||||
Assert.That(t2.YAxis, Is.EqualTo(new Vector2I(0, 1)));
|
||||
Assert.That(t2.Origin, Is.EqualTo(new Vector2I(0, 0)));
|
||||
|
||||
Assert.That(t3.XAxis, Is.EqualTo(new Vector2I(1, 0)));
|
||||
Assert.That(t3.YAxis, Is.EqualTo(new Vector2I(0, 1)));
|
||||
Assert.That(t3.Origin, Is.EqualTo(new Vector2I(0, 0)));
|
||||
|
||||
Assert.That(t4.XAxis, Is.EqualTo(new Vector2I(1, 0)));
|
||||
Assert.That(t4.YAxis, Is.EqualTo(new Vector2I(0, 1)));
|
||||
Assert.That(t4.Origin, Is.EqualTo(new Vector2I(0, 0)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTrans2DI_Operators()
|
||||
{
|
||||
// Arrange
|
||||
var t1 = new Trans2DI(new Vector2I(1, 0), new Vector2I(0, 1), new Vector2I(1, 2));
|
||||
var v1 = new Vector2I(3, 4);
|
||||
|
||||
// Act
|
||||
var v2 = t1 * v1;
|
||||
var v3 = v1 * t1;
|
||||
|
||||
// Assert
|
||||
Assert.That(v2, Is.EqualTo(new Vector2I(4, 6)));
|
||||
Assert.That(v3, Is.EqualTo(new Vector2I(2, 2)));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user