1
2
3
4
5
6
7
8
9
10 package edu.uci.ics.jung.algorithms.importance;
11
12 import java.util.HashSet;
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.DirectedGraph;
23 import edu.uci.ics.jung.graph.DirectedSparseMultigraph;
24
25
26
27
28 public class TestWeightedNIPaths extends TestCase {
29
30 Supplier<String> vertexFactory;
31 Supplier<Number> edgeFactory;
32
33 public static Test suite() {
34 return new TestSuite(TestWeightedNIPaths.class);
35 }
36
37 @Override
38 protected void setUp() {
39 vertexFactory = new Supplier<String>() {
40 char a = 'A';
41 public String get() {
42 return Character.toString(a++);
43 }};
44 edgeFactory = new Supplier<Number>() {
45 int count;
46 public Number get() {
47 return count++;
48 }};
49 }
50
51 public void testRanker() {
52
53 DirectedGraph<String,Number> graph = new DirectedSparseMultigraph<String,Number>();
54 for(int i=0; i<5; i++) {
55 graph.addVertex(vertexFactory.get());
56 }
57
58 graph.addEdge(edgeFactory.get(), "A", "B");
59 graph.addEdge(edgeFactory.get(), "A", "C");
60 graph.addEdge(edgeFactory.get(), "A", "D");
61 graph.addEdge(edgeFactory.get(), "B", "A");
62 graph.addEdge(edgeFactory.get(), "B", "E");
63 graph.addEdge(edgeFactory.get(), "B", "D");
64 graph.addEdge(edgeFactory.get(), "C", "A");
65 graph.addEdge(edgeFactory.get(), "C", "E");
66 graph.addEdge(edgeFactory.get(), "C", "D");
67 graph.addEdge(edgeFactory.get(), "D", "A");
68 graph.addEdge(edgeFactory.get(), "D", "B");
69 graph.addEdge(edgeFactory.get(), "D", "C");
70 graph.addEdge(edgeFactory.get(), "D", "E");
71
72 Set<String> priors = new HashSet<String>();
73 priors.add("A");
74
75 WeightedNIPaths<String,Number> ranker =
76 new WeightedNIPaths<String,Number>(graph, vertexFactory, edgeFactory, 2.0,3,priors);
77 ranker.evaluate();
78
79 Assert.assertEquals(ranker.getRankings().get(0).rankScore,0.277787,.0001);
80 Assert.assertEquals(ranker.getRankings().get(1).rankScore,0.222222,.0001);
81 Assert.assertEquals(ranker.getRankings().get(2).rankScore,0.166676,.0001);
82 Assert.assertEquals(ranker.getRankings().get(3).rankScore,0.166676,.0001);
83 Assert.assertEquals(ranker.getRankings().get(4).rankScore,0.166676,.0001);
84 }
85 }