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); }
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);
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); }