matplotlib.testing
#
matplotlib.test()
#
matplotlib.testing
#
Hilfsfunktionen zum Testen.
- 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_images
die 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
converter
Wörterbuch in PNG konvertiert werden können. Mit dercalculate_rms
Funktion 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.
- 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_comparison
werden, 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.plot
mit 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_images
Fixture verwenden, entweder als Parameter oder mitpytest.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
svg
oderpdf
-Ausgaben nur ein, wenn der Test explizit eine Funktion ausübt, die von diesem Backend abhängt (siehe auch dencheck_figures_equal
Decorator 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.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.