View Javadoc
1   /*
2   * Copyright (c) 2003, The JUNG Authors 
3   *
4   * All rights reserved.
5   *
6   * This software is open-source under the BSD license; see either
7   * "license.txt" or
8   * https://github.com/jrtom/jung/blob/master/LICENSE for a description.
9   */
10  package edu.uci.ics.jung.algorithms.cluster;
11  
12  import java.util.Collection;
13  import java.util.Set;
14  
15  import junit.framework.Assert;
16  import junit.framework.Test;
17  import junit.framework.TestCase;
18  import junit.framework.TestSuite;
19  
20  import com.google.common.base.Supplier;
21  
22  import edu.uci.ics.jung.graph.Graph;
23  import edu.uci.ics.jung.graph.SparseMultigraph;
24  
25  
26  /**
27   * @author Scott White
28   */
29  public class TestEdgeBetweennessClusterer extends TestCase {
30      public static Test suite() {
31          return new TestSuite(TestEdgeBetweennessClusterer.class);
32      }
33      Supplier<Graph<Integer,Number>> graphFactory;
34      Supplier<Integer> vertexFactory;
35      Supplier<Number> edgeFactory;
36  
37      @Override
38      protected void setUp() {
39          graphFactory = new Supplier<Graph<Integer,Number>>() {
40      		public Graph<Integer,Number> get() {
41      			return new SparseMultigraph<Integer,Number>();
42      		}
43      	};
44      	vertexFactory = new Supplier<Integer>() {
45      		int n = 0;
46      		public Integer get() { return n++; }
47      	};
48      	edgeFactory = new Supplier<Number>() {
49      		int n = 0;
50      		public Number get() { return n++; }
51      	};
52  
53      }
54  
55      public void testRanker() {
56      	
57      	Graph<Number,Number> graph = new SparseMultigraph<Number,Number>();
58      	for(int i=0; i<10; i++) {
59      		graph.addVertex(i+1);
60      	}
61      	int j=0;
62      	graph.addEdge(j++,1,2);
63      	graph.addEdge(j++,1,3);
64      	graph.addEdge(j++,2,3);
65      	graph.addEdge(j++,5,6);
66      	graph.addEdge(j++,5,7);
67      	graph.addEdge(j++,6,7);
68      	graph.addEdge(j++,8,10);
69      	graph.addEdge(j++,7,8);
70      	graph.addEdge(j++,7,10);
71      	graph.addEdge(j++,3,4);
72      	graph.addEdge(j++,4,6);
73      	graph.addEdge(j++,4,8);
74  
75          Assert.assertEquals(graph.getVertexCount(),10);
76          Assert.assertEquals(graph.getEdgeCount(),12);
77  
78          EdgeBetweennessClusterer<Number, Number> clusterer = new EdgeBetweennessClusterer<Number, Number>(3);
79          Collection<Set<Number>> clusters = clusterer.apply(graph);
80          
81          Assert.assertEquals(clusters.size(),3);
82      }
83  }