Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
        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
        }