It looks to me like the test case you want to use for find-islands
needs to include all the nodes of interest in the nodes argument.
So you would call
(find-islands ‘(25 6 4 17 20 3) test-edge-list)
Otherwise, it simply doesn’t look for anything containing
nodes 20 or 3. One way to see this is to walk through the
(find-island ‘(25 6))
that is, the inner function defined with labels.
The local variable connected will get everything connected
to node 25 (which is the car of nodes). Then unconnected
is the set-difference of the original nodes list and connected,
which is empty, because the test only asked it to look for
nodes 25 and 6.
Hope this helps.