Spec-Zone.ru › Matplotlib 3.1

matplotlib.testing

matplotlib.testing

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

matplotlib.testing.is_called_from_pytest() [source]

Определяет, выполняются ли тесты в рамках pytest.

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.compare_float(expected, actual, relTol=None, absTol=None) [source]

[Устаревшее] Прерывает выполнение, если значения с плавающей запятой недостаточно близки, с указанным сообщением.

Можно указать относительную и/или абсолютную толерантность.

Примечания

Устарело начиная с версии 3.0.

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

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

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

Параметры:
expected : str

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

actual : str

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

tol : float

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

in_decorator : bool

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

Возвращаемые значения:
comparison_result : None 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.compare.comparable_formats() [source]

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

Возвращаемые значения:
supported_formats : list of str

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

matplotlib.testing.decorators

class matplotlib.testing.decorators.CleanupTest(**kwargs) [source]

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

[Устаревшее]

Примечания

Устарело начиная с версии 3.0:

classmethod setup_class()
classmethod teardown_class()
test(self) [source]
class matplotlib.testing.decorators.CleanupTestCase(methodName='runTest') [source]

Базовый класс: unittest.case.TestCase

Обёртка над unittest.TestCase, включающая операции по очистке.

Создаёт экземпляр класса, который будет использовать указанный метод теста при выполнении. Вызывает ValueError, если у экземпляра нет метода с указанным именем.

classmethod setUpClass() [source]

Метод настройки класса перед запуском тестов в классе.

classmethod tearDownClass() [source]

Метод разборки класса после запуска всех тестов в классе.

class matplotlib.testing.decorators.ImageComparisonTest(**kwargs) [source]

Базовый класс: matplotlib.testing.decorators.CleanupTest, matplotlib.testing.decorators._ImageComparisonBase

[Устаревшее] Класс для сравнения изображений на основе Nose.

Этот класс генерирует тесты для фреймворка тестирования на основе Nose. В идеале этот класс не должен быть публичным, и единственным публичным API должен быть декоратор image_comparison(). К сожалению, существуют существующие пользователи этого класса (например, pytest-mpl), поэтому его пока нельзя удалить.

Примечания

Устарело начиная с версии 3.0.

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

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

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

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

Параметры:
extensions : list, default: ["png", "pdf", "svg"]

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

tol : float

Пороговое значение 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]

Декоратор, гарантирующий сброс любого глобального состояния перед запуском теста.

Параметры:
style : str, optional

Имя стиля, который нужно применить.

matplotlib.testing.decorators.image_comparison(baseline_images, extensions=None, tol=0, freetype_version=None, remove_text=False, savefig_kwarg=None, style='_classic_test') [source]

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

Параметры:
baseline_images : list or None

Список строк, содержащих имена изображений, сгенерированных вызовами matplotlib.figure.savefig().

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

extensions : None or list of str

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

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

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

tol : float, optional, default: 0

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

freetype_version : str or tuple

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

remove_text : bool

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

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

savefig_kwarg : dict

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

style : string

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

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

[Устаревший] Пропускает тест, если команда недоступна.

Параметры:
cmd : list of str

должна быть полной командой, которая не должна возвращать ненулевой код выхода, например, ["latex", "-version"]

Примечания

Устарело начиная с версии 3.0.

matplotlib.testing.decorators.switch_backend(backend) [source]

[Устаревший]

Примечания

Устарело начиная с версии 3.1:

matplotlib.testing.disable_internet

matplotlib.testing.disable_internet.check_internet_off(original_function) [source]

Обертывает original_function, которое в большинстве случаев предполагается, что это метод socket.socket, для повышения исключения IOError для любых операций с сокетами AF_INET, не относящимися к локальному устройству.

matplotlib.testing.disable_internet.no_internet(verbose=False) [source]

Менеджер контекста для временного отключения доступа в интернет (если он еще не отключен). Если он был отключен до входа в менеджер контекста (т. е. turn_off_internet был вызван ранее), то это просто бездействие и доступ в интернет остается отключенным до явного вызова turn_on_internet.

matplotlib.testing.disable_internet.turn_off_internet(verbose=False) [source]

Отключить доступ в интернет через python, предотвратив создание подключений с помощью модуля socket. Предполагается, что это можно обойти, используя другие способы доступа в интернет, но все стандартные модули python (urllib, requests и т. д.) используют socket [ссылка на источник необходима].

matplotlib.testing.disable_internet.turn_on_internet(verbose=False) [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.1.1/api/testing_api.html

Spec-Zone.ru

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