// //Puede utilizar los siguientes atributos adicionales mientras escribe sus pruebas: // //Use ClassInitialize para ejecutar código antes de ejecutar la primera prueba en la clase //[ClassInitialize()] //public static void MyClassInitialize(TestContext testContext) //{ //} // //Use ClassCleanup para ejecutar código después de haber ejecutado todas las pruebas en una clase //[ClassCleanup()] //public static void MyClassCleanup() //{ //} // //Use TestInitialize para ejecutar código antes de ejecutar cada prueba //[TestInitialize()] //public void MyTestInitialize() //{ //} // //Use TestCleanup para ejecutar código después de que se hayan ejecutado todas las pruebas //[TestCleanup()] //public void MyTestCleanup() //{ //} // #endregion /// <summary> ///Una prueba de GetIndexFromPositionOnMatrix ///</summary> public void GetIndexFromPositionOnMatrixTestHelper <T>(int rowCount, int columnCount) { var matrix = new MatrixRotation.Matrix <int>(rowCount, columnCount); for (int r = 0; r < matrix.RowCount; r++) { for (int c = 0; c < matrix.ColumnCount; c++) { matrix[r, c] = r * 10 + c; } } int frameCount = Math.Min(matrix.RowCount, matrix.ColumnCount) / 2; for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) { var frame = Frame <int> .FromMatrix(matrix, frameIndex, 0); var frameAccesor = new PrivateObject(frame); var enumerable = new MatrixRotation.PositionOnMatrixFrameStyleEnumerable(matrix.RowCount, matrix.ColumnCount, frameIndex); var i = 0; foreach (MatrixRotation.PositionOnMatrix pos in enumerable) { Assert.AreEqual(i, frameAccesor.Invoke("GetIndexFromPositionOnMatrix", pos)); i++; } } }
public void SetFrameInMatrix(ref Matrix <T> matrix) { var enumerable = new PositionOnMatrixFrameStyleEnumerable(_rowCount, _columnCount, _frameIndex); foreach (PositionOnMatrix p in enumerable) { matrix[p.Row, p.Column] = this[GetIndexFromPositionOnMatrix(p)]; } }
public static Frame <T> FromMatrix(Matrix <T> matrix, int frameIndex, int startIndex) { if (frameIndex >= Math.Min(matrix.RowCount, matrix.ColumnCount) / 2) { throw new ArgumentOutOfRangeException("frameIndex", "frameIndex must be lower than Math.Min(matrix.RowCount, matrix.ColumnCount) / 2"); } var enumerable = new PositionOnMatrixFrameStyleEnumerable(matrix.RowCount, matrix.ColumnCount, frameIndex); var values = enumerable.Select(x => matrix[x.Row, x.Column]).ToArray(); return(new Frame <T>(values, startIndex, frameIndex, matrix.RowCount, matrix.ColumnCount)); }