This test exercises a bunch of color composition with alpha blending. The top-left rectangles are the source images and bottom-right rectangles are the destination images.
Tests for fill rect
src 255, 0, 0, 255 src 255, 0, 0, 255 src 255, 0, 0, 255 src 0, 255, 0, 0 src 0, 255, 0, 1 src 255, 0, 0, 0 src 255, 0, 0, 127 src 255, 0, 0, 255 src 255, 0, 0, 127 src 127, 0, 0, 255 src 127, 0, 0, 127 src 255, 0, 0, 127 src 255, 127, 0, 32 src 255, 0, 0, 191 src 255, 0, 255, 191
dst 0, 255, 0, 255 dst 0, 255, 0, 0 dst 0, 255, 0, 1 dst 255, 0, 0, 255 dst 255, 0, 0, 255 dst 0, 255, 0, 255 dst 0, 255, 0, 127 dst 0, 255, 0, 127 dst 0, 255, 0, 255 dst 0, 127, 0, 127 dst 0, 127, 0, 255 dst 255, 0, 0, 63 dst 255, 63, 0, 63 dst 0, 255, 0, 127 dst 0, 255, 255, 127
source-over
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
source-in
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
source-out
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
source-atop
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
destination-over
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
destination-in
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
destination-out
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
destination-atop
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
lighter
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
copy
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
xor
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
Tests for path and fill
src 255, 0, 0, 255 src 255, 0, 0, 255 src 255, 0, 0, 255 src 0, 255, 0, 0 src 0, 255, 0, 1 src 255, 0, 0, 0 src 255, 0, 0, 127 src 255, 0, 0, 255 src 255, 0, 0, 127 src 127, 0, 0, 255 src 127, 0, 0, 127 src 255, 0, 0, 127 src 255, 127, 0, 32 src 255, 0, 0, 191 src 255, 0, 255, 191
dst 0, 255, 0, 255 dst 0, 255, 0, 0 dst 0, 255, 0, 1 dst 255, 0, 0, 255 dst 255, 0, 0, 255 dst 0, 255, 0, 255 dst 0, 255, 0, 127 dst 0, 255, 0, 127 dst 0, 255, 0, 255 dst 0, 127, 0, 127 dst 0, 127, 0, 255 dst 255, 0, 0, 63 dst 255, 63, 0, 63 dst 0, 255, 0, 127 dst 0, 255, 255, 127
source-over
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
source-in
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
source-out
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
source-atop
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
destination-over
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
destination-in
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
destination-out
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
destination-atop
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
lighter
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
copy
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
xor
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS