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

Side by Side Diff: pdf/range_set_unittest.cc

Issue 2558573002: Revert "reland of Improve linearized pdf load/show time." (Closed)
Patch Set: Changes to make tests pass ... Created 4 years 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
« no previous file with comments | « pdf/range_set.cc ('k') | pdf/timer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 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 #include "pdf/range_set.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace chrome_pdf {
10
11 TEST(RangeSetTest, Union) {
12 {
13 RangeSet range_set;
14 EXPECT_EQ("{}", range_set.ToString());
15 range_set.Union(gfx::Range(50, 100));
16 EXPECT_EQ("{[50,100)}", range_set.ToString());
17 range_set.Union(gfx::Range(80, 150));
18 EXPECT_EQ("{[50,150)}", range_set.ToString());
19 range_set.Union(gfx::Range(0, 70));
20 EXPECT_EQ("{[0,150)}", range_set.ToString());
21 range_set.Union(gfx::Range(70, 120));
22 EXPECT_EQ("{[0,150)}", range_set.ToString());
23 range_set.Union(gfx::Range(200, 150));
24 EXPECT_EQ("{[0,150)[151,201)}", range_set.ToString());
25 range_set.Union(gfx::Range(150, 151));
26 EXPECT_EQ("{[0,201)}", range_set.ToString());
27 range_set.Union(gfx::Range(0, 300));
28 EXPECT_EQ("{[0,300)}", range_set.ToString());
29 range_set.Union(gfx::Range(500, 600));
30 EXPECT_EQ("{[0,300)[500,600)}", range_set.ToString());
31 }
32 {
33 RangeSet range_set_1;
34 range_set_1.Union(gfx::Range(0, 10));
35 range_set_1.Union(gfx::Range(20, 30));
36 range_set_1.Union(gfx::Range(40, 50));
37
38 EXPECT_EQ("{[0,10)[20,30)[40,50)}", range_set_1.ToString());
39 range_set_1.Union(range_set_1);
40 EXPECT_EQ("{[0,10)[20,30)[40,50)}", range_set_1.ToString());
41
42 RangeSet range_set_2;
43 range_set_2.Union(gfx::Range(10, 20));
44 range_set_2.Union(gfx::Range(30, 40));
45 range_set_2.Union(gfx::Range(50, 60));
46
47 EXPECT_EQ("{[10,20)[30,40)[50,60)}", range_set_2.ToString());
48 range_set_1.Union(range_set_2);
49 EXPECT_EQ("{[0,60)}", range_set_1.ToString());
50 EXPECT_EQ(RangeSet(gfx::Range(0, 60)), range_set_1);
51 }
52 }
53
54 TEST(RangeSetTest, Contains) {
55 RangeSet range_set;
56 range_set.Union(gfx::Range(10, 20));
57 range_set.Union(gfx::Range(30, 40));
58 range_set.Union(gfx::Range(50, 60));
59 EXPECT_TRUE(range_set.Contains(range_set));
60
61 {
62 EXPECT_FALSE(range_set.Contains(9));
63 EXPECT_FALSE(range_set.Contains(29));
64 EXPECT_FALSE(range_set.Contains(49));
65
66 EXPECT_TRUE(range_set.Contains(10));
67 EXPECT_TRUE(range_set.Contains(30));
68 EXPECT_TRUE(range_set.Contains(50));
69
70 EXPECT_TRUE(range_set.Contains(15));
71 EXPECT_TRUE(range_set.Contains(35));
72 EXPECT_TRUE(range_set.Contains(55));
73
74 EXPECT_TRUE(range_set.Contains(19));
75 EXPECT_TRUE(range_set.Contains(39));
76 EXPECT_TRUE(range_set.Contains(59));
77
78 EXPECT_FALSE(range_set.Contains(20));
79 EXPECT_FALSE(range_set.Contains(40));
80 EXPECT_FALSE(range_set.Contains(60));
81 }
82 {
83 EXPECT_FALSE(range_set.Contains(gfx::Range(0, 10)));
84 EXPECT_FALSE(range_set.Contains(gfx::Range(20, 30)));
85 EXPECT_FALSE(range_set.Contains(gfx::Range(40, 50)));
86
87 EXPECT_FALSE(range_set.Contains(gfx::Range(5, 15)));
88 EXPECT_FALSE(range_set.Contains(gfx::Range(25, 35)));
89 EXPECT_FALSE(range_set.Contains(gfx::Range(45, 55)));
90
91 EXPECT_TRUE(range_set.Contains(gfx::Range(10, 15)));
92 EXPECT_TRUE(range_set.Contains(gfx::Range(30, 35)));
93 EXPECT_TRUE(range_set.Contains(gfx::Range(50, 55)));
94
95 EXPECT_TRUE(range_set.Contains(gfx::Range(15, 20)));
96 EXPECT_TRUE(range_set.Contains(gfx::Range(35, 40)));
97 EXPECT_TRUE(range_set.Contains(gfx::Range(55, 60)));
98
99 EXPECT_TRUE(range_set.Contains(gfx::Range(10, 20)));
100 EXPECT_TRUE(range_set.Contains(gfx::Range(30, 40)));
101 EXPECT_TRUE(range_set.Contains(gfx::Range(50, 60)));
102
103 EXPECT_FALSE(range_set.Contains(gfx::Range(15, 25)));
104 EXPECT_FALSE(range_set.Contains(gfx::Range(35, 45)));
105 EXPECT_FALSE(range_set.Contains(gfx::Range(55, 65)));
106
107 EXPECT_FALSE(range_set.Contains(gfx::Range(20, 25)));
108 EXPECT_FALSE(range_set.Contains(gfx::Range(40, 45)));
109 EXPECT_FALSE(range_set.Contains(gfx::Range(60, 65)));
110
111 EXPECT_FALSE(range_set.Contains(gfx::Range(0, 100)));
112 }
113 {
114 RangeSet range_set_2 = range_set;
115 EXPECT_TRUE(range_set_2.Contains(range_set));
116 range_set_2.Union(gfx::Range(100, 200));
117 EXPECT_TRUE(range_set_2.Contains(range_set));
118 EXPECT_FALSE(range_set.Contains(range_set_2));
119 }
120 }
121
122 TEST(RangeSetTest, Intersects) {
123 RangeSet range_set;
124 range_set.Union(gfx::Range(10, 20));
125 range_set.Union(gfx::Range(30, 40));
126 range_set.Union(gfx::Range(50, 60));
127 EXPECT_TRUE(range_set.Intersects(range_set));
128 {
129 EXPECT_FALSE(range_set.Intersects(gfx::Range(0, 10)));
130 EXPECT_FALSE(range_set.Intersects(gfx::Range(20, 30)));
131 EXPECT_FALSE(range_set.Intersects(gfx::Range(40, 50)));
132
133 EXPECT_TRUE(range_set.Intersects(gfx::Range(5, 15)));
134 EXPECT_TRUE(range_set.Intersects(gfx::Range(25, 35)));
135 EXPECT_TRUE(range_set.Intersects(gfx::Range(45, 55)));
136
137 EXPECT_TRUE(range_set.Intersects(gfx::Range(10, 15)));
138 EXPECT_TRUE(range_set.Intersects(gfx::Range(30, 35)));
139 EXPECT_TRUE(range_set.Intersects(gfx::Range(50, 55)));
140
141 EXPECT_TRUE(range_set.Intersects(gfx::Range(15, 20)));
142 EXPECT_TRUE(range_set.Intersects(gfx::Range(35, 40)));
143 EXPECT_TRUE(range_set.Intersects(gfx::Range(55, 60)));
144
145 EXPECT_TRUE(range_set.Intersects(gfx::Range(10, 20)));
146 EXPECT_TRUE(range_set.Intersects(gfx::Range(30, 40)));
147 EXPECT_TRUE(range_set.Intersects(gfx::Range(50, 60)));
148
149 EXPECT_TRUE(range_set.Intersects(gfx::Range(15, 25)));
150 EXPECT_TRUE(range_set.Intersects(gfx::Range(35, 45)));
151 EXPECT_TRUE(range_set.Intersects(gfx::Range(55, 65)));
152
153 EXPECT_FALSE(range_set.Intersects(gfx::Range(20, 25)));
154 EXPECT_FALSE(range_set.Intersects(gfx::Range(40, 45)));
155 EXPECT_FALSE(range_set.Intersects(gfx::Range(60, 65)));
156
157 EXPECT_TRUE(range_set.Intersects(gfx::Range(0, 100)));
158 }
159 {
160 RangeSet range_set_2;
161 range_set_2.Union(gfx::Range(5, 15));
162 range_set_2.Union(gfx::Range(25, 35));
163 range_set_2.Union(gfx::Range(45, 55));
164 EXPECT_TRUE(range_set_2.Intersects(range_set));
165 }
166 {
167 RangeSet range_set_2;
168 range_set_2.Union(gfx::Range(5, 10));
169 range_set_2.Union(gfx::Range(25, 30));
170 range_set_2.Union(gfx::Range(45, 50));
171 EXPECT_FALSE(range_set_2.Intersects(range_set));
172 }
173 }
174
175 TEST(RangeSetTest, Intersect) {
176 {
177 RangeSet range_set;
178 range_set.Union(gfx::Range(10, 20));
179 range_set.Union(gfx::Range(30, 40));
180 range_set.Union(gfx::Range(50, 60));
181
182 EXPECT_EQ("{[10,20)[30,40)[50,60)}", range_set.ToString());
183 range_set.Intersect(range_set);
184 EXPECT_EQ("{[10,20)[30,40)[50,60)}", range_set.ToString());
185 range_set.Intersect(gfx::Range(0, 100));
186 EXPECT_EQ("{[10,20)[30,40)[50,60)}", range_set.ToString());
187 range_set.Intersect(gfx::Range(0, 55));
188 EXPECT_EQ("{[10,20)[30,40)[50,55)}", range_set.ToString());
189 range_set.Intersect(gfx::Range(15, 100));
190 EXPECT_EQ("{[15,20)[30,40)[50,55)}", range_set.ToString());
191 range_set.Intersect(gfx::Range(17, 53));
192 EXPECT_EQ("{[17,20)[30,40)[50,53)}", range_set.ToString());
193 range_set.Intersect(gfx::Range(19, 45));
194 EXPECT_EQ("{[19,20)[30,40)}", range_set.ToString());
195 range_set.Intersect(gfx::Range(30, 45));
196 EXPECT_EQ("{[30,40)}", range_set.ToString());
197 range_set.Intersect(gfx::Range(35, 40));
198 EXPECT_EQ("{[35,40)}", range_set.ToString());
199 range_set.Intersect(gfx::Range(35, 35));
200 EXPECT_TRUE(range_set.IsEmpty());
201 }
202 {
203 RangeSet range_set;
204 range_set.Union(gfx::Range(10, 20));
205 range_set.Union(gfx::Range(30, 40));
206 range_set.Union(gfx::Range(50, 60));
207
208 RangeSet range_set_2;
209 range_set_2.Union(gfx::Range(12, 17));
210 range_set_2.Union(gfx::Range(25, 35));
211 range_set_2.Union(gfx::Range(39, 55));
212 range_set_2.Union(gfx::Range(59, 100));
213
214 range_set.Intersect(range_set_2);
215 EXPECT_EQ("{[12,17)[30,35)[39,40)[50,55)[59,60)}", range_set.ToString());
216 }
217 }
218
219 TEST(RangeSetTest, Subtract) {
220 {
221 RangeSet range_set;
222 range_set.Union(gfx::Range(10, 20));
223 range_set.Union(gfx::Range(30, 40));
224 range_set.Union(gfx::Range(50, 60));
225
226 EXPECT_EQ("{[10,20)[30,40)[50,60)}", range_set.ToString());
227 range_set.Subtract(gfx::Range(35, 35));
228 EXPECT_EQ("{[10,20)[30,40)[50,60)}", range_set.ToString());
229 range_set.Subtract(gfx::Range(0, 5));
230 EXPECT_EQ("{[10,20)[30,40)[50,60)}", range_set.ToString());
231 range_set.Subtract(gfx::Range(70, 80));
232 EXPECT_EQ("{[10,20)[30,40)[50,60)}", range_set.ToString());
233 range_set.Subtract(gfx::Range(35, 39));
234 EXPECT_EQ("{[10,20)[30,35)[39,40)[50,60)}", range_set.ToString());
235 range_set.Subtract(gfx::Range(15, 32));
236 EXPECT_EQ("{[10,15)[32,35)[39,40)[50,60)}", range_set.ToString());
237 range_set.Subtract(gfx::Range(15, 55));
238 EXPECT_EQ("{[10,15)[55,60)}", range_set.ToString());
239 range_set.Subtract(gfx::Range(0, 100));
240 EXPECT_EQ("{}", range_set.ToString());
241 }
242 {
243 RangeSet range_set;
244 range_set.Union(gfx::Range(10, 20));
245 range_set.Union(gfx::Range(30, 40));
246 range_set.Union(gfx::Range(50, 60));
247 range_set.Subtract(range_set);
248 EXPECT_EQ("{}", range_set.ToString());
249 }
250 {
251 RangeSet range_set;
252 range_set.Union(gfx::Range(10, 20));
253 range_set.Union(gfx::Range(30, 40));
254 range_set.Union(gfx::Range(50, 60));
255
256 RangeSet range_set_2;
257 range_set_2.Union(gfx::Range(12, 17));
258 range_set_2.Union(gfx::Range(25, 35));
259 range_set_2.Union(gfx::Range(39, 55));
260 range_set_2.Union(gfx::Range(59, 100));
261
262 range_set.Subtract(range_set_2);
263 EXPECT_EQ("{[10,12)[17,20)[35,39)[55,59)}", range_set.ToString());
264 }
265 }
266
267 TEST(RangeSetTest, Xor) {
268 {
269 RangeSet range_set;
270 range_set.Union(gfx::Range(10, 20));
271 range_set.Union(gfx::Range(30, 40));
272 range_set.Union(gfx::Range(50, 60));
273 range_set.Xor(range_set);
274 EXPECT_EQ("{}", range_set.ToString());
275 }
276 {
277 RangeSet range_set;
278 range_set.Union(gfx::Range(10, 20));
279 range_set.Union(gfx::Range(30, 40));
280 range_set.Union(gfx::Range(50, 60));
281
282 RangeSet range_set_2;
283 range_set_2.Union(gfx::Range(12, 17));
284 range_set_2.Union(gfx::Range(25, 35));
285 range_set_2.Union(gfx::Range(39, 55));
286 range_set_2.Union(gfx::Range(59, 100));
287
288 range_set.Xor(range_set_2);
289 EXPECT_EQ("{[10,12)[17,20)[25,30)[35,39)[40,50)[55,59)[60,100)}",
290 range_set.ToString());
291 }
292 }
293
294 TEST(RangeSetTest, OperationsOnEmptySet) {
295 RangeSet range_set;
296 range_set.Intersect(gfx::Range(10, 20));
297 range_set.Intersects(gfx::Range(10, 20));
298 range_set.Subtract(gfx::Range(10, 20));
299 range_set.Xor(gfx::Range(30, 40));
300 range_set.Union(gfx::Range(10, 20));
301 }
302
303 } // namespace chrome_pdf
OLDNEW
« no previous file with comments | « pdf/range_set.cc ('k') | pdf/timer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698