summaryrefslogtreecommitdiff
path: root/core/fxcrt/fx_coordinates_unittest.cpp
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2017-12-01 20:05:23 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-12-01 20:05:23 +0000
commit967af6fabb527e58d0b166b2db1f9c44d9450402 (patch)
tree017c8cce559d51956eaf015c7c319fd88338a7a9 /core/fxcrt/fx_coordinates_unittest.cpp
parentb6254e82cfb0fb2c0c3d02f6f40c1163017439a8 (diff)
downloadpdfium-967af6fabb527e58d0b166b2db1f9c44d9450402.tar.xz
Add CFX_FloatRect::Scale().
Unlike ScaleFromCenterPoint(), Scale() just scales the LBRT values. Also add unit tests for CFX_FloatRect::Normalize(). Change-Id: Iebf48fa9adcf47adff3255b157d3e3056f3687fc Reviewed-on: https://pdfium-review.googlesource.com/20212 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Diffstat (limited to 'core/fxcrt/fx_coordinates_unittest.cpp')
-rw-r--r--core/fxcrt/fx_coordinates_unittest.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/core/fxcrt/fx_coordinates_unittest.cpp b/core/fxcrt/fx_coordinates_unittest.cpp
index 23d99e46d1..5be3aa83f9 100644
--- a/core/fxcrt/fx_coordinates_unittest.cpp
+++ b/core/fxcrt/fx_coordinates_unittest.cpp
@@ -64,6 +64,81 @@ TEST(CFX_FloatRect, GetBBox) {
EXPECT_FLOAT_EQ(6.3f, rect.top);
}
+TEST(CFX_FloatRect, Normalize) {
+ CFX_FloatRect rect;
+ rect.Normalize();
+ EXPECT_FLOAT_EQ(0.0f, rect.left);
+ EXPECT_FLOAT_EQ(0.0f, rect.bottom);
+ EXPECT_FLOAT_EQ(0.0f, rect.right);
+ EXPECT_FLOAT_EQ(0.0f, rect.top);
+
+ rect = CFX_FloatRect(-1.0f, -3.0f, 4.5f, 3.2f);
+ rect.Normalize();
+ EXPECT_FLOAT_EQ(-1.0f, rect.left);
+ EXPECT_FLOAT_EQ(-3.0f, rect.bottom);
+ EXPECT_FLOAT_EQ(4.5f, rect.right);
+ EXPECT_FLOAT_EQ(3.2f, rect.top);
+ rect.Scale(-1.0f);
+ rect.Normalize();
+ EXPECT_FLOAT_EQ(-4.5f, rect.left);
+ EXPECT_FLOAT_EQ(-3.2f, rect.bottom);
+ EXPECT_FLOAT_EQ(1.0f, rect.right);
+ EXPECT_FLOAT_EQ(3.0f, rect.top);
+}
+
+TEST(CFX_FloatRect, Scale) {
+ CFX_FloatRect rect(-1.0f, -3.0f, 4.5f, 3.2f);
+ rect.Scale(1.0f);
+ EXPECT_FLOAT_EQ(-1.0f, rect.left);
+ EXPECT_FLOAT_EQ(-3.0f, rect.bottom);
+ EXPECT_FLOAT_EQ(4.5f, rect.right);
+ EXPECT_FLOAT_EQ(3.2f, rect.top);
+ rect.Scale(0.5f);
+ EXPECT_FLOAT_EQ(-0.5, rect.left);
+ EXPECT_FLOAT_EQ(-1.5, rect.bottom);
+ EXPECT_FLOAT_EQ(2.25f, rect.right);
+ EXPECT_FLOAT_EQ(1.6f, rect.top);
+ rect.Scale(2.0f);
+ EXPECT_FLOAT_EQ(-1.0f, rect.left);
+ EXPECT_FLOAT_EQ(-3.0f, rect.bottom);
+ EXPECT_FLOAT_EQ(4.5f, rect.right);
+ EXPECT_FLOAT_EQ(3.2f, rect.top);
+ rect.Scale(-1.0f);
+ EXPECT_FLOAT_EQ(1.0f, rect.left);
+ EXPECT_FLOAT_EQ(3.0f, rect.bottom);
+ EXPECT_FLOAT_EQ(-4.5f, rect.right);
+ EXPECT_FLOAT_EQ(-3.2f, rect.top);
+ rect.Scale(0.0f);
+ EXPECT_FLOAT_EQ(0.0f, rect.left);
+ EXPECT_FLOAT_EQ(0.0f, rect.bottom);
+ EXPECT_FLOAT_EQ(0.0f, rect.right);
+ EXPECT_FLOAT_EQ(0.0f, rect.top);
+}
+
+TEST(CFX_FloatRect, ScaleEmpty) {
+ CFX_FloatRect rect;
+ rect.Scale(1.0f);
+ EXPECT_FLOAT_EQ(0.0f, rect.left);
+ EXPECT_FLOAT_EQ(0.0f, rect.bottom);
+ EXPECT_FLOAT_EQ(0.0f, rect.right);
+ EXPECT_FLOAT_EQ(0.0f, rect.top);
+ rect.Scale(0.5f);
+ EXPECT_FLOAT_EQ(0.0f, rect.left);
+ EXPECT_FLOAT_EQ(0.0f, rect.bottom);
+ EXPECT_FLOAT_EQ(0.0f, rect.right);
+ EXPECT_FLOAT_EQ(0.0f, rect.top);
+ rect.Scale(2.0f);
+ EXPECT_FLOAT_EQ(0.0f, rect.left);
+ EXPECT_FLOAT_EQ(0.0f, rect.bottom);
+ EXPECT_FLOAT_EQ(0.0f, rect.right);
+ EXPECT_FLOAT_EQ(0.0f, rect.top);
+ rect.Scale(0.0f);
+ EXPECT_FLOAT_EQ(0.0f, rect.left);
+ EXPECT_FLOAT_EQ(0.0f, rect.bottom);
+ EXPECT_FLOAT_EQ(0.0f, rect.right);
+ EXPECT_FLOAT_EQ(0.0f, rect.top);
+}
+
TEST(CFX_FloatRect, ScaleFromCenterPoint) {
CFX_FloatRect rect(-1.0f, -3.0f, 4.5f, 3.2f);
rect.ScaleFromCenterPoint(1.0f);