From 6898d52c371309d81c2184ea991785d2485323e4 Mon Sep 17 00:00:00 2001 From: "reed@google.com" Date: Thu, 8 Nov 2012 22:36:19 +0000 Subject: 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 --- tests/InfRectTest.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'tests/InfRectTest.cpp') 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 -- cgit v1.2.3