diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-11-08 22:36:19 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-11-08 22:36:19 +0000 |
commit | 6898d52c371309d81c2184ea991785d2485323e4 (patch) | |
tree | b99db0affdbe2d2c91cee8bcdfcb5ddc2ce07d21 /tests/InfRectTest.cpp | |
parent | fc5100af556b40411c71ac90b2af7b03bd88edda (diff) |
add centerX() and centerY() to SkIRect (because they made me)
Review URL: https://codereview.appspot.com/6826078
git-svn-id: http://skia.googlecode.com/svn/trunk@6360 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests/InfRectTest.cpp')
-rw-r--r-- | tests/InfRectTest.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/InfRectTest.cpp b/tests/InfRectTest.cpp index 1dc6ca7d0c..f1b2677236 100644 --- a/tests/InfRectTest.cpp +++ b/tests/InfRectTest.cpp @@ -6,6 +6,7 @@ * found in the LICENSE file. */ #include "Test.h" +#include "SkRandom.h" #include "SkRect.h" #ifdef SK_SCALAR_IS_FLOAT @@ -14,6 +15,37 @@ static float make_zero() { } #endif +static void test_center(skiatest::Reporter* reporter) { + static const struct { + SkIRect fRect; + SkIPoint fCenter; + } data[] = { + { { 0, 0, 0, 0 }, { 0, 0 } }, + { { 0, 0, 1, 1 }, { 0, 0 } }, + { { -1, -1, 0, 0 }, { -1, -1 } }, + { { 0, 0, 10, 7 }, { 5, 3 } }, + { { 0, 0, 11, 6 }, { 5, 3 } }, + }; + for (size_t index = 0; index < SK_ARRAY_COUNT(data); ++index) { + REPORTER_ASSERT(reporter, + data[index].fRect.centerX() == data[index].fCenter.x()); + REPORTER_ASSERT(reporter, + data[index].fRect.centerY() == data[index].fCenter.y()); + } + + SkRandom rand; + for (int i = 0; i < 10000; ++i) { + SkIRect r; + + r.set(rand.nextS() >> 2, rand.nextS() >> 2, + rand.nextS() >> 2, rand.nextS() >> 2); + int cx = r.centerX(); + int cy = r.centerY(); + REPORTER_ASSERT(reporter, (r.left() + r.right() >> 1) == cx); + REPORTER_ASSERT(reporter, (r.top() + r.bottom() >> 1) == cy); + } +} + static void check_invalid(skiatest::Reporter* reporter, SkScalar l, SkScalar t, SkScalar r, SkScalar b) { SkRect rect; @@ -47,6 +79,8 @@ static void TestInfRect(skiatest::Reporter* reporter) { check_invalid(reporter, small, invalid[i], big, big); check_invalid(reporter, invalid[i], small, big, big); } + + test_center(reporter); } // need tests for SkStrSearch |