public static void main(String[] args) {
   long[][] stats = new long[2][3];
   for (AbstractProblem problem : problems) {
     // System.out.printf("%s", problem.getClass().getName());
     for (int i = 0; i < 1; i++) {
       for (PropagationEngineFactory pe : engines) {
         //                    System.out.printf(".");
         problem.createSolver();
         Solver solver = problem.getSolver();
         problem.buildModel();
         problem.configureSearch();
         solver.set(pe.make(solver));
         // SMF.toCSV(solver, problem.getClass().getCanonicalName() + ";" + pe.name(),
         // "/Users/kyzrsoze/Sandbox/pren/pe.csv");
         problem.solve();
         switch (pe) {
           case PROPAGATORDRIVEN_7QD:
             stats[0][0] = problem.solver.getMeasures().getSolutionCount();
             stats[0][1] = problem.solver.getMeasures().getNodeCount();
             stats[0][2] = problem.solver.getMeasures().getFailCount();
             break;
           case TWOBUCKETPROPAGATIONENGINE:
             stats[1][0] = problem.solver.getMeasures().getSolutionCount();
             stats[1][1] = problem.solver.getMeasures().getNodeCount();
             stats[1][2] = problem.solver.getMeasures().getFailCount();
             break;
         }
       }
       Assert.assertEquals(
           stats[0],
           stats[1],
           problem.getClass().getCanonicalName()
               + ":"
               + Arrays.toString(stats[0])
               + "!="
               + Arrays.toString(stats[1]));
     }
     // System.out.printf("OK\n");
   }
 }