public void FasterPuzzleSolutionGenerator_CreatePuzzleSolution_Test2()
        {
            var t = new Stopwatch();

            t.Start();
            for (var count = 0; count < 100; count++)
            {
                var sut = new OptimizedPuzzleSolutionGenerator(PuzzleSize.NineByNine);

                var result = sut.CreatePuzzleSolution();

                Assert.NotNull(result);

                foreach (var box in result.ByBox())
                {
                    AssertIfNotFullSet(box, PuzzleSize.NineByNine);
                }

                foreach (var row in result.ByRow())
                {
                    AssertIfNotFullSet(row, PuzzleSize.NineByNine);
                }

                foreach (var col in result.ByCol())
                {
                    AssertIfNotFullSet(col, PuzzleSize.NineByNine);
                }
            }
            t.Stop();

            TestHelper.WriteLine($"{100} puzzles created in {t.ToString()}");
        }
        public void FasterPuzzleSolutionGenerator_CreatePuzzleSolution_Test1()
        {
            var sut = new OptimizedPuzzleSolutionGenerator(PuzzleSize.NineByNine);

            var result = sut.CreatePuzzleSolution();

            Assert.NotNull(result);

            foreach (var box in result.ByBox())
            {
                AssertIfNotFullSet(box, PuzzleSize.NineByNine);
            }

            foreach (var row in result.ByRow())
            {
                AssertIfNotFullSet(row, PuzzleSize.NineByNine);
            }

            foreach (var col in result.ByCol())
            {
                AssertIfNotFullSet(col, PuzzleSize.NineByNine);
            }
        }