mirror of
https://github.com/dcronqvist/DotTiled.git
synced 2025-05-08 22:46:04 +03:00
114 lines
2.4 KiB
C#
114 lines
2.4 KiB
C#
namespace DotTiled.Tests.UnitTests;
|
|
|
|
public class TilesetTests
|
|
{
|
|
[Fact]
|
|
public void GetSourceRectangleForLocalTileID_TileIDOutOfRange_ThrowsException()
|
|
{
|
|
// Arrange
|
|
var tileset = new Tileset
|
|
{
|
|
FirstGID = 0,
|
|
Name = "Tileset1",
|
|
TileWidth = 16,
|
|
TileHeight = 16,
|
|
TileCount = 5,
|
|
Columns = 5
|
|
};
|
|
|
|
// Act & Assert
|
|
Assert.Throws<ArgumentException>(() => tileset.GetSourceRectangleForLocalTileID(6));
|
|
}
|
|
|
|
[Fact]
|
|
public void GetSourceRectangleForLocalTileID_ValidTileIDIsInTilesList_ReturnsCorrectRectangle()
|
|
{
|
|
// Arrange
|
|
var tileset = new Tileset
|
|
{
|
|
FirstGID = 0,
|
|
Name = "Tileset1",
|
|
TileWidth = 16,
|
|
TileHeight = 16,
|
|
TileCount = 2,
|
|
Columns = 2,
|
|
Tiles = [
|
|
new Tile
|
|
{
|
|
ID = 0,
|
|
X = 0,
|
|
Y = 0,
|
|
Width = 16,
|
|
Height = 16,
|
|
},
|
|
new Tile
|
|
{
|
|
ID = 1,
|
|
X = 16,
|
|
Y = 0,
|
|
Width = 16,
|
|
Height = 16,
|
|
}
|
|
]
|
|
};
|
|
|
|
// Act
|
|
var rectangle = tileset.GetSourceRectangleForLocalTileID(1);
|
|
|
|
// Assert
|
|
Assert.Equal(16, rectangle.X);
|
|
Assert.Equal(0, rectangle.Y);
|
|
Assert.Equal(16, rectangle.Width);
|
|
Assert.Equal(16, rectangle.Height);
|
|
}
|
|
|
|
[Fact]
|
|
public void GetSourceRectangleForLocalTileID_ValidTileIDIsNotInTilesListNoMarginNoSpacing_ReturnsCorrectRectangle()
|
|
{
|
|
// Arrange
|
|
var tileset = new Tileset
|
|
{
|
|
FirstGID = 0,
|
|
Name = "Tileset1",
|
|
TileWidth = 16,
|
|
TileHeight = 16,
|
|
TileCount = 5,
|
|
Columns = 5,
|
|
};
|
|
|
|
// Act
|
|
var rectangle = tileset.GetSourceRectangleForLocalTileID(3);
|
|
|
|
// Assert
|
|
Assert.Equal(48, rectangle.X);
|
|
Assert.Equal(0, rectangle.Y);
|
|
Assert.Equal(16, rectangle.Width);
|
|
Assert.Equal(16, rectangle.Height);
|
|
}
|
|
|
|
[Fact]
|
|
public void GetSourceRectangleForLocalTileID_ValidTileIDIsNotInTilesListWithMarginAndSpacing_ReturnsCorrectRectangle()
|
|
{
|
|
// Arrange
|
|
var tileset = new Tileset
|
|
{
|
|
FirstGID = 0,
|
|
Name = "Tileset1",
|
|
TileWidth = 16,
|
|
TileHeight = 16,
|
|
TileCount = 5,
|
|
Columns = 5,
|
|
Margin = 3,
|
|
Spacing = 1
|
|
};
|
|
|
|
// Act
|
|
var rectangle = tileset.GetSourceRectangleForLocalTileID(3);
|
|
|
|
// Assert
|
|
Assert.Equal(54, rectangle.X);
|
|
Assert.Equal(3, rectangle.Y);
|
|
Assert.Equal(16, rectangle.Width);
|
|
Assert.Equal(16, rectangle.Height);
|
|
}
|
|
}
|