Beispiel #1
0
 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 = []
Beispiel #2
0
    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]))
Beispiel #3
0
    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")
Beispiel #4
0
 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')
Beispiel #5
0
    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]))
Beispiel #6
0
    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"])
Beispiel #7
0
    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() ] )\
        )
Beispiel #8
0
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
Beispiel #9
0
def generateGraph(input):
    return Dag(generateNodes(input))
Beispiel #10
0
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,