public void SudokoBoard_Solve_ExtraZonesWithSolution()
        {
            // Arrange
            // http://en.wikipedia.org/wiki/File:Oceans_Hypersudoku18_Puzzle.svg
            SudokuBoard board = SudokuFactory.ClassicWith3x3BoxesAndHyperRegions(new[]
            {
                ".......1.",
                "..2....34",
                "....51...",
                ".....65..",
                ".7.3...8.",
                "..3......",
                "....8....",
                "58....9..",
                "69......."
            });

            string[] tileDefinitions = new[]
            {
                "946832715",
                "152697834",
                "738451296",
                "819726543",
                "475319682",
                "263548179",
                "327985461",
                "584163927",
                "691274358"
            };

            // Act
            IEnumerable <SudokuBoard> solutions = board.Solve();

            // Assert
            Assert.Single(solutions);
            Assert.Equal(tileDefinitions, solutions.First().TileDefinitions);
        }