Created first FD-Solver test
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@385 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
25e6f3ec46
commit
ce1b716e12
6 changed files with 105 additions and 0 deletions
5
src/jrummikub/ai/fdsolver/Constraint.java
Normal file
5
src/jrummikub/ai/fdsolver/Constraint.java
Normal file
|
@ -0,0 +1,5 @@
|
|||
package jrummikub.ai.fdsolver;
|
||||
|
||||
public interface Constraint {
|
||||
|
||||
}
|
13
src/jrummikub/ai/fdsolver/Constraints.java
Normal file
13
src/jrummikub/ai/fdsolver/Constraints.java
Normal file
|
@ -0,0 +1,13 @@
|
|||
package jrummikub.ai.fdsolver;
|
||||
|
||||
public class Constraints {
|
||||
|
||||
public static <T extends Comparable<T>> void lessThan(Solver solver, Var<T> x, Var<T> y) {
|
||||
// TODO Auto-generated method stub
|
||||
}
|
||||
|
||||
public static <T extends Comparable<T>> void lessThan(Solver solver, Var<T> x, T y) {
|
||||
// TODO Auto-generated method stub
|
||||
}
|
||||
|
||||
}
|
9
src/jrummikub/ai/fdsolver/LessThan.java
Normal file
9
src/jrummikub/ai/fdsolver/LessThan.java
Normal file
|
@ -0,0 +1,9 @@
|
|||
package jrummikub.ai.fdsolver;
|
||||
|
||||
public class LessThan<T> implements Constraint {
|
||||
|
||||
public LessThan(Var<T> x, Var<T> y) {
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
}
|
25
src/jrummikub/ai/fdsolver/Solver.java
Normal file
25
src/jrummikub/ai/fdsolver/Solver.java
Normal file
|
@ -0,0 +1,25 @@
|
|||
package jrummikub.ai.fdsolver;
|
||||
|
||||
public class Solver {
|
||||
|
||||
public void add(Constraint constraint) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
public boolean solve() {
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
}
|
||||
|
||||
public void push() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
public void pop() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
25
src/jrummikub/ai/fdsolver/Var.java
Normal file
25
src/jrummikub/ai/fdsolver/Var.java
Normal file
|
@ -0,0 +1,25 @@
|
|||
package jrummikub.ai.fdsolver;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class Var<T> {
|
||||
Set<T> range;
|
||||
|
||||
public Var(Solver solver, Collection<T> range) {
|
||||
this.range = new HashSet<T>(range);
|
||||
}
|
||||
|
||||
public static <T> Var<T> range(Solver solver, T low, T high) {
|
||||
// TODO todo todo todo
|
||||
return null;
|
||||
}
|
||||
|
||||
public T getValue() {
|
||||
if (range.size() != 1)
|
||||
return null;
|
||||
return range.iterator().next();
|
||||
}
|
||||
|
||||
}
|
28
test/jrummikub/ai/fdsolver/SolverTest.java
Normal file
28
test/jrummikub/ai/fdsolver/SolverTest.java
Normal file
|
@ -0,0 +1,28 @@
|
|||
package jrummikub.ai.fdsolver;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class SolverTest {
|
||||
@Test
|
||||
public void test() {
|
||||
Solver solver = new Solver();
|
||||
|
||||
Var<Integer> x = new Var<Integer>(solver, Arrays.asList(1, 2, 3));
|
||||
Var<Integer> y = Var.range(solver, 1,13);
|
||||
|
||||
Constraints.lessThan(solver, y, x);
|
||||
|
||||
while(solver.solve()) {
|
||||
solver.push();
|
||||
Constraints.lessThan(solver, x, x.getValue());
|
||||
}
|
||||
solver.pop();
|
||||
|
||||
assertEquals(2, (int)x.getValue());
|
||||
assertEquals(1, (int)y.getValue());
|
||||
}
|
||||
}
|
Reference in a new issue