def test_image_comparison_expect_rms(im1, im2, tol, expect_rms): """ Compare two images, expecting a particular RMS error. im1 and im2 are filenames relative to the baseline_dir directory. tol is the tolerance to pass to compare_images. expect_rms is the expected RMS value, or None. If None, the test will succeed if compare_images succeeds. Otherwise, the test will succeed if compare_images fails and returns an RMS error almost equal to this value. """ baseline_dir, result_dir = map(Path, _image_directories(lambda: "dummy")) # Copy both "baseline" and "test" image to result_dir, so that 1) # compare_images writes the diff to result_dir, rather than to the source # tree and 2) the baseline image doesn't appear missing to triage_tests.py. result_im1 = make_test_filename(result_dir / im1, "expected") shutil.copyfile(baseline_dir / im1, result_im1) result_im2 = result_dir / im1 shutil.copyfile(baseline_dir / im2, result_im2) results = compare_images(result_im1, result_im2, tol=tol, in_decorator=True) if expect_rms is None: assert results is None else: assert results is not None assert results['rms'] == approx(expect_rms, abs=1e-4)
# -*- encoding: utf-8 -*- import os import shutil import numpy as np import nose from nose.plugins.skip import SkipTest import matplotlib as mpl import matplotlib.pyplot as plt from matplotlib.compat import subprocess from matplotlib.testing.compare import compare_images, ImageComparisonFailure from matplotlib.testing.decorators import _image_directories baseline_dir, result_dir = _image_directories(lambda: 'dummy func') def check_for(texsystem): header = r""" \documentclass{minimal} \usepackage{pgf} \begin{document} \typeout{pgfversion=\pgfversion} \makeatletter \@@end """ try: latex = subprocess.Popen(["xelatex", "-halt-on-error"], stdin=subprocess.PIPE, stdout=subprocess.PIPE) stdout, stderr = latex.communicate(header.encode("utf8")) except OSError:
unicode_literals) import os import shutil import numpy as np from nose.plugins.skip import SkipTest import matplotlib as mpl import matplotlib.pyplot as plt from matplotlib.compat import subprocess from matplotlib.testing.compare import compare_images, ImageComparisonFailure from matplotlib.testing.decorators import (_image_directories, switch_backend, cleanup) baseline_dir, result_dir = _image_directories(lambda: 'dummy func') def check_for(texsystem): header = """ \\documentclass{minimal} \\usepackage{pgf} \\begin{document} \\typeout{pgfversion=\\pgfversion} \\makeatletter \\@@end """ try: latex = subprocess.Popen([texsystem, "-halt-on-error"], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
def _image_directories(cls): return _image_directories(func)