public void Reverse_RandomGraph() { var edgeList = this.GetRandomEdgeList(100, 100); var graph = GraphLoader.FromEdgeList(edgeList); var graphPrime = graph.Reverse(); TestHelpers.DictionaryEqual(graph.GetOutgoingDegrees(), graphPrime.GetIncomingDegrees()); TestHelpers.DictionaryEqual(graph.GetIncomingDegrees(), graphPrime.GetOutgoingDegrees()); Assert.Equal( Json.Encode(graph.GetNeighbors(EdgeDirection.Outgoing)), Json.Encode(graphPrime.GetNeighbors(EdgeDirection.Incoming))); Assert.Equal( Json.Encode(graph.GetNeighbors(EdgeDirection.Incoming)), Json.Encode(graphPrime.GetNeighbors(EdgeDirection.Outgoing))); }
public void Degrees_RandomGraph() { var edgeList = this.GetRandomEdgeList(100, 100); var graph = GraphLoader.FromEdgeList(edgeList); var outgoingDegrees = graph.GetOutgoingDegrees(); var incomingDegrees = graph.GetIncomingDegrees(); var degrees = graph.GetDegrees(); Assert.Equal( expected: degrees.Sum(vertex => vertex.Value), actual: outgoingDegrees.Sum(vertex => vertex.Value) + incomingDegrees.Sum(vertex => vertex.Value)); Assert.Equal( expected: 2 * graph.GetEdges().Count, actual: degrees.Sum(vertex => vertex.Value)); }