Пример #1
0
        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);
        }
Пример #2
0
        public void PegBoardGetGoalPegTest()
        {
            // Arrange
            var pegBoard = PegBoard.FromSource(_mockPegBoardSource.Object);

            // Act
            var actual = pegBoard.GoalPeg;

            // Assert
            Assert.AreEqual(Peg.Create(5, 1), actual);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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");
        }
Пример #5
0
        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);
        }
Пример #6
0
        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)));
        }
Пример #7
0
        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));
        }
Пример #10
0
        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));
        }
Пример #11
0
        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);
        }