matplotlib.testing
matplotlib.testing
Вспомогательные функции для тестирования.
- matplotlib.testing.set_font_settings_for_testing()[source]
- matplotlib.testing.set_reproducibility_for_testing()[source]
- matplotlib.testing.setup()[source]
- matplotlib.testing.subprocess_run_helper(func, *args, timeout, extra_env=None)[source]
-
Выполнить функцию в дочернем процессе.
- Параметры:
-
- funcфункция
-
Функция, которая будет запущена. Она должна быть в импортируемом модуле.
- *argsстрока
-
Дополнительные аргументы командной строки, которые будут переданы в первый аргумент в
subprocess.run. - extra_envdict[строка, строка]
-
Дополнительные переменные окружения, которые должны быть установлены для дочернего процесса.
matplotlib.testing.compare
Утилиты для сравнения результатов изображений.
- matplotlib.testing.compare.calculate_rms(expected_image, actual_image)[source]
-
Вычислить ошибки на каждый пиксель, а затем вычислить среднеквадратическую ошибку.
- matplotlib.testing.compare.comparable_formats()[source]
-
Возвращает список форматов файлов, которые
compare_imagesможет сравнивать на этой системе.- Возвращает:
-
- список строк
-
Например,
['png', 'pdf', 'svg', 'eps'].
- matplotlib.testing.compare.compare_images(expected, actual, tol, in_decorator=False)[source]
-
Сравнивает два файла "изображений", проверяя различия в пределах допуска.
Два заданных имени файлов могут указывать на файлы, которые могут быть преобразованы в PNG с помощью
converter. Базовая среднеквадратическая ошибка рассчитывается с помощью функцииcalculate_rms.- Параметры:
-
- expectedстрока
-
Имя файла ожидаемого изображения.
- actualстрока
-
Имя файла фактического изображения.
- tolчисло с плавающей запятой
-
Допуск (различие значений цвета, где 255 - максимальное различие). Тест завершается неудачей, если среднее различие пикселей превышает это значение.
- in_decoratorbool
-
Определяет формат вывода. Если вызвана из декоратора image_comparison, это должно быть True. (по умолчанию=False)
- Возвращает:
-
- None или dict или строка
-
Возвращает None, если изображения равны в заданном допуске.
Если изображения отличаются, возвращаемое значение зависит от in_decorator. Если in_decorator истинно, возвращается словарь со следующими записями:
- 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.CleanupTestCase(methodName='runTest')[source]
-
Основывается на:
TestCase[Устарело] Обёртка для unittest.TestCase, включающая операции очистки.
Примечания
Устарело начиная с версии 3.6: Используйте переданную копию существующего кода, включая закрытую функцию _cleanup_cm.
Создаёт экземпляр класса, который будет использовать указанный метод тестирования при выполнении. Вызывает ValueError, если у экземпляра отсутствует метод с указанным именем.
- метод классаsetUpClass()[source]
-
Метод подключения для настройки фикстуры класса перед запуском тестов в классе.
- метод классаtearDownClass()[source]
-
Метод подключения для разборки фикстуры класса после выполнения всех тестов в классе.
- matplotlib.testing.decorators.check_figures_equal(*, extensions=('png', 'pdf', 'svg'), tol=0)[source]
-
Декоратор для тестовых случаев, которые генерируют и сравнивают две фигуры.
Декорированная функция должна принимать два ключевых аргумента, fig_test и fig_ref, и рисовать тестовые и эталонные изображения на них. После возвращения функции фигуры сохраняются и сравниваются.
Этот декоратор следует предпочитать
image_comparisonпо возможности, чтобы предотвратить раздувание набора тестов.- Параметры:
-
- extensionsсписок, по умолчанию: ["png", "pdf", "svg"]
-
Расширения для проверки.
- tolвещественное число
-
Пороговое значение 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.check_freetype_version(ver)[source]
-
[Устарело]
Примечания
Устарело начиная с версии 3.6: Используйте переданную копию существующего кода _check_freetype_version.
- matplotlib.testing.decorators.cleanup(style=None)[source]
-
[Устарело] Декоратор, гарантирующий сброс любого глобального состояния перед запуском теста.
- Параметры:
-
- styleстрока, словарь или список, необязательно
-
Стиль(и) для применения. По умолчанию
["classic", "_classic_test_patch"]
Примечания
Устарело начиная с версии 3.6: Используйте переданную копию существующего кода, включая закрытую функцию _cleanup_cm.
- 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для этой цели). - tolвещественное число, по умолчанию: 0
-
Пороговое значение RMS, выше которого тест считается неудачным.
Из-за ожидаемых небольших различий в вычислениях с плавающей точкой на 32-битных системах к этому порогу добавляется дополнительное значение 0,06.
- freetype_versionстрока или кортеж
-
Ожидаемая версия freetype или диапазон версий для успешного прохождения теста.
- remove_textbool
-
Удалить заголовок и текст делений из фигуры перед сравнением. Это полезно, чтобы сделать эталонные изображения независимыми от вариаций в рендеринге текста между различными версиями FreeType.
Это не удаляет другой, более целенаправленный, текст, такой как легенды и аннотации.
- savefig_kwargсловарь
-
Необязательные аргументы, которые передаются методу savefig.
- styleстрока, словарь или список
-
Необязательный(е) стиль(и) для применения к тесту изображения. Сам тест также может применить дополнительные стили по мере необходимости. По умолчанию
["classic", "_classic_test_patch"]
- matplotlib.testing.decorators.remove_ticks_and_titles(figure)[source]
matplotlib.testing.exceptions
- exceptionmatplotlib.testing.exceptions.ImageComparisonFailure[source]
-
Bases:
AssertionErrorВызывать эту исключительную ситуацию, чтобы отметить тест как сравнение двух изображений.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.7.5/api/testing_api.html