matplotlib.testing
matplotlib.testing
Вспомогательные функции для тестирования.
-
matplotlib.testing.is_called_from_pytest()[source] -
[Устаревшее] Определяет, выполняем ли мы тест в рамках pytest.
Примечания
Устарело начиная с версии 3.2.
-
matplotlib.testing.set_font_settings_for_testing()[source]
-
matplotlib.testing.set_reproducibility_for_testing()[source]
-
matplotlib.testing.setup()[source]
matplotlib.testing.compare
Предоставляет набор утилит для сравнения результатов (изображений).
-
matplotlib.testing.compare.comparable_formats()[source] -
Возвращает список форматов файлов, которые
compare_imagesможет сравнивать на данной системе.Возвращает: -
supported_formatslist of str -
Например,
['png', 'pdf', 'svg', 'eps'].
-
-
matplotlib.testing.compare.compare_images(expected, actual, tol, in_decorator=False)[source] -
Сравнивает два файла "изображения", проверяя различия в пределах заданной толерантности.
Два указанных имени файлов могут указывать на файлы, преобразуемые в PNG с помощью словаря
converter. Базовое значение RMS вычисляется с помощью функцииcalculate_rms.Параметры: -
expectedstr -
Имя файла ожидаемого изображения.
-
actualstr -
Имя файла фактического изображения.
-
tolfloat -
Толерантность (разница цветовых значений, где 255 — максимальная разница). Тест завершается неудачей, если среднее различие пикселей превышает это значение.
-
in_decoratorbool -
Определяет формат вывода. Если вызвано из декоратора image_comparison, это должно быть True. (по умолчанию False)
Возвращает: -
comparison_resultNone or dict or str -
Возвращает None, если изображения равны в пределах заданной толерантности.
Если изображения различаются, значение возврата зависит от in_decorator. Если in_decorator истинно, возвращается словарь со следующими записями:
- rms: Значение RMS разницы изображений.
- expected: Имя файла ожидаемого изображения.
- actual: Имя файла фактического изображения.
- diff_image: Имя файла изображения различий.
- tol: Толерантность сравнения.
В противном случае возвращается многострочная строка с удобочитаемой информацией.
Примеры
img1 = "./baseline/plot.png" img2 = "./output/plot.png" compare_images(img1, img2, 0.001)
-
matplotlib.testing.decorators
-
class matplotlib.testing.decorators.CleanupTestCase(methodName='runTest')[source] -
Наследуется от
unittest.case.TestCaseОбёртка для unittest.TestCase, включающая операции по очистке.
Создаёт экземпляр класса, который будет использовать указанный метод теста при выполнении. Вызывает ValueError, если у экземпляра нет метода с указанным именем.
-
classmethod setUpClass()[source] -
Метод-обработчик для настройки фикстуры класса перед запуском тестов в классе.
-
classmethod tearDownClass()[source] -
Метод-обработчик для деконструкции фикстуры класса после запуска всех тестов в классе.
-
-
matplotlib.testing.decorators.check_figures_equal(*, extensions='png', 'pdf', 'svg', tol=0)[source] -
Декоратор для тест-кейсов, генерирующих и сравнивающих две фигуры.
Декорируемая функция должна принимать два ключевых аргумента, fig_test и fig_ref, и рисовать тестовое и эталонное изображения на них. После возвращения функции, изображения сохраняются и сравниваются.
Этот декоратор следует предпочитать
image_comparisonпо возможности, чтобы избежать чрезмерного разрастания тестового набора.Параметры: -
extensionslist, default: ["png", "pdf", "svg"] -
Расширения для тестирования.
-
tolfloat -
Порог RMS, превышение которого приводит к неудаче теста.
Примеры
Проверка, что вызов
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]
-
matplotlib.testing.decorators.cleanup(style=None)[source] -
Декоратор, гарантирующий сброс любого глобального состояния перед запуском теста.
Параметры: -
stylestr, dict, or list, optional -
Стиль(и) для применения. По умолчанию
["classic", "_classic_test_patch"].
-
-
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_imageslist or None -
Список строк, указывающих имена изображений, сгенерированных вызовами
matplotlib.figure.savefig().Если None, функция теста должна использовать фикстуру
baseline_images, либо в качестве параметра, либо сpytest.mark.usefixtures. Это значение разрешено только при использовании pytest. -
extensionsNone or list of str -
Список расширений для тестирования, например,
['png', 'pdf'].Если None, используется по умолчанию все поддерживаемые расширения: png, pdf и svg.
При тестировании одного расширения его можно напрямую включить в имена, переданные в baseline_images. В таком случае extensions не должно устанавливаться.
Чтобы избежать чрезмерного разрастания тестового набора, мы включаем только
svgилиpdfвыходные данные, если тест явно использует функциональность, зависящую от этого бэкенда (см. также декораторcheck_figures_equalдля этой цели). -
tolfloat, optional, default: 0 -
Порог RMS, превышение которого приводит к неудаче теста.
-
freetype_versionstr or tuple -
Ожидаемая версия freetype или диапазон версий для прохождения теста.
-
remove_textbool -
Удалить заголовок и текст делений с фигуры перед сравнением. Это полезно для создания эталонных изображений, независимых от различий в рендеринге текста между разными версиями FreeType.
Это не удаляет другой, более целенаправленный текст, например, легенды и аннотации.
-
savefig_kwargdict -
Необязательные аргументы, которые передаются методу savefig.
-
stylestr, dict, or list -
Необязательный(ые) стиль(и), применяемые к тестовому изображению. Сам тест также может применять дополнительные стили по желанию. По умолчанию
["classic", "_classic_test_patch"].
-
-
matplotlib.testing.decorators.remove_ticks_and_titles(figure)[source]
-
matplotlib.testing.decorators.switch_backend(backend)[source] -
[Устаревший]
Примечания
Устарел начиная с версии 3.1:
matplotlib.testing.exceptions
-
exception matplotlib.testing.exceptions.ImageComparisonFailure[source] -
Базы:
AssertionErrorВызывайте эту исключение, чтобы отметить тест как сравнение двух изображений.
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.2.2/api/testing_api.html