Spec-Zone.ru › Matplotlib

matplotlib.testing

matplotlib.testing

Вспомогательные функции для тестирования.

matplotlib.testing.ipython_in_subprocess(requested_backend_or_gui_framework, all_expected_backends)[source]
matplotlib.testing.is_ci_environment()[source]
matplotlib.testing.set_font_settings_for_testing()[source]
matplotlib.testing.set_reproducibility_for_testing()[source]
matplotlib.testing.setup()[source]
matplotlib.testing.subprocess_run_for_testing(command, env=None, timeout=60, stdout=None, stderr=None, check=False, text=True, capture_output=False)[source]

Создание и запуск дочернего процесса.

Тонкий обертка вокруг subprocess.run, предназначенный для тестирования. Будет отмечать сбои fork() в Cygwin как ожидаемые ошибки: не успех, но не указывая на проблему с кодом.

Parameters:
argsсписок str
envdict[str, str]
timeoutfloat
stdout, stderr
checkbool
textbool

Также называется universal_newlines в subprocess. Я выбрал это имя, поскольку основной эффект заключается в возвращении байтов (False) против str (True), хотя он также пытается нормализовать новые строки между платформами.

capture_outputbool

Устанавливает stdout и stderr в subprocess.PIPE

Returns:
procsubprocess.Popen
Raises:
pytest.xfail

Если платформа Cygwin, и subprocess сообщает об ошибке fork().

См. также

subprocess.run
matplotlib.testing.subprocess_run_helper(func, *args, timeout, extra_env=None)[source]

Выполнение функции в дочернем процессе.

Parameters:
funcфункция

Функция, которая будет выполнена. Она должна быть в модуле, который можно импортировать.

*argsstr

Любые дополнительные аргументы командной строки, которые должны быть переданы в первом аргументе в subprocess.run.

extra_envdict[str, str]

Любые дополнительные переменные среды, которые должны быть установлены для дочернего процесса.

END_OF_DOCUMENT_MARKER

matplotlib.testing.compare

Утилиты для сравнения результатов изображений.

matplotlib.testing.compare.calculate_rms(expected_image, actual_image)[source]

Вычисляет ошибки по каждому пикселю, затем вычисляет среднеквадратическую ошибку.

matplotlib.testing.compare.comparable_formats()[source]

Возвращает список форматов файлов, которые compare_images может сравнивать на данной системе.

Возвращает:
list of str

Например, ['png', 'pdf', 'svg', 'eps'].

matplotlib.testing.compare.compare_images(expected, actual, tol, in_decorator=False)[source]

Сравнивает два файла «изображения», проверяя различия в пределах заданной погрешности.

Два заданных имени файлов могут указывать на файлы, которые можно преобразовать в PNG с помощью словаря converter. Базовая среднеквадратическая ошибка вычисляется с помощью функции calculate_rms.

Параметры:
expectedstr

Имя файла ожидаемого изображения.

actualstr

Имя файла фактического изображения.

tolfloat

Погрешность (разница значений цвета, где 255 — максимальная разница). Тест завершается неудачей, если средняя разница пикселей превышает это значение.

in_decoratorbool

Определяет формат вывода. Если вызывается из декоратора image_comparison, это должно быть True. (по умолчанию=False)

Возвращает:
None или dict или str

Возвращает None, если изображения равны в пределах заданной погрешности.

Если изображения отличаются, возвращаемое значение зависит от in_decorator. Если in_decorator равно true, возвращается словарь со следующими записями:

  • rms: Среднеквадратическое отклонение разницы изображений.
  • expected: Имя файла ожидаемого изображения.
  • actual: Имя файла фактического изображения.
  • diff_image: Имя файла изображения различий.
  • tol: Погрешность сравнения.

В противном случае возвращается многострочная строка удобочитаемой информации.

Примеры

img1 = "./baseline/plot.png"
img2 = "./output/plot.png"
compare_images(img1, img2, 0.001)

matplotlib.testing.decorators

matplotlib.testing.decorators.check_figures_equal(*, extensions=('png', 'pdf', 'svg'), tol=0)[source]

Декоратор для тестовых случаев, генерирующих и сравнивающих две фигуры.

Декорированная функция должна принимать два ключевых аргумента, fig_test и fig_ref, и рисовать тестовые и эталонные изображения на них. После возвращения функции фигуры сохраняются и сравниваются.

Этот декоратор следует предпочитать image_comparison по возможности, чтобы размер набора тестов не увеличивался.

Параметры:
extensionsсписок, по умолчанию: ["png", "pdf", "svg"]

Расширения для тестирования.

tolfloat

Пороговое значение RMS, превышение которого считается неудачей теста.

Исключения:
RuntimeError

Если внутри тестовой функции создаются новые фигуры (и не закрываются).

Примеры

Проверка, что вызов Axes.plot с одним аргументом строит его против [0, 1, 2, ...]:

@check_figures_equal()
def test_plot(fig_test, fig_ref):
    fig_test.subplots().plot([1, 3, 5])
    fig_ref.subplots().plot([0, 1, 2], [1, 3, 5])
matplotlib.testing.decorators.image_comparison(baseline_images, extensions=None, tol=0, freetype_version=None, remove_text=False, savefig_kwarg=None, style=('classic', '_classic_test_patch'))[source]

Сравнение изображений, сгенерированных тестом, с теми, что указаны в baseline_images, которые должны соответствовать, иначе будет поднято исключение ImageComparisonFailure.

Параметры:
baseline_imagesсписок или None

Список строк, указывающих имена изображений, сгенерированных вызовами Figure.savefig.

Если None, тестовая функция должна использовать фикстуру baseline_images, либо в качестве параметра, либо с помощью pytest.mark.usefixtures. Это значение разрешено только при использовании pytest.

extensionsNone или список str

Список расширений для проверки, например, ['png', 'pdf'].

Если None, используется по умолчанию все поддерживаемые расширения: png, pdf и svg.

При тестировании одного расширения, оно может быть включено непосредственно в имена, переданные в baseline_images. В этом случае extensions не должен быть установлен.

Для предотвращения чрезмерного увеличения размера набора тестов мы включаем только результаты svg или pdf, если тест явно использует функцию, зависящую от этого бэкенда (см. также декоратор check_figures_equal для этой цели).

tolfloat, по умолчанию: 0

Пороговое значение RMS, превышение которого считается неудачей теста.

Из-за ожидаемых небольших различий в вычислениях с плавающей запятой на 32-битных системах к этому порогу добавляется 0.06.

freetype_versionstr или кортеж

Ожидаемая версия freetype или диапазон версий для успешного прохождения теста.

remove_textbool

Удаление заголовка и меток с фигуры перед сравнением. Это полезно для того, чтобы эталонные изображения были независимы от изменений в отображении текста между различными версиями FreeType.

Это не удаляет другой, более преднамеренный, текст, такой как легенды и аннотации.

savefig_kwargdict

Дополнительные аргументы, которые передаются в метод savefig.

stylestr, dict или список

Дополнительные стили для изображения теста. Сам тест также может применять дополнительные стили по мере необходимости. По умолчанию ["classic", "_classic_test_patch"].

matplotlib.testing.decorators.remove_ticks_and_titles(figure)[source]

matplotlib.testing.exceptions

исключениеmatplotlib.testing.exceptions.ImageComparisonFailure[source]

Базовый класс: AssertionError

Поднимает это исключение, чтобы отметить тест как сравнение двух изображений.

© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/testing_api.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API