From 2a5d1f2a8a08b5fda84ac9b95bb578c048dd74be Mon Sep 17 00:00:00 2001 From: Ari Trachtenberg Date: Tue, 5 Mar 2024 20:56:07 -0500 Subject: [PATCH] Added Graph Color tester --- .../bu/ec504/hw2/p1/GraphColorerTester.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/edu/bu/ec504/hw2/p1/GraphColorerTester.java diff --git a/src/edu/bu/ec504/hw2/p1/GraphColorerTester.java b/src/edu/bu/ec504/hw2/p1/GraphColorerTester.java new file mode 100644 index 0000000..579db5f --- /dev/null +++ b/src/edu/bu/ec504/hw2/p1/GraphColorerTester.java @@ -0,0 +1,51 @@ +package edu.bu.ec504.hw2.p1; + +import edu.bu.ec504.hw2.p1.edges.UndirectedEdge; +import edu.bu.ec504.hw2.p1.graphs.EdgeListGraph; +import edu.bu.ec504.hw2.p1.graphs.Graph; +import edu.bu.ec504.hw2.p1.support.Color; +import edu.bu.ec504.hw2.p1.vertices.ColoredVertex; + +import static edu.bu.ec504.hw2.p1.GraphColorer.color; + +public class GraphColorerTester { + + public static void main(String[] args) { + Graph> G = new EdgeListGraph>(); + + // Build a K_{3,3} + ColoredVertex[] partA = { + ColoredVertex.of(Color.first()), + ColoredVertex.of(Color.first()), + ColoredVertex.of(Color.first()), + }; + ColoredVertex[] partB = { + ColoredVertex.of(Color.first()), + ColoredVertex.of(Color.first()), + ColoredVertex.of(Color.first()), + }; + + // build the graph + // ... vertices + for (ColoredVertex v : partA) { + G.addVertex(v); + } + for (ColoredVertex v : partB) { + G.addVertex(v); + } + // ... edges + for (ColoredVertex v : partA) + for (ColoredVertex w : partB) { + G.addEdge(UndirectedEdge.of(v,w)); + } + + // color it + int col = color(G); + System.out.println("Colored with: "+col+" colors."); + System.out.println(G); + + if (col!=2) { + throw new RuntimeException("Coloring is wrong - should be 2 but got "+col); + } + } +} -- GitLab