Enhance JobScheduler and related classes

Added XML documentation comments to the `JobScheduler` class and its methods.
Added a new method `GetJobStatus` in the `JobScheduler` class for job status retrieval.
Added a new `CollectionHandle` struct for collection management.
Added a new test class `TestUnsafeSparseSet` with unit tests for `UnsafeSparseSet`.

Changed the `WorkerThread` class to improve job retrieval logic with a new `FindJob` method.
Changed the `DynamicArena` class by removing commented-out code to streamline memory management.

Removed commented-out code in the `WorkerThread` class for improved readability.
Removed the `ArenaAllocator` struct from `AllocationManager` to clean up unused code.
Removed the `ParallelWriter` struct from `UnsafeSparseSet`, indicating a shift in handling sparse sets.
This commit is contained in:
2025-09-10 13:17:17 +09:00
parent 07c99b8a5a
commit 3923682b5e
9 changed files with 181 additions and 208 deletions

View File

@@ -0,0 +1,46 @@
using Misaki.HighPerformance.LowLevel.Buffer;
using Misaki.HighPerformance.LowLevel.Collections;
namespace Misaki.HighPerformance.Test.UnitTest.Collections;
[TestClass]
public class TestUnsafeSparseSet
{
private UnsafeSparseSet<int> _sparseSet;
[TestInitialize]
public void Initialize()
{
_sparseSet = new UnsafeSparseSet<int>(16, Allocator.Persistent);
}
[TestMethod]
public void Add()
{
var id = _sparseSet.Add(10);
Assert.IsTrue(_sparseSet.Contains(id));
}
[TestMethod]
public void Remove()
{
var id = _sparseSet.Add(20);
Assert.IsTrue(_sparseSet.Contains(id));
_sparseSet.Remove(id);
Assert.IsFalse(_sparseSet.Contains(id));
}
[TestMethod]
public void IndexReuse()
{
var id = _sparseSet.Add(20);
Assert.IsTrue(_sparseSet.Contains(id));
_sparseSet.Remove(id);
Assert.IsFalse(_sparseSet.Contains(id));
var newId = _sparseSet.Add(30);
Assert.AreEqual(id, newId);
}
}