public void TestTopologicalEqualsClone(int nodes, int degree) { var root = CreateRandomConnectedGraph(nodes * SizeMultiplier, degree); var clone = root.Clone(root.GetName() + "clone"); Assert.IsTrue(GraphComparer.CheckTopologicallyEquals(root, clone, Log)); }
public void TestTopologicalEqualsCloneWithSubgraphs(int nodes, int degree) { var root = CreateRandomConnectedGraph(nodes * SizeMultiplier, degree); var nodeSelection = new HashSet <Node>(root.Nodes().Take(nodes / 2)); var sub = root.AddSubgraphFromNodes("sub", nodeSelection); var subNodeCount = sub.Nodes().Count(); var nodeSelection2 = new HashSet <Node>(sub.Nodes().Take(subNodeCount / 2)); var sub2 = root.AddSubgraphFromNodes("sub2", nodeSelection2); var edgeCount = sub2.Edges().Count(); var edgeSelection = new HashSet <Edge>(sub.Edges().Take(edgeCount / 2)); var sub3 = root.AddSubgraphFromEdgeSet("sub3", edgeSelection); RootGraph subclone = sub.Clone("subclone"); Assert.IsTrue(GraphComparer.CheckTopologicallyEquals(sub, subclone, Log)); Assert.IsFalse(GraphComparer.CheckTopologicallyEquals(sub, root, Log)); Assert.IsFalse(GraphComparer.CheckTopologicallyEquals(sub, sub2, Log)); Assert.IsFalse(GraphComparer.CheckTopologicallyEquals(sub, sub3, Log)); RootGraph sub2clone = sub2.Clone("sub2clone"); Assert.IsTrue(GraphComparer.CheckTopologicallyEquals(sub2, sub2clone, Log)); Assert.IsFalse(GraphComparer.CheckTopologicallyEquals(sub2, root, Log)); Assert.IsFalse(GraphComparer.CheckTopologicallyEquals(sub2, sub, Log)); Assert.IsFalse(GraphComparer.CheckTopologicallyEquals(sub2, sub3, Log)); RootGraph sub3clone = sub3.Clone("sub3clone"); Assert.IsTrue(GraphComparer.CheckTopologicallyEquals(sub3, sub3clone, Log)); Assert.IsFalse(GraphComparer.CheckTopologicallyEquals(sub3, root, Log)); Assert.IsFalse(GraphComparer.CheckTopologicallyEquals(sub3, sub, Log)); Assert.IsFalse(GraphComparer.CheckTopologicallyEquals(sub3, sub2, Log)); }
public void TestTopologicalEqualsIdentity(int nodes, int degree) { var root = CreateRandomConnectedGraph(nodes * SizeMultiplier, degree); Assert.IsTrue(GraphComparer.CheckTopologicallyEquals(root, root, Log)); }