Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
 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);
 }
Пример #4
0
        public void ResetTest()
        {
            Matrix2D m1 = new Matrix2D(1, 1, 0, 1, 1, 0);

            m1.Reset();

            Assert.Equal(Matrix2D.Identity, m1);
        }
Пример #5
0
        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);
                }
            }
        }
Пример #6
0
        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);
                }
            }
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        /// <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;
        }
Пример #9
0
        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);
        }
Пример #10
0
 public abstract IEnumerable <TRenderObject> RenderText(String text, StyleFont font, Rectangle2D layoutRectangle,
                                                        Path2D flowPath, StyleBrush fontBrush, Matrix2D transform);