diff options
author | Jannis Harder <harder@informatik.uni-luebeck.de> | 2011-06-08 16:23:18 +0200 |
---|---|---|
committer | Jannis Harder <harder@informatik.uni-luebeck.de> | 2011-06-08 16:23:18 +0200 |
commit | ce1b716e128bef53b140344bf1e58960fa32cba6 (patch) | |
tree | 6b0023f7850321f6784840b7e14359831cfffe2a | |
parent | 25e6f3ec4642c38df23dbd2e8ca1a3a30059a7dd (diff) | |
download | JRummikub-ce1b716e128bef53b140344bf1e58960fa32cba6.tar JRummikub-ce1b716e128bef53b140344bf1e58960fa32cba6.zip |
Created first FD-Solver test
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@385 72836036-5685-4462-b002-a69064685172
-rw-r--r-- | src/jrummikub/ai/fdsolver/Constraint.java | 5 | ||||
-rw-r--r-- | src/jrummikub/ai/fdsolver/Constraints.java | 13 | ||||
-rw-r--r-- | src/jrummikub/ai/fdsolver/LessThan.java | 9 | ||||
-rw-r--r-- | src/jrummikub/ai/fdsolver/Solver.java | 25 | ||||
-rw-r--r-- | src/jrummikub/ai/fdsolver/Var.java | 25 | ||||
-rw-r--r-- | test/jrummikub/ai/fdsolver/SolverTest.java | 28 |
6 files changed, 105 insertions, 0 deletions
diff --git a/src/jrummikub/ai/fdsolver/Constraint.java b/src/jrummikub/ai/fdsolver/Constraint.java new file mode 100644 index 0000000..0d4071d --- /dev/null +++ b/src/jrummikub/ai/fdsolver/Constraint.java @@ -0,0 +1,5 @@ +package jrummikub.ai.fdsolver; + +public interface Constraint { + +} diff --git a/src/jrummikub/ai/fdsolver/Constraints.java b/src/jrummikub/ai/fdsolver/Constraints.java new file mode 100644 index 0000000..589ecb5 --- /dev/null +++ b/src/jrummikub/ai/fdsolver/Constraints.java @@ -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 + } + +} diff --git a/src/jrummikub/ai/fdsolver/LessThan.java b/src/jrummikub/ai/fdsolver/LessThan.java new file mode 100644 index 0000000..25acd9b --- /dev/null +++ b/src/jrummikub/ai/fdsolver/LessThan.java @@ -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 + } + +} diff --git a/src/jrummikub/ai/fdsolver/Solver.java b/src/jrummikub/ai/fdsolver/Solver.java new file mode 100644 index 0000000..1164c36 --- /dev/null +++ b/src/jrummikub/ai/fdsolver/Solver.java @@ -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 + + } + +} diff --git a/src/jrummikub/ai/fdsolver/Var.java b/src/jrummikub/ai/fdsolver/Var.java new file mode 100644 index 0000000..a2b5cd7 --- /dev/null +++ b/src/jrummikub/ai/fdsolver/Var.java @@ -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(); + } + +} diff --git a/test/jrummikub/ai/fdsolver/SolverTest.java b/test/jrummikub/ai/fdsolver/SolverTest.java new file mode 100644 index 0000000..3798423 --- /dev/null +++ b/test/jrummikub/ai/fdsolver/SolverTest.java @@ -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()); + } +} |