Matrix3x2.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Microsoft.Xna.Framework;
  2. namespace MonoGame.Extended.Tests;
  3. public sealed class Matrix3x2Tests
  4. {
  5. [Fact]
  6. public void ConstructorTest()
  7. {
  8. Vector2 x = new Vector2(1, 2);
  9. Vector2 y = new Vector2(3, 4);
  10. Vector2 z = new Vector2(5, 6);
  11. var matrix = new Matrix3x2(x.X, x.Y, y.X, y.Y, z.X, z.Y);
  12. Assert.Equal(x, matrix.X);
  13. Assert.Equal(y, matrix.Y);
  14. Assert.Equal(z, matrix.Z);
  15. }
  16. [Fact]
  17. public void InverseTest()
  18. {
  19. Matrix3x2 posDeterminant = new Matrix3x2(3, -7, 4, 2, 13, -2);
  20. Matrix3x2 singular = new Matrix3x2(2, 1, 4, 2, 3, -4);
  21. Matrix3x2 negDeterminant = new Matrix3x2(1, -5, 3, 2, 3, -4);
  22. Matrix3x2 posExpected = new Matrix3x2(1f/17, 7f/34, -2f/17, 3f/34, -1f, -5f/2);
  23. Matrix3x2 singularExpected = Matrix3x2.Identity;
  24. Matrix3x2 negExpected = new Matrix3x2(2f/17, 5f/17, -3f/17, 1f/17, -18f/17, -11f/17);
  25. Assert.Equal(Matrix3x2.Invert(posDeterminant), posExpected);
  26. Assert.Equal(Matrix3x2.Invert(singular), singularExpected);
  27. Assert.Equal(Matrix3x2.Invert(negDeterminant), negExpected);
  28. }
  29. }