def main_thread_fps(points, delay, n, lines, columns, fps = 250, max_threads = 10, test_class = DiagramTest): # test main-thread execution (previewer run as main thread): preview = Preview(title = test_class.__name__ + " - Main-thread test mixed with diagram (FPS limit)", lines = lines, columns = columns, fps_limit = fps) preview.interactive(True) preview.start() # create tests threads = [] for i in xrange(0,n): if len(threads) < max_threads and random.randint(1, 5) == 1: test = test_class(points, delay) threads.append(test) preview.add_view(test.diagram, VoronoiDiagram) test.start() elif random.randint(1, 2) == 1: preview.add_view(i, TestFpsPainter) else: preview.add_view(i, TestPainter) if not preview.step(): break while preview.step(): pass # stop tests threads for t in threads: t.stop()
def painter_test(n, lines, columns, fps = 25000): # test main-thread execution (previewer run as main thread): preview = Preview(title = "Main-thread test without diagram", lines = lines, columns = columns, fps_limit = fps, painter_class = TestPainter) preview.interactive(True) preview.start() # create tests in different threads for i in xrange(0,n): preview.add_view(i) if not preview.step(): break while preview.step(): pass
def do_test(self, file_name, s = 1, d = 0, mx = 0, my = 0): self.set_cenario(file_name) self.transform(s, s, d, d, mx, my) self.set_limits() label = "Multithread test : " + file_name import platform if platform.system() == "Linux": label += " (Linux)" self.preview_control.start(title = label, lines = self.lines, columns = self.columns, fps_limit = self.fps, painter_class = ArtGalleryPainter) threads = self.thread(self._polygon, self.preview_control) # waiting until previewer terminates while self.preview_control.in_state(Preview.RUNNING): pass else: label += " (Windows)" preview = Preview(title = label, lines = self.lines, columns = self.columns, fps_limit = self.fps, painter_class = ArtGalleryPainter) preview.interactive(True) preview.start() threads = self.thread(self._polygon, preview) while preview.step(): pass # stop tests threads for t in threads: t.stop()
def show(diagram, title = ''): preview = Preview(title = title, lines=1, columns=1) preview.add_view(diagram, VoronoiDiagram, title) preview.interactive(True) preview.start() while preview.step(): pass
def show(view, title = '', lines = 1, columns = 1): preview = Preview(title = title, lines = lines, columns = columns, painter_class = self.painter_class) preview.add_view(view, title) preview.interactive(True) preview.start() while preview.step(): pass
def main_thread(points, delay, n, lines, columns, fps = 250, test_class = DiagramTest): # test main-thread execution (previewer run as main thread): preview = Preview(title = test_class.__name__ + " - Main-thread test", lines = lines, columns = columns, fps_limit = fps, painter_class = VoronoiDiagram) preview.interactive(True) preview.start() threads = [] # create tests in different threads for i in xrange(0,n): test = test_class(points, delay) threads.append(test) preview.add_view(test.diagram) test.start() if not preview.step(): break while preview.step(): pass # stop tests threads for t in threads: t.stop()
def painter_test2(n, lines, columns, fps = 25000): # test main-thread execution (previewer run as main thread): preview = Preview(title = "Main-thread test without diagram", lines = lines, columns = columns, fps_limit = fps, painter_class = TestPainter) timer = Timer(0.1) preview.interactive(True) preview.start() step = 0 # create tests in different threads while True: step += 1 preview.set_title("Test #" + str(step) + " ADD-del inverse order") painters = [] for i in xrange(0,n): painters.append(preview.add_view(i)) while timer.idle(): if not preview.step(): return preview.set_title("Test #" + str(step) + " add-DEL inverse order") while len(painters) > 0: preview.del_view(painters.pop()) while timer.idle(): if not preview.step(): return preview.set_title("Test #" + str(step) + " ADD-del direct order") painters = [] for i in xrange(0,n): painters.append(preview.add_view(i)) while timer.idle(): if not preview.step(): return preview.set_title("Test #" + str(step) + " add-DEL direct order") for i in xrange(0,n): preview.del_view(painters[i]) while timer.idle(): if not preview.step(): return preview.set_title("Test #" + str(step) + " ADD-del random order") painters = [] for i in xrange(0,n): painters.append(preview.add_view(i)) while timer.idle(): if not preview.step(): return preview.set_title("Test #" + str(step) + " add-DEL random order") while len(painters) > 0: i = random.randint(0, len(painters) - 1) preview.del_view(painters[i]) del painters[i] while timer.idle(): if not preview.step(): return
def random_points_test(min, max, delay, n, lines, columns, max_count, fps, test_class = DiagramTest): # test main-thread execution (previewer run as main thread): preview = Preview(title = test_class.__name__ + " - Main-thread test with random points", lines = lines, columns = columns, fps_limit = fps, painter_class = VoronoiDiagram) x, y = preview.panel_dimensions() preview.interactive(True) preview.start() # create tests threads = [] remove = None while True: if len(threads) < n: test = test_class(TestCases.random_points(min, max, x, y), delay) threads.append(test) test.start() preview.add_view(test.diagram) for i in xrange(0, len(threads)): if threads[i].counter >= max_count: preview.del_view(threads[i].diagram) threads[i].stop() del threads[i] break if not preview.step(): break # stop tests threads for t in threads: t.stop()