DotTiled/DotTiled.Tests/Assert/AssertData.cs

44 lines
1.4 KiB
C#
Raw Normal View History

2024-07-26 00:37:47 +02:00
namespace DotTiled.Tests;
public static partial class DotTiledAssert
2024-07-26 00:37:47 +02:00
{
internal static void AssertData(Data? expected, Data? actual)
2024-07-26 00:37:47 +02:00
{
if (expected is null)
{
Assert.Null(actual);
return;
}
// Attributes
Assert.NotNull(actual);
AssertEqual(expected.Encoding, actual.Encoding, nameof(Data.Encoding));
AssertEqual(expected.Compression, actual.Compression, nameof(Data.Compression));
2024-07-26 00:37:47 +02:00
// Data
AssertEqual(expected.GlobalTileIDs, actual.GlobalTileIDs, nameof(Data.GlobalTileIDs));
AssertEqual(expected.FlippingFlags, actual.FlippingFlags, nameof(Data.FlippingFlags));
2024-07-26 00:37:47 +02:00
if (expected.Chunks is not null)
{
Assert.NotNull(actual.Chunks);
AssertEqual(expected.Chunks.Length, actual.Chunks.Length, "Chunks.Length");
2024-07-26 00:37:47 +02:00
for (var i = 0; i < expected.Chunks.Length; i++)
AssertChunk(expected.Chunks[i], actual.Chunks[i]);
2024-07-26 00:37:47 +02:00
}
}
private static void AssertChunk(Chunk expected, Chunk actual)
2024-07-26 00:37:47 +02:00
{
// Attributes
AssertEqual(expected.X, actual.X, nameof(Chunk.X));
AssertEqual(expected.Y, actual.Y, nameof(Chunk.Y));
AssertEqual(expected.Width, actual.Width, nameof(Chunk.Width));
AssertEqual(expected.Height, actual.Height, nameof(Chunk.Height));
2024-07-26 00:37:47 +02:00
// Data
AssertEqual(expected.GlobalTileIDs, actual.GlobalTileIDs, nameof(Chunk.GlobalTileIDs));
AssertEqual(expected.FlippingFlags, actual.FlippingFlags, nameof(Chunk.FlippingFlags));
2024-07-26 00:37:47 +02:00
}
}