1 package edu.uci.ics.jung.algorithms.filters.impl;
2
3
4
5
6
7 import junit.framework.Test;
8 import junit.framework.TestCase;
9 import junit.framework.TestSuite;
10 import edu.uci.ics.jung.algorithms.filters.Filter;
11 import edu.uci.ics.jung.algorithms.filters.KNeighborhoodFilter;
12 import edu.uci.ics.jung.algorithms.filters.KNeighborhoodFilter.EdgeType;
13 import edu.uci.ics.jung.graph.DirectedGraph;
14 import edu.uci.ics.jung.graph.DirectedSparseMultigraph;
15 import edu.uci.ics.jung.graph.Graph;
16
17
18 public class TestKNeighborhoodFilter extends TestCase {
19
20 DirectedGraph<Number,Number> graph;
21
22 public static Test suite() {
23 return new TestSuite(TestKNeighborhoodFilter.class);
24 }
25
26 @Override
27 protected void setUp() {
28 graph = new DirectedSparseMultigraph<Number,Number>();
29 for(int i=0; i<7; i++) {
30 graph.addVertex(i);
31 }
32 int j=0;
33 graph.addEdge(j++, 0, 1);
34 graph.addEdge(j++, 0, 2);
35 graph.addEdge(j++, 2, 3);
36 graph.addEdge(j++, 2, 4);
37 graph.addEdge(j++, 3, 5);
38 graph.addEdge(j++, 5, 6);
39 graph.addEdge(j++, 5, 0);
40 graph.addEdge(j++, 3, 0);
41 graph.addEdge(j++, 6, 7);
42 }
43
44 public void testIn() {
45 Filter<Number,Number> filter = new KNeighborhoodFilter<Number,Number>(0, 2, EdgeType.IN);
46 Graph<Number,Number> result = filter.apply(graph);
47 assertEquals(result.getVertexCount(), 4);
48 assertEquals(result.getEdgeCount(), 5);
49 }
50 public void testOut() {
51 Filter<Number,Number> filter = new KNeighborhoodFilter<Number,Number>(0, 2, EdgeType.OUT);
52 Graph<Number,Number> result = filter.apply(graph);
53 assertEquals(result.getVertexCount(), 5);
54 assertEquals(result.getEdgeCount(), 5);
55 }
56 public void testInOut() {
57 Filter<Number,Number> filter = new KNeighborhoodFilter<Number,Number>(0, 2, EdgeType.IN_OUT);
58 Graph<Number,Number> result = filter.apply(graph);
59 assertEquals(result.getVertexCount(), 7);
60 assertEquals(result.getEdgeCount(), 8);
61 }
62 }