1 25 39 package org.jgrapht.alg; 40 41 import java.util.*; 42 43 import junit.framework.*; 44 45 import org.jgrapht.graph.*; 46 47 48 53 public class NeighborIndexTest 54 extends TestCase 55 { 56 57 59 private static final String V1 = "v1"; 60 private static final String V2 = "v2"; 61 private static final String V3 = "v3"; 62 63 65 public void testNeighborSet() 66 { 67 ListenableUndirectedGraph<String , DefaultEdge> g = 68 new ListenableUndirectedGraph<String , DefaultEdge>( 69 DefaultEdge.class); 70 g.addVertex(V1); 71 g.addVertex(V2); 72 73 g.addEdge(V1, V2); 74 75 NeighborIndex<String , DefaultEdge> index = 76 new NeighborIndex<String , DefaultEdge>(g); 77 g.addGraphListener(index); 78 79 Set neighbors = index.neighborsOf(V1); 80 81 assertEquals(1, neighbors.size()); 82 assertEquals(true, neighbors.contains(V2)); 83 84 g.addVertex(V3); 85 g.addEdge(V3, V1); 86 87 assertEquals(2, neighbors.size()); 88 assertEquals(true, neighbors.contains(V3)); 89 90 g.removeEdge(V3, V1); 91 92 assertEquals(1, neighbors.size()); 93 assertEquals(false, neighbors.contains(V3)); 94 95 g.removeVertex(V2); 96 97 assertEquals(0, neighbors.size()); 98 } 99 100 public void testDirectedNeighborSet() 101 { 102 ListenableDirectedGraph<String , DefaultEdge> g = 103 new ListenableDirectedGraph<String , DefaultEdge>( 104 DefaultEdge.class); 105 g.addVertex(V1); 106 g.addVertex(V2); 107 108 g.addEdge(V1, V2); 109 110 DirectedNeighborIndex<String , DefaultEdge> index = 111 new DirectedNeighborIndex<String , DefaultEdge>(g); 112 g.addGraphListener(index); 113 114 Set p = index.predecessorsOf(V1); 115 Set s = index.successorsOf(V1); 116 117 assertEquals(0, p.size()); 118 assertEquals(1, s.size()); 119 assertEquals(true, s.contains(V2)); 120 121 g.addVertex(V3); 122 g.addEdge(V3, V1); 123 124 assertEquals(1, p.size()); 125 assertEquals(1, s.size()); 126 assertEquals(true, p.contains(V3)); 127 128 g.removeEdge(V3, V1); 129 130 assertEquals(0, p.size()); 131 132 g.removeVertex(V2); 133 134 assertEquals(0, s.size()); 135 } 136 } 137 | Popular Tags |