public void TestRemovEdge() { var graph = new Graph(); var v1 = new StringVertex("a"); var v2 = new StringVertex("b"); var e = new StringEdge(v1, v2, "c"); // should fail if edge is not in graph Assert.ThrowsException <ArgumentException>(() => graph.RemoveEdge(e)); }
public void Test3() { var graph = new Graph(); var v1 = new StringVertex("blue"); graph.AddVertex(v1); var v2 = new StringVertex("green"); graph.AddVertex(v2); var v3 = new StringVertex("yellow"); graph.AddVertex(v3); var v4 = new StringVertex("yellow"); graph.AddVertex(v4); var v5 = new StringVertex("blue"); graph.AddVertex(v5); var v6 = new StringVertex("green"); graph.AddVertex(v6); graph.AddEdge(new StringEdge(v1, v4, "green")); graph.AddEdge(new StringEdge(v2, v5, "yellow")); graph.AddEdge(new StringEdge(v3, v6, "blue")); graph.AddEdge(new StringEdge(v4, v5, "green")); graph.AddEdge(new StringEdge(v5, v6, "yellow")); graph.AddEdge(new StringEdge(v6, v4, "blue")); var pattern = new Graph(); var vp1 = new StringVertex("yellow"); pattern.AddVertex(vp1); var vp2 = new StringVertex("blue"); pattern.AddVertex(vp2); var vp3 = new StringVertex("green"); pattern.AddVertex(vp3); pattern.AddEdge(new StringEdge(vp1, vp2, "green")); pattern.AddEdge(new StringEdge(vp2, vp3, "yellow")); pattern.AddEdge(new StringEdge(vp3, vp1, "blue")); Assert.IsNotNull(graph.FindPattern(pattern)); var vp4 = new StringVertex("green"); pattern.AddVertex(vp4); // wrong edge color var ef = new StringEdge(vp2, vp4, "blue"); pattern.AddEdge(ef); Assert.IsNull(graph.FindPattern(pattern)); pattern.RemoveEdge(ef); Assert.ThrowsException <System.ArgumentException>(() => pattern.AddVertex(vp4)); var ef2 = new DataEdge <float>(vp2, vp4, 4.2f); pattern.AddEdge(ef2); Assert.IsNull(graph.FindPattern(pattern)); }