private static void Main(string[] args) { new SinglyLinkedListTester().Go(); new DoublyLinkedListTester().Go(); var sp = new SampleProblems(); sp.LetterCombinations("234"); }
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); }
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]); } } }