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:
Jannis Harder 2011-06-08 16:23:18 +02:00
parent 25e6f3ec46
commit ce1b716e12
6 changed files with 105 additions and 0 deletions

View file

@ -0,0 +1,5 @@
package jrummikub.ai.fdsolver;
public interface Constraint {
}

View 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
}
}

View 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
}
}

View 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
}
}

View 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();
}
}

View 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());
}
}