예제 #1
0
        public void Constructor_WithPuzzle_Works()
        {
            var puzzle = new Puzzle(new int?[, ] {
                { 1, null /* 4 */, null /* 3 */, 2 },
                { null /* 2 */, null /* 3 */, 1, null /* 4 */ },
                { null /* 4 */, null /* 1 */, null /* 2 */, null /* 3 */ },
                { 3, 2, 4, 1 }
            });
            var tracker = new SquareTracker(puzzle);

            Assert.NotNull(tracker);
        }
예제 #2
0
        public void TrySet_WithValidValue_SetsAndReturnsTrue()
        {
            var puzzle = new Puzzle(new int?[, ] {
                { 1, null /* 4 */, null /* 3 */, 2 },
                { null /* 2 */, null /* 3 */, 1, null /* 4 */ },
                { null /* 4 */, null /* 1 */, null /* 2 */, null /* 3 */ },
                { 3, 2, 4, 1 }
            });
            var tracker = new SquareTracker(puzzle);

            var coord = new Coordinate(1, 1);
            int val   = 3;

            Assert.True(tracker.TrySet(in coord, val));
            Assert.Equal(puzzle[in coord], val);
예제 #3
0
        public void Constructor_WithFullInjection_Works()
        {
            var puzzle = new Puzzle(new int?[, ] {
                { 1, null /* 4 */, null /* 3 */, 2 },
                { null /* 2 */, null /* 3 */, 1, null /* 4 */ },
                { null /* 4 */, null /* 1 */, null /* 2 */, null /* 3 */ },
                { 3, 2, 4, 1 }
            });
            var possibleValues = new PossibleValues(puzzle);
            var ruleKeeper     = new StandardRuleKeeper(puzzle, possibleValues);
            var heuristic      = new StandardHeuristic(puzzle, possibleValues, ruleKeeper, ruleKeeper, ruleKeeper);
            var tracker        = new SquareTracker(puzzle, possibleValues, ruleKeeper, heuristic);

            Assert.NotNull(tracker);
        }