For each valid (src_node, dest_node) move in the DAG, performs move. Then compares the starting DAG to the resulting SPR DAG, to assert that SPR DAG is valid:
Checks for nodes that should collapse (if the src_node's parent only has one remaining child after move and has a single parent).
Checks that src_node and dest_node have same set of parents.
Checks that all of these parents are either from the DAG's dest_parents, a collapsed node (since collapsed node ids can be reappropriated), or a new node.
Checks that all node's children are also that child's parent.
Checks that all nodes that are not the src_node, dest_node, parents of these, or collapsed nodes have the same connections as starting DAG.
Adds unit test which: