Equality Testing on Images
Opened this issue · 0 comments
Reduced Test
http://www.wescheme.org/openEditor?publicId=hoard-doubt-grope-knoll-boost
Returns "true" on DrRacket, "false" on WeScheme.
Bug Location
https://github.com/dyoo/whalesong/blob/master/image/private/kernel.js, line 641, and 766
Explanation
It's totally my fault -- I was stupidly naive about equality testing for transformed images (scale, flip, rotate). During equality comparison, I check to see if both images are flipped/rotated/scaled by the same amount, which ignores that fact that an image can be transformed to be equivalent to another, nontransformed image.
Robby does a normalization pass over image trees, which removes these transformation from the tree before doing an equality test. ("Rotated Circles" become "Circles", and "stretched rectangles" become "rectangles"). I'll have to do the same thing to make this right.