コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        public void TestTopologicalEqualsIdentity(int nodes, int degree)
        {
            var root = CreateRandomConnectedGraph(nodes * SizeMultiplier, degree);

            Assert.IsTrue(GraphComparer.CheckTopologicallyEquals(root, root, Log));
        }