OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <!-- | |
3 Copyright (c) 2014 The Chromium Authors. All rights reserved. | |
4 Use of this source code is governed by a BSD-style license that can be | |
5 found in the LICENSE file. | |
6 --> | |
7 <link rel="import" href="/tracing/base/quad.html"> | |
8 <link rel="import" href="/tracing/base/rect.html"> | |
9 <script> | |
10 'use strict'; | |
11 | |
12 function assertQuadEquals(a, b, opt_message) { | |
13 var ok = true; | |
14 ok &= a.p1[0] === b.p1[0] && a.p1[1] === b.p1[1]; | |
15 ok &= a.p2[0] === b.p2[0] && a.p2[1] === b.p2[1]; | |
16 ok &= a.p3[0] === b.p3[0] && a.p3[1] === b.p3[1]; | |
17 ok &= a.p4[0] === b.p4[0] && a.p4[1] === b.p4[1]; | |
18 if (ok) | |
19 return; | |
20 var message = opt_message || 'Expected "' + a.toString() + | |
21 '", got "' + b.toString() + '"'; | |
22 assert.fail(a, b, message); | |
23 } | |
24 | |
25 tr.b.unittest.testSuite(function() { | |
26 test('pointInTri', function() { | |
27 var res = tr.b.pointInTriangle2( | |
28 [0.25, 0.25], | |
29 [0, 0], | |
30 [1, 0], | |
31 [0, 1]); | |
32 assert.isTrue(res); | |
33 }); | |
34 | |
35 test('pointNotInTri', function() { | |
36 var res = tr.b.pointInTriangle2( | |
37 [0.75, 0.75], | |
38 [0, 0], | |
39 [1, 0], | |
40 [0, 1]); | |
41 assert.isFalse(res); | |
42 }); | |
43 | |
44 test('pointInside', function() { | |
45 var q = tr.b.Quad.from4Vecs([0, 0], | |
46 [1, 0], | |
47 [1, 1], | |
48 [0, 1]); | |
49 var res = q.pointInside([0.5, 0.5]); | |
50 assert.isTrue(res); | |
51 }); | |
52 | |
53 test('pointNotInQuad', function() { | |
54 var q = tr.b.Quad.from4Vecs([0, 0], | |
55 [1, 0], | |
56 [1, 1], | |
57 [0, 1]); | |
58 var res = q.pointInside([1.5, 0.5]); | |
59 assert.isFalse(res); | |
60 }); | |
61 | |
62 test('isRectangle', function() { | |
63 assert.isTrue(tr.b.Quad.fromXYWH(0, 0, 10, 10).isRectangle()); | |
64 assert.isTrue(tr.b.Quad.fromXYWH(-10, -10, 5, 5).isRectangle()); | |
65 assert.isTrue(tr.b.Quad.fromXYWH(-10, -10, 20, 20).isRectangle()); | |
66 assert.isTrue(tr.b.Quad.fromXYWH(-10, 10, 5, 5).isRectangle()); | |
67 | |
68 assert.isFalse(tr.b.Quad.fromXYWH(0, 0, -10, -10).isRectangle()); | |
69 assert.isFalse( | |
70 tr.b.Quad.from8Array([0, 1, 2, 3, 4, 5, 6, 7]).isRectangle()); | |
71 assert.isFalse( | |
72 tr.b.Quad.from8Array([0, 0, 0, 5, 5, 5, 0, 0]).isRectangle()); | |
73 }); | |
74 | |
75 test('projectUnitRect', function() { | |
76 var container = tr.b.Quad.fromXYWH(0, 0, 10, 10); | |
77 var srcRect = tr.b.Rect.fromXYWH(0.1, 0.8, 0.8, 0.1); | |
78 var expectedRect = srcRect.scale(10); | |
79 | |
80 var q = new tr.b.Quad(); | |
81 container.projectUnitRectFast(q, srcRect); | |
82 | |
83 assertQuadEquals(tr.b.Quad.fromRect(expectedRect), q); | |
84 }); | |
85 | |
86 test('projectUnitRectOntoUnitQuad', function() { | |
87 var container = tr.b.Quad.fromXYWH(0, 0, 1, 1); | |
88 var srcRect = tr.b.Rect.fromXYWH(0.0, 0, 1, 1); | |
89 var expectedRect = srcRect; | |
90 | |
91 var q = new tr.b.Quad(); | |
92 container.projectUnitRectFast(q, srcRect); | |
93 | |
94 assertQuadEquals(tr.b.Quad.fromRect(expectedRect), q); | |
95 }); | |
96 | |
97 test('projectUnitRectOntoSizeTwoQuad', function() { | |
98 var container = tr.b.Quad.fromXYWH(0, 0, 2, 2); | |
99 var srcRect = tr.b.Rect.fromXYWH(0.0, 0, 1, 1); | |
100 var expectedRect = srcRect.scale(2); | |
101 | |
102 var q = new tr.b.Quad(); | |
103 container.projectUnitRectFast(q, srcRect); | |
104 | |
105 assertQuadEquals(tr.b.Quad.fromRect(expectedRect), q); | |
106 }); | |
107 | |
108 test('projectUnitRectOntoTranslatedQuad', function() { | |
109 var container = tr.b.Quad.fromXYWH(1, 1, 1, 1); | |
110 var srcRect = tr.b.Rect.fromXYWH(0.0, 0, 1, 1); | |
111 var expectedRect = srcRect.translate([1, 1]); | |
112 | |
113 var q = new tr.b.Quad(); | |
114 container.projectUnitRectFast(q, srcRect); | |
115 | |
116 assertQuadEquals(tr.b.Quad.fromRect(expectedRect), q); | |
117 }); | |
118 | |
119 test('projectShrunkUnitRectOntoUnitQuad', function() { | |
120 var container = tr.b.Quad.fromXYWH(0, 0, 1, 1); | |
121 var srcRect = tr.b.Rect.fromXYWH(0.1, 0.1, 0.8, 0.8); | |
122 var expectedRect = srcRect; | |
123 | |
124 var q = new tr.b.Quad(); | |
125 container.projectUnitRectFast(q, srcRect); | |
126 | |
127 assertQuadEquals(tr.b.Quad.fromRect(expectedRect), q); | |
128 }); | |
129 }); | |
130 </script> | |
OLD | NEW |