Exemple #1
0
    def test_clone__case_diamond(self):
        dag = DepDag()
        dag.new_vertex('a', 'payload-a')
        dag.new_vertex('b', 'payload-b')
        dag.new_vertex('c', 'payload-c')
        dag.new_vertex('d', 'payload-d')
        dag.new_vertex('e', 'payload-e')
        dag.new_vertex('f', 'payload-f')
        dag.a.depends_on('b')
        dag.b.depends_on('c', 'd')
        dag.c.depends_on('e')
        dag.d.depends_on('e')
        dag.e.depends_on('f')
        new_dag = dag.clone()

        self.assertEqual([new_dag.b], list(new_dag.a.direct_supporters()))
        self.assertEqual([new_dag.c, new_dag.d], list(new_dag.b.direct_supporters()))
        self.assertEqual([new_dag.e], list(new_dag.c.direct_supporters()))
        self.assertEqual([new_dag.e], list(new_dag.d.direct_supporters()))
        self.assertEqual([new_dag.f], list(new_dag.e.direct_supporters()))

        self.assertEqual('payload-a', new_dag.a.payload)
        self.assertEqual('payload-b', new_dag.b.payload)
        self.assertEqual('payload-c', new_dag.c.payload)
        self.assertEqual('payload-d', new_dag.d.payload)
        self.assertEqual('payload-e', new_dag.e.payload)
        self.assertEqual('payload-f', new_dag.f.payload)
Exemple #2
0
    def test_clone__case_simple(self):
        dag = DepDag()
        dag.new_vertex('a', 'payload-a')
        dag.new_vertex('b', 'payload-b')
        dag.new_vertex('c', 'payload-c')
        dag.a.depends_on('b')
        dag.b.depends_on('c')
        new_dag = dag.clone()

        self.assertEqual('payload-a', new_dag.a.payload)
        self.assertEqual('payload-b', new_dag.b.payload)
        self.assertEqual('payload-c', new_dag.c.payload)
        self.assertEqual([new_dag.b], list(new_dag.a.direct_supporters()))
        self.assertEqual([new_dag.c], list(new_dag.b.direct_supporters()))
Exemple #3
0
    def test_clone__cyclic(self):
        dag = DepDag()
        dag.new_vertex('a', 'payload-a')
        dag.new_vertex('b', 'payload-b')
        dag.new_vertex('c', 'payload-c')
        dag.new_vertex('d', 'payload-d')
        dag.a.depends_on('b')
        dag.b.depends_on('c')
        dag.c.depends_on('d')
        dag.d.depends_on('a')
        self.assertTrue(dag.is_cyclic())

        new_dag = dag.clone()
        self.assertEqual([new_dag.b], list(new_dag.a.direct_supporters()))
        self.assertEqual([new_dag.c], list(new_dag.b.direct_supporters()))
        self.assertEqual([new_dag.d], list(new_dag.c.direct_supporters()))
        self.assertEqual([new_dag.a], list(new_dag.d.direct_supporters()))
        self.assertEqual('payload-a', new_dag.a.payload)
        self.assertEqual('payload-b', new_dag.b.payload)
        self.assertEqual('payload-c', new_dag.c.payload)
        self.assertEqual('payload-d', new_dag.d.payload)
        self.assertTrue(new_dag.is_cyclic())