package ch.akuhn.graph2; import static org.junit.Assert.assertEquals; import java.util.Scanner; import org.junit.Test; public class Edge implements Comparable<Edge> { public static Edge[] parse(String s) { Scanner in = new Scanner(s); in.nextInt(); // unused int M = in.nextInt(); Edge[] edges = new Edge[M]; for (int m = 0; m < M; m++) { int a = in.nextInt() - 1; int b = in.nextInt() - 1; int c = in.nextInt(); edges[m] = new Edge(a, b, c); } return edges; } int a, b; int cost; public Edge(int a, int b, int cost) { super(); this.a = a; this.b = b; this.cost = cost; } @Override public int compareTo(Edge that) { return this.cost - that.cost; } @Override public String toString() { return String.format("cost(%d,%d) = %d", a, b, cost); } public static class Examples { @Test public void shouldParseFromString() { String s = "6 7\n1 2 20\n1 3 5\n1 4 10\n2 3 8\n2 4 15\n3 4 2\n5 6 9"; Edge[] edges = Edge.parse(s); assertEquals(7, edges.length); } } }