Пример #1
0
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)
Пример #2
0
# -*- 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:
Пример #3
0
                        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)
Пример #4
0
 def _image_directories(cls):
     return _image_directories(func)