示例#1
0
        public void Invert_NotInvertible_ThrowsInvalidOperationException()
        {
            // Arrange
            var mat = new Matrix4f(
                new Vector4f(1, 2, 3, 4), 
                new Vector4f(5, 6, 7, 8), 
                new Vector4f(9, 10, 11, 12),
                new Vector4f(13, 14, 15, 16));

            // Act
            TestDelegate invert = () => mat.Invert();

            // Assert
            Assert.That(invert, Throws.InvalidOperationException);
        }
示例#2
0
        public void Invert_ReturnsInvertedMatrix()
        {
            // Arrange
            var mat = new Matrix4f(
                new Vector4f(4, 0, 0, 0), 
                new Vector4f(0, 0, 2, 0), 
                new Vector4f(0, 1, 2, 0), 
                new Vector4f(1, 0, 0, 1)   );

            // Act
            var resultMat =  mat.Invert();
            var results = new[] {resultMat.Row(0), resultMat.Row(1), resultMat.Row(2), resultMat.Row(3)};

            // Assert
            Assert.That(results, Is.EquivalentTo(new []
            {
                new Vector4f(0.25f, 0, 0, 0),
                new Vector4f(0, -1, 1, 0),
                new Vector4f(0, 0.5f, 0, 0),
                new Vector4f(-0.25f, 0, 0, 1) 
            }));
        }