package cx.prutser.sudoku.solver;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/**
* Created by IntelliJ IDEA.
* User: erik
* Date: 3/10/2008
* Time: 22:07:30
* To change this template use File | Settings | File Templates.
*/
public class UniqueConstraintTest {
@Test
public void unique() {
// all unique
{
final UniqueConstraint<Integer> con = new UniqueConstraint<Integer>();
assertTrue(con.isSatisfied());
con.addTile(new Tile<Integer>(1));
assertTrue(con.isSatisfied());
con.addTile(new Tile<Integer>(null));
assertTrue(con.isSatisfied());
con.addTile(new Tile<Integer>(5));
assertTrue(con.isSatisfied());
con.addTile(new Tile<Integer>(3));
assertTrue(con.isSatisfied());
final Tile<Integer> tile = new Tile<Integer>();
con.addTile(tile);
assertTrue(con.isSatisfied());
tile.setValue(9);
assertTrue(con.isSatisfied());
tile.setValue(8);
assertTrue(con.isSatisfied());
}
}
@Test
public void notUnique() {
final UniqueConstraint<Integer> con = new UniqueConstraint<Integer>();
assertTrue(con.isSatisfied());
con.addTile(new Tile<Integer>(1));
con.addTile(new Tile<Integer>(null));
con.addTile(new Tile<Integer>(5));
con.addTile(new Tile<Integer>(3));
assertTrue(con.isSatisfied());
final Tile<Integer> tile = new Tile<Integer>(5);
con.addTile(tile);
assertFalse(con.isSatisfied());
tile.setValue(9);
assertTrue(con.isSatisfied());
tile.setValue(1);
assertFalse(con.isSatisfied());
}
}