refactor(重构): 重构了事件驱动的代码体系,使用全新命名和版本,以及测试套件的初试
- 移除了.csproj文件 - 更新了.gitignore,添加了.editorconfig - 重构了IBoard和IPiece接口,引入了新的事件处理机制 - 优化了CCBoard、CCPiece等类的实现,使用新的事件驱动模型 - 删除了冗余代码,提高了代码的可读性和可维护性
This commit is contained in:
@ -21,11 +21,11 @@
|
||||
<Using Include="NUnit.Framework" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- <ItemGroup>
|
||||
<ProjectReference Include="..\Chinese_Chess.csproj" />
|
||||
</ItemGroup> -->
|
||||
<ItemGroup>
|
||||
<Compile Include="..\Scripts\Src\*.cs" />
|
||||
<ProjectReference Include="..\*.csproj" />
|
||||
</ItemGroup>
|
||||
<!-- <ItemGroup>
|
||||
<Compile Include="..\Scripts\Src\*.cs" />
|
||||
</ItemGroup> -->
|
||||
|
||||
</Project>
|
||||
|
@ -1,21 +1,147 @@
|
||||
using Vector;
|
||||
namespace Test;
|
||||
public class TestsVector
|
||||
{
|
||||
namespace Test.Vector;
|
||||
public class TestsVector2I {
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
public void Setup() {
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Test1()
|
||||
{
|
||||
public void TestVector2I_Constructors() {
|
||||
// Arrange & Act
|
||||
var v1 = new Vector2I();
|
||||
var v2 = new Vector2I(1, 2);
|
||||
var v3 = new Vector2I(v2);
|
||||
|
||||
// Assert
|
||||
Assert.Multiple(() => {
|
||||
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.Multiple(() => {
|
||||
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 TestVector2I_DotProduct() {
|
||||
// Arrange
|
||||
var v1 = new Vector2I(1, 2);
|
||||
var v2 = new Vector2I(3, 4);
|
||||
|
||||
// Act
|
||||
var dotProduct = v1.Dot(v2);
|
||||
|
||||
// Assert
|
||||
Assert.That(dotProduct, Is.EqualTo(11));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestVector2I_ParameterModification() {
|
||||
// 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.Multiple(() => {
|
||||
Assert.That(v1, Is.EqualTo(new Vector2I(1, 2)), "v1 should not be modified");
|
||||
Assert.That(v2, Is.EqualTo(new Vector2I(3, 4)), "v2 should not be modified");
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestVector2I_Equality() {
|
||||
// Arrange
|
||||
var v1 = new Vector2I(1, 2);
|
||||
var v2 = new Vector2I(1, 2);
|
||||
var v3 = new Vector2I(3, 4);
|
||||
|
||||
// Act & Assert
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(v1, Is.EqualTo(v2));
|
||||
Assert.That(v1, Is.Not.EqualTo(v3));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestVector2I_HashCode() {
|
||||
// Arrange
|
||||
var v1 = new Vector2I(1, 2);
|
||||
var v2 = new Vector2I(1, 2);
|
||||
var v3 = new Vector2I(3, 4);
|
||||
|
||||
// Act & Assert
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(v1.GetHashCode(), Is.EqualTo(v2.GetHashCode()));
|
||||
Assert.That(v1.GetHashCode(), Is.Not.EqualTo(v3.GetHashCode()));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestVector2I_BoundaryValues() {
|
||||
// Arrange
|
||||
var v1 = new Vector2I(0, 0);
|
||||
var v2 = new Vector2I(-1, -2);
|
||||
var v3 = new Vector2I(int.MaxValue, int.MaxValue);
|
||||
var v4 = new Vector2I(int.MinValue, int.MinValue);
|
||||
|
||||
// Act
|
||||
var v5 = v1 + v2;
|
||||
var v6 = v1 - v2;
|
||||
var v7 = v1 * v2;
|
||||
var v8 = v3 + v4;
|
||||
var v9 = v3 - v4;
|
||||
var v10 = v3 * v4;
|
||||
|
||||
// Assert
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(v5, Is.EqualTo(new Vector2I(-1, -2)));
|
||||
Assert.That(v6, Is.EqualTo(new Vector2I(1, 2)));
|
||||
Assert.That(v7, Is.EqualTo(new Vector2I(0, 0)));
|
||||
|
||||
Assert.That(v8, Is.EqualTo(new Vector2I(-1, -1)));
|
||||
// Assert.That(v9, Is.EqualTo(new Vector2I(2 * int.MaxValue - 1, 2 * int.MaxValue - 1)));
|
||||
// Assert.That(v10, Is.EqualTo(new Vector2I(int.MaxValue * int.MinValue, int.MaxValue * int.MinValue)));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public class TestsTrans2DI {
|
||||
[SetUp]
|
||||
public void Setup() {
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Test1() {
|
||||
Assert.Pass();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestVector2I_Constructors()
|
||||
{
|
||||
public void TestVector2I_Constructors() {
|
||||
// Arrange & Act
|
||||
var v1 = new Vector2I();
|
||||
var v2 = new Vector2I(1, 2);
|
||||
@ -31,8 +157,7 @@ public class TestsVector
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestVector2I_Operators()
|
||||
{
|
||||
public void TestVector2I_Operators() {
|
||||
// Arrange
|
||||
var v1 = new Vector2I(1, 2);
|
||||
var v2 = new Vector2I(3, 4);
|
||||
@ -49,8 +174,7 @@ public class TestsVector
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTrans2DI_Constructors()
|
||||
{
|
||||
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));
|
||||
@ -76,8 +200,7 @@ public class TestsVector
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTrans2DI_Operators()
|
||||
{
|
||||
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);
|
||||
@ -90,4 +213,51 @@ public class TestsVector
|
||||
Assert.That(v2, Is.EqualTo(new Vector2I(4, 6)));
|
||||
Assert.That(v3, Is.EqualTo(new Vector2I(2, 2)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTrans2DI_BoundaryValues() {
|
||||
// Arrange
|
||||
var t1 = new Trans2DI(new Vector2I(int.MaxValue, 0), new Vector2I(0, int.MaxValue), new Vector2I(0, 0));
|
||||
var t2 = new Trans2DI(new Vector2I(int.MinValue, 0), new Vector2I(0, int.MinValue), new Vector2I(0, 0));
|
||||
var v1 = new Vector2I(1, 1);
|
||||
|
||||
// Act
|
||||
var v2 = t1 * v1;
|
||||
var v3 = t2 * v1;
|
||||
|
||||
// Assert
|
||||
Assert.That(v2, Is.EqualTo(new Vector2I(int.MaxValue, int.MaxValue)));
|
||||
Assert.That(v3, Is.EqualTo(new Vector2I(int.MinValue, int.MinValue)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTrans2DI_SpecialValues() {
|
||||
// Arrange
|
||||
var t1 = new Trans2DI(new Vector2I(0, 0), new Vector2I(0, 0), new Vector2I(0, 0));
|
||||
var t2 = new Trans2DI(new Vector2I(1, 0), new Vector2I(0, 1), new Vector2I(0, 0));
|
||||
var v1 = new Vector2I(1, 1);
|
||||
|
||||
// Act
|
||||
var v2 = t1 * v1;
|
||||
var v3 = t2 * v1;
|
||||
|
||||
// Assert
|
||||
Assert.That(v2, Is.EqualTo(new Vector2I(0, 0)));
|
||||
Assert.That(v3, Is.EqualTo(new Vector2I(1, 1)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTrans2DI_Multiplication() {
|
||||
// Arrange
|
||||
var t1 = new Trans2DI(new Vector2I(1, 0), new Vector2I(0, 1), new Vector2I(1, 2));
|
||||
var t2 = new Trans2DI(new Vector2I(2, 0), new Vector2I(0, 2), new Vector2I(3, 4));
|
||||
|
||||
// Act
|
||||
var t3 = t1 * t2;
|
||||
|
||||
// Assert
|
||||
Assert.That(t3.XAxis, Is.EqualTo(new Vector2I(2, 0)));
|
||||
Assert.That(t3.YAxis, Is.EqualTo(new Vector2I(0, 2)));
|
||||
Assert.That(t3.Origin, Is.EqualTo(new Vector2I(5, 8)));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user