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");
 }
Example #3
0
 public TargetVertexEnumerator(IEdgeEnumerable edges)
 {
     if (edges == null)
     {
         throw new ArgumentNullException("edges");
     }
     this.enumerator = edges.GetEnumerator();
 }
Example #4
0
 /// <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);
            }
        }
Example #6
0
        /// <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);
        }
Example #7
0
        /// <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());
     }
 }
Example #9
0
        /// <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();
 }