def test_do_not_find_unconnected_element(self): """ Does an unconnected node remain unexplored? """ # Adjacency List of graph G G = {} G[0] = [1, 2] G[1] = [3] G[2] = [4] G[3] = [4, 5] G[4] = [5] G[5] = [] G[6] = [7] G[7] = [] # Start node s = 0 currentLabel = len(G.keys()) recursiveExp = dict.fromkeys(G.keys(), 0) nodeOrder = dict.fromkeys(G.keys()) exploredList, nodeOrder, currentLabel = DFS.DFSRecursive2( G, s, recursiveExp, nodeOrder, currentLabel) expExploredList = { 0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 0, 7: 0 } # i.e. 6 & 7 # unexplored nodeOrderExp = {0: 3, 1: 5, 2: 4, 3: 6, 4: 7, 5: 8, 6: None, 7: None} self.assertEqual(expExploredList, exploredList) self.assertEqual(nodeOrderExp, nodeOrder)
def test_find_connected_elements(self): """ Is a connected node explored? """ # Adjacency List of graph G G = {} G[0] = [1, 2] G[1] = [3] G[2] = [4] G[3] = [4, 5] G[4] = [5] G[5] = [] # Start node s = 0 currentLabel = len(G.keys()) recursiveExp = dict.fromkeys(G.keys(), 0) nodeOrder = dict.fromkeys(G.keys()) exploredList, nodeOrder, currentLabel = DFS.DFSRecursive2( G, s, recursiveExp, nodeOrder, currentLabel) expExploredList = { 0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1 } # i.e. all explored nodeOrderExp = {0: 1, 1: 3, 2: 2, 3: 4, 4: 5, 5: 6} self.assertEqual(expExploredList, exploredList) self.assertEqual(nodeOrderExp, nodeOrder)