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

Side by Side Diff: ui/gfx/range/range_unittest.cc

Issue 876873003: Add float version of gfx::Range (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: newline at EOF Created 5 years, 10 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 #include "ui/gfx/range/range.h" 6 #include "ui/gfx/range/range.h"
7 7
8 TEST(RangeTest, EmptyInit) { 8 namespace {
9 gfx::Range r; 9
10 template <typename T>
11 class RangeTest : public testing::Test {
12 };
13
14 typedef testing::Types<gfx::Range, gfx::RangeF> RangeTypes;
15 TYPED_TEST_CASE(RangeTest, RangeTypes);
16
17 template <typename T>
18 void TestContainsAndIntersects(const T& r1,
19 const T& r2,
20 const T& r3) {
21 EXPECT_TRUE(r1.Intersects(r1));
22 EXPECT_TRUE(r1.Contains(r1));
23 EXPECT_EQ(T(10, 12), r1.Intersect(r1));
24
25 EXPECT_FALSE(r1.Intersects(r2));
26 EXPECT_FALSE(r1.Contains(r2));
27 EXPECT_TRUE(r1.Intersect(r2).is_empty());
28 EXPECT_FALSE(r2.Intersects(r1));
29 EXPECT_FALSE(r2.Contains(r1));
30 EXPECT_TRUE(r2.Intersect(r1).is_empty());
31
32 EXPECT_TRUE(r1.Intersects(r3));
33 EXPECT_TRUE(r3.Intersects(r1));
34 EXPECT_TRUE(r3.Contains(r1));
35 EXPECT_FALSE(r1.Contains(r3));
36 EXPECT_EQ(T(10, 12), r1.Intersect(r3));
37 EXPECT_EQ(T(10, 12), r3.Intersect(r1));
38
39 EXPECT_TRUE(r2.Intersects(r3));
40 EXPECT_TRUE(r3.Intersects(r2));
41 EXPECT_FALSE(r3.Contains(r2));
42 EXPECT_FALSE(r2.Contains(r3));
43 EXPECT_EQ(T(5, 8), r2.Intersect(r3));
44 EXPECT_EQ(T(5, 8), r3.Intersect(r2));
45 }
46
47 } // namespace
48
49 TYPED_TEST(RangeTest, EmptyInit) {
50 TypeParam r;
10 EXPECT_EQ(0U, r.start()); 51 EXPECT_EQ(0U, r.start());
11 EXPECT_EQ(0U, r.end()); 52 EXPECT_EQ(0U, r.end());
12 EXPECT_EQ(0U, r.length()); 53 EXPECT_EQ(0U, r.length());
13 EXPECT_FALSE(r.is_reversed()); 54 EXPECT_FALSE(r.is_reversed());
14 EXPECT_TRUE(r.is_empty()); 55 EXPECT_TRUE(r.is_empty());
15 EXPECT_TRUE(r.IsValid()); 56 EXPECT_TRUE(r.IsValid());
16 EXPECT_EQ(0U, r.GetMin()); 57 EXPECT_EQ(0U, r.GetMin());
17 EXPECT_EQ(0U, r.GetMax()); 58 EXPECT_EQ(0U, r.GetMax());
18 } 59 }
19 60
20 TEST(RangeTest, StartEndInit) { 61 TYPED_TEST(RangeTest, StartEndInit) {
21 gfx::Range r(10, 15); 62 TypeParam r(10, 15);
22 EXPECT_EQ(10U, r.start()); 63 EXPECT_EQ(10U, r.start());
23 EXPECT_EQ(15U, r.end()); 64 EXPECT_EQ(15U, r.end());
24 EXPECT_EQ(5U, r.length()); 65 EXPECT_EQ(5U, r.length());
25 EXPECT_FALSE(r.is_reversed()); 66 EXPECT_FALSE(r.is_reversed());
26 EXPECT_FALSE(r.is_empty()); 67 EXPECT_FALSE(r.is_empty());
27 EXPECT_TRUE(r.IsValid()); 68 EXPECT_TRUE(r.IsValid());
28 EXPECT_EQ(10U, r.GetMin()); 69 EXPECT_EQ(10U, r.GetMin());
29 EXPECT_EQ(15U, r.GetMax()); 70 EXPECT_EQ(15U, r.GetMax());
30 } 71 }
31 72
32 TEST(RangeTest, StartEndReversedInit) { 73 TYPED_TEST(RangeTest, StartEndReversedInit) {
33 gfx::Range r(10, 5); 74 TypeParam r(10, 5);
34 EXPECT_EQ(10U, r.start()); 75 EXPECT_EQ(10U, r.start());
35 EXPECT_EQ(5U, r.end()); 76 EXPECT_EQ(5U, r.end());
36 EXPECT_EQ(5U, r.length()); 77 EXPECT_EQ(5U, r.length());
37 EXPECT_TRUE(r.is_reversed()); 78 EXPECT_TRUE(r.is_reversed());
38 EXPECT_FALSE(r.is_empty()); 79 EXPECT_FALSE(r.is_empty());
39 EXPECT_TRUE(r.IsValid()); 80 EXPECT_TRUE(r.IsValid());
40 EXPECT_EQ(5U, r.GetMin()); 81 EXPECT_EQ(5U, r.GetMin());
41 EXPECT_EQ(10U, r.GetMax()); 82 EXPECT_EQ(10U, r.GetMax());
42 } 83 }
43 84
44 TEST(RangeTest, PositionInit) { 85 TYPED_TEST(RangeTest, PositionInit) {
45 gfx::Range r(12); 86 TypeParam r(12);
46 EXPECT_EQ(12U, r.start()); 87 EXPECT_EQ(12U, r.start());
47 EXPECT_EQ(12U, r.end()); 88 EXPECT_EQ(12U, r.end());
48 EXPECT_EQ(0U, r.length()); 89 EXPECT_EQ(0U, r.length());
49 EXPECT_FALSE(r.is_reversed()); 90 EXPECT_FALSE(r.is_reversed());
50 EXPECT_TRUE(r.is_empty()); 91 EXPECT_TRUE(r.is_empty());
51 EXPECT_TRUE(r.IsValid()); 92 EXPECT_TRUE(r.IsValid());
52 EXPECT_EQ(12U, r.GetMin()); 93 EXPECT_EQ(12U, r.GetMin());
53 EXPECT_EQ(12U, r.GetMax()); 94 EXPECT_EQ(12U, r.GetMax());
54 } 95 }
55 96
56 TEST(RangeTest, InvalidRange) { 97 TYPED_TEST(RangeTest, InvalidRange) {
57 gfx::Range r(gfx::Range::InvalidRange()); 98 TypeParam r(TypeParam::InvalidRange());
58 EXPECT_EQ(0U, r.length());
59 EXPECT_EQ(r.start(), r.end());
60 EXPECT_FALSE(r.is_reversed());
61 EXPECT_TRUE(r.is_empty()); 99 EXPECT_TRUE(r.is_empty());
62 EXPECT_FALSE(r.IsValid()); 100 EXPECT_FALSE(r.IsValid());
63 } 101 }
64 102
65 TEST(RangeTest, Equality) { 103 TYPED_TEST(RangeTest, Equality) {
66 gfx::Range r1(10, 4); 104 TypeParam r1(10, 4);
67 gfx::Range r2(10, 4); 105 TypeParam r2(10, 4);
68 gfx::Range r3(10, 2); 106 TypeParam r3(10, 2);
69 EXPECT_EQ(r1, r2); 107 EXPECT_EQ(r1, r2);
70 EXPECT_NE(r1, r3); 108 EXPECT_NE(r1, r3);
71 EXPECT_NE(r2, r3); 109 EXPECT_NE(r2, r3);
72 110
73 gfx::Range r4(11, 4); 111 TypeParam r4(11, 4);
74 EXPECT_NE(r1, r4); 112 EXPECT_NE(r1, r4);
75 EXPECT_NE(r2, r4); 113 EXPECT_NE(r2, r4);
76 EXPECT_NE(r3, r4); 114 EXPECT_NE(r3, r4);
77 115
78 gfx::Range r5(12, 5); 116 TypeParam r5(12, 5);
79 EXPECT_NE(r1, r5); 117 EXPECT_NE(r1, r5);
80 EXPECT_NE(r2, r5); 118 EXPECT_NE(r2, r5);
81 EXPECT_NE(r3, r5); 119 EXPECT_NE(r3, r5);
82 } 120 }
83 121
84 TEST(RangeTest, EqualsIgnoringDirection) { 122 TYPED_TEST(RangeTest, EqualsIgnoringDirection) {
85 gfx::Range r1(10, 5); 123 TypeParam r1(10, 5);
86 gfx::Range r2(5, 10); 124 TypeParam r2(5, 10);
87 EXPECT_TRUE(r1.EqualsIgnoringDirection(r2)); 125 EXPECT_TRUE(r1.EqualsIgnoringDirection(r2));
88 } 126 }
89 127
90 TEST(RangeTest, SetStart) { 128 TYPED_TEST(RangeTest, SetStart) {
91 gfx::Range r(10, 20); 129 TypeParam r(10, 20);
92 EXPECT_EQ(10U, r.start()); 130 EXPECT_EQ(10U, r.start());
93 EXPECT_EQ(10U, r.length()); 131 EXPECT_EQ(10U, r.length());
94 132
95 r.set_start(42); 133 r.set_start(42);
96 EXPECT_EQ(42U, r.start()); 134 EXPECT_EQ(42U, r.start());
97 EXPECT_EQ(20U, r.end()); 135 EXPECT_EQ(20U, r.end());
98 EXPECT_EQ(22U, r.length()); 136 EXPECT_EQ(22U, r.length());
99 EXPECT_TRUE(r.is_reversed()); 137 EXPECT_TRUE(r.is_reversed());
100 } 138 }
101 139
102 TEST(RangeTest, SetEnd) { 140 TYPED_TEST(RangeTest, SetEnd) {
103 gfx::Range r(10, 13); 141 TypeParam r(10, 13);
104 EXPECT_EQ(10U, r.start()); 142 EXPECT_EQ(10U, r.start());
105 EXPECT_EQ(3U, r.length()); 143 EXPECT_EQ(3U, r.length());
106 144
107 r.set_end(20); 145 r.set_end(20);
108 EXPECT_EQ(10U, r.start()); 146 EXPECT_EQ(10U, r.start());
109 EXPECT_EQ(20U, r.end()); 147 EXPECT_EQ(20U, r.end());
110 EXPECT_EQ(10U, r.length()); 148 EXPECT_EQ(10U, r.length());
111 } 149 }
112 150
113 TEST(RangeTest, SetStartAndEnd) { 151 TYPED_TEST(RangeTest, SetStartAndEnd) {
114 gfx::Range r; 152 TypeParam r;
115 r.set_end(5); 153 r.set_end(5);
116 r.set_start(1); 154 r.set_start(1);
117 EXPECT_EQ(1U, r.start()); 155 EXPECT_EQ(1U, r.start());
118 EXPECT_EQ(5U, r.end()); 156 EXPECT_EQ(5U, r.end());
119 EXPECT_EQ(4U, r.length()); 157 EXPECT_EQ(4U, r.length());
120 EXPECT_EQ(1U, r.GetMin()); 158 EXPECT_EQ(1U, r.GetMin());
121 EXPECT_EQ(5U, r.GetMax()); 159 EXPECT_EQ(5U, r.GetMax());
122 } 160 }
123 161
124 TEST(RangeTest, ReversedRange) { 162 TYPED_TEST(RangeTest, ReversedRange) {
125 gfx::Range r(10, 5); 163 TypeParam r(10, 5);
126 EXPECT_EQ(10U, r.start()); 164 EXPECT_EQ(10U, r.start());
127 EXPECT_EQ(5U, r.end()); 165 EXPECT_EQ(5U, r.end());
128 EXPECT_EQ(5U, r.length()); 166 EXPECT_EQ(5U, r.length());
129 EXPECT_TRUE(r.is_reversed()); 167 EXPECT_TRUE(r.is_reversed());
130 EXPECT_TRUE(r.IsValid()); 168 EXPECT_TRUE(r.IsValid());
131 EXPECT_EQ(5U, r.GetMin()); 169 EXPECT_EQ(5U, r.GetMin());
132 EXPECT_EQ(10U, r.GetMax()); 170 EXPECT_EQ(10U, r.GetMax());
133 } 171 }
134 172
135 TEST(RangeTest, SetReversedRange) { 173 TYPED_TEST(RangeTest, SetReversedRange) {
136 gfx::Range r(10, 20); 174 TypeParam r(10, 20);
137 r.set_start(25); 175 r.set_start(25);
138 EXPECT_EQ(25U, r.start()); 176 EXPECT_EQ(25U, r.start());
139 EXPECT_EQ(20U, r.end()); 177 EXPECT_EQ(20U, r.end());
140 EXPECT_EQ(5U, r.length()); 178 EXPECT_EQ(5U, r.length());
141 EXPECT_TRUE(r.is_reversed()); 179 EXPECT_TRUE(r.is_reversed());
142 EXPECT_TRUE(r.IsValid()); 180 EXPECT_TRUE(r.IsValid());
143 181
144 r.set_end(21); 182 r.set_end(21);
145 EXPECT_EQ(25U, r.start()); 183 EXPECT_EQ(25U, r.start());
146 EXPECT_EQ(21U, r.end()); 184 EXPECT_EQ(21U, r.end());
147 EXPECT_EQ(4U, r.length()); 185 EXPECT_EQ(4U, r.length());
148 EXPECT_TRUE(r.IsValid()); 186 EXPECT_TRUE(r.IsValid());
149 EXPECT_EQ(21U, r.GetMin()); 187 EXPECT_EQ(21U, r.GetMin());
150 EXPECT_EQ(25U, r.GetMax()); 188 EXPECT_EQ(25U, r.GetMax());
151 } 189 }
152 190
153 void TestContainsAndIntersects(const gfx::Range& r1, 191 TYPED_TEST(RangeTest, ContainAndIntersect) {
154 const gfx::Range& r2,
155 const gfx::Range& r3) {
156 EXPECT_TRUE(r1.Intersects(r1));
157 EXPECT_TRUE(r1.Contains(r1));
158 EXPECT_EQ(gfx::Range(10, 12), r1.Intersect(r1));
159
160 EXPECT_FALSE(r1.Intersects(r2));
161 EXPECT_FALSE(r1.Contains(r2));
162 EXPECT_TRUE(r1.Intersect(r2).is_empty());
163 EXPECT_FALSE(r2.Intersects(r1));
164 EXPECT_FALSE(r2.Contains(r1));
165 EXPECT_TRUE(r2.Intersect(r1).is_empty());
166
167 EXPECT_TRUE(r1.Intersects(r3));
168 EXPECT_TRUE(r3.Intersects(r1));
169 EXPECT_TRUE(r3.Contains(r1));
170 EXPECT_FALSE(r1.Contains(r3));
171 EXPECT_EQ(gfx::Range(10, 12), r1.Intersect(r3));
172 EXPECT_EQ(gfx::Range(10, 12), r3.Intersect(r1));
173
174 EXPECT_TRUE(r2.Intersects(r3));
175 EXPECT_TRUE(r3.Intersects(r2));
176 EXPECT_FALSE(r3.Contains(r2));
177 EXPECT_FALSE(r2.Contains(r3));
178 EXPECT_EQ(gfx::Range(5, 8), r2.Intersect(r3));
179 EXPECT_EQ(gfx::Range(5, 8), r3.Intersect(r2));
180 }
181
182 TEST(RangeTest, ContainAndIntersect) {
183 { 192 {
184 SCOPED_TRACE("contain and intersect"); 193 SCOPED_TRACE("contain and intersect");
185 gfx::Range r1(10, 12); 194 TypeParam r1(10, 12);
186 gfx::Range r2(1, 8); 195 TypeParam r2(1, 8);
187 gfx::Range r3(5, 12); 196 TypeParam r3(5, 12);
188 TestContainsAndIntersects(r1, r2, r3); 197 TestContainsAndIntersects(r1, r2, r3);
189 } 198 }
190 { 199 {
191 SCOPED_TRACE("contain and intersect: reversed"); 200 SCOPED_TRACE("contain and intersect: reversed");
192 gfx::Range r1(12, 10); 201 TypeParam r1(12, 10);
193 gfx::Range r2(8, 1); 202 TypeParam r2(8, 1);
194 gfx::Range r3(12, 5); 203 TypeParam r3(12, 5);
195 TestContainsAndIntersects(r1, r2, r3); 204 TestContainsAndIntersects(r1, r2, r3);
196 } 205 }
197 // Invalid rect tests 206 // Invalid rect tests
198 gfx::Range r1(10, 12); 207 TypeParam r1(10, 12);
199 gfx::Range r2(8, 1); 208 TypeParam r2(8, 1);
200 gfx::Range invalid = r1.Intersect(r2); 209 TypeParam invalid = r1.Intersect(r2);
201 EXPECT_FALSE(invalid.IsValid()); 210 EXPECT_FALSE(invalid.IsValid());
202 EXPECT_FALSE(invalid.Contains(invalid)); 211 EXPECT_FALSE(invalid.Contains(invalid));
203 EXPECT_FALSE(invalid.Contains(r1)); 212 EXPECT_FALSE(invalid.Contains(r1));
204 EXPECT_FALSE(invalid.Intersects(invalid)); 213 EXPECT_FALSE(invalid.Intersects(invalid));
205 EXPECT_FALSE(invalid.Intersects(r1)); 214 EXPECT_FALSE(invalid.Intersects(r1));
206 EXPECT_FALSE(r1.Contains(invalid)); 215 EXPECT_FALSE(r1.Contains(invalid));
207 EXPECT_FALSE(r1.Intersects(invalid)); 216 EXPECT_FALSE(r1.Intersects(invalid));
208 } 217 }
OLDNEW
« ui/gfx/range/range.h ('K') | « ui/gfx/range/range_mac.mm ('k') | ui/gfx/range/range_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698