matplotlib.testing#

matplotlib.test()#

matplotlib. test ( Ausführlichkeit = None , Coverage = False , ** kwargs ) [Quelle] #

[ Veraltet ] Führen Sie die Matplotlib-Testsuite aus.

Anmerkungen

Veraltet seit Version 3.5: Verwenden Sie stattdessen pytest.

matplotlib.testing#

Hilfsfunktionen zum Testen.

matplotlib.testing. set_font_settings_for_testing ( ) [Quelle] #
matplotlib.testing. set_reproducibility_for_testing ( ) [Quelle] #
matplotlib.testing. setup ( ) [Quelle] #
matplotlib.testing. subprocess_run_helper ( func , * args , timeout , extra_env = None ) [Quelle] #

Führen Sie eine Funktion in einem Unterprozess aus.

Parameter :
func- Funktion

Die auszuführende Funktion. Es muss sich in einem importierbaren Modul befinden.

* Argstr

Alle zusätzlichen Befehlszeilenargumente, die im ersten Argument an übergeben werden sollen subprocess.run.

extra_env dict[str, str]

Alle zusätzlichen Umgebungsvariablen, die für den Unterprozess festgelegt werden sollen.

matplotlib.testing.compare#

Dienstprogramme zum Vergleichen von Bildergebnissen.

matplotlib.testing.compare. compute_rms ( erwartetes_Bild , tatsächliches_Bild ) [Quelle] #

Berechnen Sie die Fehler pro Pixel und berechnen Sie dann den mittleren quadratischen Fehler.

matplotlib.testing.compare. vergleichbare_formate ( ) [Quelle] #

Gibt die Liste der Dateiformate zurück, compare_imagesdie auf diesem System verglichen werden können.

Rückgaben :
Liste der Str

Bsp .['png', 'pdf', 'svg', 'eps']

matplotlib.testing.compare. Compare_images ( erwartet , aktuell , tol , in_decorator = False ) [Quelle] #

Vergleichen Sie zwei "Bild"-Dateien und prüfen Sie Unterschiede innerhalb einer Toleranz.

Die beiden angegebenen Dateinamen können auf Dateien verweisen, die über das converterWörterbuch in PNG konvertiert werden können. Mit der calculate_rmsFunktion wird der zugrunde liegende Effektivwert berechnet.

Parameter :
erwartet str

Der Dateiname des erwarteten Bildes.

eigentliche str

Der Dateiname des eigentlichen Bildes.

Toll schweben

Die Toleranz (ein Farbwertunterschied, wobei 255 der maximale Unterschied ist). Der Test schlägt fehl, wenn die durchschnittliche Pixeldifferenz größer als dieser Wert ist.

in_decorator bool

Legt das Ausgabeformat fest. Wenn es vom Dekorator image_comparison aufgerufen wird, sollte dies True sein. (Standard = Falsch)

Rückgaben :
None oder dict oder str

Gibt None zurück , wenn die Bilder innerhalb der angegebenen Toleranz gleich sind.

Wenn sich die Bilder unterscheiden, hängt der Rückgabewert von in_decorator ab . Wenn in_decorator wahr ist, wird ein Diktat mit den folgenden Einträgen zurückgegeben:

  • rms : Der Effektivwert der Bilddifferenz.

  • erwartet : Der Dateiname des erwarteten Bildes.

  • aktuell : Der Dateiname des aktuellen Bildes.

  • diff_image : Der Dateiname des Differenzbildes.

  • tol : Die Vergleichstoleranz.

Andernfalls wird eine für Menschen lesbare mehrzeilige Zeichenfolgendarstellung dieser Informationen zurückgegeben.

Beispiele

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

matplotlib.testing.decorators#

Klasse matplotlib.testing.decorators. CleanupTestCase ( methodName = 'runTest' ) [Quelle] #

Basen:TestCase

[ Veraltet ] Ein Wrapper für unittest.TestCase, der Bereinigungsvorgänge enthält.

Anmerkungen

Veraltet seit Version 3.6: Verwenden Sie stattdessen eine Kopie des vorhandenen Codes, einschließlich der privaten Funktion _cleanup_cm.

Erstellen Sie eine Instanz der Klasse, die bei der Ausführung die benannte Testmethode verwendet. Löst einen ValueError aus, wenn die Instanz keine Methode mit dem angegebenen Namen hat.

Klassenmethode setUpClass ( ) [Quelle] #

Hook-Methode zum Einrichten der Klassenfixierung vor dem Ausführen von Tests in der Klasse.

Klassenmethode tearDownClass ( ) [Quelle] #

Hook-Methode zum Dekonstruieren der Klassenfixierung nach dem Ausführen aller Tests in der Klasse.

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

