예제 #1
0
        public void AddEdge_AlreadyAdded_ThrowsException()
        {
            // Arrange
            var node1 = new Aca.Model.Node();
            var node2 = new Aca.Model.Node();

            var edge1 = new Aca.Model.Edge
            {
                Origin      = node1,
                Destination = node2
            };

            node1.AddEdge(edge1);

            var edge2 = new Aca.Model.Edge
            {
                Origin      = node1,
                Destination = node2
            };

            // Act
            var ex = Assert.Catch <ArgumentException>(() => node1.AddEdge(edge2));

            //Assert
            StringAssert.Contains("уже добавлено", ex.Message);
        }
예제 #2
0
        public void Equals_WithNull_ReturnsFalse()
        {
            // Arrange
            var edge1 = new Aca.Model.Edge();

            // Act
            var result = edge1 == null;

            // Assert
            Assert.False(result);
        }
예제 #3
0
        public void AddEdge_WithOriginInOtherNode_ThrowsException()
        {
            // Arrange
            var node1 = new Aca.Model.Node();
            var edge  = new Aca.Model.Edge
            {
                Origin      = new Aca.Model.Node(),
                Destination = new Aca.Model.Node()
            };

            // Act
            var ex = Assert.Catch <ArgumentException>(() => node1.AddEdge(edge));

            // Assert
            StringAssert.Contains("не начинается в текущем узле", ex.Message);
        }
예제 #4
0
        public void AddEdge_WithTwoNewNodes_IncGraphSizeBy2()
        {
            // Arrange
            var graph = new Aca.Model.Graph();
            var edge  = new Aca.Model.Edge
            {
                Origin      = new Aca.Model.Node(),
                Destination = new Aca.Model.Node()
            };
            var count = graph.Size;

            // Act
            graph.AddEdge(edge);

            // Assert
            Assert.IsTrue(graph.Size == count + 2);
        }
예제 #5
0
        public void AddEdge_AddValidEdge_ContainsInAdjacentNodes()
        {
            // Arrange
            var node1 = new Aca.Model.Node();
            var node2 = new Aca.Model.Node();

            var edge1 = new Aca.Model.Edge
            {
                Origin      = node1,
                Destination = node2
            };

            // Act
            node1.AddEdge(edge1);

            // Assert
            Assert.True(node1.AdjacentNodes.Contains(node2));
        }
예제 #6
0
        public void RemoveEdge_NotDecGraphSize()
        {
            // Arrange
            var graph = new Aca.Model.Graph();
            var edge  = new Aca.Model.Edge
            {
                Origin      = new Aca.Model.Node(),
                Destination = new Aca.Model.Node()
            };

            graph.AddEdge(edge);
            var count = graph.Size;

            // Act
            graph.RemoveEdge(edge);

            // Assert
            Assert.IsTrue(graph.Size == count);
        }
예제 #7
0
        public void AddEdge_AddValidEdge_IncCostsCountBy1()
        {
            // Arrange
            var node1 = new Aca.Model.Node();
            var node2 = new Aca.Model.Node();

            var edge1 = new Aca.Model.Edge
            {
                Origin      = node1,
                Destination = node2
            };

            var count = node1.Costs.Count;

            // Act
            node1.AddEdge(edge1);

            // Assert
            Assert.True(node1.Costs.Count == count + 1);
        }
예제 #8
0
        public void Equals_WithTheSameOriginAndDest_ReturnsTrue()
        {
            // Arrange
            var node1 = new Aca.Model.Node();
            var node2 = new Aca.Model.Node();

            var edge1 = new Aca.Model.Edge
            {
                Origin      = node1,
                Destination = node2
            };

            var edge2 = new Aca.Model.Edge
            {
                Origin      = node1,
                Destination = node2
            };

            // Act
            var result = edge1.Equals(edge2);

            // Assert
            Assert.True(result);
        }