27 lines
760 B
C#
27 lines
760 B
C#
using System.Numerics;
|
|
using AcDream.App.Rendering;
|
|
using Xunit;
|
|
|
|
namespace AcDream.App.Tests.Rendering;
|
|
|
|
public class DollCameraTests
|
|
{
|
|
[Fact]
|
|
public void Eye_position_is_the_retail_camera_offset()
|
|
{
|
|
var cam = new DollCamera { Aspect = 100f / 214f };
|
|
Assert.True(Matrix4x4.Invert(cam.View, out var inv));
|
|
var eye = inv.Translation;
|
|
Assert.Equal(0.12f, eye.X, 3);
|
|
Assert.Equal(-2.4f, eye.Y, 3);
|
|
Assert.Equal(0.88f, eye.Z, 3);
|
|
}
|
|
|
|
[Fact]
|
|
public void Projection_is_finite_and_uses_aspect()
|
|
{
|
|
var cam = new DollCamera { Aspect = 1.5f };
|
|
Assert.True(float.IsFinite(cam.Projection.M11));
|
|
Assert.NotEqual(0f, cam.Projection.M34); // perspective w = -z term
|
|
}
|
|
}
|