Add 19 tests covering edge cases across all shape types: - Negative coordinates: SRectangle, SCircle, STriangle, translate - Zero dimensions: zero width/height rectangle, zero radius circle - Resize clamping: verify width/height minimum enforcement - Null handling: null/blank text normalization, unknown attribute key, empty collection - Large values: Integer.MAX_VALUE/2 coords, MAX/MIN_VALUE translate Closes #13