Update README.md to include project description, developer documentation links, and license information.
CI / build-test (push) Successful in 1m6s

This commit is contained in:
Leonid Pershin
2026-06-11 04:03:07 +03:00
parent 31aba3aeee
commit ff2231a8ab
72 changed files with 4113 additions and 0 deletions
@@ -0,0 +1,54 @@
using MrGameEng.Graphics;
using Xunit;
namespace MrGameEng.Graphics.Tests;
public class SpriteBatcherTests
{
private static SpriteInstance Instance(byte layer) => new() { Layer = layer };
[Fact]
public void Sort_OrdersByKey_ReturningOriginalIndices()
{
var batcher = new SpriteBatcher(initialCapacity: 2);
batcher.Submit(Instance(2), SpriteSortKey.Make(2, 0f, 0));
batcher.Submit(Instance(0), SpriteSortKey.Make(0, 0f, 0));
batcher.Submit(Instance(1), SpriteSortKey.Make(1, 0f, 0));
var order = batcher.Sort();
Assert.Equal(3, order.Length);
Assert.Equal(0, batcher[order[0]].Layer);
Assert.Equal(1, batcher[order[1]].Layer);
Assert.Equal(2, batcher[order[2]].Layer);
}
[Fact]
public void Submit_GrowsBeyondInitialCapacity()
{
var batcher = new SpriteBatcher(initialCapacity: 1);
for (var i = 0; i < 100; i++)
{
batcher.Submit(Instance(0), (ulong)(100 - i));
}
Assert.Equal(100, batcher.Count);
var order = batcher.Sort();
Assert.Equal(99, order[0]); // последний сабмит имеет наименьший ключ
}
[Fact]
public void Clear_ResetsCount_KeepsWorking()
{
var batcher = new SpriteBatcher();
batcher.Submit(Instance(0), 5);
batcher.Clear();
Assert.Equal(0, batcher.Count);
batcher.Submit(Instance(1), 1);
Assert.Equal(1, batcher.Count);
Assert.Equal(1, batcher[batcher.Sort()[0]].Layer);
}
}