def test_size_10_graph(self):
        graph = Graph(10)

        self.add_rays(graph)

        colors_1 = self.heuristics.color_graph(graph)
        colors_2 = self.exact.get_colors_by_graph(graph)

        self.assertEqual(10, len(colors_1))
        self.assertEqual(2, len(set(colors_1.values())))

        self.assertEqual(10, len(colors_2))
        self.assertEqual(2, len(set(colors_2)))

        self.add_circuit(graph)

        self.exact = Exact({})
        colors_1 = self.heuristics.color_graph(graph)
        colors_2 = self.exact.get_colors_by_graph(graph)

        self.assertEqual(10, len(colors_1))
        self.assertEqual(3, len(set(colors_1.values())))

        self.assertEqual(10, len(colors_2))
        self.assertEqual(3, len(set(colors_2)))
Exemple #2
0
def main():
    if len(sys.argv) != 3:
        print_usage()
        return
    shape_file_path = sys.argv[1]
    out_file_path = sys.argv[2]

    print "Loading countries..."
    countries = load_countries(shape_file_path)
    print str.format("Loaded {0} countries", len(countries))

    print "Building graph..."
    graph = graph_builder.Builder.build_country_graph_from_countries(countries)
    print str.format("Loaded graph of {0} vertices", graph.get_vertices_count())

    print "Coloring graph..."
    if len(countries) < 15:
        print "Using exact algorithm"
        colors_map = Exact.Exact().get_colors_by_graph(graph)
    else:
        print "Using approximation algorithm"
        colors_map = Heuristics.Heurstics().color_graph(graph)

    print "Dumping results..."
    Serializer.Serializer.dump_to_file(countries, colors_map, out_file_path)
 def setUp(self):
     self.heuristics = Heurstics
     self.exact = Exact({})
Exemple #4
0
 def setUp(self):
     self.exact = Exact.Exact({})