public void Partial_ReturnsExpectedString()
            {
                WordSudoku sudoku = new WordSudoku("shoe")
                {
                    Grid =
                    {
                        [0] = "0123",
                        [1] = "3012",
                        [2] = "2301",
                        [3] = "1230"
                    }
                };

                sudoku.RefreshPartialGrid();


                sudoku.PartialGrid[0] = "____";
                sudoku.PartialGrid[1] = "3_1_";
                sudoku.PartialGrid[2] = "__01";
                sudoku.PartialGrid[3] = "_23_";

                const string EXPECTED_TEXT =
                    @"           
E	    H	 
        S	H
    O	E	 
";

                Assert.AreEqual(EXPECTED_TEXT, sudoku.FormatForGoogle());
            }
            public void Example_BottomLeftCell_IsNotUniquelyDetermined()
            {
                WordSudoku sudoku = new WordSudoku("shoe")
                {
                    Grid =
                    {
                        [0] = "0123",
                        [1] = "3012",
                        [2] = "2301",
                        [3] = "1230"
                    }
                };

                sudoku.RefreshPartialGrid();


                sudoku.PartialGrid[0] = "____";
                sudoku.PartialGrid[1] = "3012";
                sudoku.PartialGrid[2] = "2301";
                sudoku.PartialGrid[3] = "1230";

                sudoku.SetBlank(sudoku.PartialGrid, 3, 0);
                Assert.AreEqual("_230", sudoku.PartialGrid[3]);

                sudoku.SetBlank(sudoku.PartialGrid, 2, 3);
                Assert.AreEqual("230_", sudoku.PartialGrid[2]);
            }
            public void Partial_ReturnsExpectedString()
            {
                WordSudoku sudoku = new WordSudoku("shoe")
                {
                    Grid =
                    {
                        [0] = "0123",
                        [1] = "3012",
                        [2] = "2301",
                        [3] = "1230"
                    }
                };

                sudoku.RefreshPartialGrid();


                sudoku.PartialGrid[0] = "____";
                sudoku.PartialGrid[1] = "3_1_";
                sudoku.PartialGrid[2] = "__01";
                sudoku.PartialGrid[3] = "_23_";

                const string EXPECTED_HTML =
                    @"<html>
<body>
<!--StartFragment-->
Fill in each row and column using the letters below so that the same letter does not appear twice in any row or column.
Then read the solution to the puzzle from the highlighted squares.
<table border=""1"">
	<tr>
		<td> </td>
		<td> </td>
		<td> </td>
		<td> </td>
	</tr>
	<tr>
		<td>E</td>
		<td> </td>
		<td>H</td>
		<td> </td>
	</tr>
	<tr>
		<td> </td>
		<td> </td>
		<td>S</td>
		<td>H</td>
	</tr>
	<tr>
		<td> </td>
		<td>O</td>
		<td>E</td>
		<td> </td>
	</tr>
<!--EndFragment-->
</table>
</body>
</html>
";

                Assert.AreEqual(EXPECTED_HTML, sudoku.FormatHtmlForGoogle());
            }
            public void Example_BottomLeftCell_IsNotUniquelyDetermined()
            {
                WordSudoku sudoku = new WordSudoku("shoe")
                {
                    Grid =
                    {
                        [0] = "0123",
                        [1] = "3012",
                        [2] = "2301",
                        [3] = "1230"
                    }
                };

                sudoku.RefreshPartialGrid();


                sudoku.PartialGrid[0] = "____";
                sudoku.PartialGrid[1] = "3_1_";
                sudoku.PartialGrid[2] = "__01";
                sudoku.PartialGrid[3] = "_23_";

                Assert.IsFalse(sudoku.IsUniquelyDetermined(3, 0, sudoku.PartialGrid));
            }