Exemple #1
0
        //[TestMethod()]
        public void TestColoringForUnlabelledThreeCycle()
        {
            DAG dag = new DAG(0, 3);

            DAG.Node root = dag.GetRoot();

            DAG.Node childA = dag.MakeNodeInLayer(1, 1);
            dag.AddRelation(childA, root);

            DAG.Node childB = dag.MakeNodeInLayer(2, 1);
            dag.AddRelation(childB, root);

            DAG.Node childC = dag.MakeNodeInLayer(2, 2);
            dag.AddRelation(childC, childA);

            DAG.Node childD = dag.MakeNodeInLayer(1, 2);
            dag.AddRelation(childD, childB);

            Console.Out.WriteLine(dag);
            dag.InitializeWithStringLabels(new string[] { "C", "C" });

            dag.UpdateVertexInvariants();
            Console.Out.WriteLine(dag.CopyInvariants());

            dag.SetColor(1, 1);
            dag.UpdateVertexInvariants();
            Console.Out.WriteLine(dag.CopyInvariants());
        }
Exemple #2
0
        public void DagWithEdgeLabels()
        {
            DAG dag = new DAG(0, 4);

            DAG.Node root = dag.GetRoot();

            DAG.Node child = dag.MakeNodeInLayer(1, 1);
            dag.AddRelation(root, child);
            child.AddEdgeColor(0, 2);
            root.AddEdgeColor(1, 2);

            child = dag.MakeNodeInLayer(2, 1);
            dag.AddRelation(root, child);
            child.AddEdgeColor(0, 1);
            root.AddEdgeColor(2, 1);

            child = dag.MakeNodeInLayer(3, 1);
            dag.AddRelation(root, child);
            child.AddEdgeColor(0, 1);
            root.AddEdgeColor(3, 1);

            dag.InitializeWithStringLabels(new string[] { "C", "C", "C", "H" });
            dag.UpdateVertexInvariants();
            Console.Out.WriteLine(dag.CopyInvariants());
        }
Exemple #3
0
        //[TestMethod()]
        public void TestColoring()
        {
            // C12CC1C1
            DAG ring = new DAG(0, 4);

            DAG.Node root = ring.GetRoot();

            DAG.Node child1 = ring.MakeNodeInLayer(1, 1);
            ring.AddRelation(child1, root);

            DAG.Node child2 = ring.MakeNodeInLayer(2, 1);
            ring.AddRelation(child2, root);

            DAG.Node child3 = ring.MakeNodeInLayer(3, 1);
            ring.AddRelation(child3, root);

            DAG.Node child4 = ring.MakeNodeInLayer(3, 2);
            ring.AddRelation(child4, child1);
            ring.AddRelation(child4, child2);

            DAG.Node child5 = ring.MakeNodeInLayer(1, 2);
            ring.AddRelation(child5, child3);

            DAG.Node child6 = ring.MakeNodeInLayer(2, 2);
            ring.AddRelation(child6, child3);

            Console.Out.WriteLine(ring);
            string[] labels = new string[] { "C", "C", "C" };
            ring.InitializeWithStringLabels(labels);

            ring.UpdateNodeInvariants(DAG.Direction.Up);
            Console.Out.WriteLine(ring.CopyInvariants());

            ring.ComputeVertexInvariants();
            Console.Out.WriteLine(ring.CopyInvariants());

            ring.UpdateNodeInvariants(DAG.Direction.Down);
            Console.Out.WriteLine(ring.CopyInvariants());

            ring.ComputeVertexInvariants();
            Console.Out.WriteLine(ring.CopyInvariants());

            ring.UpdateVertexInvariants();
            Console.Out.WriteLine(ring.CopyInvariants());

            //        List<Integer> orbit = ring.CreateOrbit();
            //        Console.Out.WriteLine(orbit);
            //
            //        ring.SetColor(orbit[0], 1);
            //        ring.UpdateVertexInvariants();
            //        Console.Out.WriteLine(ring.CopyInvariants());
            //
            //        orbit = ring.CreateOrbit();
            //        Console.Out.WriteLine(orbit);
            //
            //        ring.SetColor(orbit[0], 2);
            //        ring.UpdateVertexInvariants();
            //        Console.Out.WriteLine(ring.CopyInvariants());
            //
            //        orbit = ring.CreateOrbit();
            //        Console.Out.WriteLine(orbit);
            //        ring.SetColor(orbit[0], 3);
            //        Console.Out.WriteLine(ring.CopyInvariants());
        }