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.assertEquals;
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.IVecInt;
41
42 public class TestFreeId {
43
44 private ISolver solver;
45
46 @Before
47 public void setUp() {
48 this.solver = SolverFactory.newDefault();
49 }
50
51 @Test
52 public void testEmptySolver() {
53 assertEquals(1, this.solver.nextFreeVarId(false));
54 this.solver.newVar(100);
55 assertEquals(101, this.solver.nextFreeVarId(false));
56 }
57
58 @Test
59 public void testIncrementalFeed() throws ContradictionException {
60 assertEquals(1, this.solver.nextFreeVarId(false));
61 IVecInt clause = new VecInt();
62 clause.push(3).push(-5);
63 this.solver.addClause(clause);
64 assertEquals(6, this.solver.nextFreeVarId(false));
65 clause.clear();
66 clause.push(1).push(-2);
67 this.solver.addClause(clause);
68 assertEquals(6, this.solver.nextFreeVarId(false));
69 clause.clear();
70 clause.push(1000).push(-31);
71 this.solver.addClause(clause);
72 assertEquals(1001, this.solver.nextFreeVarId(false));
73 }
74
75 @Test
76 public void testReserveParameter() {
77 assertEquals(1, this.solver.nextFreeVarId(false));
78 assertEquals(1, this.solver.nextFreeVarId(false));
79 assertEquals(1, this.solver.nextFreeVarId(false));
80 assertEquals(1, this.solver.nextFreeVarId(false));
81 assertEquals(1, this.solver.nextFreeVarId(true));
82 assertEquals(2, this.solver.nextFreeVarId(true));
83 assertEquals(3, this.solver.nextFreeVarId(false));
84 assertEquals(3, this.solver.nextFreeVarId(false));
85 }
86 }