I have a last bg::equals test marked as expected failure, but i'm not sure about that one: If you construct a box with their two corners swapped, eg: Box(Point(2, 2), Point(1, 1)), then bg::equals with the normalised version of the box returns false. That is: bg::equals(Box(Point(2, 2), Point(1, 1)), Box(Point(1, 1), Point(2, 2))) = false; Conceptually, they are geometrically equals, as boxes don't have a concept of orientation like ring do.
My Box class doesn't automatically correct for this since the user might want to create such a box for whatever reason. Do you think that this is a bug, or is it expected or officially undefined, as the box is degenerated?
I would like to highlight that bg::area() on such a box, returns the correct area (positive).
I vaguely remember seeing code in BG that check for equality using area (may well be ring/polygons), obviously it's not the case for the box.