diff options
author | backer@chromium.org <backer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-22 15:47:47 +0000 |
---|---|---|
committer | backer@chromium.org <backer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-22 15:47:47 +0000 |
commit | d4736820135edfcf780bb6d389d02ac79cf172f8 (patch) | |
tree | e43d5b123b75a00b97080cca3a835c4ec0863a4c /ui | |
parent | f3579d1e17b14df5aedf167d30073298826ba50a (diff) | |
download | chromium_src-d4736820135edfcf780bb6d389d02ac79cf172f8.zip chromium_src-d4736820135edfcf780bb6d389d02ac79cf172f8.tar.gz chromium_src-d4736820135edfcf780bb6d389d02ac79cf172f8.tar.bz2 |
Use EXPECT_FLOAT_EQ in interpolated xform unittest and SkMatrix44's operator== in Transform.
BUG=none
TEST=ui_unittests views_unittests
Review URL: http://codereview.chromium.org/7462013
Patch from Ian Vollick <vollick@chromium.org>.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93640 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/gfx/interpolated_transform_unittest.cc | 35 | ||||
-rw-r--r-- | ui/gfx/transform.cc | 21 |
2 files changed, 12 insertions, 44 deletions
diff --git a/ui/gfx/interpolated_transform_unittest.cc b/ui/gfx/interpolated_transform_unittest.cc index 08e7279..fa5debc 100644 --- a/ui/gfx/interpolated_transform_unittest.cc +++ b/ui/gfx/interpolated_transform_unittest.cc @@ -9,26 +9,13 @@ namespace { -const static float EPSILON = 1e-6f; - -bool ApproximatelyEqual(float lhs, float rhs) { - if (lhs == 0) - return fabs(rhs) < EPSILON; - if (rhs == 0) - return fabs(lhs) < EPSILON; - return fabs(lhs - rhs) / std::max(fabs(rhs), fabs(lhs)) < EPSILON; -} - -bool ApproximatelyEqual(const ui::Transform& lhs, const ui::Transform& rhs) { +void CheckApproximatelyEqual(const ui::Transform& lhs, + const ui::Transform& rhs) { for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { - if (!ApproximatelyEqual(lhs.matrix().get(i, j), - rhs.matrix().get(i, j))) { - return false; - } + EXPECT_FLOAT_EQ(lhs.matrix().get(i, j), rhs.matrix().get(i, j)); } } - return true; } } // namespace @@ -42,9 +29,9 @@ TEST(InterpolatedTransformTest, InterpolatedRotation) { ui::Transform rotation; rotation.SetRotate(i); ui::Transform interpolated = interpolated_rotation.Interpolate(i / 100.0f); - EXPECT_TRUE(ApproximatelyEqual(rotation, interpolated)); + CheckApproximatelyEqual(rotation, interpolated); interpolated = interpolated_rotation_diff_start_end.Interpolate(i + 100); - EXPECT_TRUE(ApproximatelyEqual(rotation, interpolated)); + CheckApproximatelyEqual(rotation, interpolated); } } @@ -57,9 +44,9 @@ TEST(InterpolatedTransformTest, InterpolatedScale) { ui::Transform scale; scale.SetScale(i, i); ui::Transform interpolated = interpolated_scale.Interpolate(i / 100.0f); - EXPECT_TRUE(ApproximatelyEqual(scale, interpolated)); + CheckApproximatelyEqual(scale, interpolated); interpolated = interpolated_scale_diff_start_end.Interpolate(i + 100); - EXPECT_TRUE(ApproximatelyEqual(scale, interpolated)); + CheckApproximatelyEqual(scale, interpolated); } } @@ -74,9 +61,9 @@ TEST(InterpolatedTransformTest, InterpolatedTranslate) { ui::Transform xform; xform.SetTranslate(i, i); ui::Transform interpolated = interpolated_xform.Interpolate(i / 100.0f); - EXPECT_TRUE(ApproximatelyEqual(xform, interpolated)); + CheckApproximatelyEqual(xform, interpolated); interpolated = interpolated_xform_diff_start_end.Interpolate(i + 100); - EXPECT_TRUE(ApproximatelyEqual(xform, interpolated)); + CheckApproximatelyEqual(xform, interpolated); } } @@ -88,7 +75,7 @@ TEST(InterpolatedTransformTest, InterpolatedRotationAboutPivot) { pivot, new ui::InterpolatedRotation(0, 90)); ui::Transform result = interpolated_xform.Interpolate(0.0f); - EXPECT_TRUE(ApproximatelyEqual(ui::Transform(), result)); + CheckApproximatelyEqual(ui::Transform(), result); result = interpolated_xform.Interpolate(1.0f); gfx::Point expected_result = pivot; result.TransformPoint(pivot); @@ -105,7 +92,7 @@ TEST(InterpolatedTransformTest, InterpolatedScaleAboutPivot) { pivot, new ui::InterpolatedScale(1, 2)); ui::Transform result = interpolated_xform.Interpolate(0.0f); - EXPECT_TRUE(ApproximatelyEqual(ui::Transform(), result)); + CheckApproximatelyEqual(ui::Transform(), result); result = interpolated_xform.Interpolate(1.0f); gfx::Point expected_result = pivot; result.TransformPoint(pivot); diff --git a/ui/gfx/transform.cc b/ui/gfx/transform.cc index 5d4463e..5398145 100644 --- a/ui/gfx/transform.cc +++ b/ui/gfx/transform.cc @@ -16,18 +16,6 @@ static int SymmetricRound(float x) { : std::ceil(x - 0.5f)); } -static const float EPSILON = 1e-6f; - -static bool ApproximatelyEqual(float a, float b) { - if (a == 0) { - return fabs(b) < EPSILON; - } - if (b == 0) { - return fabs(a) < EPSILON; - } - return fabs(a - b) / std::max(fabs(a), fabs(b)) < EPSILON; -} - } // namespace namespace ui { @@ -39,14 +27,7 @@ Transform::Transform() { Transform::~Transform() {} bool Transform::operator==(const Transform& rhs) const { - for (int i = 0; i < 4; ++i) { - for (int j = 0; j < 4; ++j) { - if (!ApproximatelyEqual(matrix_.get(i,j), rhs.matrix_.get(i,j))) { - return false; - } - } - } - return true; + return matrix_ == rhs.matrix_; } bool Transform::operator!=(const Transform& rhs) const { |