diff options
author | Henrique Nakashima <hnakashima@chromium.org> | 2018-02-16 17:13:57 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-02-16 17:13:57 +0000 |
commit | fcc9eb3a7c60fab1205ab5b6fb4fcccb1efb3892 (patch) | |
tree | 05c82900225b5bc77ca3d03d8aa7cb063cadbcc7 /core | |
parent | 067a44fcad9196c6ad8cc3b2f86261b78ae54f48 (diff) | |
download | pdfium-fcc9eb3a7c60fab1205ab5b6fb4fcccb1efb3892.tar.xz |
Implement operator<< for CFX_Rect and CFX_RectF.
This is for debugging, so gated by #ifndef NDEBUG.
Also make label the printed values to make them clear and
differentiate top>bottom and bottom>top rect systems.
Change-Id: I2d816b6b8b1be5fb5464630e771d200f2534917e
Reviewed-on: https://pdfium-review.googlesource.com/26911
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'core')
-rw-r--r-- | core/fxcrt/fx_coordinates.cpp | 6 | ||||
-rw-r--r-- | core/fxcrt/fx_coordinates.h | 10 | ||||
-rw-r--r-- | core/fxcrt/fx_coordinates_unittest.cpp | 37 |
3 files changed, 46 insertions, 7 deletions
diff --git a/core/fxcrt/fx_coordinates.cpp b/core/fxcrt/fx_coordinates.cpp index 69fedb5522..d25a754d7a 100644 --- a/core/fxcrt/fx_coordinates.cpp +++ b/core/fxcrt/fx_coordinates.cpp @@ -201,11 +201,11 @@ FX_RECT CFX_FloatRect::ToRoundedFxRect() const { #ifndef NDEBUG std::ostream& operator<<(std::ostream& os, const CFX_FloatRect& rect) { - os << "rect[" << rect.Width() << "x" << rect.Height() << " (" << rect.left - << ", " << rect.bottom << ")]"; + os << "rect[w " << rect.Width() << " x h " << rect.Height() << " (left " + << rect.left << ", bot " << rect.bottom << ")]"; return os; } -#endif +#endif // NDEBUG CFX_Matrix CFX_Matrix::GetInverse() const { CFX_Matrix inverse; diff --git a/core/fxcrt/fx_coordinates.h b/core/fxcrt/fx_coordinates.h index 3d09652b13..2e8c1abca3 100644 --- a/core/fxcrt/fx_coordinates.h +++ b/core/fxcrt/fx_coordinates.h @@ -581,6 +581,16 @@ class CFX_RTemplate { using CFX_Rect = CFX_RTemplate<int32_t>; using CFX_RectF = CFX_RTemplate<float>; +#ifndef NDEBUG +template <class BaseType> +std::ostream& operator<<(std::ostream& os, + const CFX_RTemplate<BaseType>& rect) { + os << "rect[w " << rect.Width() << " x h " << rect.Height() << " (left " + << rect.left << ", top " << rect.top << ")]"; + return os; +} +#endif // NDEBUG + // The matrix is of the form: // | a b 0 | // | c d 0 | diff --git a/core/fxcrt/fx_coordinates_unittest.cpp b/core/fxcrt/fx_coordinates_unittest.cpp index 15ee661509..7c25d0da28 100644 --- a/core/fxcrt/fx_coordinates_unittest.cpp +++ b/core/fxcrt/fx_coordinates_unittest.cpp @@ -197,19 +197,48 @@ TEST(CFX_FloatRect, Print) { std::ostringstream os; CFX_FloatRect rect; os << rect; - EXPECT_STREQ("rect[0x0 (0, 0)]", os.str().c_str()); + EXPECT_STREQ("rect[w 0 x h 0 (left 0, bot 0)]", os.str().c_str()); os.str(""); rect = CFX_FloatRect(10, 20, 14, 23); os << rect; - EXPECT_STREQ("rect[4x3 (10, 20)]", os.str().c_str()); + EXPECT_STREQ("rect[w 4 x h 3 (left 10, bot 20)]", os.str().c_str()); os.str(""); rect = CFX_FloatRect(10.5, 20.5, 14.75, 23.75); os << rect; - EXPECT_STREQ("rect[4.25x3.25 (10.5, 20.5)]", os.str().c_str()); + EXPECT_STREQ("rect[w 4.25 x h 3.25 (left 10.5, bot 20.5)]", os.str().c_str()); } -#endif + +TEST(CFX_Rect, Print) { + std::ostringstream os; + CFX_Rect rect; + os << rect; + EXPECT_STREQ("rect[w 0 x h 0 (left 0, top 0)]", os.str().c_str()); + + os.str(""); + rect = CFX_Rect(10, 20, 4, 3); + os << rect; + EXPECT_STREQ("rect[w 4 x h 3 (left 10, top 20)]", os.str().c_str()); +} + +TEST(CFX_RectF, Print) { + std::ostringstream os; + CFX_RectF rect; + os << rect; + EXPECT_STREQ("rect[w 0 x h 0 (left 0, top 0)]", os.str().c_str()); + + os.str(""); + rect = CFX_RectF(10, 20, 4, 3); + os << rect; + EXPECT_STREQ("rect[w 4 x h 3 (left 10, top 20)]", os.str().c_str()); + + os.str(""); + rect = CFX_RectF(10.5, 20.5, 4.25, 3.25); + os << rect; + EXPECT_STREQ("rect[w 4.25 x h 3.25 (left 10.5, top 20.5)]", os.str().c_str()); +} +#endif // NDEBUG TEST(CFX_Matrix, ReverseIdentity) { CFX_Matrix m; |