LilyPond Regression Tests

As promised on the lilypond.bugs newsgroup, I've written a C# program that does a pixel-by-pixel check on the "old" and "new" regtest images. It only took 2 or 3 hours to write - it's currently single threaded, so the status display doesn't work, but anyway, it works and shows what's possible. A pixel was counted as "different" if the brightness of the pixels was different by greater than 1, where the brightness scale is 0 to 255. I ran it against the 2.13.39 regtests using the 2.13.39 .exe, comparing the results with the 2.13.40 regtests compiled using the 2.13.40 .exe. It took 30 minutes to run the comparisons (plus about 45 to compile the images with LilyPond) and it threw up 21 image differences. This page shows them all, no matter how trivial. The images have been cropped by hand. A very slight difference shown enlarged below. It's only a single pixel, but quite different in intensity beween the 2 versions - brightness is 46 in one version and 68 in the other. Well - this is really the one I wrote the program for. As you can see, it clearly picks up the bug fix in the figured bass notation. The red signifies pixels present in .40 and absent in .39. Changes in the vertical spacing. To my mind, a difference we should be aware of and see, but not a cause for concern. Dunno. Scaled up image below: Again, vertical spacing changes. To my eye the ottava bracket on .39 is too close to the clef and should have been picked up in previous regtests. Vertical spacing changes. Ditto Ditto Presumably changes to the staff/page spacing names. Ditto Ditto Ditto Ditto Vertical spacing changes. Rests look too close to me in .39. Not too sure what's happening here. Looking at the originals in photoshop, this looks like the staves have been moved about 1/2 pixel, the note heads not at all, but the tremolo marks a pixel or so. Slightly odd. An amazingly minor brightness change at the intersection of a bar line and staff line. It's a red dot at the first bar line, lowest line of the top staff. I believe this deliberately changes with every release. Vertical spacing changes. Another pretty minor change - 2 characters in the non-Roman script on the top line. Dunno if this is significant. Vertical spacing changes. It looks like .39 was too close.