public void testCycle() {
   Node a = new Node("a");
   Node b = new Node("b");
   Node c = new Node("c");
   Node d = new Node("d");
   Node e = new Node("e");
   Node o = new Node("o");
   d.setFollows(c, b);
   a.setPrecedes(b);
   d.setPrecedes(e, a);
   e.setFollows(b);
   TopologicalSort<Node> ts = new TopologicalSort(a, b, c, d, e, o);
   assertTrue(ts.isCyclic());
 }
 public void testSort() {
   Node a = new Node("a");
   Node b = new Node("b");
   Node c = new Node("c");
   Node d = new Node("d");
   Node e = new Node("e");
   Node o = new Node("o");
   d.setFollows(c, b);
   a.setPrecedes(b);
   d.setPrecedes(e);
   e.setFollows(b);
   TopologicalSort<Node> ts = new TopologicalSort(a, b, c, d, e, o);
   String order = ts.evaluationOrder().toString();
   assertTrue(order.equals("[o, c, a, b, d, e]") || order.equals("[o, a, c, b, d, e]"));
 }