proof_engine/graph/
mod.rs1pub mod graph_core;
2pub mod layout;
3pub mod community;
4pub mod pathfinding;
5pub mod flow;
6pub mod generators;
7pub mod partition;
8pub mod dynamics;
9pub mod hypergraph;
10pub mod level_gen;
11pub mod neural_viz;
12
13pub use graph_core::{
14 Graph, GraphKind, NodeId, EdgeId, NodeData, EdgeData,
15 AdjacencyMatrix, EdgeList,
16};
17pub use layout::{LayoutAlgorithm, LayoutConfig, compute_layout, ForceDirectedLayout};
18pub use community::{Community, CommunityResult, louvain, label_propagation, modularity};
19pub use pathfinding::{dijkstra, astar, bellman_ford, all_pairs_shortest, Path, PathVisualizer};
20pub use flow::{FlowNetwork, FlowResult, ford_fulkerson, FlowVisualizer};
21pub use generators::{
22 watts_strogatz, barabasi_albert, erdos_renyi,
23 complete_graph, cycle_graph, path_graph, star_graph,
24 grid_graph, binary_tree, petersen_graph, complete_bipartite,
25};
26pub use partition::{spectral_partition, kernighan_lin, recursive_bisection, partition_quality};
27pub use dynamics::{GraphAnimator, AnimationState};
28pub use hypergraph::{Hypergraph, HyperedgeId};
29pub use level_gen::{LevelGraph, RoomNode, generate_dungeon, corridor_path};
30pub use neural_viz::{NeuralNetGraph, NeuronNode, SynapseEdge, build_feedforward};
31
32#[cfg(test)]
33mod tests {
34 use super::*;
35
36 #[test]
37 fn module_imports_work() {
38 let g: Graph<(), ()> = Graph::new(GraphKind::Undirected);
39 assert_eq!(g.node_count(), 0);
40 }
41
42 #[test]
43 fn all_submodules_accessible() {
44 let _id = NodeId(0);
45 let _eid = EdgeId(0);
46 let _hid = HyperedgeId(0);
47 }
48}