Пример #1
0
 def test_is_cyclic__negative__one_vertex(self):
     dag = DepDag()
     vert = dag.vertices
     vert.create('a')
     self.assertEqual(1, len(vert))
     self.assertFalse(dag.is_cyclic())
Пример #2
0
 def test_is_cyclic__negative_three_vertices(self):
     dag = DepDag()
     vert = dag.vertices
     vert.a.depends_on('b')
     vert.b.depends_on('c')
     self.assertFalse(dag.is_cyclic())
Пример #3
0
 def test_is_cyclic__negative__empty_dag(self):
     dag = DepDag()
     self.assertFalse(dag.is_cyclic())
Пример #4
0
 def test_is_cyclic__positive_three_vertices(self):
     dag = DepDag()
     dag.a.depends_on('b')
     dag.b.depends_on('c')
     dag.c.depends_on('a')
     self.assertTrue(dag.is_cyclic())
Пример #5
0
 def test_is_cyclic__positive__one_vertex(self):
     dag = DepDag()
     dag.a.depends_on('a')
     self.assertTrue(dag.is_cyclic())
Пример #6
0
 def test_is_cyclic__negative__one_vertex(self):
     dag = DepDag()
     dag.new_vertex('a')
     self.assertEqual(1, len(dag))
     self.assertFalse(dag.is_cyclic())
Пример #7
0
    def test_case_2(self):
        dag = DepDag()
        dag.a.depends_on('b')
        dag.b.depends_on('c')
        dag.c.depends_on('d')
        dag.d.depends_on('e', 'f')
        dag.g.depends_on('b')
        dag.h.depends_on('g')
        dag.i.depends_on('d')
        for v in [dag.a, dag.b, dag.c, dag.d, dag.e, dag.f, dag.g, dag.h, dag.i]:
            self.assertFalse(v.has_payload())
            self.assertFalse(v.is_resolved())

        self.assertFalse(dag.is_cyclic())

        dag.d.payload = 'some_payload'
        dag.e.payload = 'some_payload'
        dag.g.payload = 'some_payload'
        self.assertFalse(dag.a.has_payload())
        self.assertFalse(dag.a.is_resolved())
        self.assertFalse(dag.b.has_payload())
        self.assertFalse(dag.b.is_resolved())
        self.assertFalse(dag.c.has_payload())
        self.assertFalse(dag.c.is_resolved())
        self.assertTrue(dag.d.has_payload())
        self.assertFalse(dag.d.is_resolved())
        self.assertTrue(dag.e.has_payload())
        self.assertTrue(dag.e.is_resolved())
        self.assertFalse(dag.f.has_payload())
        self.assertFalse(dag.f.is_resolved())
        self.assertTrue(dag.g.has_payload())
        self.assertFalse(dag.g.is_resolved())
        self.assertFalse(dag.h.has_payload())
        self.assertFalse(dag.h.is_resolved())
        self.assertFalse(dag.i.has_payload())
        self.assertFalse(dag.i.is_resolved())

        dag.b.payload = 'some_payload'
        dag.c.payload = 'some_payload'
        dag.f.payload = 'some_payload'
        self.assertFalse(dag.a.has_payload())
        self.assertFalse(dag.a.is_resolved())
        self.assertTrue(dag.b.has_payload())
        self.assertTrue(dag.b.is_resolved())
        self.assertTrue(dag.c.has_payload())
        self.assertTrue(dag.c.is_resolved())
        self.assertTrue(dag.d.has_payload())
        self.assertTrue(dag.d.is_resolved())
        self.assertTrue(dag.e.has_payload())
        self.assertTrue(dag.e.is_resolved())
        self.assertTrue(dag.f.has_payload())
        self.assertTrue(dag.f.is_resolved())
        self.assertTrue(dag.g.has_payload())
        self.assertTrue(dag.g.is_resolved())
        self.assertFalse(dag.h.has_payload())
        self.assertFalse(dag.h.is_resolved())
        self.assertFalse(dag.i.has_payload())
        self.assertFalse(dag.i.is_resolved())

        dag.a.payload = 'some_payload'
        dag.h.payload = 'some_payload'
        dag.i.payload = 'some_payload'
        self.assertTrue(dag.a.has_payload())
        self.assertTrue(dag.a.is_resolved())
        self.assertTrue(dag.b.has_payload())
        self.assertTrue(dag.b.is_resolved())
        self.assertTrue(dag.c.has_payload())
        self.assertTrue(dag.c.is_resolved())
        self.assertTrue(dag.d.has_payload())
        self.assertTrue(dag.d.is_resolved())
        self.assertTrue(dag.e.has_payload())
        self.assertTrue(dag.e.is_resolved())
        self.assertTrue(dag.f.has_payload())
        self.assertTrue(dag.f.is_resolved())
        self.assertTrue(dag.g.has_payload())
        self.assertTrue(dag.g.is_resolved())
        self.assertTrue(dag.h.has_payload())
        self.assertTrue(dag.h.is_resolved())
        self.assertTrue(dag.i.has_payload())
        self.assertTrue(dag.i.is_resolved())