Esempio n. 1
0
        public void TestConcate()
        {
            Matrix<float> mat = new Matrix<float>(30, 40);
             mat.SetRandUniform(new MCvScalar(0), new MCvScalar(255));

             Matrix<float> m1 = mat.GetSubRect(new Rectangle(0, 0, mat.Cols, 20));
             Matrix<float> m2 = mat.GetSubRect(new Rectangle(0, 20, mat.Cols, mat.Rows - 20));
             Matrix<float> mat2 = m1.ConcateVertical(m2);
             Assert.IsTrue(mat.Equals(mat2));

             Matrix<float> m3 = mat.GetSubRect(new Rectangle(0, 0, 10, mat.Rows));
             Matrix<float> m4 = mat.GetSubRect(new Rectangle(10, 0, mat.Cols - 10, mat.Rows));
             Matrix<float> mat3 = m3.ConcateHorizontal(m4);
             Assert.IsTrue(mat.Equals(mat3));

             Matrix<float> m5 = mat.GetRows(0, 5, 1);
             Matrix<float> m6 = mat.GetRows(5, 6, 1);
             Matrix<float> m7 = mat.GetRows(6, mat.Rows, 1);
             Assert.IsTrue(mat.RemoveRows(5, 6).Equals(m5.ConcateVertical(m7)));
             Assert.IsTrue(mat.RemoveRows(0, 1).Equals(mat.GetRows(1, mat.Rows, 1)));
             Assert.IsTrue(mat.RemoveRows(mat.Rows - 1, mat.Rows).Equals(mat.GetRows(0, mat.Rows - 1, 1)));
        }
Esempio n. 2
0
		public void RemoveRowsTest()
		{
			IMatrix<int> matrix = new Matrix<int>(10, 10);

			int number = 0;
			for (int r = 0; r < matrix.Rows; r++)
			{
				for (int c = 0; c < matrix.Columns; c++)
				{
					matrix[r, c] = number++;
				}
			}

			int orgRows = matrix.Rows;
			matrix.RemoveRows(5);
			Assert.AreEqual(orgRows - 5, matrix.Rows);

			number = 0;
			for (int r = 0; r < orgRows; r++)
			{
				for (int c = 0; c < matrix.Columns; c++)
				{
					if (r < matrix.Rows)
					{
						Assert.AreEqual(number++, matrix[r, c]);
					}
					else
					{
						number++;
					}
				}
			}

			matrix.RemoveRows(5); // 0
			Assert.AreEqual(0, matrix.Rows);
			AssertHelpers.ThrowsException<MatrixException>(() => { matrix.RemoveRows(1); });

			matrix.RemoveRows(-5);
			Assert.AreEqual(5, matrix.Rows);
		}