backend_driver.py

Paul Kienzle <pkienzle@...537...> writes:

We could store a copy of the png output somewhere in the svn tree. Then,
whenever we change something we can do a binary comparison on all the
plots. It would avoid issues such as breakage of polar plots where the
author of the changes didn't consider that it would affect polar plot
output. Similarly for ps/pdf. Differences in fonts between platforms
might be a problem in this scheme.

For ps/pdf the files would have to be converted to e.g. png for the
comparison to be meaningful. At least pdf files contain a randomly
selected string to identify the file, as well as the creation date,
and I am not aware of a diff tool for pdf.

Perhaps the template backend could be extended to print out a log of
all calls to draw_*, and the logs compared. This would enable a kind
of limited automatic testing of interactive features such as window
resizing and zooming: let the test backend simulate resize or zoom
events and check the draw_* log against a hand-checked version. This
approach could catch bugs like the "handles = ax.lines" which should
have been "handles = ax.lines[:]", which was only visible when alpha
was less than 1.
(http://article.gmane.org/gmane.comp.python.matplotlib.devel/2574)

···

--
Jouni K. Sepp�nen
http://www.iki.fi/jks