public void TestInvalidAssign() { var cpb = new CPBoard(bEmpty); CPSolver.Assign(cpb, 0, "1"); Assert.False(CPSolver.Assign(cpb, 1, "1"), "Made invalid assignment!"); Assert.Equal("23456789", cpb.Get(1)); // If assignment fails do not mutate CPBoard Assert.False(CPSolver.Assign(cpb, 0, "2"), "Assigned an impossible value"); // Check that invalid assignment did not propagates foreach (var peerIndex in CPSolver.Peers[0]) { Assert.Equal("23456789", cpb.Get(peerIndex)); } }
public void TestAssignEliminate() { var cpb = new CPBoard(bEmpty); CPSolver.Assign(cpb, 0, "1"); Assert.Equal("1", cpb.Get(0)); // Check assignment propagates foreach (var peerIndex in CPSolver.Peers[0]) { Assert.Equal("23456789", cpb.Get(peerIndex)); } // Check overlap elimination CPSolver.Assign(cpb, Const.N2 - 1, "9"); // Last tile Assert.Equal("2345678", cpb.Get(Const.N - 1)); // 8 Assert.Equal("2345678", cpb.Get(Const.N * Const.N - Const.N)); // 72 }