132 lines
4.2 KiB
C#
132 lines
4.2 KiB
C#
using System.Linq;
|
|
using NUnit.Framework;
|
|
using UnityEngine;
|
|
|
|
namespace UnityEditor.Tilemaps.Tests
|
|
{
|
|
[TestFixture]
|
|
internal class GridEditorUtilityTests
|
|
{
|
|
[Test]
|
|
public void ClampToGrid_PointInGridIsSame()
|
|
{
|
|
var point = new Vector3Int(1, 2, 3);
|
|
var gridOrigin = Vector2Int.zero;
|
|
var gridSize = Vector2Int.one * 4;
|
|
|
|
var clampedPoint = GridEditorUtility.ClampToGrid(point, gridOrigin, gridSize);
|
|
Assert.AreEqual(point, clampedPoint);
|
|
}
|
|
|
|
[Test]
|
|
public void ClampToGrid_PointOutsideGridIsClamped()
|
|
{
|
|
var point = new Vector3Int(5, 2, 3);
|
|
var gridOrigin = Vector2Int.zero;
|
|
var gridSize = Vector2Int.one * 4;
|
|
|
|
var clampedPoint = GridEditorUtility.ClampToGrid(point, gridOrigin, gridSize);
|
|
Assert.AreEqual(new Vector3Int(3, 2, 3), clampedPoint);
|
|
}
|
|
|
|
[Test]
|
|
public void ClampToGrid_NegativePointOutsideGridIsClamped()
|
|
{
|
|
var point = new Vector3Int(-1, 2, 3);
|
|
var gridOrigin = Vector2Int.zero;
|
|
var gridSize = Vector2Int.one * 4;
|
|
|
|
var clampedPoint = GridEditorUtility.ClampToGrid(point, gridOrigin, gridSize);
|
|
Assert.AreEqual(new Vector3Int(0, 2, 3), clampedPoint);
|
|
}
|
|
|
|
[Test]
|
|
public void GetMarqueeRect_MinMaxPoints()
|
|
{
|
|
var minPoint = Vector2Int.one * -4;
|
|
var maxPoint = Vector2Int.one * 4;
|
|
|
|
var marquee = GridEditorUtility.GetMarqueeRect(minPoint, maxPoint);
|
|
Assert.AreEqual(new RectInt(-4, -4, 9, 9), marquee);
|
|
}
|
|
|
|
[Test]
|
|
public void GetMarqueeRect_AlternatePoints()
|
|
{
|
|
var xPoint = new Vector2Int(5, -4);
|
|
var yPoint = new Vector2Int(-4, 5);
|
|
|
|
var marquee = GridEditorUtility.GetMarqueeRect(xPoint, yPoint);
|
|
Assert.AreEqual(new RectInt(-4, -4, 10, 10), marquee);
|
|
}
|
|
|
|
[Test]
|
|
public void GetMarqueeRect_SamePoint()
|
|
{
|
|
var point = new Vector2Int(5, -4);
|
|
|
|
var marquee = GridEditorUtility.GetMarqueeRect(point, point);
|
|
Assert.AreEqual(new RectInt(5, -4, 1, 1), marquee);
|
|
}
|
|
|
|
[Test]
|
|
public void GetMarqueeBounds_MinMaxPoints()
|
|
{
|
|
var minPoint = Vector3Int.one * -4;
|
|
var maxPoint = Vector3Int.one * 4;
|
|
|
|
var marquee = GridEditorUtility.GetMarqueeBounds(minPoint, maxPoint);
|
|
Assert.AreEqual(new BoundsInt(-4, -4, -4, 9, 9, 9), marquee);
|
|
}
|
|
|
|
[Test]
|
|
public void GetMarqueeBounds_AlternatePoints()
|
|
{
|
|
var xPoint = new Vector3Int(5, -4, 5);
|
|
var yPoint = new Vector3Int(-4, 5, -4);
|
|
|
|
var marquee = GridEditorUtility.GetMarqueeBounds(xPoint, yPoint);
|
|
Assert.AreEqual(new BoundsInt(-4, -4, -4, 10, 10, 10), marquee);
|
|
}
|
|
|
|
[Test]
|
|
public void GetMarqueeBounds_SamePoint()
|
|
{
|
|
var point = new Vector3Int(5, -4, 6);
|
|
|
|
var marquee = GridEditorUtility.GetMarqueeBounds(point, point);
|
|
Assert.AreEqual(new BoundsInt(5, -4, 6, 1, 1, 1), marquee);
|
|
}
|
|
|
|
[Test]
|
|
public void GetPointsOnLine_HorizontalLine_PointCountCorrect()
|
|
{
|
|
var startPoint = Vector2Int.zero;
|
|
var endPoint = new Vector2Int(5, 0);
|
|
|
|
var count = GridEditorUtility.GetPointsOnLine(startPoint, endPoint).Count();
|
|
Assert.AreEqual(endPoint.x - startPoint.x + 1, count);
|
|
}
|
|
|
|
[Test]
|
|
public void GetPointsOnLine_VerticalLine_PointCountCorrect()
|
|
{
|
|
var startPoint = Vector2Int.zero;
|
|
var endPoint = new Vector2Int(0, 5);
|
|
|
|
var count = GridEditorUtility.GetPointsOnLine(startPoint, endPoint).Count();
|
|
Assert.AreEqual(endPoint.y - startPoint.y + 1, count);
|
|
}
|
|
|
|
[Test]
|
|
public void GetPointsOnLine_DiagonalLine_PointCountCorrect()
|
|
{
|
|
var startPoint = Vector2Int.zero;
|
|
var endPoint = new Vector2Int(5, 5);
|
|
|
|
var count = GridEditorUtility.GetPointsOnLine(startPoint, endPoint).Count();
|
|
Assert.AreEqual(endPoint.y - startPoint.x + 1, count);
|
|
}
|
|
}
|
|
}
|