@Test
	public void testImplicit() {
		DijkstraShortestPathsAlgorithm<Integer, CollatzEdge> dijkstra =
			new DijkstraShortestPathsAlgorithm<>(new CollatzGraph(), 10d,
				GEdgeWeightMetric.unitMetric());
		Collection<Deque<CollatzEdge>> opt = dijkstra.computeOptimalPaths(1, 10);
		Collection<Deque<CollatzEdge>> exp = makeCollatzPaths(1, //
			new CollatzOp[] { CollatzOp.INV_DIV2, CollatzOp.INV_DIV2, CollatzOp.SQR,
				CollatzOp.INV_MUL3_ADD1, CollatzOp.INV_DIV2 }, //
			new CollatzOp[] { CollatzOp.INV_DIV2, CollatzOp.SQR, CollatzOp.SQR,
				CollatzOp.INV_MUL3_ADD1, CollatzOp.INV_DIV2 });
		assertEquals(exp, opt);
	}
A silly infinite graph based loosely on the Collatz conjecture
Ghidra/Framework/Graph/src/test/java/ghidra/graph/DijkstraShortestPathsAlgorithmTest.java