Add TransformationMatrix.Inverse() tests

This commit is contained in:
BobLd
2020-02-01 16:45:02 +00:00
committed by Eliot Jones
parent df73206788
commit 1a11e49124

View File

@@ -86,5 +86,88 @@
Assert.Equal(expectedMatrix, result);
}
public static IEnumerable<object[]> InversionData => new[]
{
new object[]
{
new double[]
{
0, 2, 2,
1, 1, 1,
0, 1, 2
},
new double[]
{
-.5, 1, 0,
1, 0, -1,
-.5, 0, 1
}
},
new object[]
{
new double[]
{
1, 1, 0,
0, 1, 0,
2, 1, 1
},
new double[]
{
1, -1, 0,
0, 1, 0,
-2, 1, 1
}
},
new object[]
{
new double[]
{
2, 0, 0,
0, 2, 1,
2, 0, 2
},
new double[]
{
.5, 0, 0,
.25, .5, -.25,
-.5, 0, .5
}
},
new object[]
{
new double[]
{
-4.68, 2.47, 3.12,
5.00, -6.19, -0.58,
9.37, -7.11, 4.51
},
new double[]
{
-0.212368047525923, -0.220866560683805, 0.118511242369019,
-0.18548392709254, -0.333665068307247, 0.0854066769202931,
0.14880219150553, -0.0671483286158035, 0.110153244324962
}
},
};
[Theory]
[MemberData(nameof(InversionData))]
public void InversesCorrectly(double[] a, double[] expected)
{
var matrixA = TransformationMatrix.FromArray(a);
var expectedMatrix = TransformationMatrix.FromArray(expected);
var result = matrixA.Inverse();
for (var i = 0; i < 3; i++)
{
for (var j = 0; j < 3; j++)
{
Assert.Equal(expectedMatrix[i, j], result[i, j], 6);
}
}
}
}
}