aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/InfRectTest.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-11-08 22:36:19 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-11-08 22:36:19 +0000
commit6898d52c371309d81c2184ea991785d2485323e4 (patch)
treeb99db0affdbe2d2c91cee8bcdfcb5ddc2ce07d21 /tests/InfRectTest.cpp
parentfc5100af556b40411c71ac90b2af7b03bd88edda (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.cpp34
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