Exemplo n.º 1
0
        public void TestSimpleGraphLabelling()
        {
            string               graphString = "0:1,1:2";
            SimpleGraph          graph       = new SimpleGraph(graphString);
            SimpleGraphSignature signature   = new SimpleGraphSignature(graph);

            int[] labels = signature.GetCanonicalLabels();
            Assert.IsTrue(IsIdentity(labels));
        }
Exemplo n.º 2
0
        //[TestMethod()]
        public void IsomorphicPair()
        {
            SimpleGraph a = new SimpleGraph("5:7,6:7,0:6,1:6,2:5,3:5,0:4,1:4,2:4,3:4,0:3,2:3,0:1,1:2");
            SimpleGraph b = new SimpleGraph("5:7,6:7,0:6,2:6,1:5,3:5,0:4,1:4,2:4,3:4,0:3,1:3,0:2,1:2");

            SimpleGraphSignature sigA = new SimpleGraphSignature(a);
            SimpleGraphSignature sigB = new SimpleGraphSignature(b);

            Assert.AreEqual(sigA.ToCanonicalString(), sigB.ToCanonicalString());
        }
Exemplo n.º 3
0
        public void TmpOrbitsTest()
        {
            SimpleGraph a = new SimpleGraph("5:7,6:7,0:6,1:6,2:5,3:5,0:4,1:4,2:4,3:4,0:3,2:3,0:1,1:2");
            //        SimpleGraph b = new SimpleGraph("5:7,6:7,0:6,2:6,1:5,3:5,0:4,1:4,2:4,3:4,0:3,1:3,0:2,1:2");
            SimpleGraphSignature sigA = new SimpleGraphSignature(a);

            foreach (var cls in sigA.GetSymmetryClasses())
            {
                Console.Out.WriteLine(cls);
            }
        }
Exemplo n.º 4
0
        public void BowtieaneTest()
        {
            SimpleGraph bowtie = SimpleGraphFactory.MakeBowtieane();
            string      tmp    = new SimpleGraphSignature(bowtie).SignatureStringForVertex(6);

            Console.Out.WriteLine(tmp);
            Console.Out.WriteLine("----------------------------------------");
            string tmp2 = new SimpleGraphSignature(bowtie).SignatureStringForVertex(2);

            Console.Out.WriteLine(tmp2);
        }
Exemplo n.º 5
0
        public void TestChain()
        {
            string chain = "0:1,1:2,2:3,3:4";
            SimpleGraphSignature signature = SignatureFromString(chain);

            string uncanonizedString = signature.ToCanonicalString();
            // TODO : FIXME - maximal / minimal problem
            //        string maxSignature = signature.GetGraphSignature();
            string maxSignature = signature.GetMaximalSignature();

            Assert.AreEqual(uncanonizedString, maxSignature);
        }
Exemplo n.º 6
0
        // XXX DOES NOT YET WORK - reconstructed graph may be isomorphic,
        // but not automorphic
        public void Reconstruct(SimpleGraph graph)
        {
            SimpleGraphSignature signature = new SimpleGraphSignature(graph);

            foreach (var symmetryClass in signature.GetSymmetryClasses())
            {
                string             signatureString = symmetryClass.GetSignatureString();
                ColoredTree        tree            = AbstractVertexSignature.Parse(signatureString);
                SimpleGraphBuilder builder         = new SimpleGraphBuilder();
                SimpleGraph        reconstruction  = builder.FromTree(tree);
                Assert.AreEqual(reconstruction.ToString(), graph.ToString());
            }
        }
Exemplo n.º 7
0
        public void SignatureHeightTest()
        {
            SimpleGraph          g         = SimpleGraphFactory.MakeCuneane();
            SimpleGraphSignature signature = new SimpleGraphSignature(g);

            for (int h = 1; h < g.GetVertexCount(); h++)
            {
                for (int i = 0; i < g.GetVertexCount(); i++)
                {
                    string sig = signature.SignatureStringForVertex(i, h);
                    Console.Out.WriteLine(h + "\t" + i + "\t" + sig);
                }
            }
        }
Exemplo n.º 8
0
        public void TestColoredTreeRoundtrip()
        {
            string      signatureString = "[.]([.]([.,0])[.]([.,0]))";
            ColoredTree tree            = SimpleVertexSignature.Parse(signatureString);

            Assert.AreEqual(signatureString, tree.ToString());

            SimpleGraphBuilder   builder        = new SimpleGraphBuilder();
            SimpleGraph          graph          = builder.FromTree(tree);
            SimpleGraphSignature graphSignature = new SimpleGraphSignature(graph);
            string canonicalString = graphSignature.ToCanonicalString();

            Assert.AreEqual(signatureString, canonicalString);
        }
Exemplo n.º 9
0
        public int[] GetLabels(SimpleGraph graph)
        {
            SimpleGraphSignature signature = new SimpleGraphSignature(graph);

            return(signature.GetCanonicalLabels());
        }