Add SparseSet Test

This commit is contained in:
2025-12-13 18:26:59 +09:00
parent c882c75760
commit 3016696d76
8 changed files with 85 additions and 16 deletions

View File

@@ -0,0 +1,52 @@
using Misaki.HighPerformance.Collections;
namespace Misaki.HighPerformance.Test.UnitTest.Collections;
[TestClass]
public class TestSparseSet
{
private SparseSet<int> _sparseSet = null!;
[TestInitialize]
public void Initialize()
{
_sparseSet = new SparseSet<int>(16);
}
[TestMethod]
public void InvalidID()
{
Assert.IsFalse(_sparseSet.Contains(0, 0));
}
[TestMethod]
public void Add()
{
var id = _sparseSet.Add(10, out var gen);
Assert.IsTrue(_sparseSet.Contains(id, gen));
}
[TestMethod]
public void Remove()
{
var id = _sparseSet.Add(20, out var gen);
Assert.IsTrue(_sparseSet.Contains(id, gen));
_sparseSet.Remove(id, gen);
Assert.IsFalse(_sparseSet.Contains(id, gen));
}
[TestMethod]
public void IndexReuse()
{
var id = _sparseSet.Add(20, out var gen);
Assert.IsTrue(_sparseSet.Contains(id, gen));
_sparseSet.Remove(id, gen);
Assert.IsFalse(_sparseSet.Contains(id, gen));
var newId = _sparseSet.Add(30, out var newGen);
Assert.AreEqual(id, newId);
Assert.AreNotEqual(gen, newGen);
}
}

View File

@@ -20,6 +20,12 @@ public class TestUnsafeSparseSet
_sparseSet.Dispose();
}
[TestMethod]
public void InvalidID()
{
Assert.IsFalse(_sparseSet.Contains(0, 0));
}
[TestMethod]
public void Add()
{
@@ -139,4 +145,4 @@ public class TestUnsafeSparseSet
Assert.AreEqual(2, index);
}
}
}