def setUp(self): BaseDigraphTest.setUp(self) self._biigraph = BiiGraph(DigraphTest.DIM) self._biigraph.gen_compatible_graph()
class DigraphTest(BaseDigraphTest): DIM = [7] * 7 # [<num. vers. cell1>, <num. vers. cell2>, ...] pr = cProfile.Profile() def setUp(self): BaseDigraphTest.setUp(self) self._biigraph = BiiGraph(DigraphTest.DIM) self._biigraph.gen_compatible_graph() def testFinderCompatibleTest(self): ''' Generates compatible problem critical in the last two versions ''' last_block = self._biigraph.get_num_blocks() - 1 self._biigraph.make_independent(last_block, last_block - 1) t = self._biigraph._get_range_block(last_block - 2) self._biigraph.make_dependent(last_block, t[0]) self._biigraph.make_dependent(last_block - 1, t[0]) self._publish_graph() # Solve request = self._unresolvedDependencyRequest(self.lbcn) result = self.service.find(request, BiiResponse()) self.assertEqual(len(self.lbcn), len(result.resolved)) def testFinderIncompatibleTest(self): ''' 'Generates incompatible problem with consistent closures ''' last_block = self._biigraph.get_num_blocks() - 1 self._biigraph.make_independent(last_block, last_block - 1) t = self._biigraph._get_range_block(last_block - 2) self._biigraph.make_dependent(last_block, t[0]) self._biigraph.make_dependent(last_block - 1, t[0] + 1) self._publish_graph() # Solve (profile code has been commented) request = self._unresolvedDependencyRequest(self.lbcn) # DigraphTest.pr.enable() result = self.service.find(request, BiiResponse()) # DigraphTest.pr.disable() # s = io.FileIO('C:/Users/pablo/Desktop/profile.txt','w') # ps = pstats.Stats(DigraphTest.pr, stream=s) # ps.strip_dirs().sort_stats(-1).print_stats() # s.close() logger.debug('\n-------------Finder result-----------------------\n') logger.debug(result.resolved) self.assertEqual(0, len(result.resolved)) def _publish_graph(self): self._initUser() self.lbcn = self._getBlockCellNames(DigraphTest.DIM) #publish independent cell self._publishIndependentCell(self.lbcn[0], DigraphTest.DIM[0]) #publish dependent cells (all the rest) for block in range(1, len(DigraphTest.DIM)): self._publishDependentCell(block) def _publishDependentCell(self, block_id): low, high = self._biigraph._get_range_block(block_id) count = 0 d = self.lbcn bcn = d[block_id] brl = self._getBlockBRL(bcn) for row in range(low, high + 1): r = SimpleCell(d[block_id]) r.root = ID((0, bcn.block_name[-1:], 0)) deps = DependencySet() dep_table = BlockVersionTable() for block in range(block_id): time = self._biigraph._get_dep_elem_offset(row, block) if time != -1: deps.add_implicit(d[block]) dep_table[d[block].block_name] = \ BlockVersion(self._getBlockBRL(d[block]), time) r.dependencies = deps pack = PublishRequest(BlockVersion(brl, count - 1)) pack.tag = STABLE count += 1 pack.cells.append(r) pack.contents[r.name.cell_name] = Content(id_=None, load=Blob('hola {0}'. format(r.name.cell_name))) pack.deptable = dep_table self.service.publish(pack)
class DigraphTest(BaseDigraphTest): DIM = [7] * 7 # [<num. vers. cell1>, <num. vers. cell2>, ...] pr = cProfile.Profile() def setUp(self): BaseDigraphTest.setUp(self) self._biigraph = BiiGraph(DigraphTest.DIM) self._biigraph.gen_compatible_graph() def testFinderCompatibleTest(self): ''' Generates compatible problem critical in the last two versions ''' last_block = self._biigraph.get_num_blocks() - 1 self._biigraph.make_independent(last_block, last_block - 1) t = self._biigraph._get_range_block(last_block - 2) self._biigraph.make_dependent(last_block, t[0]) self._biigraph.make_dependent(last_block - 1, t[0]) self._publish_graph() # Solve request = self._unresolvedDependencyRequest(self.lbcn) result = self.service.find(request, BiiResponse()) self.assertEqual(len(self.lbcn), len(result.resolved)) def testFinderIncompatibleTest(self): ''' 'Generates incompatible problem with consistent closures ''' last_block = self._biigraph.get_num_blocks() - 1 self._biigraph.make_independent(last_block, last_block - 1) t = self._biigraph._get_range_block(last_block - 2) self._biigraph.make_dependent(last_block, t[0]) self._biigraph.make_dependent(last_block - 1, t[0] + 1) self._publish_graph() # Solve (profile code has been commented) request = self._unresolvedDependencyRequest(self.lbcn) # DigraphTest.pr.enable() result = self.service.find(request, BiiResponse()) # DigraphTest.pr.disable() # s = io.FileIO('C:/Users/pablo/Desktop/profile.txt','w') # ps = pstats.Stats(DigraphTest.pr, stream=s) # ps.strip_dirs().sort_stats(-1).print_stats() # s.close() logger.debug('\n-------------Finder result-----------------------\n') logger.debug(result.resolved) self.assertEqual(0, len(result.resolved)) def _publish_graph(self): self._initUser() self.lbcn = self._getBlockCellNames(DigraphTest.DIM) #publish independent cell self._publishIndependentCell(self.lbcn[0], DigraphTest.DIM[0]) #publish dependent cells (all the rest) for block in range(1, len(DigraphTest.DIM)): self._publishDependentCell(block) def _publishDependentCell(self, block_id): low, high = self._biigraph._get_range_block(block_id) count = 0 d = self.lbcn bcn = d[block_id] brl = self._getBlockBRL(bcn) for row in range(low, high + 1): r = SimpleCell(d[block_id]) r.root = ID((0, bcn.block_name[-1:], 0)) deps = DependencySet() dep_table = BlockVersionTable() for block in range(block_id): time = self._biigraph._get_dep_elem_offset(row, block) if time != -1: deps.add_implicit(d[block]) dep_table[d[block].block_name] = \ BlockVersion(self._getBlockBRL(d[block]), time) r.dependencies = deps pack = PublishRequest(BlockVersion(brl, count - 1)) pack.tag = STABLE count += 1 pack.cells.append(r) pack.contents[r.name.cell_name] = Content( id_=None, load=Blob('hola {0}'.format(r.name.cell_name))) pack.deptable = dep_table self.service.publish(pack)