Decorator für Testfälle, die zwei Zahlen generieren und vergleichen.

Die dekorierte Funktion muss zwei Schlüsselwortargumente nehmen, fig_test und fig_ref , und die Test- und Referenzbilder darauf zeichnen. Nach Rückkehr der Funktion werden die Zahlen gespeichert und verglichen.

Diesem Decorator sollte nach Möglichkeit der Vorzug gegeben image_comparisonwerden, um die Größe der Testsuite nicht in die Höhe zu treiben.

Parameter :
Erweiterungsliste , Standard: ["png", "pdf", "svg"]

Die zu testenden Erweiterungen.

Toll schweben

Der RMS-Schwellenwert, oberhalb dessen der Test als fehlgeschlagen gilt.

Erhöhungen :
Laufzeit Fehler

Wenn innerhalb der Testfunktion neue Figuren erstellt (und anschließend nicht geschlossen) werden.

Beispiele

Überprüfen Sie, ob das Aufrufen Axes.plotmit einem einzigen Argument es gegen darstellt :[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 ) [Quelle] #

[ Veraltet ]

Anmerkungen

Veraltet seit Version 3.6: Verwenden Sie stattdessen eine vom Anbieter bereitgestellte Kopie des vorhandenen Codes von _check_freetype_version.

matplotlib.testing.decorators. Bereinigung ( style = None ) [Quelle] #

[ Veraltet ] Ein Decorator, um sicherzustellen, dass jeder globale Status zurückgesetzt wird, bevor ein Test ausgeführt wird.

Parameter :
style str, dict oder list, optional

Die anzuwendenden Stile. Standardmäßig auf .["classic", "_classic_test_patch"]

Anmerkungen

Veraltet seit Version 3.6: Verwenden Sie stattdessen eine Kopie des vorhandenen Codes, einschließlich der privaten Funktion _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] #

Vergleichen Sie die vom Test generierten Bilder mit den in baseline_images angegebenen , die übereinstimmen müssen, sonst ImageComparisonFailure wird eine Ausnahme ausgelöst.

Parameter :
baseline_images list oder None

Eine Liste von Zeichenfolgen, die die Namen der Bilder angeben, die durch Aufrufe von generiert werden Figure.savefig.

Wenn None , muss die Testfunktion das baseline_imagesFixture verwenden, entweder als Parameter oder mit pytest.mark.usefixtures. Dieser Wert ist nur bei Verwendung von pytest zulässig.

Erweiterungen Keine oder Liste von str

Die Liste der zu testenden Erweiterungen, zB .['png', 'pdf']

Bei None werden standardmäßig alle unterstützten Erweiterungen verwendet: png, pdf und svg.

Beim Testen einer einzelnen Erweiterung kann diese direkt in die Namen aufgenommen werden, die an baseline_images übergeben werden . In diesem Fall dürfen keine Erweiterungen gesetzt werden.

Um zu verhindern, dass die Größe der Testsuite ansteigt, schließen wir die svgoder pdf-Ausgaben nur ein, wenn der Test explizit eine Funktion ausübt, die von diesem Backend abhängt (siehe auch den check_figures_equalDecorator für diesen Zweck).

tol Float, Standard: 0

Der RMS-Schwellenwert, oberhalb dessen der Test als fehlgeschlagen gilt.

Aufgrund erwarteter kleiner Unterschiede bei Gleitkommaberechnungen wird auf 32-Bit-Systemen ein zusätzlicher Wert von 0,06 zu diesem Schwellenwert hinzugefügt.

freetype_version str oder Tupel

Die erwartete Freetype-Version oder der Bereich der Versionen, damit dieser Test bestanden wird.

remove_text bool

Entfernen Sie vor dem Vergleich den Titel und kreuzen Sie den Text aus der Abbildung an. Dies ist nützlich, um die Basisbilder unabhängig von Variationen in der Textwiedergabe zwischen verschiedenen Versionen von FreeType zu machen.

Andere, absichtlichere Texte wie Legenden und Anmerkungen werden dadurch nicht entfernt.

savefig_kwarg dict

Optionale Argumente, die an die savefig-Methode übergeben werden.

style str, dict oder list

Die optionalen Stile, die auf den Bildtest angewendet werden sollen. Der Test selbst kann auf Wunsch auch zusätzliche Stile anwenden. Standardmäßig auf .["classic", "_classic_test_patch"]

matplotlib.testing.decorators. remove_ticks_and_titles ( Abbildung ) [Quelle] #

matplotlib.testing.exceptions#

Ausnahme matplotlib.testing.exceptions. ImageComparisonFailure [Quelle] #

Basen:AssertionError

Lösen Sie diese Ausnahme aus, um einen Test als Vergleich zwischen zwei Bildern zu markieren.