public void testRandomized() { Graph g = new PrimaryGraph(); Node root1 = Generators.createRandomTree(g, 10, Direction.OUT); Node root2 = Generators.createRandomTree(g, 10, Direction.IN); Clusterer cc = Clusterers.connectedComponents(g); assertEquals(2, cc.getClusters().size()); g.newEdge(root1, root2); cc = Clusterers.connectedComponents(g); assertEquals(1, cc.getClusters().size()); }
public void test() { Graph g = new PrimaryGraph(); Node[] n = g.newNodes(0, 1, 2, 3, 4, 5, 6, 7, 8); g.newEdge(n[0], n[1]); g.newEdge(n[1], n[2]); g.newEdge(n[2], n[1]); g.newEdge(n[3], n[4]); g.newEdge(n[4], n[5]); g.newEdge(n[5], n[3]); g.newEdge(n[7], n[6]); g.newEdge(n[8], n[7]); Clusterer scc = Clusterers.stronglyConnectedComponents(g); assertEquals(6, scc.getClusters().size()); Set<Set<Node>> clusters = new HashSet<Set<Node>>(); for (Object c : scc.getClusters()) { clusters.add(new HashSet<Node>(scc.getCluster(c))); } assertTrue(clusters.contains(new HashSet<Node>(Arrays.asList(n[1], n[2])))); assertTrue(clusters.contains(new HashSet<Node>(Arrays.asList(n[0])))); assertTrue(clusters.contains(new HashSet<Node>(Arrays.asList(n[3], n[4], n[5])))); assertTrue(clusters.contains(new HashSet<Node>(Arrays.asList(n[6])))); assertTrue(clusters.contains(new HashSet<Node>(Arrays.asList(n[7])))); }
public void test() { Graph g1 = new PrimaryGraph(); Node[] n1 = g1.newNodes(2); g1.newEdge(n1[0], n1[1]); Graph g2 = new PrimaryGraph(); Node[] n2 = g2.newNodes(2); g2.newEdge(n2[0], n2[1]); SecondaryGraph sg = new SecondaryGraph(); sg.adoptGraph(g1); sg.adoptGraph(g2); Clusterer cc = Clusterers.connectedComponents(sg); Collection<Object> components = cc.getClusters(); assertEquals(2, components.size()); Iterator<Object> iterator = components.iterator(); Object c1 = iterator.next(); Object c2 = iterator.next(); assertTrue(c1 != c2); assertTrue(components.contains(c1)); assertTrue(components.contains(c2)); Collection<Node> comp1 = cc.getCluster(c1); assertTrue(comp1.containsAll(Arrays.asList(n1))); Collection<Node> comp2 = cc.getCluster(c2); assertTrue(comp2.containsAll(Arrays.asList(n2))); assertTrue(cc.getCluster(c1).contains(n1[0])); assertTrue(cc.getCluster(c2).contains(n2[0])); }