1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package org.sat4j;
31
32 import static org.junit.Assert.assertFalse;
33
34 import org.junit.Before;
35 import org.junit.Test;
36 import org.sat4j.core.VecInt;
37 import org.sat4j.minisat.SolverFactory;
38 import org.sat4j.specs.ContradictionException;
39 import org.sat4j.specs.ISolver;
40 import org.sat4j.specs.TimeoutException;
41
42 public class BugSAT18 {
43
44 private ISolver solver;
45
46 @Before
47 public void setup() throws ContradictionException {
48 this.solver = SolverFactory.newDefault();
49 this.solver.setTimeout(15);
50 this.solver.addClause(new VecInt(new int[] { 1 }));
51 this.solver.addClause(new VecInt(new int[] { -1, 2 }));
52 this.solver.addClause(new VecInt(new int[] { -1, 3 }));
53 this.solver.addClause(new VecInt(new int[] { -2, 1 }));
54 this.solver.addClause(new VecInt(new int[] { -4, 1 }));
55 this.solver.addClause(new VecInt(new int[] { -3, 1 }));
56 this.solver.addClause(new VecInt(new int[] { -3, 5 }));
57 this.solver.addClause(new VecInt(new int[] { -5, 3 }));
58 this.solver.addClause(new VecInt(new int[] { 6 }));
59 this.solver.addClause(new VecInt(new int[] { -7 }));
60 this.solver.addClause(new VecInt(new int[] { 2, 5, 4, 6 }));
61
62 }
63
64 @Test
65 public void testAll() throws ContradictionException, TimeoutException {
66
67 assertFalse(this.solver.isSatisfiable(new VecInt(new int[] { 4, -3 })));
68 assertFalse(this.solver.isSatisfiable(new VecInt(new int[] { 5, -3 })));
69
70 }
71
72 @Test
73 public void testSingle1() throws ContradictionException, TimeoutException {
74
75 assertFalse(this.solver.isSatisfiable(new VecInt(new int[] { 4, -3 })));
76
77 }
78
79 @Test
80 public void testSingle2() throws ContradictionException, TimeoutException {
81
82 assertFalse(this.solver.isSatisfiable(new VecInt(new int[] { 5, -3 })));
83
84 }
85
86 }