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может сравнивать на этой системе.Возвращает: - список 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)
Возвращает: - None или dict или str
-
Возвращает None, если изображения равны в пределах заданной погрешности.
Если изображения отличаются, возвращаемое значение зависит от in_decorator. Если in_decorator равно true, возвращается словарь со следующими элементами:
- 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 -
Список строк, содержащих имена изображений, сгенерированных вызовами
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, default: 0 -
Пороговое значение RMS, превышение которого означает, что тест не пройден.
Из-за ожидаемых небольших различий в вычислениях с плавающей точкой на 32-битных системах к этому порогу добавляется 0,06.
-
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.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.3.3/api/testing_api.html