public void ElementsTest1() { Matrix2D m1 = Matrix2D.Identity; Matrix2D m2 = new Matrix2D(0, 0, 0, 0, 0, 0); Matrix2D m3 = new Matrix2D(1, 2, 4, 5, 3, 6); Assert.Equal(3, m1.RowCount); Assert.Equal(3, m2.ColumnCount); DoubleComponent[][] expected = new DoubleComponent[][] { new DoubleComponent[] {1, 4, 0}, new DoubleComponent[] {2, 5, 0}, new DoubleComponent[] {3, 6, 1} }; Assert.Equal(expected[0][0], m3[0, 0]); Assert.Equal(expected[0][1], m3[0, 1]); Assert.Equal(expected[0][2], m3[0, 2]); Assert.Equal(expected[1][0], m3[1, 0]); Assert.Equal(expected[1][1], m3[1, 1]); Assert.Equal(expected[1][2], m3[1, 2]); Assert.Equal(expected[2][0], m3[2, 0]); Assert.Equal(expected[2][1], m3[2, 1]); Assert.Equal(expected[2][2], m3[2, 2]); //m1.Elements = expected; //Assert.Equal(m1, m3); //Assert.True(m1.Equals(m3 as IMatrixD)); }
public void ElementsTest1() { Matrix2D m1 = Matrix2D.Identity; Matrix2D m2 = new Matrix2D(0, 0, 0, 0, 0, 0); Matrix2D m3 = new Matrix2D(1, 2, 4, 5, 3, 6); Assert.AreEqual(3, m1.RowCount); Assert.AreEqual(3, m2.ColumnCount); DoubleComponent[][] expected = new DoubleComponent[][] { new DoubleComponent[] {1, 4, 0}, new DoubleComponent[] {2, 5, 0}, new DoubleComponent[] {3, 6, 1} }; DoubleComponent[][] actual = m3.Elements; Assert.AreEqual(expected[0][0], actual[0][0]); Assert.AreEqual(expected[0][1], actual[0][1]); Assert.AreEqual(expected[0][2], actual[0][2]); Assert.AreEqual(expected[1][0], actual[1][0]); Assert.AreEqual(expected[1][1], actual[1][1]); Assert.AreEqual(expected[1][2], actual[1][2]); Assert.AreEqual(expected[2][0], actual[2][0]); Assert.AreEqual(expected[2][1], actual[2][1]); Assert.AreEqual(expected[2][2], actual[2][2]); m1.Elements = expected; Assert.AreEqual(m1, m3); Assert.IsTrue(m1.Equals(m3 as IMatrixD)); }
public void IsInvertableTest() { Matrix2D m1 = new Matrix2D(1, 1, 1, 1, 0, 0); Matrix2D m2 = new Matrix2D(1, 2, 3, 4, 0, 0); Assert.False(m1.IsInvertible); Assert.True(m2.IsInvertible); }
public void ResetTest() { Matrix2D m1 = new Matrix2D(1, 1, 0, 1, 1, 0); m1.Reset(); Assert.Equal(Matrix2D.Identity, m1); }
public void InvertTest() { Matrix2D m1 = new Matrix2D(1, 2, 3, 4, 0, 0); Matrix2D expected = new Matrix2D(-2, 1, 1.5, -0.5, 0, 0); IMatrixD m1Inverse = m1.Inverse; for (Int32 i = 0; i < m1.RowCount; i++) { for (Int32 j = 0; j < m1.ColumnCount; j++) { Assert.Equal<Double>((Double)expected[i, j], (Double)m1Inverse[i, j], EpsilonComparer.Default); } } }
public void InvertTest() { Matrix2D m1 = new Matrix2D(1, 2, 3, 4, 0, 0); Matrix2D expected = new Matrix2D(-2, 1, 1.5, -0.5, 0, 0); IMatrixD m1Inverse = m1.Inverse; for (int i = 0; i < m1.RowCount; i++) { for (int j = 0; j < m1.ColumnCount; j++) { Assert.AreEqual((double) expected[i, j], (double) m1Inverse[i, j], _e); } } }
/// <summary> /// Computes whether the <see cref="Matrix2D"/> instance /// is equal to some <paramref name="other"/>. /// </summary> /// <param name="other"> /// The other <see cref="Matrix2D"/> to test for equality. /// </param> /// <returns> /// <see langword="true"/> if they are equal; <see langword="false"/> otherwise. /// </returns> public Boolean Equals(Matrix2D other) { if (ReferenceEquals(other, null)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } Int32 length = _elements.Length; DoubleComponent[] x = _elements; DoubleComponent[] y = other._elements; for (Int32 i = 0; i < length; i += 3) { DoubleComponent x1 = x[i]; DoubleComponent y1 = y[i]; DoubleComponent x2 = x[i + 1]; DoubleComponent y2 = y[i + 1]; DoubleComponent x3 = x[i + 2]; DoubleComponent y3 = y[i + 2]; if (!x1.Equals(y1) || !x2.Equals(y2) || !x3.Equals(y3)) { return(false); } } return(true); }
/// <summary> /// Computes whether the <see cref="Matrix2D"/> instance /// is equal to some <paramref name="other"/>. /// </summary> /// <param name="other"> /// The other <see cref="Matrix2D"/> to test for equality. /// </param> /// <returns> /// <see langword="true"/> if they are equal; <see langword="false"/> otherwise. /// </returns> public Boolean Equals(Matrix2D other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(this, other)) { return true; } Int32 length = _elements.Length; DoubleComponent[] x = _elements; DoubleComponent[] y = other._elements; for (Int32 i = 0; i < length; i += 3) { DoubleComponent x1 = x[i]; DoubleComponent y1 = y[i]; DoubleComponent x2 = x[i + 1]; DoubleComponent y2 = y[i + 1]; DoubleComponent x3 = x[i + 2]; DoubleComponent y3 = y[i + 2]; if (!x1.Equals(y1) || !x2.Equals(y2) || !x3.Equals(y3)) { return false; } } return true; }
public void ScaleTest1() { Matrix2D m1 = new Matrix2D(0, 0, 0, 0, 0, 0); Matrix2D m2 = Matrix2D.Identity; m1.Scale(10); Assert.Equal(new Matrix2D(0, 0, 0, 0, 0, 0), m1); m2.Scale(10); Assert.Equal(10, m2.M11); Assert.Equal(10, m2.M22); Size2D scaleSize = new Size2D(-1, 5); m1.Scale(scaleSize); Assert.Equal(new Matrix2D(0, 0, 0, 0, 0, 0), m1); m2.Scale(scaleSize); Assert.Equal(-10, m2.M11); Assert.Equal(50, m2.M22); }
public abstract IEnumerable <TRenderObject> RenderText(String text, StyleFont font, Rectangle2D layoutRectangle, Path2D flowPath, StyleBrush fontBrush, Matrix2D transform);