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

Side by Side Diff: tests/html/rect_test.dart

Issue 12493003: Exposing Point & Rect types (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library rect_test; 5 library rect_test;
6 6
7 import 'dart:html'; 7 import 'dart:html';
8 import 'package:unittest/unittest.dart'; 8 import 'package:unittest/unittest.dart';
9 import 'package:unittest/html_config.dart'; 9 import 'package:unittest/html_config.dart';
10 10
11 main() { 11 main() {
12 useHtmlConfiguration(); 12 useHtmlConfiguration();
13 13
14 Rect createRect(List<num> a) { 14 Rect createRect(List<num> a) {
15 return a != null ? new Rect(a[0], a[1], a[2] - a[0], a[3] - a[1]) : null; 15 return a != null ? new Rect(a[0], a[1], a[2] - a[0], a[3] - a[1]) : null;
16 } 16 }
17 17
18 Rect createClientRect(List<num> a) {
19 var element = new DivElement();
20 element.style.left = '${a[0]}px';
21 element.style.top = '${a[1]}px';
22 element.style.width = '${a[2] - a[0]}px';
23 element.style.height = '${a[3] - a[1]}px';
24 element.style.position = 'absolute';
25 document.body.append(element);
26 return element.getBoundingClientRect();
27 }
28
18 test('construction', () { 29 test('construction', () {
19 var r0 = new Rect(10, 20, 30, 40); 30 var r0 = new Rect(10, 20, 30, 40);
20 expect(r0.toString(), '(10, 20, 30, 40)'); 31 expect(r0.toString(), '(10, 20, 30, 40)');
21 expect(r0.right, 40); 32 expect(r0.right, 40);
22 expect(r0.bottom, 60); 33 expect(r0.bottom, 60);
23 34
24 var r1 = new Rect.fromPoints(r0.topLeft, r0.bottomRight); 35 var r1 = new Rect.fromPoints(r0.topLeft, r0.bottomRight);
25 expect(r1, r0); 36 expect(r1, r0);
26 37
27 var r2 = new Rect.fromPoints(r0.bottomRight, r0.topLeft); 38 var r2 = new Rect.fromPoints(r0.bottomRight, r0.topLeft);
28 expect(r2, r0); 39 expect(r2, r0);
29 }); 40 });
30 41
31 test('intersection', () { 42 test('intersection', () {
32 var tests = [ 43 var tests = [
33 [[10, 10, 20, 20], [15, 15, 25, 25], [15, 15, 20, 20]], 44 [[10, 10, 20, 20], [15, 15, 25, 25], [15, 15, 20, 20]],
34 [[10, 10, 20, 20], [20, 0, 30, 10], [20, 10, 20, 10]], 45 [[10, 10, 20, 20], [20, 0, 30, 10], [20, 10, 20, 10]],
35 [[0, 0, 1, 1], [10, 11, 12, 13], null], 46 [[0, 0, 1, 1], [10, 11, 12, 13], null],
36 [[11, 12, 98, 99], [22, 23, 34, 35], [22, 23, 34, 35]]]; 47 [[11, 12, 98, 99], [22, 23, 34, 35], [22, 23, 34, 35]]];
37 48
38 for (var test in tests) { 49 for (var test in tests) {
39 var r0 = createRect(test[0]); 50 var r0 = createRect(test[0]);
40 var r1 = createRect(test[1]); 51 var r1 = createRect(test[1]);
41 var expected = createRect(test[2]); 52 var expected = createRect(test[2]);
42 53
43 expect(r0.intersection(r1), expected); 54 expect(r0.intersection(r1), expected);
44 expect(r1.intersection(r0), expected); 55 expect(r1.intersection(r0), expected);
56
57 var r2 = createClientRect(test[0]);
58 var r3 = createClientRect(test[1]);
59
60 expect(r2.intersection(r3), expected);
61 expect(r3.intersection(r2), expected);
45 } 62 }
46 }); 63 });
47 64
48 test('intersects', () { 65 test('intersects', () {
49 var r0 = new Rect(10, 10, 20, 20); 66 var r0 = new Rect(10, 10, 20, 20);
50 var r1 = new Rect(15, 15, 25, 25); 67 var r1 = new Rect(15, 15, 25, 25);
51 var r2 = new Rect(0, 0, 1, 1); 68 var r2 = new Rect(0, 0, 1, 1);
52 69
53 expect(r0.intersects(r1), isTrue); 70 expect(r0.intersects(r1), isTrue);
54 expect(r1.intersects(r0), isTrue); 71 expect(r1.intersects(r0), isTrue);
55 72
56 expect(r0.intersects(r2), isFalse); 73 expect(r0.intersects(r2), isFalse);
57 expect(r2.intersects(r0), isFalse); 74 expect(r2.intersects(r0), isFalse);
58 }); 75 });
59 76
60 test('union', () { 77 test('union', () {
61 var tests = [ 78 var tests = [
62 [[10, 10, 20, 20], [15, 15, 25, 25], [10, 10, 25, 25]], 79 [[10, 10, 20, 20], [15, 15, 25, 25], [10, 10, 25, 25]],
63 [[10, 10, 20, 20], [20, 0, 30, 10], [10, 0, 30, 20]], 80 [[10, 10, 20, 20], [20, 0, 30, 10], [10, 0, 30, 20]],
64 [[0, 0, 1, 1], [10, 11, 12, 13], [0, 0, 12, 13]], 81 [[0, 0, 1, 1], [10, 11, 12, 13], [0, 0, 12, 13]],
65 [[11, 12, 98, 99], [22, 23, 34, 35], [11, 12, 98, 99]]]; 82 [[11, 12, 98, 99], [22, 23, 34, 35], [11, 12, 98, 99]]];
66 83
67 for (var test in tests) { 84 for (var test in tests) {
68 var r0 = createRect(test[0]); 85 var r0 = createRect(test[0]);
69 var r1 = createRect(test[1]); 86 var r1 = createRect(test[1]);
70 var expected = createRect(test[2]); 87 var expected = createRect(test[2]);
71 88
72 expect(r0.union(r1), expected); 89 expect(r0.union(r1), expected);
73 expect(r1.union(r0), expected); 90 expect(r1.union(r0), expected);
91
92 var r2 = createClientRect(test[0]);
93 var r3 = createClientRect(test[1]);
94
95 expect(r2.union(r3), expected);
96 expect(r3.union(r2), expected);
74 } 97 }
75 }); 98 });
76 99
77 test('containsRect', () { 100 test('containsRect', () {
78 var r = new Rect(-10, 0, 20, 10); 101 var r = new Rect(-10, 0, 20, 10);
79 expect(r.containsRect(r), isTrue); 102 expect(r.containsRect(r), isTrue);
80 103
81 expect(r.containsRect( 104 expect(r.containsRect(
82 new Rect(double.NAN, double.NAN, double.NAN, double.NAN)), isFalse); 105 new Rect(double.NAN, double.NAN, double.NAN, double.NAN)), isFalse);
83 106
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 var rect = new Rect(11.4, 26.6, 17.8, 9.2); 164 var rect = new Rect(11.4, 26.6, 17.8, 9.2);
142 var b = rect.toInt(); 165 var b = rect.toInt();
143 expect(b, new Rect(11, 26, 17, 9)); 166 expect(b, new Rect(11, 26, 17, 9));
144 167
145 expect(b.left is int, isTrue); 168 expect(b.left is int, isTrue);
146 expect(b.top is int, isTrue); 169 expect(b.top is int, isTrue);
147 expect(b.width is int, isTrue); 170 expect(b.width is int, isTrue);
148 expect(b.height is int, isTrue); 171 expect(b.height is int, isTrue);
149 }); 172 });
150 } 173 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698