def testCycles2(self): g = DirectedGraph() for i in range(2): g.add_node(BlockName("user/mod%d" % i)) g.add_edge(BlockName("user/mod0"), BlockName("user/mod1")) g.add_edge(BlockName("user/mod1"), BlockName("user/mod0")) self.assertEqual({BlockName("user/mod0"), BlockName("user/mod1")}, set(g.get_cycles()))
def testCycles2(self): g = DirectedGraph() for i in range(2): g.add_node(BlockName("user/mod%d" % i)) g.add_edge(BlockName("user/mod0"), BlockName("user/mod1")) g.add_edge(BlockName("user/mod1"), BlockName("user/mod0")) self.assertEqual({BlockName("user/mod0"), BlockName("user/mod1")}, set(g.get_cycles()))
def testComputeLevels(self): g = DirectedGraph() for i in range(13): g.add_node(BlockName("user/mod%d" % i)) g.add_edge(BlockName("user/mod0"), BlockName("user/mod2")) g.add_edge(BlockName("user/mod0"), BlockName("user/mod3")) g.add_edge(BlockName("user/mod0"), BlockName("user/mod4")) g.add_edge(BlockName("user/mod3"), BlockName("user/mod6")) g.add_edge(BlockName("user/mod4"), BlockName("user/mod7")) g.add_edge(BlockName("user/mod6"), BlockName("user/mod9")) g.add_edge(BlockName("user/mod7"), BlockName("user/mod9")) g.add_edge(BlockName("user/mod9"), BlockName("user/mod12")) g.add_edge(BlockName("user/mod1"), BlockName("user/mod5")) g.add_edge(BlockName("user/mod5"), BlockName("user/mod8")) g.add_edge(BlockName("user/mod8"), BlockName("user/mod10")) g.add_edge(BlockName("user/mod8"), BlockName("user/mod11")) g.add_edge(BlockName("user/mod10"), BlockName("user/mod12")) g.add_edge(BlockName("user/mod7"), BlockName("user/mod10")) result = g.get_levels() self.assertEquals(5, len(result)) self.assertEquals( result[0], set([ BlockName("user/mod12"), BlockName("user/mod11"), BlockName("user/mod2") ])) self.assertEquals( result[1], set([BlockName("user/mod9"), BlockName("user/mod10")])) self.assertEquals( result[2], set([ BlockName("user/mod6"), BlockName("user/mod7"), BlockName("user/mod8") ])) self.assertEquals( result[3], set([ BlockName("user/mod3"), BlockName("user/mod4"), BlockName("user/mod5") ])) self.assertEquals( result[4], set([BlockName("user/mod0"), BlockName("user/mod1")]))
def testComputeLevels(self): g = DirectedGraph() for i in range(13): g.add_node(BlockName("user/mod%d" % i)) g.add_edge(BlockName("user/mod0"), BlockName("user/mod2")) g.add_edge(BlockName("user/mod0"), BlockName("user/mod3")) g.add_edge(BlockName("user/mod0"), BlockName("user/mod4")) g.add_edge(BlockName("user/mod3"), BlockName("user/mod6")) g.add_edge(BlockName("user/mod4"), BlockName("user/mod7")) g.add_edge(BlockName("user/mod6"), BlockName("user/mod9")) g.add_edge(BlockName("user/mod7"), BlockName("user/mod9")) g.add_edge(BlockName("user/mod9"), BlockName("user/mod12")) g.add_edge(BlockName("user/mod1"), BlockName("user/mod5")) g.add_edge(BlockName("user/mod5"), BlockName("user/mod8")) g.add_edge(BlockName("user/mod8"), BlockName("user/mod10")) g.add_edge(BlockName("user/mod8"), BlockName("user/mod11")) g.add_edge(BlockName("user/mod10"), BlockName("user/mod12")) g.add_edge(BlockName("user/mod7"), BlockName("user/mod10")) result = g.get_levels() self.assertEquals(5, len(result)) self.assertEquals(result[0], set([BlockName("user/mod12"), BlockName("user/mod11"), BlockName("user/mod2") ])) self.assertEquals(result[1], set([BlockName("user/mod9"), BlockName("user/mod10")])) self.assertEquals(result[2], set([BlockName("user/mod6"), BlockName("user/mod7"), BlockName("user/mod8")])) self.assertEquals(result[3], set([BlockName("user/mod3"), BlockName("user/mod4"), BlockName("user/mod5")])) self.assertEquals(result[4], set([BlockName("user/mod0"), BlockName("user/mod1")]))