using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using MonoGame.Extended.Tests.Fixtures; using MonoGame.Extended.Tilemaps; namespace MonoGame.Extended.Tests { [Collection("GraphicsTest")] public sealed class TilemapTileAnimationFrameTests { private readonly GraphicsTestFixture _graphicsFixture; public TilemapTileAnimationFrameTests(GraphicsTestFixture graphicsTestFixture) { _graphicsFixture = graphicsTestFixture; } [Fact] public void Constructor_SetsProperties() { var frame = new TilemapTileAnimationFrame(42, 0.5f); Assert.Equal(42, frame.TileId); Assert.Equal(0.5f, frame.Duration); } [Theory] [InlineData(0, 0.1f)] [InlineData(1, 0.5f)] [InlineData(100, 1.0f)] [InlineData(255, 2.5f)] public void Constructor_WithVariousValues_SetsCorrectly(int tileId, float duration) { var frame = new TilemapTileAnimationFrame(tileId, duration); // Assert Assert.Equal(tileId, frame.TileId); Assert.Equal(duration, frame.Duration); } [Fact] public void Struct_IsReadOnly() { var frame = new TilemapTileAnimationFrame(10, 0.5f); // Act & Assert // This test verifies the struct is readonly by checking we can't modify it // If TileId or Duration had setters, this would fail to compile Assert.Equal(10, frame.TileId); Assert.Equal(0.5f, frame.Duration); } } }