Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(310)

Unified Diff: tests/lib/math/rectangle_test.dart

Issue 135273009: Make Rectangle and MutableRectangle constructors handle negative lengths. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove unnecessary T's. Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tests/lib/math/rectangle_test.dart
diff --git a/tests/lib/math/rectangle_test.dart b/tests/lib/math/rectangle_test.dart
index 9e1c47957ef650d9c0ae76b2c2aa09286872d95a..856c1b8047776d589fae1aa90da2b416169e64ca 100644
--- a/tests/lib/math/rectangle_test.dart
+++ b/tests/lib/math/rectangle_test.dart
@@ -24,6 +24,9 @@ main() {
var r2 = new Rectangle.fromPoints(r0.bottomRight, r0.topLeft);
expect(r2, r0);
+
+ var r3 = new Rectangle(40, 60, -30, -40);
+ expect(r3, r0);
});
test('intersection', () {
@@ -128,4 +131,19 @@ main() {
var c = new Rectangle(1, 0, 2, 3);
expect(a.hashCode == c.hashCode, isFalse);
});
+
+ test('negative lengths', () {
+ // Constructor allows negative widths, but converts them to positive.
+ expect(new Rectangle(4, 4, -2, -2), new Rectangle(2, 2, 2, 2));
+ expect(new MutableRectangle(4, 4, -2, -2), new Rectangle(2, 2, 2, 2));
+ // Setters do not allow setting negative lengths.
+ var r = new MutableRectangle(0, 0, 1, 1);
+ expect(() { r.width = -1; }, throws);
+ expect(() { r.height = -1; }, throws);
+ // Minus zero isn't negative.
+ r = new MutableRectangle<double>(0.0, 0.0, 1.0, 1.0);
+ r.width = -0.0;
+ r.height = -0.0;
+ expect(r, new Rectangle(0.0, 0.0, 0.0, 0.0));
+ });
}

Powered by Google App Engine
This is Rietveld 408576698