public void Test42() { IDigraph g = new Digraph(4); g.AddEdge(0, 1); g.AddEdge(1, 2); g.AddEdge(2, 3); g.AddEdge(3, 4); var digraphPath = new DigraphPath(g, 0); Assert.IsTrue(digraphPath.HasPathTo(4)); }
/// <summary> /// Composition of path arrows /// </summary> /// <param name="category">Category of arrows</param> /// <param name="path">The path</param> /// <returns>The composition</returns> static public IAdvancedCategoryArrow Composition(ICategory category, DigraphPath path) { IArrowLabel label = path[0].Object as IArrowLabel; IAdvancedCategoryArrow arrow = label.Arrow as IAdvancedCategoryArrow; for (int i = 1; i < path.Count; i++) { label = path[i].Object as IArrowLabel; arrow = (label.Arrow as IAdvancedCategoryArrow).Compose(category, arrow); } return(arrow); }
static private ITimeMeasureProvider GetProvider(DigraphPath path) { ITimeMeasureProvider p = null; for (int i = 0; i < path.Count - 1; i++) { ICategoryObject ob = path[i].CategoryObject; if (ob is ITimeMeasureProvider) { p = ob as ITimeMeasureProvider; } } return(p); }