@Before
 public void setUp() {
   solutionDao = createSolutionDao();
   File dataDir = solutionDao.getDataDir();
   if (!dataDir.exists()) {
     throw new IllegalStateException(
         "The directory dataDir ("
             + dataDir.getAbsolutePath()
             + ") does not exist."
             + " The working directory should be set to the directory that contains the data directory."
             + " This is different in a git clone (optaplanner/optaplanner-examples)"
             + " and the release zip (examples).");
   }
 }
 protected static Collection<Object[]> getUnsolvedDataFilesAsParameters(SolutionDao solutionDao) {
   List<Object[]> filesAsParameters = new ArrayList<Object[]>();
   File dataDir = solutionDao.getDataDir();
   File unsolvedDataDir = new File(dataDir, "unsolved");
   if (!unsolvedDataDir.exists()) {
     throw new IllegalStateException(
         "The directory unsolvedDataDir ("
             + unsolvedDataDir.getAbsolutePath()
             + ") does not exist.");
   } else {
     List<File> unsolvedFileList =
         Arrays.asList(unsolvedDataDir.listFiles(new SolutionFileFilter(solutionDao)));
     Collections.sort(unsolvedFileList);
     for (File unsolvedFile : unsolvedFileList) {
       filesAsParameters.add(new Object[] {unsolvedFile});
     }
   }
   return filesAsParameters;
 }
 @Test
 public void runFastAndFullAssert() {
   checkRunTurtleTests();
   SolverFactory solverFactory = buildSolverFactory();
   Solution planningProblem = solutionDao.readSolution(unsolvedDataFile);
   // Specifically use NON_INTRUSIVE_FULL_ASSERT instead of FULL_ASSERT to flush out bugs hidden by
   // intrusiveness
   // 1) NON_INTRUSIVE_FULL_ASSERT ASSERT to find CH bugs (but covers little ground)
   planningProblem =
       buildAndSolve(
           solverFactory, EnvironmentMode.NON_INTRUSIVE_FULL_ASSERT, planningProblem, 2L);
   // 2) FAST_ASSERT to run past CH into LS to find easy bugs (but covers much ground)
   planningProblem =
       buildAndSolve(solverFactory, EnvironmentMode.FAST_ASSERT, planningProblem, 5L);
   // 3) NON_INTRUSIVE_FULL_ASSERT ASSERT to find LS bugs (but covers little ground)
   planningProblem =
       buildAndSolve(
           solverFactory, EnvironmentMode.NON_INTRUSIVE_FULL_ASSERT, planningProblem, 3L);
 }
 private void writeNQueens(int n) {
   String outputFileName = n + "queens.xml";
   File outputFile = new File(outputDir, outputFileName);
   NQueens nQueens = createNQueens(n);
   solutionDao.writeSolution(nQueens, outputFile);
 }
 public void generate() {
   String inputId = "munich-7teams";
   File outputFile = new File(outputDir, inputId + ".xml");
   TennisSolution tennisSolution = createTennisSolution(inputId);
   solutionDao.writeSolution(tennisSolution, outputFile);
 }
 public TennisGenerator() {
   solutionDao = new TennisDao();
   outputDir = new File(solutionDao.getDataDir(), "unsolved");
 }