コード例 #1
0
        public void CreateTableau_ReturnsPopulatedTableau()
        {
            // Arrange
            var shape = new Hexagon(1);

            // Act
            var tableau = shape.CreateTableau();

            // Assert
            Assert.NotNull(tableau);
            Assert.Equal(shape, tableau.Shape);
            Assert.Equal("Tableau: Hexagon(1)", tableau.ToString());

            Assert.Equal(new Coordinates(1, -1), tableau.TerminalNodes[0].Coordinates);
            Assert.Equal(new Coordinates(2, 1), tableau.TerminalNodes[0].Links[Hexagon.Azimuth180].Coordinates);

            Assert.Equal(new Coordinates(5, 1), tableau.TerminalNodes[1].Coordinates);
            Assert.Equal(new Coordinates(4, 2), tableau.TerminalNodes[1].Links[Hexagon.Azimuth240].Coordinates);

            Assert.Equal(new Coordinates(7, 5), tableau.TerminalNodes[2].Coordinates);
            Assert.Equal(new Coordinates(5, 4), tableau.TerminalNodes[2].Links[Hexagon.Azimuth300].Coordinates);

            Assert.Equal(new Coordinates(5, 7), tableau.TerminalNodes[3].Coordinates);
            Assert.Equal(new Coordinates(4, 5), tableau.TerminalNodes[3].Links[Hexagon.Azimuth000].Coordinates);

            Assert.Equal(new Coordinates(1, 5), tableau.TerminalNodes[4].Coordinates);
            Assert.Equal(new Coordinates(2, 4), tableau.TerminalNodes[4].Links[Hexagon.Azimuth060].Coordinates);

            Assert.Equal(new Coordinates(-1, 1), tableau.TerminalNodes[5].Coordinates);
            Assert.Equal(new Coordinates(1, 2), tableau.TerminalNodes[5].Links[Hexagon.Azimuth120].Coordinates);

            Assert.Equal(new Coordinates(2, 1), tableau.Nodes[0].Coordinates);
            Assert.Equal(new Coordinates(4, 2), tableau.Nodes[0].Links[Hexagon.Azimuth120].Coordinates);
            Assert.Equal(new Coordinates(1, 2), tableau.Nodes[0].Links[Hexagon.Azimuth240].Coordinates);
            Assert.Equal(new Coordinates(1, -1), tableau.Nodes[0].Links[Hexagon.Azimuth000].Coordinates);

            Assert.Equal(new Coordinates(4, 2), tableau.Nodes[1].Coordinates);
            Assert.Equal(new Coordinates(5, 4), tableau.Nodes[1].Links[Hexagon.Azimuth180].Coordinates);
            Assert.Equal(new Coordinates(2, 1), tableau.Nodes[1].Links[Hexagon.Azimuth300].Coordinates);
            Assert.Equal(new Coordinates(5, 1), tableau.Nodes[1].Links[Hexagon.Azimuth060].Coordinates);

            Assert.Equal(new Coordinates(5, 4), tableau.Nodes[2].Coordinates);
            Assert.Equal(new Coordinates(7, 5), tableau.Nodes[2].Links[Hexagon.Azimuth120].Coordinates);
            Assert.Equal(new Coordinates(4, 5), tableau.Nodes[2].Links[Hexagon.Azimuth240].Coordinates);
            Assert.Equal(new Coordinates(4, 2), tableau.Nodes[2].Links[Hexagon.Azimuth000].Coordinates);

            Assert.Equal(new Coordinates(4, 5), tableau.Nodes[3].Coordinates);
            Assert.Equal(new Coordinates(5, 7), tableau.Nodes[3].Links[Hexagon.Azimuth180].Coordinates);
            Assert.Equal(new Coordinates(2, 4), tableau.Nodes[3].Links[Hexagon.Azimuth300].Coordinates);
            Assert.Equal(new Coordinates(5, 4), tableau.Nodes[3].Links[Hexagon.Azimuth060].Coordinates);

            Assert.Equal(new Coordinates(2, 4), tableau.Nodes[4].Coordinates);
            Assert.Equal(new Coordinates(4, 5), tableau.Nodes[4].Links[Hexagon.Azimuth120].Coordinates);
            Assert.Equal(new Coordinates(1, 5), tableau.Nodes[4].Links[Hexagon.Azimuth240].Coordinates);
            Assert.Equal(new Coordinates(1, 2), tableau.Nodes[4].Links[Hexagon.Azimuth000].Coordinates);

            Assert.Equal(new Coordinates(1, 2), tableau.Nodes[5].Coordinates);
            Assert.Equal(new Coordinates(2, 4), tableau.Nodes[5].Links[Hexagon.Azimuth180].Coordinates);
            Assert.Equal(new Coordinates(-1, 1), tableau.Nodes[5].Links[Hexagon.Azimuth300].Coordinates);
            Assert.Equal(new Coordinates(2, 1), tableau.Nodes[5].Links[Hexagon.Azimuth060].Coordinates);
        }