@@ -8,22 +8,22 @@ This document describes the source structure, design patterns, and key component
88GraphVisual/
99├── Gvisual/
1010│ ├── src/
11- │ │ ├── gvisual/ # Visualization + analysis (18 classes)
11+ │ │ ├── gvisual/ # Visualization + analysis (29 classes)
1212│ │ │ ├── Main.java # Swing GUI — graph panel, timeline, controls
1313│ │ │ ├── edge.java # Edge model (type, vertices, weight, label)
1414│ │ │ ├── EdgeType.java # Enum — relationship categories, colors, defaults
1515│ │ │ ├── GraphStats.java # Network metrics (density, degree, hubs)
1616│ │ │ ├── GraphMLExporter.java # GraphML XML export
1717│ │ │ ├── GraphGenerator.java # Synthetic graph topologies
18- │ │ │ └── [12 analyzers — see below]
18+ │ │ │ └── [24 analyzers + utilities — see below]
1919│ │ └── app/ # Data pipeline — DB → edge files
2020│ │ ├── Network.java # SQL → edge-list generation
2121│ │ ├── Util.java # Database connection factory
2222│ │ ├── findMeetings.java # Bluetooth events → meeting extraction
2323│ │ ├── addLocation.java # WiFi-based meeting location classification
2424│ │ └── matchImei.java # Device → IMEI mapping
2525│ ├── test/
26- │ │ ├── gvisual/ # 17 test classes (~650 tests total)
26+ │ │ ├── gvisual/ # 30 test classes (~1200+ tests total)
2727│ │ └── app/ # Pipeline utility tests
2828│ ├── lib/ # JUNG 2.0.1, PostgreSQL JDBC, Java3D, Commons IO
2929│ └── images/ # UI icons (play, pause, stop, legend colors)
@@ -34,7 +34,7 @@ GraphVisual/
3434
3535## Analyzers
3636
37- The analysis engine consists of 12 standalone analyzer classes. Each follows the same pattern:
37+ The analysis engine consists of 24 standalone analyzer and utility classes. Each follows the same pattern:
3838
39391 . Constructor takes a ` Graph<String, edge> ` (JUNG graph)
40402 . Validates input (null check → ` IllegalArgumentException ` )
@@ -46,17 +46,28 @@ The analysis engine consists of 12 standalone analyzer classes. Each follows the
4646| Class | Algorithm | Complexity | Purpose |
4747| -------| -----------| ------------| ---------|
4848| ` ArticulationPointAnalyzer ` | Tarjan's DFS | O(V+E) | Cut vertices and bridges — single points of failure |
49+ | ` BipartiteAnalyzer ` | BFS 2-coloring + Hopcroft-Karp | O(V+E) / O(E√V) | Bipartiteness test, maximum matching, vertex cover, independent set |
4950| ` CliqueAnalyzer ` | Bron-Kerbosch (Tomita pivot) | O(3^(n/3)) | All maximal cliques — fully connected subgroups |
5051| ` CommunityDetector ` | Connected components | O(V+E) | Community detection with size ranking and metrics |
52+ | ` CycleAnalyzer ` | DFS back-edges + BFS girth | O(V+E) | Cycle detection, girth, fundamental cycle basis, bounded enumeration |
5153| ` DegreeDistributionAnalyzer ` | Statistical analysis | O(V) | Degree histogram, power-law fit, network classification |
54+ | ` EulerianPathAnalyzer ` | Hierholzer's algorithm | O(V+E) | Euler path/circuit detection, degree classification, Chinese Postman |
5255| ` GraphColoringAnalyzer ` | Welsh-Powell (greedy) | O(V² + E) | Vertex coloring — chromatic number estimation |
5356| ` GraphDiameterAnalyzer ` | All-pairs BFS | O(V(V+E)) | Diameter, radius, eccentricity, center, periphery |
57+ | ` GraphDiffAnalyzer ` | Set intersection / symmetric diff | O(V+E) | Structural diff of two graphs — added/removed/shared nodes and edges |
58+ | ` GraphIsomorphismAnalyzer ` | Backtracking with degree pruning | O(V!) worst | Graph isomorphism check via vertex mapping enumeration |
59+ | ` GraphResilienceAnalyzer ` | Sequential removal simulation | O(V(V+E)) | Random, degree, and betweenness attack resilience with robustness index |
5460| ` KCoreDecomposition ` | Iterative peeling | O(V+E) | K-core shells — dense subgraph hierarchy |
5561| ` LinkPredictionAnalyzer ` | Common Neighbors / Jaccard / Adamic-Adar | O(V²·d) | Predict missing edges from structural similarity |
5662| ` MinimumSpanningTree ` | Kruskal's + Union-Find | O(E log E) | MST / forest with component analysis |
63+ | ` MotifAnalyzer ` | Subgraph enumeration | O(V^k) | 3/4-node motif detection, census, z-scores, network characterization |
64+ | ` NetworkFlowAnalyzer ` | Edmonds-Karp (BFS augmenting paths) | O(VE²) | Max flow, min cut, flow decomposition into paths |
5765| ` NodeCentralityAnalyzer ` | Brandes + BFS | O(VE) | Degree, betweenness, closeness centrality |
5866| ` PageRankAnalyzer ` | Power iteration | O(k(V+E)) | PageRank scores with convergence control |
67+ | ` RandomWalkAnalyzer ` | Monte Carlo simulation | O(walks × steps) | Random walk statistics, hitting times, stationary distribution |
5968| ` ShortestPathFinder ` | BFS / Dijkstra | O(V+E) / O((V+E) log V) | Shortest paths (unweighted and weighted) |
69+ | ` SpectralAnalyzer ` | Eigenvalue decomposition (Jacobi) | O(V³) | Algebraic connectivity, Fiedler vector, spectral gap, Cheeger bound |
70+ | ` StronglyConnectedComponentsAnalyzer ` | Tarjan's + Kosaraju's | O(V+E) | SCCs, condensation DAG, bridge edges, connectivity queries |
6071| ` TopologicalSortAnalyzer ` | Kahn's + DFS cycle detection | O(V+E) | Topological ordering, cycle detection, critical path |
6172
6273### Utility Classes
@@ -139,7 +150,7 @@ See [DATABASE.md](DATABASE.md) for full schema documentation.
139150
140151## Testing
141152
142- 18 test classes with ~ 670 tests covering all analyzers and security:
153+ 30 test classes with ~ 1200+ tests covering all analyzers and security:
143154
144155| Test Class | Tests | Covers |
145156| ------------| -------| --------|
@@ -194,3 +205,4 @@ cd Gvisual && ant build
194205| PostgreSQL JDBC | 8.3-604 | Database connectivity |
195206| Java3D vecmath | 1.3.1 | 3D math / rendering support |
196207| JUnit | 4.13.2 | Unit testing (test scope) |
208+
0 commit comments