// using NUnit.Framework; // using UnityEngine; // namespace HexGrid.Tests { // public class AxialToPixelTests // { // // 假设的网格大小和原点位置,应与被测试代码中的值一致 // private const float _gridSize = 1.0f; // 根据实际情况调整 // private static readonly Vector3 _originPos = Vector3.zero; // 根据实际情况调整 // // [Test] // public void TestAxialToPixel_Origin() // { // // 测试原点坐标 (0, 0) // Vector3 result = AxialToPixel(0, 0); // Vector3 expected = _originPos; // Assert.AreEqual(expected, result, "原点坐标转换不正确"); // } // // [Test] // public void TestAxialToPixel_QDirection() // { // // 测试沿Q轴方向的移动 // Vector3 result = AxialToPixel(2, 0); // Vector3 expected = new Vector3(_gridSize * Mathf.Sqrt(3f) * 2, 0, 0) + _originPos; // Assert.AreEqual(expected, result, "Q轴方向坐标转换不正确"); // } // // [Test] // public void TestAxialToPixel_RDirection() // { // // 测试沿R轴方向的移动 // Vector3 result = AxialToPixel(0, 2); // Vector3 expected = new Vector3(0, 0, _gridSize * 1.5f * 2) + _originPos; // Assert.AreEqual(expected, result, "R轴方向坐标转换不正确"); // } // // [Test] // public void TestAxialToPixel_BothDirections() // { // // 测试同时沿Q轴和R轴移动 // Vector3 result = AxialToPixel(2, 3); // // float expectedX = _gridSize * Mathf.Sqrt(3f) * (2 + 3 / 2f); // float expectedZ = _gridSize * 1.5f * 3; // Vector3 expected = new Vector3(expectedX, 0, expectedZ) + _originPos; // // Assert.AreEqual(expected, result, "Q+R方向坐标转换不正确"); // } // // [Test] // public void TestAxialToPixel_NegativeValues() // { // // 测试负值坐标 // Vector3 result = AxialToPixel(-2, -3); // // float expectedX = _gridSize * Mathf.Sqrt(3f) * (-2 + -3 / 2f); // float expectedZ = _gridSize * 1.5f * -3; // Vector3 expected = new Vector3(expectedX, 0, expectedZ) + _originPos; // // Assert.AreEqual(expected, result, "负值坐标转换不正确"); // } // // [Test] // public void TestAxialToPixel_WithDifferentGridSize() // { // // 如果_gridSize可配置,测试不同的网格大小 // // 注意:这需要你能修改_gridSize的值 // // float originalGridSize = _gridSize; // // _gridSize = 2.0f; // // // Vector3 result = AxialToPixel(1, 1); // // float expectedX = 2.0f * Mathf.Sqrt(3f) * (1 + 1 / 2f); // // float expectedZ = 2.0f * 1.5f * 1; // // Vector3 expected = new Vector3(expectedX, 0, expectedZ) + _originPos; // // // Assert.AreEqual(expected, result, "不同网格大小下的坐标转换不正确"); // // // _gridSize = originalGridSize; // 恢复原始值 // // // 如果_gridSize不可修改,可以跳过这个测试或添加注释说明 // Assert.Pass("网格大小不可配置,跳过此测试"); // } // // // 这是被测试的函数副本,用于测试 // public static Vector3 AxialToPixel(int q, int r) // { // var x = _gridSize * Mathf.Sqrt(3f) * (q + r / 2f); // var z = _gridSize * 1.5f * r; // return new Vector3(x, 0, z) + _originPos; // } // } }