Files
sbox-public/engine/Sandbox.Test.Unit/Math/BBoxTest.Trace.cs
Lorenz Junglas 91f8fcf183 Speed up / parallelize tests (#3587)
- Added Sandbox.Test.Unit project (contains independent tests that can run in parallel) 
- Modify some slow/stress tests (e.g. instead of doing a million iterations settle for 10k).

Tests run almost twice as fast now.
2025-12-10 14:23:00 +01:00

62 lines
1.7 KiB
C#

namespace MathTest;
public partial class BBoxTest
{
[TestMethod]
public void TraceBBox()
{
{
var bbox = BBox.FromPositionAndSize( 0, 10 );
var ray = new Ray( new Vector3( -100, 0, 0 ), new Vector3( 1, 0, 0 ) );
Assert.IsTrue( bbox.Trace( ray, 100, out var dist ) );
Assert.AreEqual( 95.0f, dist );
}
{
var bbox = BBox.FromPositionAndSize( 0, 10 );
var ray = new Ray( new Vector3( 100, 0, 0 ), new Vector3( -1, 0, 0 ) );
Assert.IsTrue( bbox.Trace( ray, 100, out var dist ) );
Assert.AreEqual( 95.0f, dist );
}
{
var bbox = BBox.FromPositionAndSize( 0, 10 );
var ray = new Ray( new Vector3( 0, 100, 0 ), new Vector3( 0, -1, 0 ) );
Assert.IsTrue( bbox.Trace( ray, 100, out var dist ) );
Assert.AreEqual( 95.0f, dist );
}
{
var bbox = BBox.FromPositionAndSize( 0, 10 );
var ray = new Ray( new Vector3( 0, -100, 0 ), new Vector3( 0, 1, 0 ) );
Assert.IsTrue( bbox.Trace( ray, 100, out var dist ) );
Assert.AreEqual( 95.0f, dist );
}
{
var bbox = BBox.FromPositionAndSize( 0, 10 );
var ray = new Ray( new Vector3( 0, -100, 0 ), new Vector3( 0, 1, 0 ) );
Assert.IsFalse( bbox.Trace( ray, 90, out var dist ) );
}
{
var bbox = BBox.FromPositionAndSize( 0, 10 );
var ray = new Ray( new Vector3( 100, 0, 0 ), new Vector3( -1, 0, 0 ) );
Assert.IsFalse( bbox.Trace( ray, 90, out var dist ) );
}
{
var bbox = BBox.FromPositionAndSize( 0, 10 );
var ray = new Ray( new Vector3( 100, 0, 0 ), new Vector3( -1, 0, 0 ) );
Assert.IsTrue( bbox.Trace( ray, 100000, out var dist ) );
}
{
var bbox = BBox.FromPositionAndSize( 0, 10 );
var ray = new Ray( new Vector3( 6, 0, 0 ), new Vector3( 1, 0, 0 ) );
Assert.IsFalse( bbox.Trace( ray, 100000, out var dist ) );
}
}
}