public void Measure(IEdgeEnumerable edges) { this.Clear(); int num = 0; IEdgeEnumerator enumerator = edges.GetEnumerator(); while (enumerator.MoveNext()) { EdgeIntDictionary dictionary; IEdge edge2; IEdge edge = enumerator.get_Current(); if (this.passCounts.get_Item(edge) == 0) { num++; } (dictionary = this.passCounts).set_Item(edge2 = edge, dictionary.get_Item(edge2) + 1); } if (this.graph.get_EdgesEmpty()) { this.coverage = 0.0; } else { this.coverage = ((double) num) / ((double) this.graph.get_EdgesCount()); } }
internal IEdge NextState(int edgeCount, IEdgeEnumerable edges) { if (edgeCount == 0) { return null; } double num = this.rnd.NextDouble(); int num2 = (int) Math.Floor(edgeCount * num); if (num2 == edgeCount) { num2--; } int num3 = 0; IEdgeEnumerator enumerator = edges.GetEnumerator(); while (enumerator.MoveNext()) { IEdge edge = enumerator.get_Current(); if (num3 == num2) { return edge; } num3++; } throw new InvalidOperationException("This is a bug"); }
public TargetVertexEnumerator(IEdgeEnumerable edges) { if (edges == null) { throw new ArgumentNullException("edges"); } this.enumerator = edges.GetEnumerator(); }
/// <summary> /// Returns the first edge of the graph /// </summary> /// <param name="edges">graph</param> /// <returns>first edge if any, otherwise a null reference</returns> public static IEdge FirstEdge(IEdgeEnumerable edges) { if (edges==null) throw new ArgumentNullException("edges"); IEdgeEnumerator en = edges.GetEnumerator(); if (!en.MoveNext()) return null; else return en.Current; }
private IEdge SelectSingleOutEdgeNotInCircuit(IVertex v) { IEdgeEnumerable en = this.SelectOutEdgesNotInCircuit(v); IEdgeEnumerator eor = en.GetEnumerator(); if (!eor.MoveNext()) { return(null); } else { return(eor.Current); } }
/// <summary> /// Returns the last edge of the edge collection /// </summary> /// <param name="edges">edge collection</param> /// <returns>last edge if any, otherwise a null reference</returns> public static IEdge LastEdge(IEdgeEnumerable edges) { if (edges == null) { throw new ArgumentNullException("edges"); } IEdgeEnumerator en = edges.GetEnumerator(); IEdge current = null; while (en.MoveNext()) { current = en.Current; } return(current); }
/// <summary> /// Returns the first edge of the graph /// </summary> /// <param name="edges">graph</param> /// <returns>first edge if any, otherwise a null reference</returns> public static IEdge FirstEdge(IEdgeEnumerable edges) { if (edges == null) { throw new ArgumentNullException("edges"); } IEdgeEnumerator en = edges.GetEnumerator(); if (!en.MoveNext()) { return(null); } else { return(en.Current); } }
public void MeasurePath(IEdgeEnumerable edges) { this.Clear(); int num = 0; bool flag = true; IEdgeEnumerator enumerator = edges.GetEnumerator(); while (enumerator.MoveNext()) { VertexIntDictionary dictionary2; IVertex vertex2; IEdge edge = enumerator.get_Current(); if (flag) { VertexIntDictionary dictionary; IVertex vertex; (dictionary = this.passCounts).set_Item(vertex = edge.get_Source(), dictionary.get_Item(vertex) + 1); flag = false; } if (this.passCounts.get_Item(edge.get_Target()) == 0) { num++; } (dictionary2 = this.passCounts).set_Item(vertex2 = edge.get_Target(), dictionary2.get_Item(vertex2) + 1); } if (this.graph.get_VerticesEmpty()) { this.coverage = 0.0; } else { this.coverage = ((double) num) / ((double) this.graph.get_VerticesCount()); } }
/// <summary> /// Returns the last edge of the edge collection /// </summary> /// <param name="edges">edge collection</param> /// <returns>last edge if any, otherwise a null reference</returns> public static IEdge LastEdge(IEdgeEnumerable edges) { if (edges==null) throw new ArgumentNullException("edges"); IEdgeEnumerator en = edges.GetEnumerator(); IEdge current = null; while(en.MoveNext()) { current = en.Current; } return current; }
private void VisitEdges(IEdgeEnumerable outEdges, bool forward) { IVertex u = null; IEdgeEnumerator enumerator = outEdges.GetEnumerator(); while (enumerator.MoveNext()) { IEdge e = enumerator.get_Current(); this.OnExamineEdge(e); if (forward) { u = e.get_Target(); } else { u = e.get_Source(); } GraphColor color = this.Colors.get_Item(u); GraphColor color2 = this.EdgeColors.get_Item(e); this.EdgeColors.set_Item(e, 1); if (color == null) { this.OnTreeEdge(e); this.Visit(u); } else if ((color == 2) && (color2 == null)) { this.OnBackEdge(e); } } }
public TargetVertexEnumerator(IEdgeEnumerable edges) { if (edges==null) throw new ArgumentNullException("edges"); this.enumerator = edges.GetEnumerator(); }