View Javadoc

1   /*******************************************************************************
2    * SAT4J: a SATisfiability library for Java Copyright (C) 2004, 2012 Artois University and CNRS
3    *
4    * All rights reserved. This program and the accompanying materials
5    * are made available under the terms of the Eclipse Public License v1.0
6    * which accompanies this distribution, and is available at
7    *  http://www.eclipse.org/legal/epl-v10.html
8    *
9    * Alternatively, the contents of this file may be used under the terms of
10   * either the GNU Lesser General Public License Version 2.1 or later (the
11   * "LGPL"), in which case the provisions of the LGPL are applicable instead
12   * of those above. If you wish to allow use of your version of this file only
13   * under the terms of the LGPL, and not to allow others to use your version of
14   * this file under the terms of the EPL, indicate your decision by deleting
15   * the provisions above and replace them with the notice and other provisions
16   * required by the LGPL. If you do not delete the provisions above, a recipient
17   * may use your version of this file under the terms of the EPL or the LGPL.
18   *
19   * Based on the original MiniSat specification from:
20   *
21   * An extensible SAT solver. Niklas Een and Niklas Sorensson. Proceedings of the
22   * Sixth International Conference on Theory and Applications of Satisfiability
23   * Testing, LNCS 2919, pp 502-518, 2003.
24   *
25   * See www.minisat.se for the original solver in C++.
26   *
27   * Contributors:
28   *   CRIL - initial API and implementation
29   *******************************************************************************/
30  package org.sat4j.minisat;
31  
32  import java.io.FileNotFoundException;
33  import java.io.IOException;
34  
35  import org.sat4j.reader.ParseFormatException;
36  import org.sat4j.specs.ISolver;
37  
38  /**
39   * Class responsability.
40   * 
41   * @author leberre
42   * 
43   */
44  public abstract class AbstractM2Test<T extends ISolver> extends
45          AbstractAcceptanceTestCase<T> {
46  
47      // private static final String PREFIX = "C:\\Documents and
48      // Settings\\Daniel\\Mes documents\\SAT\\";
49      protected static final String PREFIX = System.getProperty("test.prefix");
50  
51      public AbstractM2Test() {
52      }
53  
54      /**
55       * Constructor for DPLLTest.
56       * 
57       * @param arg0
58       */
59      public AbstractM2Test(String arg0) {
60          super(arg0);
61      }
62  
63      public void testAim50SAT1() throws FileNotFoundException, IOException,
64              ParseFormatException {
65          assertTrue(solveInstance(PREFIX + "aim/aim-50-1_6-yes1-1.cnf"));
66      }
67  
68      public void testAim50SAT2() throws FileNotFoundException, IOException,
69              ParseFormatException {
70          assertTrue(solveInstance(PREFIX + "aim/aim-50-1_6-yes1-2.cnf"));
71      }
72  
73      public void testAim50SAT3() throws FileNotFoundException, IOException,
74              ParseFormatException {
75          assertTrue(solveInstance(PREFIX + "aim/aim-50-1_6-yes1-3.cnf"));
76      }
77  
78      public void testAim50SAT4() throws FileNotFoundException, IOException,
79              ParseFormatException {
80          assertTrue(solveInstance(PREFIX + "aim/aim-50-1_6-yes1-4.cnf"));
81      }
82  
83      public void testAim50SAT5() throws FileNotFoundException, IOException,
84              ParseFormatException {
85          assertTrue(solveInstance(PREFIX + "aim/aim-50-2_0-yes1-1.cnf"));
86      }
87  
88      public void testAim50SAT6() throws FileNotFoundException, IOException,
89              ParseFormatException {
90          assertTrue(solveInstance(PREFIX + "aim/aim-50-2_0-yes1-2.cnf"));
91      }
92  
93      public void testAim50SAT7() throws FileNotFoundException, IOException,
94              ParseFormatException {
95          assertTrue(solveInstance(PREFIX + "aim/aim-50-2_0-yes1-3.cnf"));
96      }
97  
98      public void testAim50SAT8() throws FileNotFoundException, IOException,
99              ParseFormatException {
100         assertTrue(solveInstance(PREFIX + "aim/aim-50-2_0-yes1-4.cnf"));
101     }
102 
103     public void testAim50SAT9() throws FileNotFoundException, IOException,
104             ParseFormatException {
105         assertTrue(solveInstance(PREFIX + "aim/aim-50-3_4-yes1-1.cnf"));
106     }
107 
108     public void testAim50SAT10() throws FileNotFoundException, IOException,
109             ParseFormatException {
110         assertTrue(solveInstance(PREFIX + "aim/aim-50-3_4-yes1-2.cnf"));
111     }
112 
113     public void testAim50SAT11() throws FileNotFoundException, IOException,
114             ParseFormatException {
115         assertTrue(solveInstance(PREFIX + "aim/aim-50-3_4-yes1-3.cnf"));
116     }
117 
118     public void testAim50SAT12() throws FileNotFoundException, IOException,
119             ParseFormatException {
120         assertTrue(solveInstance(PREFIX + "aim/aim-50-3_4-yes1-4.cnf"));
121     }
122 
123     public void testAim50SAT13() throws FileNotFoundException, IOException,
124             ParseFormatException {
125         assertTrue(solveInstance(PREFIX + "aim/aim-50-6_0-yes1-1.cnf"));
126     }
127 
128     public void testAim50SAT14() throws FileNotFoundException, IOException,
129             ParseFormatException {
130         assertTrue(solveInstance(PREFIX + "aim/aim-50-6_0-yes1-2.cnf"));
131     }
132 
133     public void testAim50SAT15() throws FileNotFoundException, IOException,
134             ParseFormatException {
135         assertTrue(solveInstance(PREFIX + "aim/aim-50-6_0-yes1-3.cnf"));
136     }
137 
138     public void testAim50SAT16() throws FileNotFoundException, IOException,
139             ParseFormatException {
140         assertTrue(solveInstance(PREFIX + "aim/aim-50-6_0-yes1-4.cnf"));
141     }
142 
143     public void testAim50UNSAT1() throws FileNotFoundException, IOException,
144             ParseFormatException {
145         assertTrue(!solveInstance(PREFIX + "aim/aim-50-1_6-no-1.cnf"));
146     }
147 
148     public void testAim50UNSAT2() throws FileNotFoundException, IOException,
149             ParseFormatException {
150         assertTrue(!solveInstance(PREFIX + "aim/aim-50-1_6-no-2.cnf"));
151     }
152 
153     public void testAim50UNSAT3() throws FileNotFoundException, IOException,
154             ParseFormatException {
155         assertTrue(!solveInstance(PREFIX + "aim/aim-50-1_6-no-3.cnf"));
156     }
157 
158     public void testAim50UNSAT4() throws FileNotFoundException, IOException,
159             ParseFormatException {
160         assertTrue(!solveInstance(PREFIX + "aim/aim-50-1_6-no-4.cnf"));
161     }
162 
163     public void testAim50UNSAT5() throws FileNotFoundException, IOException,
164             ParseFormatException {
165         assertTrue(!solveInstance(PREFIX + "aim/aim-50-2_0-no-1.cnf"));
166     }
167 
168     public void testAim50UNSAT6() throws FileNotFoundException, IOException,
169             ParseFormatException {
170         assertTrue(!solveInstance(PREFIX + "aim/aim-50-2_0-no-2.cnf"));
171     }
172 
173     public void testAim50UNSAT7() throws FileNotFoundException, IOException,
174             ParseFormatException {
175         assertTrue(!solveInstance(PREFIX + "aim/aim-50-2_0-no-3.cnf"));
176     }
177 
178     public void testAim50UNSAT8() throws FileNotFoundException, IOException,
179             ParseFormatException {
180         assertTrue(!solveInstance(PREFIX + "aim/aim-50-2_0-no-4.cnf"));
181     }
182 
183     public void testIi1() throws FileNotFoundException, IOException,
184             ParseFormatException {
185         assertTrue(solveInstance(PREFIX + "ii/ii8a1.cnf"));
186     }
187 
188     public void testIi2() throws FileNotFoundException, IOException,
189             ParseFormatException {
190         assertTrue(solveInstance(PREFIX + "ii/ii8a2.cnf"));
191     }
192 
193     public void testIi3() throws FileNotFoundException, IOException,
194             ParseFormatException {
195         assertTrue(solveInstance(PREFIX + "ii/ii8a3.cnf"));
196     }
197 
198     public void testIi4() throws FileNotFoundException, IOException,
199             ParseFormatException {
200         assertTrue(solveInstance(PREFIX + "ii/ii8a4.cnf"));
201     }
202 
203     public void testIi5() throws FileNotFoundException, IOException,
204             ParseFormatException {
205         assertTrue(solveInstance(PREFIX + "ii/ii8b1.cnf"));
206     }
207 
208     public void testIi6() throws FileNotFoundException, IOException,
209             ParseFormatException {
210         assertTrue(solveInstance(PREFIX + "ii/ii8b2.cnf"));
211     }
212 
213     public void testIi7() throws FileNotFoundException, IOException,
214             ParseFormatException {
215         assertTrue(solveInstance(PREFIX + "ii/ii8b3.cnf"));
216     }
217 
218     public void testIi8() throws FileNotFoundException, IOException,
219             ParseFormatException {
220         assertTrue(solveInstance(PREFIX + "ii/ii8b4.cnf"));
221     }
222 
223     public void testIi9() throws FileNotFoundException, IOException,
224             ParseFormatException {
225         assertTrue(solveInstance(PREFIX + "ii/ii8c1.cnf"));
226     }
227 
228     public void testIi10() throws FileNotFoundException, IOException,
229             ParseFormatException {
230         assertTrue(solveInstance(PREFIX + "ii/ii8c2.cnf"));
231     }
232 
233     public void testIi11() throws FileNotFoundException, IOException,
234             ParseFormatException {
235         assertTrue(solveInstance(PREFIX + "ii/ii8d1.cnf"));
236     }
237 
238     public void testIi12() throws FileNotFoundException, IOException,
239             ParseFormatException {
240         assertTrue(solveInstance(PREFIX + "ii/ii8d2.cnf"));
241     }
242 
243     public void testIi13() throws FileNotFoundException, IOException,
244             ParseFormatException {
245         assertTrue(solveInstance(PREFIX + "ii/ii8e1.cnf"));
246     }
247 
248     public void testIi14() throws FileNotFoundException, IOException,
249             ParseFormatException {
250         assertTrue(solveInstance(PREFIX + "ii/ii8e2.cnf"));
251     }
252 
253     public void testIi15() throws FileNotFoundException, IOException,
254             ParseFormatException {
255         assertTrue(solveInstance(PREFIX + "ii/ii16a1.cnf"));
256     }
257 
258     public void testIi16() throws FileNotFoundException, IOException,
259             ParseFormatException {
260         assertTrue(solveInstance(PREFIX + "ii/ii16a2.cnf"));
261     }
262 
263     public void testIi17() throws FileNotFoundException, IOException,
264             ParseFormatException {
265         assertTrue(solveInstance(PREFIX + "ii/ii16b1.cnf"));
266     }
267 
268     public void testIi18() throws FileNotFoundException, IOException,
269             ParseFormatException {
270         assertTrue(solveInstance(PREFIX + "ii/ii16b2.cnf"));
271     }
272 
273     // public void testIi19()
274     // throws FileNotFoundException, IOException, ParseFormatException {
275     // assertTrue(solveInstance(PREFIX + "ii/ii16c1.cnf"));
276     // }
277 
278     public void testIi20() throws FileNotFoundException, IOException,
279             ParseFormatException {
280         assertTrue(solveInstance(PREFIX + "ii/ii16c2.cnf"));
281     }
282 
283     public void testIi21() throws FileNotFoundException, IOException,
284             ParseFormatException {
285         assertTrue(solveInstance(PREFIX + "ii/ii16d1.cnf"));
286     }
287 
288     public void testIi22() throws FileNotFoundException, IOException,
289             ParseFormatException {
290         assertTrue(solveInstance(PREFIX + "ii/ii16d2.cnf"));
291     }
292 
293     public void testIi23() throws FileNotFoundException, IOException,
294             ParseFormatException {
295         assertTrue(solveInstance(PREFIX + "ii/ii16e1.cnf"));
296     }
297 
298     public void testJNH1() throws FileNotFoundException, IOException,
299             ParseFormatException {
300         assertTrue(solveInstance(PREFIX + "jnh/jnh1.cnf"));
301     }
302 
303     public void testJNH2() throws FileNotFoundException, IOException,
304             ParseFormatException {
305         assertTrue(!solveInstance(PREFIX + "jnh/jnh2.cnf"));
306     }
307 
308     public void testJNH3() throws FileNotFoundException, IOException,
309             ParseFormatException {
310         assertTrue(!solveInstance(PREFIX + "jnh/jnh3.cnf"));
311     }
312 
313     public void testJNH4() throws FileNotFoundException, IOException,
314             ParseFormatException {
315         assertTrue(!solveInstance(PREFIX + "jnh/jnh4.cnf"));
316     }
317 
318     public void testJNH5() throws FileNotFoundException, IOException,
319             ParseFormatException {
320         assertTrue(!solveInstance(PREFIX + "jnh/jnh5.cnf"));
321     }
322 
323     public void testJNH6() throws FileNotFoundException, IOException,
324             ParseFormatException {
325         assertTrue(!solveInstance(PREFIX + "jnh/jnh6.cnf"));
326     }
327 
328     public void testJNH7() throws FileNotFoundException, IOException,
329             ParseFormatException {
330         assertTrue(solveInstance(PREFIX + "jnh/jnh7.cnf"));
331     }
332 
333     public void testJNH8() throws FileNotFoundException, IOException,
334             ParseFormatException {
335         assertTrue(!solveInstance(PREFIX + "jnh/jnh8.cnf"));
336     }
337 
338     public void testJNH9() throws FileNotFoundException, IOException,
339             ParseFormatException {
340         assertTrue(!solveInstance(PREFIX + "jnh/jnh9.cnf"));
341     }
342 
343     public void testJNH10() throws FileNotFoundException, IOException,
344             ParseFormatException {
345         assertTrue(!solveInstance(PREFIX + "jnh/jnh10.cnf"));
346     }
347 
348     public void testJNH11() throws FileNotFoundException, IOException,
349             ParseFormatException {
350         assertTrue(!solveInstance(PREFIX + "jnh/jnh11.cnf"));
351     }
352 
353     public void testJNH12() throws FileNotFoundException, IOException,
354             ParseFormatException {
355         assertTrue(solveInstance(PREFIX + "jnh/jnh12.cnf"));
356     }
357 
358     public void testJNH13() throws FileNotFoundException, IOException,
359             ParseFormatException {
360         assertTrue(!solveInstance(PREFIX + "jnh/jnh13.cnf"));
361     }
362 
363     public void testJNH14() throws FileNotFoundException, IOException,
364             ParseFormatException {
365         assertTrue(!solveInstance(PREFIX + "jnh/jnh14.cnf"));
366     }
367 
368     public void testJNH15() throws FileNotFoundException, IOException,
369             ParseFormatException {
370         assertTrue(!solveInstance(PREFIX + "jnh/jnh15.cnf"));
371     }
372 
373     public void testJNH16() throws FileNotFoundException, IOException,
374             ParseFormatException {
375         assertTrue(!solveInstance(PREFIX + "jnh/jnh16.cnf"));
376     }
377 
378     public void testJNH17() throws FileNotFoundException, IOException,
379             ParseFormatException {
380         assertTrue(solveInstance(PREFIX + "jnh/jnh17.cnf"));
381     }
382 
383     public void testJNH18() throws FileNotFoundException, IOException,
384             ParseFormatException {
385         assertTrue(!solveInstance(PREFIX + "jnh/jnh18.cnf"));
386     }
387 
388     public void testJNH19() throws FileNotFoundException, IOException,
389             ParseFormatException {
390         assertTrue(!solveInstance(PREFIX + "jnh/jnh19.cnf"));
391     }
392 
393     public void testJNH20() throws FileNotFoundException, IOException,
394             ParseFormatException {
395         assertTrue(!solveInstance(PREFIX + "jnh/jnh20.cnf"));
396     }
397 
398     public void testJNH21() throws FileNotFoundException, IOException,
399             ParseFormatException {
400         assertTrue(solveInstance(PREFIX + "jnh/jnh201.cnf"));
401     }
402 
403     public void testJNH22() throws FileNotFoundException, IOException,
404             ParseFormatException {
405         assertTrue(!solveInstance(PREFIX + "jnh/jnh202.cnf"));
406     }
407 
408     public void testJNH23() throws FileNotFoundException, IOException,
409             ParseFormatException {
410         assertTrue(!solveInstance(PREFIX + "jnh/jnh203.cnf"));
411     }
412 
413     public void testJNH24() throws FileNotFoundException, IOException,
414             ParseFormatException {
415         assertTrue(solveInstance(PREFIX + "jnh/jnh204.cnf"));
416     }
417 
418     public void testJNH25() throws FileNotFoundException, IOException,
419             ParseFormatException {
420         assertTrue(solveInstance(PREFIX + "jnh/jnh205.cnf"));
421     }
422 
423     public void testJNH26() throws FileNotFoundException, IOException,
424             ParseFormatException {
425         assertTrue(!solveInstance(PREFIX + "jnh/jnh206.cnf"));
426     }
427 
428     public void testJNH27() throws FileNotFoundException, IOException,
429             ParseFormatException {
430         assertTrue(solveInstance(PREFIX + "jnh/jnh207.cnf"));
431     }
432 
433     public void testJNH28() throws FileNotFoundException, IOException,
434             ParseFormatException {
435         assertTrue(!solveInstance(PREFIX + "jnh/jnh208.cnf"));
436     }
437 
438     public void testJNH29() throws FileNotFoundException, IOException,
439             ParseFormatException {
440         assertTrue(solveInstance(PREFIX + "jnh/jnh209.cnf"));
441     }
442 
443     public void testJNH30() throws FileNotFoundException, IOException,
444             ParseFormatException {
445         assertTrue(solveInstance(PREFIX + "jnh/jnh210.cnf"));
446     }
447 
448     public void testJNH31() throws FileNotFoundException, IOException,
449             ParseFormatException {
450         assertTrue(!solveInstance(PREFIX + "jnh/jnh211.cnf"));
451     }
452 
453     public void testJNH32() throws FileNotFoundException, IOException,
454             ParseFormatException {
455         assertTrue(solveInstance(PREFIX + "jnh/jnh212.cnf"));
456     }
457 
458     public void testJNH33() throws FileNotFoundException, IOException,
459             ParseFormatException {
460         assertTrue(solveInstance(PREFIX + "jnh/jnh213.cnf"));
461     }
462 
463     public void testJNH34() throws FileNotFoundException, IOException,
464             ParseFormatException {
465         assertTrue(!solveInstance(PREFIX + "jnh/jnh214.cnf"));
466     }
467 
468     public void testJNH35() throws FileNotFoundException, IOException,
469             ParseFormatException {
470         assertTrue(!solveInstance(PREFIX + "jnh/jnh215.cnf"));
471     }
472 
473     public void testJNH36() throws FileNotFoundException, IOException,
474             ParseFormatException {
475         assertTrue(!solveInstance(PREFIX + "jnh/jnh216.cnf"));
476     }
477 
478     public void testJNH37() throws FileNotFoundException, IOException,
479             ParseFormatException {
480         assertTrue(solveInstance(PREFIX + "jnh/jnh217.cnf"));
481     }
482 
483     public void testJNH38() throws FileNotFoundException, IOException,
484             ParseFormatException {
485         assertTrue(solveInstance(PREFIX + "jnh/jnh218.cnf"));
486     }
487 
488     public void testJNH39() throws FileNotFoundException, IOException,
489             ParseFormatException {
490         assertTrue(!solveInstance(PREFIX + "jnh/jnh219.cnf"));
491     }
492 
493     public void testJNH40() throws FileNotFoundException, IOException,
494             ParseFormatException {
495         assertTrue(solveInstance(PREFIX + "jnh/jnh220.cnf"));
496     }
497 
498     public void testJNH41() throws FileNotFoundException, IOException,
499             ParseFormatException {
500         assertTrue(solveInstance(PREFIX + "jnh/jnh301.cnf"));
501     }
502 
503     public void testJNH42() throws FileNotFoundException, IOException,
504             ParseFormatException {
505         assertTrue(!solveInstance(PREFIX + "jnh/jnh302.cnf"));
506     }
507 
508     public void testJNH43() throws FileNotFoundException, IOException,
509             ParseFormatException {
510         assertTrue(!solveInstance(PREFIX + "jnh/jnh303.cnf"));
511     }
512 
513     public void testJNH44() throws FileNotFoundException, IOException,
514             ParseFormatException {
515         assertTrue(!solveInstance(PREFIX + "jnh/jnh304.cnf"));
516     }
517 
518     public void testJNH45() throws FileNotFoundException, IOException,
519             ParseFormatException {
520         assertTrue(!solveInstance(PREFIX + "jnh/jnh305.cnf"));
521     }
522 
523     public void testJNH46() throws FileNotFoundException, IOException,
524             ParseFormatException {
525         assertTrue(!solveInstance(PREFIX + "jnh/jnh306.cnf"));
526     }
527 
528     public void testJNH47() throws FileNotFoundException, IOException,
529             ParseFormatException {
530         assertTrue(!solveInstance(PREFIX + "jnh/jnh307.cnf"));
531     }
532 
533     public void testJNH48() throws FileNotFoundException, IOException,
534             ParseFormatException {
535         assertTrue(!solveInstance(PREFIX + "jnh/jnh308.cnf"));
536     }
537 
538     public void testJNH49() throws FileNotFoundException, IOException,
539             ParseFormatException {
540         assertTrue(!solveInstance(PREFIX + "jnh/jnh309.cnf"));
541     }
542 
543     public void testJNH50() throws FileNotFoundException, IOException,
544             ParseFormatException {
545         assertTrue(!solveInstance(PREFIX + "jnh/jnh310.cnf"));
546     }
547 
548     public void testHole6() throws FileNotFoundException, IOException,
549             ParseFormatException {
550         assertFalse(solveInstance(PREFIX + "pigeons/hole6.cnf"));
551     }
552 
553     public void testHole7() throws FileNotFoundException, IOException,
554             ParseFormatException {
555         assertFalse(solveInstance(PREFIX + "pigeons/hole7.cnf"));
556     }
557 }