poor man's unit testing

I've always used the examples dir as a kind of poor-man's unit testing
framework. I've made that slightly more rigorous of late with a
backend_driver script. The script runs a bunch of examples, stripping
lines like

  matplotlib.use('somebackend')

or

  savefig('somefile')

and replacing them with backend appropriate lines. So you can run a
bunch of examples for your backend.

In addition to the known problems (paint clipping, wx vertical text
rendering on GTK/linux), here are a few more I've seen

paint: see axes_demo. There is a funky horizontal line extending from
  one of the axes reminiscent of the clipping artifact I found when I
  tried to get clipping working

wx:

  * clipping appears broken: arctest.py, legend_demo.py, and so on.
    This used to work, right?

  * dotted lines are solid: see any plot with grid(True), eg,
    log_test.py. Ditto for dashed lines: eg, plot(t3, cos(2*pi*t3),
    'r--') appears solid.

gd:

  * clipping works in some cases: eg in arctest some of the arcs are
    clipped and others not; legend_demo clips fine

paint + agg: small font rasters look bad; is this a freetype1 problem?

table

  * table location doesn't update on interactive pan, zoom etc...

Here is the driver script. In the next couple of weeks, I may modify
it a bit to give timing breakdowns per script rather than just
overall, so we can identify the areas where particular backends are
performing slowly.

The timing information and GTK and WX don't have any relevance right
now because the user has to close the window -- but this can be
changed later.

backend_driver.py (2.29 KB)