示例#1
0
        public void BasicParseTest()
        {
            string      sig  = "[A]([B])";
            ColoredTree tree = AbstractVertexSignature.Parse(sig);

            Assert.AreEqual(sig, tree.ToString());
        }
示例#2
0
        public void MultipleLevelsParseTest()
        {
            string      sig  = "[A]([B1]([C])[B2])";
            ColoredTree tree = AbstractVertexSignature.Parse(sig);

            Assert.AreEqual(sig, tree.ToString());
        }
        public void ReconstructCanonicalGraph(AbstractVertexSignature signature, AbstractGraphBuilder builder)
        {
            var canonicalString = this.ToCanonicalString();
            var tree            = AbstractVertexSignature.Parse(canonicalString);

            builder.MakeFromColoredTree(tree);
        }
示例#4
0
        public void EdgeLabelMultipleLevelsParseTest()
        {
            string      sig  = "[A](=[B1]([C])=[B2])";
            ColoredTree tree = AbstractVertexSignature.Parse(sig);

            Console.Out.WriteLine(tree.ToString());
            Assert.AreEqual(sig, tree.ToString());
        }
        public string ReconstructCanonicalEdgeString()
        {
            var canonicalString = this.ToCanonicalString();
            var builder         = new VirtualGraphBuilder();

            builder.MakeFromColoredTree(AbstractVertexSignature.Parse(canonicalString));
            return(builder.ToEdgeString());
        }
        public int[] GetCanonicalLabels()
        {
            int n = GetVertexCount();
            AbstractVertexSignature canonicalSignature = null;
            string canonicalSignatureString            = null;

            for (int i = 0; i < n; i++)
            {
                var signatureForVertexI = SignatureForVertex(i);
                var signatureString     = signatureForVertexI.ToCanonicalString();
                if (canonicalSignature == null ||
                    string.Compare(signatureString, canonicalSignatureString, StringComparison.Ordinal) < 0)
                {
                    canonicalSignature       = signatureForVertexI;
                    canonicalSignatureString = signatureString;
                }
            }
            return(canonicalSignature.GetCanonicalLabelling(n));
        }