/// <summary> /// Saves given <paramref name="coloring"/> into <paramref name="writer"/> in TGF-like text representation. /// The color of each vertex is saved as a second number, after vertex id. So a vertex with id=1, label=sth /// colored with number 132 will be saved in TGF vertex list as "1 132 sth". /// </summary> /// <param name="writer">Writer to save coloring to.</param> /// <param name="graph">Coloring to be saved.</param> public static void WriteColoringAsTgf(this TextWriter writer, GraphColoring coloring) { var graph = coloring.Graph; foreach (var vertex in graph.Vertices) { writer.WriteLine($"{vertex.Id} {coloring[vertex]} {vertex.Label}"); } writer.WriteLine("#"); foreach (var edge in graph.Edges) { writer.WriteLine(edge.ToString()); } }
/// <summary> /// Calculates count of unique colors used in <paramref name="coloring"/>. /// </summary> /// <param name="coloring">Coloring to count colors in.</param> /// <returns>Count of unique colors.</returns> public static int ColorsUsed(this GraphColoring coloring) { return(coloring.VertexColors.Values.Distinct().Count()); }