Update README.md to include project description, developer documentation links, and license information.
CI / build-test (push) Successful in 1m6s
CI / build-test (push) Successful in 1m6s
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user