protected void checkTotal() throws SorterException {
		// This is probably not the most efficient, but this should only be once per message type
		DijkstraShortestPathsAlgorithm<V, E> dijkstra =
			new DijkstraShortestPathsAlgorithm<>(graph, GEdgeWeightMetric.unitMetric());
		for (V v1 : graph.getVertices()) {
			for (V v2 : graph.getVertices()) { // Maybe look into spliterator? to avoid double check
				Double distF = dijkstra.getDistancesFromSource(v1).get(v2);
				Double distR = dijkstra.getDistancesFromSource(v2).get(v1);
				if (distF == null && distR == null) {
					throw new SorterException("Not a total order", v1, v2);
				}
			}
		}
	}
Check that the solution is unique

@throws SorterException if the solution is not unique
Ghidra/Debug/ProposedUtils/src/main/java/ghidra/graph/algo/TopologicalSorter.java