test_generator.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <cxxtest/TestSuite.h>
00022 #include "../generator.h"
00023 #include "../solver.h"
00024
00025 using namespace Sudoku;
00026
00027 class Test_Generator : public CxxTest::TestSuite
00028 {
00029 public:
00030 void test_GenerateSymmetricSudoku()
00031 {
00032
00033 Puzzle puzzle;
00034 Generator generator(puzzle, 36);
00035 generator.find_next_solution();
00036 TS_ASSERT(generator.solution_is_valid());
00037
00038
00039 Solver solver(puzzle);
00040 solver.find_next_solution();
00041 TS_ASSERT(solver.solution_is_valid());
00042 solver.find_next_solution();
00043 bool only_one_solution = !solver.solution_is_valid();
00044 TS_ASSERT(only_one_solution);
00045 }
00046
00047 void test_GenerateNonSymmetricSudoku()
00048 {
00049
00050 Puzzle puzzle;
00051 Generator generator(puzzle, 26, false);
00052 generator.find_next_solution();
00053 TS_ASSERT(generator.solution_is_valid());
00054
00055
00056 Solver solver(puzzle);
00057 solver.find_next_solution();
00058 TS_ASSERT(solver.solution_is_valid());
00059 solver.find_next_solution();
00060 bool only_one_solution = !solver.solution_is_valid();
00061 TS_ASSERT(only_one_solution);
00062 }
00063 };