def __init__(self): self.dagen = { 2: Dag('2'), 3: Dag('3 '), 4: Dag('4'), 5: Dag('5'), 6: Dag('6'), 7: Dag('7'), 8: Dag('8'), 9: Dag('9'), 10: Dag('10'), 11: Dag('11'), } self.personen = []
def test_one_node_twice(self): dag = Dag() # filename_1_1 # filename_2_1 # filename_1_1 # filename_3_1 filename_1_1 = DagNode("filename_1_1") filename_2_1 = DagNode("filename_2_1") filename_3_1 = DagNode("filename_3_1") dag.add(1, "filename_1_1") dag.add(2, "filename_2_1") dag.add(3, "filename_1_1") dag.add(4, "filename_3_1") self.assertEqual( dag.get("filename_1_1").getChildren(), set([filename_2_1, filename_3_1])) self.assertEqual( dag.get("filename_1_1").getParents(), set([dag.getRoot()])) self.assertEqual(dag.get("filename_2_1").getChildren(), set()) self.assertEqual( dag.get("filename_2_1").getParents(), set([filename_1_1])) self.assertEqual(dag.get("filename_3_1").getChildren(), set()) self.assertEqual( dag.get("filename_3_1").getParents(), set([filename_1_1]))
def test_add_raise(self): dag = Dag() self.assertRaises(Exception, dag.add, -1, "filename") self.assertRaises(Exception, dag.add, 2, "filename") self.assertRaises(Exception, dag.add, 3, "filename") dag.add(1, "filename") self.assertRaises(Exception, dag.add, 3, "filename") self.assertRaises(Exception, dag.add, 4, "filename")
def scheduler(self): self._refresh_once_() while True: for dag_row in self.dags: succ = dag_info.update_dag_status_and_starttime(dag_row) if not succ: continue dag = Dag(dag_row) dag.daemon = True dag.start() logger.info('Start refresh once') time.sleep(self.refresh_interval) self._refresh_once_() logger.info('Success refresh once')
def test_add_3(self): dag = Dag() # filename_1_1 # filename_2_1 # filename_3_1 # filename_2_2 # filename_3_1 filename_1_1 = DagNode("filename_1_1") filename_2_1 = DagNode("filename_2_1") filename_3_1 = DagNode("filename_3_1") filename_2_2 = DagNode("filename_2_2") dag.add(1, "filename_1_1") dag.add(2, "filename_2_1") dag.add(3, "filename_3_1") dag.add(2, "filename_2_2") dag.add(3, "filename_3_1") self.assertEqual(dag.getRoot().getChildren(), set([filename_1_1])) self.assertEqual( dag.get("filename_1_1").getChildren(), set([filename_2_1, filename_2_2])) self.assertEqual( dag.get("filename_1_1").getParents(), set([dag.getRoot()])) self.assertEqual( dag.get("filename_2_1").getChildren(), set([ filename_3_1, ])) self.assertEqual( dag.get("filename_2_1").getParents(), set([filename_1_1])) self.assertEqual( dag.get("filename_2_2").getChildren(), set([ filename_3_1, ])) self.assertEqual( dag.get("filename_2_2").getParents(), set([filename_1_1])) self.assertEqual(dag.get("filename_3_1").getChildren(), set()) self.assertEqual( dag.get("filename_3_1").getParents(), set([filename_2_1, filename_2_2]))
def test_1(self): dag = Dag() # . a # . b # . c self._a = dag.add(1, "a") self._b = dag.add(1, "b") self._c = dag.add(1, "c") tSorter = TopologicalSorter(dag) self.assertEqual(self._a.getColor(), DfsNode.White) self.assertEqual(self._b.getColor(), DfsNode.White) self.assertEqual(self._c.getColor(), DfsNode.White) self.assertEqual([i.getData() for i in tSorter.getNodes()], ["b", "c", "a"])
def test_add_2(self): dag = Dag() # filename_1_1 # filename_2_1 # filename_leaf # filename_leaf filename_1_1 = DagNode("filename_1_1") filename_2_1 = DagNode("filename_2_1") filename_leaf = DagNode("filename_leaf") dag.add(1, "filename_1_1") dag.add(2, "filename_2_1") dag.add(3, "filename_leaf") dag.add(1, "filename_leaf") self.assertEqual(dag.getRoot().getChildren(), set([filename_1_1, filename_leaf])) self.assertEqual( dag.get("filename_1_1").getChildren(), set([filename_2_1])) self.assertEqual( dag.get("filename_1_1").getParents(), set([dag.getRoot()])) self.assertEqual( dag.get("filename_2_1").getChildren(), set([ filename_leaf, ])) self.assertEqual( dag.get("filename_2_1").getParents(), set([filename_1_1])) self.assertEqual(dag.get("filename_leaf").getChildren(), set()) self.assertEqual( \ dag.get( "filename_leaf" ).getParents()\ , set( [ filename_2_1, dag.getRoot() ] )\ )
import random from dag import Dag #Create a random graph n_nodes = 10 n_edges = 20 randseed = 18 graph_is_dag = True dag1 = Dag() random.seed(randseed) for i in range(n_nodes): dag1.add_node(i) for i in range(n_edges): node1 = random.randint(0,n_nodes-1) node2 = random.randint(0,n_nodes-1) dag1.add_edge(node1, node2) if graph_is_dag: while not dag1.validate(): node1 = random.randint(0,n_nodes-1) node2 = random.randint(0,n_nodes-1) dag1.add_edge(node1, node2) # remove an edge between two nodes that are known to be connected print dag1.graph print dag1.graph
def generateGraph(input): return Dag(generateNodes(input))
for sheet in sheets: uge = [] ugenr = sheet.title #mandag shifttakers = [] for y in range(5, 100): vagt = sheet['I' + str(y)].value if vagt != None: navn = sheet['A' + str(y)].value nr = sheet['H' + str(y)].value if nr != None: shifttakers.append(ShiftTaker(navn, vagt, nr)) mandag = Dag(ugenr, sheet['I1'].value, sheet['I2'].value, sheet['I3'].value) mandag.shifttakers = shiftSorter(shifttakers) uge.append(mandag) #tirsdag shifttakers = [] for y in range(5, 100): vagt = sheet['J' + str(y)].value if vagt != None: navn = sheet['A' + str(y)].value nr = sheet['H' + str(y)].value if nr != None: shifttakers.append(ShiftTaker(navn, vagt, nr)) tirsdag = Dag(ugenr, sheet['J1'].value, sheet['J2'].value,