Exemplo n.º 1
0
        public void Tree()
        {
            var reader = new DotReader(new StringReader(@"
strict graph {
    1 -- 2
    2 -- 3
    2 -- 4
    1 -- 5
}
strict graph {
    1 -- 2
    2 -- 3
    2 -- 4
    1 -- 5
}"));
            var g      = reader.Read();
            var h      = reader.Read();

            var coloring = ColorRefinement.FindColoring(g, h);

            Assert.Equal(10, coloring.Count);
            Assert.Equal(4, coloring.Values.Distinct().Count());
            Assert.Equal(coloring[g.Nodes["1"]], coloring[h.Nodes["1"]]);
            Assert.Equal(coloring[g.Nodes["2"]], coloring[h.Nodes["2"]]);
            Assert.Equal(coloring[g.Nodes["3"]], coloring[h.Nodes["3"]]);
            Assert.Equal(coloring[g.Nodes["4"]], coloring[h.Nodes["4"]]);
            Assert.Equal(coloring[g.Nodes["5"]], coloring[h.Nodes["5"]]);
        }
Exemplo n.º 2
0
        public void Simple()
        {
            var reader = new DotReader(new StringReader(@"
strict graph {
    1 -- 2 -- 3
}
strict graph {
    3 -- 2 -- 1
}"));
            var g      = reader.Read();
            var h      = reader.Read();

            var coloring = ColorRefinement.FindColoring(g, h);

            Assert.Equal(6, coloring.Count);
            Assert.Equal(2, coloring.Values.Distinct().Count());
            Assert.Equal(coloring[g.Nodes["1"]], coloring[h.Nodes["1"]]);
            Assert.Equal(coloring[g.Nodes["2"]], coloring[h.Nodes["2"]]);
            Assert.Equal(coloring[g.Nodes["3"]], coloring[h.Nodes["3"]]);
        }
Exemplo n.º 3
0
        public void Branching()
        {
            var reader = new DotReader(new StringReader(@"
strict graph {
    1 -- 2 -- 4
    1 -- 3 -- 4
}
strict graph {
    4 -- 2 -- 1
    4 -- 3 -- 1
}"));
            var g      = reader.Read();
            var h      = reader.Read();

            var coloring = ColorRefinement.FindColoring(g, h);

            Assert.Equal(8, coloring.Count);
            Assert.Single(coloring.Values.Distinct());
            Assert.Equal(coloring[g.Nodes["1"]], coloring[h.Nodes["1"]]);
            Assert.Equal(coloring[g.Nodes["2"]], coloring[h.Nodes["2"]]);
            Assert.Equal(coloring[g.Nodes["3"]], coloring[h.Nodes["3"]]);
            Assert.Equal(coloring[g.Nodes["4"]], coloring[h.Nodes["4"]]);
        }