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())
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())
def test_is_cyclic__negative__empty_dag(self): dag = DepDag() self.assertFalse(dag.is_cyclic())
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())
def test_is_cyclic__positive__one_vertex(self): dag = DepDag() dag.a.depends_on('a') self.assertTrue(dag.is_cyclic())
def test_is_cyclic__negative__one_vertex(self): dag = DepDag() dag.new_vertex('a') self.assertEqual(1, len(dag)) self.assertFalse(dag.is_cyclic())
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())