Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / third_party / tvcm / src / tvcm / quad_test.js
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 'use strict';
6
7 tvcm.require('tvcm.quad');
8 tvcm.require('tvcm.rect');
9
10 tvcm.unittest.testSuite('tvcm.quad_test', function() {
11   test('pointInTri', function() {
12     var res = tvcm.pointInTriangle2(
13         [0.25, 0.25],
14         [0, 0],
15         [1, 0],
16         [0, 1]);
17     assertTrue(res);
18   });
19
20   test('pointNotInTri', function() {
21     var res = tvcm.pointInTriangle2(
22         [0.75, 0.75],
23         [0, 0],
24         [1, 0],
25         [0, 1]);
26     assertFalse(res);
27   });
28
29   test('pointInside', function() {
30     var q = tvcm.Quad.from4Vecs([0, 0],
31                                 [1, 0],
32                                 [1, 1],
33                                 [0, 1]);
34     var res = q.pointInside([0.5, 0.5]);
35     assertTrue(res);
36   });
37
38   test('pointNotInQuad', function() {
39     var q = tvcm.Quad.from4Vecs([0, 0],
40                                 [1, 0],
41                                 [1, 1],
42                                 [0, 1]);
43     var res = q.pointInside([1.5, 0.5]);
44     assertFalse(res);
45   });
46
47   test('isRectangle', function() {
48     assertTrue(tvcm.Quad.fromXYWH(0, 0, 10, 10).isRectangle());
49     assertTrue(tvcm.Quad.fromXYWH(-10, -10, 5, 5).isRectangle());
50     assertTrue(tvcm.Quad.fromXYWH(-10, -10, 20, 20).isRectangle());
51     assertTrue(tvcm.Quad.fromXYWH(-10, 10, 5, 5).isRectangle());
52
53     assertFalse(tvcm.Quad.fromXYWH(0, 0, -10, -10).isRectangle());
54     assertFalse(tvcm.Quad.from8Array([0, 1, 2, 3, 4, 5, 6, 7]).isRectangle());
55     assertFalse(tvcm.Quad.from8Array([0, 0, 0, 5, 5, 5, 0, 0]).isRectangle());
56   });
57
58   test('projectUnitRect', function() {
59     var container = tvcm.Quad.fromXYWH(0, 0, 10, 10);
60     var srcRect = tvcm.Rect.fromXYWH(0.1, 0.8, 0.8, 0.1);
61     var expectedRect = srcRect.scale(10);
62
63     var q = new tvcm.Quad();
64     container.projectUnitRectFast(q, srcRect);
65
66     assertQuadEquals(tvcm.Quad.fromRect(expectedRect), q);
67   });
68
69   test('projectUnitRectOntoUnitQuad', function() {
70     var container = tvcm.Quad.fromXYWH(0, 0, 1, 1);
71     var srcRect = tvcm.Rect.fromXYWH(0.0, 0, 1, 1);
72     var expectedRect = srcRect;
73
74     var q = new tvcm.Quad();
75     container.projectUnitRectFast(q, srcRect);
76
77     assertQuadEquals(tvcm.Quad.fromRect(expectedRect), q);
78   });
79
80   test('projectUnitRectOntoSizeTwoQuad', function() {
81     var container = tvcm.Quad.fromXYWH(0, 0, 2, 2);
82     var srcRect = tvcm.Rect.fromXYWH(0.0, 0, 1, 1);
83     var expectedRect = srcRect.scale(2);
84
85     var q = new tvcm.Quad();
86     container.projectUnitRectFast(q, srcRect);
87
88     assertQuadEquals(tvcm.Quad.fromRect(expectedRect), q);
89   });
90
91   test('projectUnitRectOntoTranslatedQuad', function() {
92     var container = tvcm.Quad.fromXYWH(1, 1, 1, 1);
93     var srcRect = tvcm.Rect.fromXYWH(0.0, 0, 1, 1);
94     var expectedRect = srcRect.translate([1, 1]);
95
96     var q = new tvcm.Quad();
97     container.projectUnitRectFast(q, srcRect);
98
99     assertQuadEquals(tvcm.Quad.fromRect(expectedRect), q);
100   });
101
102   test('projectShrunkUnitRectOntoUnitQuad', function() {
103     var container = tvcm.Quad.fromXYWH(0, 0, 1, 1);
104     var srcRect = tvcm.Rect.fromXYWH(0.1, 0.1, 0.8, 0.8);
105     var expectedRect = srcRect;
106
107     var q = new tvcm.Quad();
108     container.projectUnitRectFast(q, srcRect);
109
110     assertQuadEquals(tvcm.Quad.fromRect(expectedRect), q);
111   });
112 });