public void PegsFactoryCreateTest() { // Arrange var pegsFactory = new Peg.Factory(5, 9); // Act var actual = pegsFactory.CreatePeg(5, 1); // Assert Assert.AreEqual(Peg.Create(5, 1), actual); }
public void PegBoardGetGoalPegTest() { // Arrange var pegBoard = PegBoard.FromSource(_mockPegBoardSource.Object); // Act var actual = pegBoard.GoalPeg; // Assert Assert.AreEqual(Peg.Create(5, 1), actual); }
public void PegsFactoryCreatePegUpFromTest() { // Arrange var pegsFactory = new Peg.Factory(5, 9); var currentPeg = pegsFactory.CreatePeg(5, 1); // Act var actual = pegsFactory.CreatePegUpFrom(currentPeg); // Assert Assert.AreEqual(Peg.Create(3, 1), actual); }
private static Peg ParseFromString(string line) { var size = line.Split(',').Select(part => part.Trim()); if (size.Count() == 2 && int.TryParse(size.ElementAt(1), out var columns) && int.TryParse(size.ElementAt(0), out var rows)) { return(Peg.Create(rows, columns)); } throw new ArgumentException("invalid board size line"); }
public void PegBoardGetPegNeighboursFromBoardTest() { // Arrange var pegBoard = PegBoard.FromSource(TestBoardSource.CreateDefault()); // Act var actual = pegBoard.GetPegUpNeighboursFrom(Peg.Create(4, 0)); // Assert Assert.AreEqual(1, actual.Count()); Assert.IsTrue(actual.Contains(Peg.Create(3, 1))); Assert.AreEqual(Peg.PegProbality, actual.ElementAt(0).Probability); }
public void PegBoardGetPegNeighboursFrom33Test() { // Arrange var pegBoard = PegBoard.FromSource(TestBoardSource.CreateDefault()); // Act var actual = pegBoard.GetPegUpNeighboursFrom(Peg.Create(3, 3)); // Assert Assert.AreEqual(2, actual.Count()); Assert.IsTrue(actual.Contains(Peg.Create(1, 3))); Assert.IsTrue(actual.Contains(Peg.Create(2, 4))); }
public void PegsFactoryCreateUpAndLeftFromTest() { // Arrange var pegsFactory = new Peg.Factory(5, 9); var currentPeg = pegsFactory.CreatePeg(5, 1); // Act var actual = pegsFactory.CreateUpAndLeftFrom(currentPeg); var actual2 = pegsFactory.CreateUpAndLeftFrom(actual); // Assert Assert.AreEqual(Peg.Create(4, 0), actual); Assert.AreEqual(Peg.OutOfBoard, actual2); }
public void PoorManMemoizingPegsSolutionResolveTest() { // Arrange var pegBoard = PegBoard.FromSource(TestBoardSource.CreateDefault()); var pegsBoardIterator = PoorManMemoizingPegsSolution.Create(pegBoard); // Act pegsBoardIterator.Resolve(); var actual = pegsBoardIterator.GetBestPositions(); // Assert Assert.IsNotNull(actual); Assert.AreEqual(Peg.Create(1, 1), actual.ElementAt(0)); Assert.AreEqual(0.625, actual.ElementAt(0).Probability); }
public void PegBoardFileParseIntegrationTest() { // Arrange // Act var pegBoardFileSource = PegBoardFileSource.ParseFile("./PageBoardFile1.txt"); // Assert Assert.AreEqual(5, pegBoardFileSource.Rows); Assert.AreEqual(5, pegBoardFileSource.Columns); Assert.AreEqual(0, pegBoardFileSource.Goal); Assert.AreEqual(3, pegBoardFileSource.MissingPegs.Count()); Assert.AreEqual(Peg.Create(1, 1), pegBoardFileSource.MissingPegs.ElementAt(0)); Assert.AreEqual(Peg.Create(2, 1), pegBoardFileSource.MissingPegs.ElementAt(1)); Assert.AreEqual(Peg.Create(3, 2), pegBoardFileSource.MissingPegs.ElementAt(2)); }
public void PegBoardCreatePegBoardTest() { // Arrange // Act var pegBoard = PegBoard.FromSource(_mockPegBoardSource.Object); // Assert Assert.AreEqual(Columns * 2 - 1, pegBoard.Columns); Assert.AreEqual(Rows, pegBoard.Rows); Assert.AreEqual(Goal, pegBoard.Goal); Assert.AreEqual(MissingPegs, pegBoard.MissingPegs.Count()); Assert.AreEqual(Peg.Create(1, 3), pegBoard.MissingPegs.ElementAt(0)); Assert.AreEqual(Peg.Create(2, 2), pegBoard.MissingPegs.ElementAt(1)); Assert.AreEqual(Peg.Create(3, 5), pegBoard.MissingPegs.ElementAt(2)); }
public void PegsFactoryCreateUpAndRightFromTest() { // Arrange var pegsFactory = new Peg.Factory(5, 9, new [] { Peg.CreateMissingPeg(2, 1) }); var currentPeg = pegsFactory.CreatePeg(5, 1); // Act var actual = pegsFactory.CreateUpAndRigthFrom(currentPeg); var actual2 = pegsFactory.CreateUpAndRigthFrom(actual); var actual3 = pegsFactory.CreateUpAndLeftFrom(actual2); // Assert Assert.AreEqual(Peg.Create(4, 2), actual); Assert.AreEqual(Peg.Create(3, 3), actual2); Assert.IsTrue(actual3.IsMissingPeg); }
public void PoorManMemoizingPegsSolutionResolveWith2Test() { // Arrange var pegBoard = PegBoard.FromSource(new TestBoardSource(5, 5, 2, new[] { Peg.CreateMissingPeg(1, 1), Peg.CreateMissingPeg(2, 1), Peg.CreateMissingPeg(3, 2), })); var pegsBoardIterator = PoorManMemoizingPegsSolution.Create(pegBoard); // Act pegsBoardIterator.Resolve(); var actual = pegsBoardIterator.GetBestPositions(); // Assert Assert.IsNotNull(actual); Assert.AreEqual(Peg.Create(1, 5), actual.ElementAt(0)); Assert.AreEqual(0.625, actual.ElementAt(0).Probability); }