Bob, would you mind giving this a review? As noted in the commit message, the behavior is slightly different than HSC's as the getCorners() function returns the coord of the corner of the pixels (i.e. widened by half a pixel), so instead of the lower-left-corner being (0,0) it would be (-0.5,-0.5). Similarly, a upper-right-corner of (N,M) would now be (N+0.5,M+0.5). I believe this is the desired behavior here.
I ran this for ccd=22 (an edge ccd) on both stacks:
validPolygon = Polygon([Point2D(5.022926519e-13, 909.8878363), Point2D(3.030908857e-13, 4175), Point2D(2047, 4175), Point2D(2047, 1726.11202), Point2D(2008.768908, 1706.628072), Point2D(999.8439061, 1269.936901), Point2D(5.022926519e-13, 909.8878363)])
validPolygon = Polygon([Point2D(-0.4989926346, 909.5722098), Point2D(-0.5, 4175.5), Point2D(2047.5, 4175.5), Point2D(2047.501071, 1726.209369), Point2D(2008.926333, 1706.550894), Point2D(1000.001332, 1269.859723), Point2D(-0.4989926346, 909.5722098)])
So the results are very similar and consistent with the new corner definitions.
A Jenkins build was successful.