CouplingAnalyzer

Lakos-style system-wide coupling metrics and the strongly-connected-component partition that underpins them. All computation is over main (non-test) edges only, consistent with the rest of GraphAnalyzer. Pure functions - no I/O, no mutation of the input.

Functions

Link copied to clipboard

Partitions the graph into strongly connected components over main (non-test) edges using an iterative Tarjan's algorithm - safe on graphs deep enough to blow a recursive call stack. Each returned list is one component; a component of size >= 2 is a dependency cycle. Single module components (the common case) are acyclic. Self-loops are ignored.

Link copied to clipboard

Lakos-style system-wide coupling metrics, computed over main (non-test) edges only.