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

Unified Diff: pdf/range_set_unittest.cc

Issue 2349753003: Improve linearized pdf load/show time. (Closed)
Patch Set: remove useless code. Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: pdf/range_set_unittest.cc
diff --git a/pdf/range_set_unittest.cc b/pdf/range_set_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..48a33e8aec6d9344a330395a700fb5ab8980e81b
--- /dev/null
+++ b/pdf/range_set_unittest.cc
@@ -0,0 +1,303 @@
+// Copyright (c) 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "pdf/range_set.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace chrome_pdf {
+
+TEST(RangeSetTest, Union) {
+ {
+ RangeSet range_set;
+ EXPECT_EQ(range_set.ToString(), "{}");
Lei Zhang 2016/10/05 07:18:08 In general, the parameters here are EXPECT_EQ(expe
snake 2016/10/05 14:14:10 Done.
+ range_set.Union(gfx::Range(50, 100));
+ EXPECT_EQ(range_set.ToString(), "{[50,100)}");
+ range_set.Union(gfx::Range(80, 150));
+ EXPECT_EQ(range_set.ToString(), "{[50,150)}");
+ range_set.Union(gfx::Range(0, 70));
+ EXPECT_EQ(range_set.ToString(), "{[0,150)}");
+ range_set.Union(gfx::Range(70, 120));
+ EXPECT_EQ(range_set.ToString(), "{[0,150)}");
+ range_set.Union(gfx::Range(200, 150));
+ EXPECT_EQ(range_set.ToString(), "{[0,150)[151,201)}");
+ range_set.Union(gfx::Range(150, 151));
+ EXPECT_EQ(range_set.ToString(), "{[0,201)}");
+ range_set.Union(gfx::Range(0, 300));
+ EXPECT_EQ(range_set.ToString(), "{[0,300)}");
+ range_set.Union(gfx::Range(500, 600));
+ EXPECT_EQ(range_set.ToString(), "{[0,300)[500,600)}");
+ }
+ {
+ RangeSet range_set_1;
+ range_set_1.Union(gfx::Range(0, 10));
+ range_set_1.Union(gfx::Range(20, 30));
+ range_set_1.Union(gfx::Range(40, 50));
+
+ EXPECT_EQ(range_set_1.ToString(), "{[0,10)[20,30)[40,50)}");
+ range_set_1.Union(range_set_1);
+ EXPECT_EQ(range_set_1.ToString(), "{[0,10)[20,30)[40,50)}");
+
+ RangeSet range_set_2;
+ range_set_2.Union(gfx::Range(10, 20));
+ range_set_2.Union(gfx::Range(30, 40));
+ range_set_2.Union(gfx::Range(50, 60));
+
+ EXPECT_EQ(range_set_2.ToString(), "{[10,20)[30,40)[50,60)}");
+ range_set_1.Union(range_set_2);
+ EXPECT_EQ(range_set_1.ToString(), "{[0,60)}");
+ EXPECT_TRUE(range_set_1 == RangeSet(gfx::Range(0, 60)));
Lei Zhang 2016/10/05 07:18:08 In general, can EXPECT_TRUE(expected == actual) be
snake 2016/10/05 14:14:10 Done.
+ }
+}
+
+TEST(RangeSetTest, Contains) {
+ RangeSet range_set;
+ range_set.Union(gfx::Range(10, 20));
+ range_set.Union(gfx::Range(30, 40));
+ range_set.Union(gfx::Range(50, 60));
+ EXPECT_TRUE(range_set.Contains(range_set));
+
+ {
+ EXPECT_FALSE(range_set.Contains(9));
+ EXPECT_FALSE(range_set.Contains(29));
+ EXPECT_FALSE(range_set.Contains(49));
+
+ EXPECT_TRUE(range_set.Contains(10));
+ EXPECT_TRUE(range_set.Contains(30));
+ EXPECT_TRUE(range_set.Contains(50));
+
+ EXPECT_TRUE(range_set.Contains(15));
+ EXPECT_TRUE(range_set.Contains(35));
+ EXPECT_TRUE(range_set.Contains(55));
+
+ EXPECT_TRUE(range_set.Contains(19));
+ EXPECT_TRUE(range_set.Contains(39));
+ EXPECT_TRUE(range_set.Contains(59));
+
+ EXPECT_FALSE(range_set.Contains(20));
+ EXPECT_FALSE(range_set.Contains(40));
+ EXPECT_FALSE(range_set.Contains(60));
+ }
+ {
+ EXPECT_FALSE(range_set.Contains(gfx::Range(0, 10)));
+ EXPECT_FALSE(range_set.Contains(gfx::Range(20, 30)));
+ EXPECT_FALSE(range_set.Contains(gfx::Range(40, 50)));
+
+ EXPECT_FALSE(range_set.Contains(gfx::Range(5, 15)));
+ EXPECT_FALSE(range_set.Contains(gfx::Range(25, 35)));
+ EXPECT_FALSE(range_set.Contains(gfx::Range(45, 55)));
+
+ EXPECT_TRUE(range_set.Contains(gfx::Range(10, 15)));
+ EXPECT_TRUE(range_set.Contains(gfx::Range(30, 35)));
+ EXPECT_TRUE(range_set.Contains(gfx::Range(50, 55)));
+
+ EXPECT_TRUE(range_set.Contains(gfx::Range(15, 20)));
+ EXPECT_TRUE(range_set.Contains(gfx::Range(35, 40)));
+ EXPECT_TRUE(range_set.Contains(gfx::Range(55, 60)));
+
+ EXPECT_TRUE(range_set.Contains(gfx::Range(10, 20)));
+ EXPECT_TRUE(range_set.Contains(gfx::Range(30, 40)));
+ EXPECT_TRUE(range_set.Contains(gfx::Range(50, 60)));
+
+ EXPECT_FALSE(range_set.Contains(gfx::Range(15, 25)));
+ EXPECT_FALSE(range_set.Contains(gfx::Range(35, 45)));
+ EXPECT_FALSE(range_set.Contains(gfx::Range(55, 65)));
+
+ EXPECT_FALSE(range_set.Contains(gfx::Range(20, 25)));
+ EXPECT_FALSE(range_set.Contains(gfx::Range(40, 45)));
+ EXPECT_FALSE(range_set.Contains(gfx::Range(60, 65)));
+
+ EXPECT_FALSE(range_set.Contains(gfx::Range(0, 100)));
+ }
+ {
+ RangeSet range_set_2 = range_set;
+ EXPECT_TRUE(range_set_2.Contains(range_set));
+ range_set_2.Union(gfx::Range(100, 200));
+ EXPECT_TRUE(range_set_2.Contains(range_set));
+ EXPECT_FALSE(range_set.Contains(range_set_2));
+ }
+}
+
+TEST(RangeSetTest, Intersects) {
+ RangeSet range_set;
+ range_set.Union(gfx::Range(10, 20));
+ range_set.Union(gfx::Range(30, 40));
+ range_set.Union(gfx::Range(50, 60));
+ EXPECT_TRUE(range_set.Intersects(range_set));
+ {
+ EXPECT_FALSE(range_set.Intersects(gfx::Range(0, 10)));
+ EXPECT_FALSE(range_set.Intersects(gfx::Range(20, 30)));
+ EXPECT_FALSE(range_set.Intersects(gfx::Range(40, 50)));
+
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(5, 15)));
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(25, 35)));
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(45, 55)));
+
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(10, 15)));
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(30, 35)));
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(50, 55)));
+
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(15, 20)));
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(35, 40)));
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(55, 60)));
+
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(10, 20)));
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(30, 40)));
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(50, 60)));
+
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(15, 25)));
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(35, 45)));
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(55, 65)));
+
+ EXPECT_FALSE(range_set.Intersects(gfx::Range(20, 25)));
+ EXPECT_FALSE(range_set.Intersects(gfx::Range(40, 45)));
+ EXPECT_FALSE(range_set.Intersects(gfx::Range(60, 65)));
+
+ EXPECT_TRUE(range_set.Intersects(gfx::Range(0, 100)));
+ }
+ {
+ RangeSet range_set_2;
+ range_set_2.Union(gfx::Range(5, 15));
+ range_set_2.Union(gfx::Range(25, 35));
+ range_set_2.Union(gfx::Range(45, 55));
+ EXPECT_TRUE(range_set_2.Intersects(range_set));
+ }
+ {
+ RangeSet range_set_2;
+ range_set_2.Union(gfx::Range(5, 10));
+ range_set_2.Union(gfx::Range(25, 30));
+ range_set_2.Union(gfx::Range(45, 50));
+ EXPECT_FALSE(range_set_2.Intersects(range_set));
+ }
+}
+
+TEST(RangeSetTest, Intersect) {
+ {
+ RangeSet range_set;
+ range_set.Union(gfx::Range(10, 20));
+ range_set.Union(gfx::Range(30, 40));
+ range_set.Union(gfx::Range(50, 60));
+
+ EXPECT_EQ(range_set.ToString(), "{[10,20)[30,40)[50,60)}");
+ range_set.Intersect(range_set);
+ EXPECT_EQ(range_set.ToString(), "{[10,20)[30,40)[50,60)}");
+ range_set.Intersect(gfx::Range(0, 100));
+ EXPECT_EQ(range_set.ToString(), "{[10,20)[30,40)[50,60)}");
+ range_set.Intersect(gfx::Range(0, 55));
+ EXPECT_EQ(range_set.ToString(), "{[10,20)[30,40)[50,55)}");
+ range_set.Intersect(gfx::Range(15, 100));
+ EXPECT_EQ(range_set.ToString(), "{[15,20)[30,40)[50,55)}");
+ range_set.Intersect(gfx::Range(17, 53));
+ EXPECT_EQ(range_set.ToString(), "{[17,20)[30,40)[50,53)}");
+ range_set.Intersect(gfx::Range(19, 45));
+ EXPECT_EQ(range_set.ToString(), "{[19,20)[30,40)}");
+ range_set.Intersect(gfx::Range(30, 45));
+ EXPECT_EQ(range_set.ToString(), "{[30,40)}");
+ range_set.Intersect(gfx::Range(35, 40));
+ EXPECT_EQ(range_set.ToString(), "{[35,40)}");
+ range_set.Intersect(gfx::Range(35, 35));
+ EXPECT_EQ(range_set.ToString(), "{}");
+ }
+ {
+ RangeSet range_set;
+ range_set.Union(gfx::Range(10, 20));
+ range_set.Union(gfx::Range(30, 40));
+ range_set.Union(gfx::Range(50, 60));
+
+ RangeSet range_set_2;
+ range_set_2.Union(gfx::Range(12, 17));
+ range_set_2.Union(gfx::Range(25, 35));
+ range_set_2.Union(gfx::Range(39, 55));
+ range_set_2.Union(gfx::Range(59, 100));
+
+ range_set.Intersect(range_set_2);
+ EXPECT_EQ(range_set.ToString(), "{[12,17)[30,35)[39,40)[50,55)[59,60)}");
+ }
+}
+
+TEST(RangeSetTest, Subtract) {
+ {
+ RangeSet range_set;
+ range_set.Union(gfx::Range(10, 20));
+ range_set.Union(gfx::Range(30, 40));
+ range_set.Union(gfx::Range(50, 60));
+
+ EXPECT_EQ(range_set.ToString(), "{[10,20)[30,40)[50,60)}");
+ range_set.Subtract(gfx::Range(35, 35));
+ EXPECT_EQ(range_set.ToString(), "{[10,20)[30,40)[50,60)}");
+ range_set.Subtract(gfx::Range(0, 5));
+ EXPECT_EQ(range_set.ToString(), "{[10,20)[30,40)[50,60)}");
+ range_set.Subtract(gfx::Range(70, 80));
+ EXPECT_EQ(range_set.ToString(), "{[10,20)[30,40)[50,60)}");
+ range_set.Subtract(gfx::Range(35, 39));
+ EXPECT_EQ(range_set.ToString(), "{[10,20)[30,35)[39,40)[50,60)}");
+ range_set.Subtract(gfx::Range(15, 32));
+ EXPECT_EQ(range_set.ToString(), "{[10,15)[32,35)[39,40)[50,60)}");
+ range_set.Subtract(gfx::Range(15, 55));
+ EXPECT_EQ(range_set.ToString(), "{[10,15)[55,60)}");
+ range_set.Subtract(gfx::Range(0, 100));
+ EXPECT_EQ(range_set.ToString(), "{}");
+ }
+ {
+ RangeSet range_set;
+ range_set.Union(gfx::Range(10, 20));
+ range_set.Union(gfx::Range(30, 40));
+ range_set.Union(gfx::Range(50, 60));
+ range_set.Subtract(range_set);
+ EXPECT_EQ(range_set.ToString(), "{}");
+ }
+ {
+ RangeSet range_set;
+ range_set.Union(gfx::Range(10, 20));
+ range_set.Union(gfx::Range(30, 40));
+ range_set.Union(gfx::Range(50, 60));
+
+ RangeSet range_set_2;
+ range_set_2.Union(gfx::Range(12, 17));
+ range_set_2.Union(gfx::Range(25, 35));
+ range_set_2.Union(gfx::Range(39, 55));
+ range_set_2.Union(gfx::Range(59, 100));
+
+ range_set.Subtract(range_set_2);
+ EXPECT_EQ(range_set.ToString(), "{[10,12)[17,20)[35,39)[55,59)}");
+ }
+}
+
+TEST(RangeSetTest, Diff) {
+ {
+ RangeSet range_set;
+ range_set.Union(gfx::Range(10, 20));
+ range_set.Union(gfx::Range(30, 40));
+ range_set.Union(gfx::Range(50, 60));
+ range_set.Diff(range_set);
+ EXPECT_EQ(range_set.ToString(), "{}");
+ }
+ {
+ RangeSet range_set;
+ range_set.Union(gfx::Range(10, 20));
+ range_set.Union(gfx::Range(30, 40));
+ range_set.Union(gfx::Range(50, 60));
+
+ RangeSet range_set_2;
+ range_set_2.Union(gfx::Range(12, 17));
+ range_set_2.Union(gfx::Range(25, 35));
+ range_set_2.Union(gfx::Range(39, 55));
+ range_set_2.Union(gfx::Range(59, 100));
+
+ range_set.Diff(range_set_2);
+ EXPECT_EQ(range_set.ToString(),
+ "{[10,12)[17,20)[25,30)[35,39)[40,50)[55,59)[60,100)}");
+ }
+}
+
+TEST(RangeSetTest, OperationsOnEmptySet) {
+ RangeSet range_set;
+ range_set.Intersect(gfx::Range(10, 20));
+ range_set.Intersects(gfx::Range(10, 20));
+ range_set.Subtract(gfx::Range(10, 20));
+ range_set.Diff(gfx::Range(30, 40));
+ range_set.Union(gfx::Range(10, 20));
+}
+
+} // namespace chrome_pdf

Powered by Google App Engine
This is Rietveld 408576698