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
diff --git a/tests/InfRectTest.cpp b/tests/InfRectTest.cpp
index 1dc6ca7..f1b2677 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 @@
 }
 #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 @@
         check_invalid(reporter, small, invalid[i], big, big);
         check_invalid(reporter, invalid[i], small, big, big);
     }
+    
+    test_center(reporter);
 }
 
 // need tests for SkStrSearch