def test_diff_full(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") seq1 = "zab zab2 zabc3 zabcd zabc4".split() seq2 = "ab ab2 abc3 abc4 abc adb".split() diff = SequenceMatcher(a=seq1, b=seq2) h = 20 size = 500, 500 white = 255, 255, 255 if is_travis_or_appveyor() in ("travis",): # pygame.error: No available video device return import pygame if is_travis_or_appveyor() == "circleci": # os.environ["SDL_VIDEODRIVER"] = "x11" flags = pygame.NOFRAME else: flags = 0 pygame, screen, fonts = get_pygame_screen_font(h, size, flags=flags) from src.ensae_teaching_cs.helpers.pygame_helper import wait_event bars = [random.randint(10, 500) / 500.0 for s in seq2] screen.fill(white) build_diff_image(pygame, screen, h=h, maxw=size[1], seq1=seq1, seq2=seq2, diff=diff, fonts=fonts, bars=bars) pygame.display.flip() temp = get_temp_folder(__file__, "temp_video_diff_full") for i in range(0, 21): screen.fill(white) build_diff_image(pygame, screen, h=h, maxw=size[0], seq1=seq1, seq2=seq2, diff=diff, fonts=fonts, bars=bars, progress=i / 20.0, prev_bars=None) pygame.time.wait(60) pygame.display.flip() pygame.image.save(screen, os.path.join(temp, "diff%d.png" % i)) if __name__ == "__main__": from src.ensae_teaching_cs.helpers.video_helper import make_video png = [os.path.join(temp, _) for _ in os.listdir(temp) if ".png" in _] out = os.path.join(temp, "diff.avi") make_video(png, out, size=(350, 250), format="XVID", fps=5) wait_event(pygame) for font in fonts.values(): del font pygame.quit()
def test_diff(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") seq1 = "ab ab2 abc3 abcd abc4".split() seq2 = "ab ab2 abc3 abc4 abc adb".split() diff = SequenceMatcher(a=seq1, b=seq2) nb = 0 for opcode in diff.get_opcodes(): fLOG(opcode) nb += 1 self.assertEqual(nb, 4) h = 20 size = 500, 500 white = 255, 255, 255 if is_travis_or_appveyor() == "travis": warnings.warn("pygame is not available") return pygame, screen, fonts = get_pygame_screen_font(h, size) from src.ensae_teaching_cs.helpers.pygame_helper import wait_event bars = [random.randint(10, 500) / 500.0 for s in seq2] screen.fill(white) build_diff_image(pygame, screen, h=h, maxw=size[1], seq1=seq1, seq2=seq2, diff=diff, fonts=fonts, bars=bars) pygame.display.flip() temp = get_temp_folder(__file__, "temp_video_diff") for i in range(0, 21): screen.fill(white) build_diff_image(pygame, screen, h=h, maxw=size[0], seq1=seq1, seq2=seq2, diff=diff, fonts=fonts, bars=bars, progress=i / 20.0, prev_bars=None) pygame.time.wait(60) pygame.display.flip() pygame.image.save(screen, os.path.join(temp, "diff%d.png" % i)) if __name__ == "__main__": from src.ensae_teaching_cs.helpers.video_helper import make_video png = [os.path.join(temp, _) for _ in os.listdir(temp) if ".png" in _] out = os.path.join(temp, "diff.avi") make_video(png, out, size=(350, 250), format="XVID", fps=5) wait_event(pygame)
def test_image_video_epidemic(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") temp = get_temp_folder(__file__, "temp_image_video_epidemic") if is_travis_or_appveyor() in ("travis", ): # pygame.error: No available video device return import pygame if is_travis_or_appveyor() == "circleci": # os.environ["SDL_VIDEODRIVER"] = "x11" flags = pygame.NOFRAME else: flags = 0 pygame_simulation(pygame, fLOG=fLOG, iter=10, folder=temp, flags=flags) files = os.listdir(temp) self.assertTrue(len(files) > 9) png = [ os.path.join(temp, _) for _ in files if os.path.splitext(_)[-1] == ".png" ] self.assertTrue(len(png) > 0) out = os.path.join(temp, "epidemic.avi") v = make_video(png, out, size=(300, 300), format="XVID") self.assertTrue(v is not None)
def test_kruskal_pygame_simulation(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") temp = get_temp_folder(__file__, "temp_kruskal_pygame_simulation") if is_travis_or_appveyor() == "travis": warnings.warn("pygame is not available") return import pygame pygame.init() pygame_simulation(fLOG=fLOG, max_iter=10 if __name__ != "__main__" else 10000, pygame=pygame, folder=temp) files = os.listdir(temp) assert len(files) > 9 png = [ os.path.join(temp, _) for _ in files if os.path.splitext(_)[-1] == ".png" ] assert len(png) > 0 out = os.path.join(temp, "tsp_kruskal.avi") v = make_video(png, out, size=(800, 500), format="XVID", fps=20) assert v is not None
def test_kruskal_pygame_simulation(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") temp = get_temp_folder(__file__, "temp_kruskal_pygame_simulation") if is_travis_or_appveyor() in ("travis", ): # pygame.error: No available video device return import pygame if is_travis_or_appveyor() == "circleci": # os.environ["SDL_VIDEODRIVER"] = "x11" flags = pygame.NOFRAME else: flags = 0 pygame.init() pygame_simulation(fLOG=fLOG, max_iter=10 if __name__ != "__main__" else 10000, pygame=pygame, folder=temp, flags=flags) files = os.listdir(temp) assert len(files) > 9 png = [ os.path.join(temp, _) for _ in files if os.path.splitext(_)[-1] == ".png" ] assert len(png) > 0 out = os.path.join(temp, "tsp_kruskal.avi") v = make_video(png, out, size=(800, 500), format="XVID", fps=20) assert v is not None
def test_image_video_epidemic(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") temp = get_temp_folder(__file__, "temp_image_video_voisinage") if is_travis_or_appveyor() == "travis": warnings.warn("pygame is not available") return import pygame pygame_simulation(pygame, fLOG=fLOG, folder=temp, max_iter=150 if __name__ == "__main__" else 10) files = os.listdir(temp) assert len(files) > 9 png = [ os.path.join(temp, _) for _ in files if os.path.splitext(_)[-1] == ".png" ] assert len(png) > 0 out = os.path.join(temp, "voisinage.avi") v = make_video(png, out, size=(500, 500), format="XVID") assert v is not None
def test_image_video_kohonen(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") temp = get_temp_folder(__file__, "temp_image_video_tsp_kohonen") if is_travis_or_appveyor() == "travis": warnings.warn("pygame is not available") return import pygame pygame_simulation(pygame, fLOG=fLOG, folder=temp, nb=200 if __name__ == "__main__" else 20, size=(400, 250)) files = os.listdir(temp) assert len(files) > 9 png = [ os.path.join(temp, _) for _ in files if os.path.splitext(_)[-1] == ".png" ] assert len(png) > 0 out = os.path.join(temp, "tsp_kohonen.avi") v = make_video(png, out, size=(200, 125), format="XVID", fps=20) assert v is not None
def test_kruskal_pygame_simulation(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") temp = get_temp_folder(__file__, "temp_kruskal_pygame_simulation") if is_travis_or_appveyor() == "travis": warnings.warn("pygame is not available") return import pygame pygame.init() pygame_simulation(fLOG=fLOG, max_iter=10 if __name__ != "__main__" else 10000, pygame=pygame, folder=temp) files = os.listdir(temp) assert len(files) > 9 png = [os.path.join(temp, _) for _ in files if os.path.splitext(_)[-1] == ".png"] assert len(png) > 0 out = os.path.join(temp, "tsp_kruskal.avi") v = make_video(png, out, size=(800, 500), format="XVID", fps=20) assert v is not None
def test_make_video(self): """ This test does not work under a virtual environment. """ fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") assert re is not None if is_travis_or_appveyor() == "travis": warnings.warn("cv2 is not available") return if "--force" in context or not is_virtual_environment(): fLOG("running in base environment", sys.prefix) temp = get_temp_folder(__file__, "temp_make_video") img = os.path.join(temp, "..", "data") imgs = os.listdir(img) png = [ os.path.join(img, _) for _ in imgs if os.path.splitext(_)[-1] == ".png" and "00" in _ ] assert len(png) > 0 out = os.path.join(temp, "out_video.avi") v = make_video(png, out, size=(1000, 300)) assert os.path.exists(out) assert os.stat(out).st_size > 90000 assert v is not None if "--force" in context: fLOG("success") else: # We run it with the original interpreter. import pyquickhelper fLOG("switch from virtual environment", sys.base_prefix) fold = os.path.abspath( os.path.join(os.path.dirname(pyquickhelper.__file__), "..")) old_val = os.environ.get("PYTHONPATH", "") os.environ["PYTHONPATH"] = fold this = os.path.abspath(__file__) if sys.version_info[0] == 2: this = this.replace(".pyc", ".py") out = run_base_script(this, file=True, fLOG=fLOG, argv=["--force"]) os.environ["PYTHONPATH"] = old_val if "success" not in out: raise Exception("CMD:\n{0}\nOUT:\n{1}\nPYTHONPATH={2}".format( os.path.split(__file__)[-1], out, fold))
def test_image_video_kohonen(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") temp = get_temp_folder(__file__, "temp_image_video_tsp_kohonen") if is_travis_or_appveyor() == "travis": warnings.warn("pygame is not available") return import pygame pygame_simulation(pygame, fLOG=fLOG, folder=temp, nb=200 if __name__ == "__main__" else 20, size=(400, 250)) files = os.listdir(temp) assert len(files) > 9 png = [os.path.join(temp, _) for _ in files if os.path.splitext(_)[-1] == ".png"] assert len(png) > 0 out = os.path.join(temp, "tsp_kohonen.avi") v = make_video(png, out, size=(200, 125), format="XVID", fps=20) assert v is not None
def test_make_video(self): """ This test does not work under a virtual environment. """ fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") if is_travis_or_appveyor() == "travis": warnings.warn("cv2 is not available") return if "--force" in context or not is_virtual_environment(): fLOG("running in base environment", sys.prefix) temp = get_temp_folder(__file__, "temp_make_video") img = os.path.join(temp, "..", "data") imgs = os.listdir(img) png = [os.path.join(img, _) for _ in imgs if os.path.splitext(_)[-1] == ".png" and "00" in _] assert len(png) > 0 out = os.path.join(temp, "out_video.avi") v = make_video(png, out, size=(1000, 300)) assert os.path.exists(out) assert os.stat(out).st_size > 90000 assert v is not None if "--force" in context: fLOG("success") else: # we run it with the original interpreter import pyquickhelper fLOG("switch from virtual environment", sys.base_prefix) fold = os.path.abspath(os.path.join( os.path.dirname(pyquickhelper.__file__), "..")) os.environ["PYTHONPATH"] = fold this = os.path.abspath(__file__) if sys.version_info[0] == 2: this = this.replace(".pyc", ".py") out = run_base_script(this, file=True, fLOG=fLOG, argv=["--force"]) os.environ["PYTHONPATH"] = "" if "success" not in out: raise Exception( "CMD:\n{0}\nOUT:\n{1}".format(os.path.split(__file__)[-1], out))
def test_image_video_epidemic(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") temp = get_temp_folder(__file__, "temp_image_video_voisinage") if is_travis_or_appveyor() == "travis": warnings.warn("pygame is not available") return import pygame pygame_simulation(pygame, fLOG=fLOG, folder=temp, max_iter=150 if __name__ == "__main__" else 10) files = os.listdir(temp) assert len(files) > 9 png = [os.path.join(temp, _) for _ in files if os.path.splitext(_)[-1] == ".png"] assert len(png) > 0 out = os.path.join(temp, "voisinage.avi") v = make_video(png, out, size=(500, 500), format="XVID") assert v is not None
def test_diff(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") seq1 = "ab ab2 abc3 abcd abc4".split() seq2 = "ab ab2 abc3 abc4 abc adb".split() diff = SequenceMatcher(a=seq1, b=seq2) nb = 0 for opcode in diff.get_opcodes(): fLOG(opcode) nb += 1 self.assertEqual(nb, 4) h = 20 size = 500, 500 white = 255, 255, 255 if is_travis_or_appveyor() == "travis": warnings.warn("pygame is not available") return pygame, screen, fonts = get_pygame_screen_font(h, size) from src.ensae_teaching_cs.helpers.pygame_helper import wait_event bars = [random.randint(10, 500) / 500.0 for s in seq2] screen.fill(white) build_diff_image(pygame, screen, h=h, maxw=size[1], seq1=seq1, seq2=seq2, diff=diff, fonts=fonts, bars=bars) pygame.display.flip() temp = get_temp_folder(__file__, "temp_video_diff") for i in range(0, 21): screen.fill(white) build_diff_image(pygame, screen, h=h, maxw=size[0], seq1=seq1, seq2=seq2, diff=diff, fonts=fonts, bars=bars, progress=i / 20.0, prev_bars=None) pygame.time.wait(60) pygame.display.flip() pygame.image.save(screen, os.path.join(temp, "diff%d.png" % i)) if __name__ == "__main__": from src.ensae_teaching_cs.helpers.video_helper import make_video png = [ os.path.join(temp, _) for _ in os.listdir(temp) if ".png" in _ ] out = os.path.join(temp, "diff.avi") make_video(png, out, size=(350, 250), format="XVID", fps=5) wait_event(pygame) for k, font in fonts.items(): del font pygame.quit()