Пример #1
0
        private static void Main(string[] args)
        {
            new SinglyLinkedListTester().Go();
            new DoublyLinkedListTester().Go();
            var sp = new SampleProblems();

            sp.LetterCombinations("234");
        }
Пример #2
0
        public static Problem GetProblem(ProblemLevels level)
        {
            // has a wrapper implimentation
            _problem = new Problem();

            switch (level)
            {
            case ProblemLevels.Easy:
                ProblemRowS = SampleProblems.easyProblem();
                break;

            case ProblemLevels.Medium:
                // August 2014 MSDN article problem -- difficult
                // solved using no = 200, me = 5000
                ProblemRowS = SampleProblems.mediumProblem();
                break;

            case ProblemLevels.Hard:
                // http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5412260
                // very difficult.
                // solved using no = 200, me = 9000
                ProblemRowS = SampleProblems.hardProblem();
                break;

            case ProblemLevels.Insane:
                // http://elmo.sbs.arizona.edu/sandiway/sudoku/examples.html
                // EXTREMELY difficult.
                // solved quickly using no = 100, me = 19,000
                ProblemRowS = SampleProblems.insaneProblem();
                break;

            case ProblemLevels.Impossible:
                // http://elmo.sbs.arizona.edu/sandiway/sudoku/examples.html
                // most difficult problem found by Internet search.
                // solved eventually using no = 100, me = 5,000.
                // solution when seed = 577 (i.e., 577 attempts ~ 20 min.)
                ProblemRowS = SampleProblems.impossibleProblem();
                break;
            }

            return(_problem);
        }
Пример #3
0
        public void Does_Sample_Problem_Have_Correct_Values(ProblemLevels lev)
        {
            Problem problem = ProblemGenerator.GetProblem(lev);

            var expectedProblem =
                (lev == ProblemLevels.Easy) ? SampleProblems.easyProblem() :
                (lev == ProblemLevels.Medium) ? SampleProblems.mediumProblem() :
                (lev == ProblemLevels.Hard) ? SampleProblems.hardProblem() :
                (lev == ProblemLevels.Insane) ? SampleProblems.insaneProblem() :
                (lev == ProblemLevels.Impossible) ? SampleProblems.impossibleProblem()
            : SampleProblems.easyProblem();

            for (int i = 0; i < problem.Rows.Length; i++)
            {
                Assert.Equal(expectedProblem[i], problem.Rows[i]);
                for (int j = 0; j < problem.Rows[i][j]; j++)
                {
                    Assert.Equal(expectedProblem[i][j], problem.Rows[i][j]);
                }
            }
        }