public void Apply_RemovesByCol() { var m = new Matrix(); m[1, 2].CollapseTo(5); KnownConstraintsGenericApplier.Apply(m, (mmm, row, col) => Matrix.CellSelectors.SelectColCells(mmm, col)); SquareArray.Sudoku.IterateTwo((row, col) => { if (col != 2) { Assert.IsTrue(m[row, col].GetValidStates().SequenceEqual(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 })); } else if (row != 1) { Assert.IsTrue(m[row, col].GetValidStates().SequenceEqual(new int[] { 1, 2, 3, 4, 6, 7, 8, 9 })); } }); }
public void Apply_RemovesBySubSquare() { var m = new Matrix(); m[1, 2].CollapseTo(5); KnownConstraintsGenericApplier.Apply(m, Matrix.CellSelectors.SelectSquareCells); SquareArray.Sudoku.IterateTwo((row, col) => { if (row < 3 && col < 3) { if (!(row == 1 && col == 2)) { Assert.IsTrue(m[row, col].GetValidStates().SequenceEqual(new int[] { 1, 2, 3, 4, 6, 7, 8, 9 })); } } else { Assert.IsTrue(m[row, col].GetValidStates().SequenceEqual(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 })); } }); }