mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-14 19:29:36 +01:00
Robust.UnitTesting was both ALL tests for RT, and also API surface for content tests. Tests are now split into separate projects as appropriate, and the API side has also been split off.
71 lines
2.3 KiB
C#
71 lines
2.3 KiB
C#
using System.Numerics;
|
|
using NUnit.Framework;
|
|
using Robust.Shared.Maths;
|
|
using Robust.Shared.Physics;
|
|
|
|
namespace Robust.Shared.Tests.Physics
|
|
{
|
|
[TestFixture]
|
|
[TestOf(typeof(B2DynamicTree<>))]
|
|
internal sealed class B2DynamicTree_Test
|
|
{
|
|
private static Box2[] aabbs1 =
|
|
{
|
|
((Box2) default).Enlarged(1), //2x2 square
|
|
((Box2) default).Enlarged(2), //4x4 square
|
|
new(-3, 3, -3, 3), // point off to the bottom left
|
|
new(-3, -3, -3, -3), // point off to the top left
|
|
new(3, 3, 3, 3), // point off to the bottom right
|
|
new(3, -3, 3, -3), // point off to the top right
|
|
((Box2) default).Enlarged(1), //2x2 square
|
|
((Box2) default).Enlarged(2), //4x4 square
|
|
((Box2) default).Enlarged(1), //2x2 square
|
|
((Box2) default).Enlarged(2), //4x4 square
|
|
((Box2) default).Enlarged(1), //2x2 square
|
|
((Box2) default).Enlarged(2), //4x4 square
|
|
((Box2) default).Enlarged(1), //2x2 square
|
|
((Box2) default).Enlarged(2), //4x4 square
|
|
((Box2) default).Enlarged(3), //6x6 square
|
|
new(-3, 3, -3, 3), // point off to the bottom left
|
|
new(-3, -3, -3, -3), // point off to the top left
|
|
new(3, 3, 3, 3), // point off to the bottom right
|
|
new(3, -3, 3, -3), // point off to the top right
|
|
};
|
|
|
|
[Test]
|
|
public void AddAndQuery()
|
|
{
|
|
var dt = new B2DynamicTree<int>();
|
|
|
|
for (var i = 0; i < aabbs1.Length; ++i)
|
|
{
|
|
dt.CreateProxy(aabbs1[i], uint.MaxValue, i);
|
|
}
|
|
|
|
var point = new Vector2(0, 0);
|
|
var box2 = Box2.CenteredAround(point, new Vector2(0.1f, 0.1f));
|
|
|
|
var results = new HashSet<int>();
|
|
|
|
dt.Query(proxy =>
|
|
{
|
|
results.Add(dt.GetUserData(proxy));
|
|
return true;
|
|
}, box2);
|
|
|
|
Assert.Multiple(() =>
|
|
{
|
|
for (var i = 0; i < aabbs1.Length; i++)
|
|
{
|
|
var aabb = aabbs1[i];
|
|
|
|
if (aabb.Intersects(box2))
|
|
{
|
|
Assert.That(results, Does.Contain(i));
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|