public void ReverseEdge_WithSelfLoop() { //Arrange var net = new BasicAdjList(Guid.NewGuid()); Type expectedType = typeof(BasicEdge); INode nodeA = net.CreateNode(); IEdge edge = net.CreateEdge(nodeA, nodeA); bool result = nodeA.SuccessorList.Contains(nodeA); Assert.True(result); result = nodeA.PredecessorList.Contains(nodeA); Assert.True(result); Assert.Equal(1, nodeA.SuccessorList.Count); Assert.Equal(1, nodeA.PredecessorList.Count); net.ReverseEdge(edge); result = nodeA.SuccessorList.Contains(nodeA); Assert.True(result); result = nodeA.PredecessorList.Contains(nodeA); Assert.True(result); Assert.Equal(1, nodeA.SuccessorList.Count); Assert.Equal(1, nodeA.PredecessorList.Count); }
public void ReverseEdge_Throws_When_Null_Passed_In() { //Arrange var net = new BasicAdjList(Guid.NewGuid()); var ex = Assert.Throws<ArgumentNullException>(() => net.ReverseEdge(null)); }
public void ReverseEdge_Throws_When_Invalid_Type_Passed_In_For_Dest_Node() { //Arrange var net = new BasicAdjList(Guid.NewGuid()); var ex = Assert.Throws<ArgumentException>(() => net.ReverseEdge(new DummyBasicEdge())); }
public void ReverseEdge_Throws_Ex_If_Edge_DNE_In_Network() { //Arrange var net = new BasicAdjList(Guid.NewGuid()); INode nodeA = net.CreateNode(); INode nodeB = net.CreateNode(); IEdge edge0 = net.CreateEdge(nodeA, nodeB); var net2 = new BasicAdjList(Guid.NewGuid()); INode node0 = net2.CreateNode(); INode node1 = net2.CreateNode(); IEdge edge1 = net2.CreateEdge(node0, node1); var ex = Assert.Throws<ArgumentException>(() => net.ReverseEdge(edge1)); }
public void ReverseEdge_DoesNotAffectNodeAccessorAndPredecessorLists() { //Arrange var net = new BasicAdjList(Guid.NewGuid()); Type expectedType = typeof(BasicEdge); INode nodeA = net.CreateNode(); INode nodeB = net.CreateNode(); IEdge edge = net.CreateEdge(nodeA, nodeB); bool result = nodeA.SuccessorList.Contains(nodeB); Assert.True(result); result = nodeA.PredecessorList.Contains(nodeB); Assert.False(result); result = nodeB.PredecessorList.Contains(nodeA); Assert.True(result); result = nodeB.SuccessorList.Contains(nodeA); Assert.False(result); net.ReverseEdge(edge); result = nodeA.SuccessorList.Contains(nodeB); Assert.False(result); result = nodeA.PredecessorList.Contains(nodeB); Assert.True(result); result = nodeB.PredecessorList.Contains(nodeA); Assert.False(result); result = nodeB.SuccessorList.Contains(nodeA); Assert.True(result); }
public void ReverseEdge() { //Arrange var net = new BasicAdjList(Guid.NewGuid()); Type expectedType = typeof(BasicEdge); INode nodeA = net.CreateNode(); INode nodeB = net.CreateNode(); IEdge edge = net.CreateEdge(nodeA, nodeB); Assert.Same(nodeA, edge.SourceNode); Assert.Same(nodeB, edge.DestinationNode); net.ReverseEdge(edge); Assert.NotNull(edge.SourceNode); Assert.NotNull(edge.DestinationNode); Assert.Same(nodeB, edge.SourceNode); Assert.Same(nodeA, edge.DestinationNode); }