Get rid of DEFINE_TESTCLASS() macro.

Remaining tests were rewrite to use DEF_TEST() macro instead. This fixes
the FIXME in TestClassDef.h

BUG=None
TEST=tests
R=mtklein@google.com

Review URL: https://codereview.chromium.org/114563003

git-svn-id: http://skia.googlecode.com/svn/trunk@12760 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp
index 69afe47..4301fc3 100644
--- a/tests/ImageFilterTest.cpp
+++ b/tests/ImageFilterTest.cpp
@@ -1,4 +1,3 @@
-
 /*
  * Copyright 2013 Google Inc.
  *
@@ -7,6 +6,7 @@
  */
 
 #include "Test.h"
+#include "TestClassDef.h"
 #include "SkBicubicImageFilter.h"
 #include "SkBitmap.h"
 #include "SkBitmapDevice.h"
@@ -18,147 +18,134 @@
 #include "SkLightingImageFilter.h"
 #include "SkRect.h"
 
-class ImageFilterTest {
-public:
-    static const int kBitmapSize = 4;
+static const int kBitmapSize = 4;
 
-    static void make_small_bitmap(SkBitmap& bitmap) {
-        bitmap.setConfig(SkBitmap::kARGB_8888_Config, kBitmapSize, kBitmapSize);
-        bitmap.allocPixels();
-        SkBitmapDevice device(bitmap);
-        SkCanvas canvas(&device);
-        canvas.clear(0x00000000);
-        SkPaint darkPaint;
-        darkPaint.setColor(0xFF804020);
-        SkPaint lightPaint;
-        lightPaint.setColor(0xFF244484);
-        const int i = kBitmapSize / 4;
-        for (int y = 0; y < kBitmapSize; y += i) {
-            for (int x = 0; x < kBitmapSize; x += i) {
-                canvas.save();
-                canvas.translate(SkIntToScalar(x), SkIntToScalar(y));
-                canvas.drawRect(SkRect::MakeXYWH(0, 0,
-                                                 SkIntToScalar(i),
-                                                 SkIntToScalar(i)), darkPaint);
-                canvas.drawRect(SkRect::MakeXYWH(SkIntToScalar(i),
-                                                 0,
-                                                 SkIntToScalar(i),
-                                                 SkIntToScalar(i)), lightPaint);
-                canvas.drawRect(SkRect::MakeXYWH(0,
-                                                 SkIntToScalar(i),
-                                                 SkIntToScalar(i),
-                                                 SkIntToScalar(i)), lightPaint);
-                canvas.drawRect(SkRect::MakeXYWH(SkIntToScalar(i),
-                                                 SkIntToScalar(i),
-                                                 SkIntToScalar(i),
-                                                 SkIntToScalar(i)), darkPaint);
-                canvas.restore();
-            }
+static void make_small_bitmap(SkBitmap& bitmap) {
+    bitmap.setConfig(SkBitmap::kARGB_8888_Config, kBitmapSize, kBitmapSize);
+    bitmap.allocPixels();
+    SkBitmapDevice device(bitmap);
+    SkCanvas canvas(&device);
+    canvas.clear(0x00000000);
+    SkPaint darkPaint;
+    darkPaint.setColor(0xFF804020);
+    SkPaint lightPaint;
+    lightPaint.setColor(0xFF244484);
+    const int i = kBitmapSize / 4;
+    for (int y = 0; y < kBitmapSize; y += i) {
+        for (int x = 0; x < kBitmapSize; x += i) {
+            canvas.save();
+            canvas.translate(SkIntToScalar(x), SkIntToScalar(y));
+            canvas.drawRect(SkRect::MakeXYWH(0, 0,
+                                             SkIntToScalar(i),
+                                             SkIntToScalar(i)), darkPaint);
+            canvas.drawRect(SkRect::MakeXYWH(SkIntToScalar(i),
+                                             0,
+                                             SkIntToScalar(i),
+                                             SkIntToScalar(i)), lightPaint);
+            canvas.drawRect(SkRect::MakeXYWH(0,
+                                             SkIntToScalar(i),
+                                             SkIntToScalar(i),
+                                             SkIntToScalar(i)), lightPaint);
+            canvas.drawRect(SkRect::MakeXYWH(SkIntToScalar(i),
+                                             SkIntToScalar(i),
+                                             SkIntToScalar(i),
+                                             SkIntToScalar(i)), darkPaint);
+            canvas.restore();
         }
     }
+}
 
-    static SkImageFilter* make_scale(float amount, SkImageFilter* input = NULL) {
-        SkScalar s = amount;
-        SkScalar matrix[20] = { s, 0, 0, 0, 0,
-                                0, s, 0, 0, 0,
-                                0, 0, s, 0, 0,
-                                0, 0, 0, s, 0 };
-        SkAutoTUnref<SkColorFilter> filter(new SkColorMatrixFilter(matrix));
-        return SkColorFilterImageFilter::Create(filter, input);
+static SkImageFilter* make_scale(float amount, SkImageFilter* input = NULL) {
+    SkScalar s = amount;
+    SkScalar matrix[20] = { s, 0, 0, 0, 0,
+                            0, s, 0, 0, 0,
+                            0, 0, s, 0, 0,
+                            0, 0, 0, s, 0 };
+    SkAutoTUnref<SkColorFilter> filter(new SkColorMatrixFilter(matrix));
+    return SkColorFilterImageFilter::Create(filter, input);
+}
+
+static SkImageFilter* make_grayscale(SkImageFilter* input = NULL, const SkImageFilter::CropRect* cropRect = NULL) {
+    SkScalar matrix[20];
+    memset(matrix, 0, 20 * sizeof(SkScalar));
+    matrix[0] = matrix[5] = matrix[10] = 0.2126f;
+    matrix[1] = matrix[6] = matrix[11] = 0.7152f;
+    matrix[2] = matrix[7] = matrix[12] = 0.0722f;
+    matrix[18] = 1.0f;
+    SkAutoTUnref<SkColorFilter> filter(new SkColorMatrixFilter(matrix));
+    return SkColorFilterImageFilter::Create(filter, input, cropRect);
+}
+
+DEF_TEST(ImageFilter, reporter) {
+    {
+        // Check that two non-clipping color matrices concatenate into a single filter.
+        SkAutoTUnref<SkImageFilter> halfBrightness(make_scale(0.5f));
+        SkAutoTUnref<SkImageFilter> quarterBrightness(make_scale(0.5f, halfBrightness));
+        REPORTER_ASSERT(reporter, NULL == quarterBrightness->getInput(0));
     }
 
-    static SkImageFilter* make_grayscale(SkImageFilter* input = NULL, const SkImageFilter::CropRect* cropRect = NULL) {
-        SkScalar matrix[20];
-        memset(matrix, 0, 20 * sizeof(SkScalar));
-        matrix[0] = matrix[5] = matrix[10] = 0.2126f;
-        matrix[1] = matrix[6] = matrix[11] = 0.7152f;
-        matrix[2] = matrix[7] = matrix[12] = 0.0722f;
-        matrix[18] = 1.0f;
-        SkAutoTUnref<SkColorFilter> filter(new SkColorMatrixFilter(matrix));
-        return SkColorFilterImageFilter::Create(filter, input, cropRect);
+    {
+        // Check that a clipping color matrix followed by a grayscale does not concatenate into a single filter.
+        SkAutoTUnref<SkImageFilter> doubleBrightness(make_scale(2.0f));
+        SkAutoTUnref<SkImageFilter> halfBrightness(make_scale(0.5f, doubleBrightness));
+        REPORTER_ASSERT(reporter, NULL != halfBrightness->getInput(0));
     }
 
-    static SkImageFilter* make_mode_blue(SkImageFilter* input = NULL) {
-        SkAutoTUnref<SkColorFilter> filter(
-            SkColorFilter::CreateModeFilter(SK_ColorBLUE, SkXfermode::kSrcIn_Mode));
-        return SkColorFilterImageFilter::Create(filter, input);
+    {
+        // Check that a color filter image filter without a crop rect can be
+        // expressed as a color filter.
+        SkAutoTUnref<SkImageFilter> gray(make_grayscale());
+        REPORTER_ASSERT(reporter, true == gray->asColorFilter(NULL));
     }
 
-    static void Test(skiatest::Reporter* reporter) {
+    {
+        // Check that a color filter image filter with a crop rect cannot
+        // be expressed as a color filter.
+        SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(0, 0, 100, 100));
+        SkAutoTUnref<SkImageFilter> grayWithCrop(make_grayscale(NULL, &cropRect));
+        REPORTER_ASSERT(reporter, false == grayWithCrop->asColorFilter(NULL));
+    }
+
+    {
+        // Tests pass by not asserting
+        SkBitmap bitmap, result;
+        make_small_bitmap(bitmap);
+        result.setConfig(SkBitmap::kARGB_8888_Config, kBitmapSize, kBitmapSize);
+        result.allocPixels();
+
         {
-            // Check that two non-clipping color matrices concatenate into a single filter.
-            SkAutoTUnref<SkImageFilter> halfBrightness(make_scale(0.5f));
-            SkAutoTUnref<SkImageFilter> quarterBrightness(make_scale(0.5f, halfBrightness));
-            REPORTER_ASSERT(reporter, NULL == quarterBrightness->getInput(0));
+            // This tests for :
+            // 1 ) location at (0,0,1)
+            SkPoint3 location(0, 0, SK_Scalar1);
+            // 2 ) location and target at same value
+            SkPoint3 target(location.fX, location.fY, location.fZ);
+            // 3 ) large negative specular exponent value
+            SkScalar specularExponent = -1000;
+
+            SkAutoTUnref<SkImageFilter> bmSrc(new SkBitmapSource(bitmap));
+            SkPaint paint;
+            paint.setImageFilter(SkLightingImageFilter::CreateSpotLitSpecular(
+                    location, target, specularExponent, 180,
+                    0xFFFFFFFF, SK_Scalar1, SK_Scalar1, SK_Scalar1,
+                    bmSrc))->unref();
+            SkCanvas canvas(result);
+            SkRect r = SkRect::MakeWH(SkIntToScalar(kBitmapSize),
+                                      SkIntToScalar(kBitmapSize));
+            canvas.drawRect(r, paint);
         }
 
         {
-            // Check that a clipping color matrix followed by a grayscale does not concatenate into a single filter.
-            SkAutoTUnref<SkImageFilter> doubleBrightness(make_scale(2.0f));
-            SkAutoTUnref<SkImageFilter> halfBrightness(make_scale(0.5f, doubleBrightness));
-            REPORTER_ASSERT(reporter, NULL != halfBrightness->getInput(0));
-        }
-
-        {
-            // Check that a color filter image filter without a crop rect can be
-            // expressed as a color filter.
-            SkAutoTUnref<SkImageFilter> gray(make_grayscale());
-            REPORTER_ASSERT(reporter, true == gray->asColorFilter(NULL));
-        }
-
-        {
-            // Check that a color filter image filter with a crop rect cannot
-            // be expressed as a color filter.
-            SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(0, 0, 100, 100));
-            SkAutoTUnref<SkImageFilter> grayWithCrop(make_grayscale(NULL, &cropRect));
-            REPORTER_ASSERT(reporter, false == grayWithCrop->asColorFilter(NULL));
-        }
-
-        {
-            // Tests pass by not asserting
-            SkBitmap bitmap, result;
-            make_small_bitmap(bitmap);
-            result.setConfig(SkBitmap::kARGB_8888_Config, kBitmapSize, kBitmapSize);
-            result.allocPixels();
-
-            {
-                // This tests for :
-                // 1 ) location at (0,0,1)
-                SkPoint3 location(0, 0, SK_Scalar1);
-                // 2 ) location and target at same value
-                SkPoint3 target(location.fX, location.fY, location.fZ);
-                // 3 ) large negative specular exponent value
-                SkScalar specularExponent = -1000;
-
-                SkAutoTUnref<SkImageFilter> bmSrc(new SkBitmapSource(bitmap));
-                SkPaint paint;
-                paint.setImageFilter(SkLightingImageFilter::CreateSpotLitSpecular(
-                        location, target, specularExponent, 180,
-                        0xFFFFFFFF, SK_Scalar1, SK_Scalar1, SK_Scalar1,
-                        bmSrc))->unref();
-                SkCanvas canvas(result);
-                SkRect r = SkRect::MakeWH(SkIntToScalar(kBitmapSize),
-                                          SkIntToScalar(kBitmapSize));
-                canvas.drawRect(r, paint);
-            }
-
-            {
-                // This tests for scale bringing width to 0
-                SkSize scale = SkSize::Make(-0.001f, SK_Scalar1);
-                SkAutoTUnref<SkImageFilter> bmSrc(new SkBitmapSource(bitmap));
-                SkAutoTUnref<SkBicubicImageFilter> bicubic(
-                    SkBicubicImageFilter::CreateMitchell(scale, bmSrc));
-                SkBitmapDevice device(bitmap);
-                SkDeviceImageFilterProxy proxy(&device);
-                SkIPoint loc = SkIPoint::Make(0, 0);
-                // An empty input should early return and return false
-                REPORTER_ASSERT(reporter,
-                    !bicubic->filterImage(&proxy, bitmap, SkMatrix::I(), &result, &loc));
-            }
+            // This tests for scale bringing width to 0
+            SkSize scale = SkSize::Make(-0.001f, SK_Scalar1);
+            SkAutoTUnref<SkImageFilter> bmSrc(new SkBitmapSource(bitmap));
+            SkAutoTUnref<SkBicubicImageFilter> bicubic(
+                SkBicubicImageFilter::CreateMitchell(scale, bmSrc));
+            SkBitmapDevice device(bitmap);
+            SkDeviceImageFilterProxy proxy(&device);
+            SkIPoint loc = SkIPoint::Make(0, 0);
+            // An empty input should early return and return false
+            REPORTER_ASSERT(reporter,
+                            !bicubic->filterImage(&proxy, bitmap, SkMatrix::I(), &result, &loc));
         }
     }
-};
-
-
-#include "TestClassDef.h"
-DEFINE_TESTCLASS("ImageFilterTest", ImageFilterTestClass, ImageFilterTest::Test)
+}
diff --git a/tests/TestClassDef.h b/tests/TestClassDef.h
index 89124c7..6016033 100644
--- a/tests/TestClassDef.h
+++ b/tests/TestClassDef.h
@@ -1,23 +1,23 @@
-
 /*
  * Copyright 2011 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
+
 /*  This file is meant to be included by .cpp files, so it can spew out a
     customized class + global definition.
 
     e.g.
     #include "TestClassDef.h"
-    DEFINE_TESTCLASS("MyTest", MyTestClass, MyTestFunction)
+    DEFINE_TESTCLASS_SHORT(MyTestFunction)
 
-    where MyTestFunction is declared as
+    where MyTestFunction is declared as:
 
-        void MyTestFunction(skiatest::Reporter*)
+    static void MyTestFunction(skiatest::Reporter* reporter) {
+    }
 */
 
-// FIXME: replace all three param callers with the short one param version
 #define DEFINE_TESTCLASS_SHORT(function)                                                 \
     namespace skiatest {                                                                 \
         class function##Class : public Test {                                            \
@@ -30,18 +30,6 @@
         static TestRegistry gReg_##function##Class(function##Class::Factory);            \
     }
 
-#define DEFINE_TESTCLASS(uiname, classname, function)                                   \
-    namespace skiatest {                                                                \
-        class classname : public Test {                                                 \
-        public:                                                                         \
-            static Test* Factory(void*) { return SkNEW(classname); }                    \
-        protected:                                                                      \
-            virtual void onGetName(SkString* name) SK_OVERRIDE { name->set(uiname); }   \
-            virtual void onRun(Reporter* reporter) SK_OVERRIDE { function(reporter); }  \
-        };                                                                              \
-        static TestRegistry gReg_##classname(classname::Factory);                       \
-    }
-
 #define DEFINE_GPUTESTCLASS(uiname, classname, function)                                \
     namespace skiatest {                                                                \
         class classname : public GpuTest {                                              \
diff --git a/tests/TileGridTest.cpp b/tests/TileGridTest.cpp
index 5cffd3a..4e3d9b9 100644
--- a/tests/TileGridTest.cpp
+++ b/tests/TileGridTest.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "Test.h"
+#include "TestClassDef.h"
 #include "SkBitmapDevice.h"
 #include "SkCanvas.h"
 #include "SkTileGrid.h"
@@ -34,246 +35,237 @@
     SkTDArray<SkRect> fRects;
 };
 
-class TileGridTest {
-public:
-    static void verifyTileHits(skiatest::Reporter* reporter, SkIRect rect, uint32_t tileMask,
-                               int borderPixels = 0) {
-        SkTileGridPicture::TileGridInfo info;
-        info.fMargin.set(borderPixels, borderPixels);
-        info.fOffset.setZero();
-        info.fTileInterval.set(10 - 2 * borderPixels, 10 - 2 * borderPixels);
-        SkTileGrid grid(2, 2, info, NULL);
-        grid.insert(NULL, rect, false);
-        REPORTER_ASSERT(reporter, grid.tile(0,0).count() ==
-            ((tileMask & kTopLeft_Tile)? 1 : 0));
-        REPORTER_ASSERT(reporter, grid.tile(1,0).count() ==
-            ((tileMask & kTopRight_Tile)? 1 : 0));
-        REPORTER_ASSERT(reporter, grid.tile(0,1).count() ==
-            ((tileMask & kBottomLeft_Tile)? 1 : 0));
-        REPORTER_ASSERT(reporter, grid.tile(1,1).count() ==
-            ((tileMask & kBottomRight_Tile)? 1 : 0));
+static void verifyTileHits(skiatest::Reporter* reporter, SkIRect rect,
+                           uint32_t tileMask, int borderPixels = 0) {
+    SkTileGridPicture::TileGridInfo info;
+    info.fMargin.set(borderPixels, borderPixels);
+    info.fOffset.setZero();
+    info.fTileInterval.set(10 - 2 * borderPixels, 10 - 2 * borderPixels);
+    SkTileGrid grid(2, 2, info, NULL);
+    grid.insert(NULL, rect, false);
+    REPORTER_ASSERT(reporter, grid.tileCount(0, 0) ==
+                    ((tileMask & kTopLeft_Tile)? 1 : 0));
+    REPORTER_ASSERT(reporter, grid.tileCount(1, 0) ==
+                    ((tileMask & kTopRight_Tile)? 1 : 0));
+    REPORTER_ASSERT(reporter, grid.tileCount(0, 1) ==
+                    ((tileMask & kBottomLeft_Tile)? 1 : 0));
+    REPORTER_ASSERT(reporter, grid.tileCount(1, 1) ==
+                    ((tileMask & kBottomRight_Tile)? 1 : 0));
+}
+
+DEF_TEST(TileGrid_UnalignedQuery, reporter) {
+    // Use SkTileGridPicture to generate a SkTileGrid with a helper
+    SkTileGridPicture::TileGridInfo info;
+    info.fMargin.setEmpty();
+    info.fOffset.setZero();
+    info.fTileInterval.set(10, 10);
+    SkTileGridPicture picture(20, 20, info);
+    SkRect rect1 = SkRect::MakeXYWH(SkIntToScalar(0), SkIntToScalar(0),
+                                    SkIntToScalar(8), SkIntToScalar(8));
+    SkRect rect2 = SkRect::MakeXYWH(SkIntToScalar(11), SkIntToScalar(11),
+                                    SkIntToScalar(1), SkIntToScalar(1));
+    SkCanvas* canvas = picture.beginRecording(20, 20, SkPicture::kOptimizeForClippedPlayback_RecordingFlag);
+    SkPaint paint;
+    canvas->drawRect(rect1, paint);
+    canvas->drawRect(rect2, paint);
+    picture.endRecording();
+
+    SkBitmap store;
+    store.setConfig(SkBitmap::kARGB_8888_Config, 1, 1);
+    store.allocPixels();
+
+    // Test parts of top-left tile
+    {
+        SkBitmapDevice device(store);
+        MockCanvas mockCanvas(&device);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
     }
-
-    static void TestUnalignedQuery(skiatest::Reporter* reporter) {
-        // Use SkTileGridPicture to generate a SkTileGrid with a helper
-        SkTileGridPicture::TileGridInfo info;
-        info.fMargin.setEmpty();
-        info.fOffset.setZero();
-        info.fTileInterval.set(10, 10);
-        SkTileGridPicture picture(20, 20, info);
-        SkRect rect1 = SkRect::MakeXYWH(SkIntToScalar(0), SkIntToScalar(0),
-            SkIntToScalar(8), SkIntToScalar(8));
-        SkRect rect2 = SkRect::MakeXYWH(SkIntToScalar(11), SkIntToScalar(11),
-            SkIntToScalar(1), SkIntToScalar(1));
-        SkCanvas* canvas = picture.beginRecording(20, 20, SkPicture::kOptimizeForClippedPlayback_RecordingFlag);
-        SkPaint paint;
-        canvas->drawRect(rect1, paint);
-        canvas->drawRect(rect2, paint);
-        picture.endRecording();
-
-        SkBitmap store;
-        store.setConfig(SkBitmap::kARGB_8888_Config, 1, 1);
-        store.allocPixels();
-
-        // Test parts of top-left tile
-        {
-            SkBitmapDevice device(store);
-            MockCanvas mockCanvas(&device);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
-        }
-        {
-            SkBitmapDevice device(store);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(-7.99f, -7.99f);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
-        }
-        // Corner overlap
-        {
-            SkBitmapDevice device(store);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(-9.5f, -9.5f);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 2 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
-            REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[1]);
-        }
-        // Intersect bottom right tile, but does not overlap rect 2
-        {
-            SkBitmapDevice device(store);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(-16.0f, -16.0f);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
-        }
-        // Out of bounds queries, snap to border tiles
-        {
-            SkBitmapDevice device(store);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(2.0f, 0.0f);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
-        }
-        {
-            SkBitmapDevice device(store);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(0.0f, 2.0f);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
-        }
-        {
-            SkBitmapDevice device(store);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(-22.0f, -16.0f);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
-        }
-        {
-            SkBitmapDevice device(store);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(-16.0f, -22.0f);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
-        }
+    {
+        SkBitmapDevice device(store);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(-7.99f, -7.99f);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
     }
-
-    static void TestOverlapOffsetQueryAlignment(skiatest::Reporter* reporter) {
-        // Use SkTileGridPicture to generate a SkTileGrid with a helper
-        SkTileGridPicture::TileGridInfo info;
-        info.fMargin.set(1, 1);
-        info.fOffset.set(-1, -1);
-        info.fTileInterval.set(8, 8);
-        SkTileGridPicture picture(20, 20, info);
-
-        // rect landing entirely in top left tile
-        SkRect rect1 = SkRect::MakeXYWH(SkIntToScalar(0), SkIntToScalar(0),
-            SkIntToScalar(1), SkIntToScalar(1));
-        // rect landing entirely in center tile
-        SkRect rect2 = SkRect::MakeXYWH(SkIntToScalar(12), SkIntToScalar(12),
-            SkIntToScalar(1), SkIntToScalar(1));
-                // rect landing entirely in bottomright tile
-        SkRect rect3 = SkRect::MakeXYWH(SkIntToScalar(19), SkIntToScalar(19),
-            SkIntToScalar(1), SkIntToScalar(1));
-        SkCanvas* canvas = picture.beginRecording(20, 20, SkPicture::kOptimizeForClippedPlayback_RecordingFlag);
-        SkPaint paint;
-        canvas->drawRect(rect1, paint);
-        canvas->drawRect(rect2, paint);
-        canvas->drawRect(rect3, paint);
-        picture.endRecording();
-
-        SkBitmap tileBitmap;
-        tileBitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 10);
-        tileBitmap.allocPixels();
-        SkBitmap moreThanATileBitmap;
-        moreThanATileBitmap.setConfig(SkBitmap::kARGB_8888_Config, 11, 11);
-        moreThanATileBitmap.allocPixels();
-        SkBitmap tinyBitmap;
-        tinyBitmap.setConfig(SkBitmap::kARGB_8888_Config, 2, 2);
-        tinyBitmap.allocPixels();
-        // Test parts of top-left tile
-        {
-            // The offset should cancel the top and left borders of the top left tile
-            // So a look-up at interval 0-10 should be grid aligned,
-            SkBitmapDevice device(tileBitmap);
-            MockCanvas mockCanvas(&device);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
-        }
-        {
-            // Encroaching border by one pixel
-            SkBitmapDevice device(moreThanATileBitmap);
-            MockCanvas mockCanvas(&device);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 2 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
-            REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[1]);
-        }
-        {
-            // Tile stride is 8 (tileWidth - 2 * border pixels
-            // so translating by 8, should make query grid-aligned
-            // with middle tile.
-            SkBitmapDevice device(tileBitmap);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(SkIntToScalar(-8), SkIntToScalar(-8));
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
-        }
-        {
-            SkBitmapDevice device(tileBitmap);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(-7.9f, -7.9f);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 2 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
-            REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[1]);
-        }
-        {
-            SkBitmapDevice device(tileBitmap);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(-8.1f, -8.1f);
-            picture.draw(&mockCanvas);
-            REPORTER_ASSERT(reporter, 2 == mockCanvas.fRects.count());
-            REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
-            REPORTER_ASSERT(reporter, rect3 == mockCanvas.fRects[1]);
-        }
-        {
-            // Regression test for crbug.com/234688
-            // Once the 2x2 device region is inset by margin, it yields an empty
-            // adjusted region, sitting right on top of the tile boundary.
-            SkBitmapDevice device(tinyBitmap);
-            MockCanvas mockCanvas(&device);
-            mockCanvas.translate(-8.0f, -8.0f);
-            picture.draw(&mockCanvas);
-            // This test passes by not asserting. We do not validate the rects recorded
-            // because the result is numerically unstable (floating point equality).
-            // The content of any one of the four tiles of the tilegrid would be a valid
-            // result since any bbox that covers the center point of the canvas will be
-            // recorded in all four tiles.
-        }
+    // Corner overlap
+    {
+        SkBitmapDevice device(store);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(-9.5f, -9.5f);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 2 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
+        REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[1]);
     }
-
-    static void Test(skiatest::Reporter* reporter) {
-        // Out of bounds
-        verifyTileHits(reporter, SkIRect::MakeXYWH(30, 0, 1, 1),  0);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(0, 30, 1, 1),  0);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(-10, 0, 1, 1),  0);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(0, -10, 1, 1),  0);
-
-        // Dilation for AA consideration
-        verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 9, 9),  kTopLeft_Tile);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 10, 10),  kAll_Tile);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(9, 9, 1, 1),  kAll_Tile);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(10, 10, 1, 1),  kAll_Tile);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(11, 11, 1, 1),  kBottomRight_Tile);
-
-        // BorderPixels
-        verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 6, 6),  kTopLeft_Tile, 1);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 7, 7),  kAll_Tile, 1);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(9, 9, 1, 1),  kAll_Tile, 1);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(10, 10, 1, 1),  kBottomRight_Tile, 1);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(17, 17, 1, 1),  kBottomRight_Tile, 1);
-
-        // BBoxes that overlap tiles
-        verifyTileHits(reporter, SkIRect::MakeXYWH(5, 5, 10, 1),  kTopLeft_Tile | kTopRight_Tile);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(5, 5, 1, 10),  kTopLeft_Tile |
-                       kBottomLeft_Tile);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(5, 5, 10, 10),  kAll_Tile);
-        verifyTileHits(reporter, SkIRect::MakeXYWH(-10, -10, 40, 40),  kAll_Tile);
-
-        TestUnalignedQuery(reporter);
-        TestOverlapOffsetQueryAlignment(reporter);
+    // Intersect bottom right tile, but does not overlap rect 2
+    {
+        SkBitmapDevice device(store);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(-16.0f, -16.0f);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
     }
-};
+    // Out of bounds queries, snap to border tiles
+    {
+        SkBitmapDevice device(store);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(2.0f, 0.0f);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
+    }
+    {
+        SkBitmapDevice device(store);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(0.0f, 2.0f);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
+    }
+    {
+        SkBitmapDevice device(store);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(-22.0f, -16.0f);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
+    }
+    {
+        SkBitmapDevice device(store);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(-16.0f, -22.0f);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
+    }
+}
 
-#include "TestClassDef.h"
-DEFINE_TESTCLASS("TileGrid", TileGridTestClass, TileGridTest::Test)
+DEF_TEST(TileGrid_OverlapOffsetQueryAlignment, reporter) {
+    // Use SkTileGridPicture to generate a SkTileGrid with a helper
+    SkTileGridPicture::TileGridInfo info;
+    info.fMargin.set(1, 1);
+    info.fOffset.set(-1, -1);
+    info.fTileInterval.set(8, 8);
+    SkTileGridPicture picture(20, 20, info);
+
+    // rect landing entirely in top left tile
+    SkRect rect1 = SkRect::MakeXYWH(SkIntToScalar(0), SkIntToScalar(0),
+                                    SkIntToScalar(1), SkIntToScalar(1));
+    // rect landing entirely in center tile
+    SkRect rect2 = SkRect::MakeXYWH(SkIntToScalar(12), SkIntToScalar(12),
+                                    SkIntToScalar(1), SkIntToScalar(1));
+    // rect landing entirely in bottomright tile
+    SkRect rect3 = SkRect::MakeXYWH(SkIntToScalar(19), SkIntToScalar(19),
+                                    SkIntToScalar(1), SkIntToScalar(1));
+    SkCanvas* canvas = picture.beginRecording(20, 20, SkPicture::kOptimizeForClippedPlayback_RecordingFlag);
+    SkPaint paint;
+    canvas->drawRect(rect1, paint);
+    canvas->drawRect(rect2, paint);
+    canvas->drawRect(rect3, paint);
+    picture.endRecording();
+
+    SkBitmap tileBitmap;
+    tileBitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 10);
+    tileBitmap.allocPixels();
+    SkBitmap moreThanATileBitmap;
+    moreThanATileBitmap.setConfig(SkBitmap::kARGB_8888_Config, 11, 11);
+    moreThanATileBitmap.allocPixels();
+    SkBitmap tinyBitmap;
+    tinyBitmap.setConfig(SkBitmap::kARGB_8888_Config, 2, 2);
+    tinyBitmap.allocPixels();
+    // Test parts of top-left tile
+    {
+        // The offset should cancel the top and left borders of the top left tile
+        // So a look-up at interval 0-10 should be grid aligned,
+        SkBitmapDevice device(tileBitmap);
+        MockCanvas mockCanvas(&device);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
+    }
+    {
+        // Encroaching border by one pixel
+        SkBitmapDevice device(moreThanATileBitmap);
+        MockCanvas mockCanvas(&device);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 2 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
+        REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[1]);
+    }
+    {
+        // Tile stride is 8 (tileWidth - 2 * border pixels
+        // so translating by 8, should make query grid-aligned
+        // with middle tile.
+        SkBitmapDevice device(tileBitmap);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(SkIntToScalar(-8), SkIntToScalar(-8));
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 1 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
+    }
+    {
+        SkBitmapDevice device(tileBitmap);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(-7.9f, -7.9f);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 2 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect1 == mockCanvas.fRects[0]);
+        REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[1]);
+    }
+    {
+        SkBitmapDevice device(tileBitmap);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(-8.1f, -8.1f);
+        picture.draw(&mockCanvas);
+        REPORTER_ASSERT(reporter, 2 == mockCanvas.fRects.count());
+        REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
+        REPORTER_ASSERT(reporter, rect3 == mockCanvas.fRects[1]);
+    }
+    {
+        // Regression test for crbug.com/234688
+        // Once the 2x2 device region is inset by margin, it yields an empty
+        // adjusted region, sitting right on top of the tile boundary.
+        SkBitmapDevice device(tinyBitmap);
+        MockCanvas mockCanvas(&device);
+        mockCanvas.translate(-8.0f, -8.0f);
+        picture.draw(&mockCanvas);
+        // This test passes by not asserting. We do not validate the rects recorded
+        // because the result is numerically unstable (floating point equality).
+        // The content of any one of the four tiles of the tilegrid would be a valid
+        // result since any bbox that covers the center point of the canvas will be
+        // recorded in all four tiles.
+    }
+}
+
+DEF_TEST(TileGrid, reporter) {
+    // Out of bounds
+    verifyTileHits(reporter, SkIRect::MakeXYWH(30, 0, 1, 1),  0);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(0, 30, 1, 1),  0);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(-10, 0, 1, 1),  0);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(0, -10, 1, 1),  0);
+
+    // Dilation for AA consideration
+    verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 9, 9),  kTopLeft_Tile);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 10, 10),  kAll_Tile);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(9, 9, 1, 1),  kAll_Tile);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(10, 10, 1, 1),  kAll_Tile);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(11, 11, 1, 1),  kBottomRight_Tile);
+
+    // BorderPixels
+    verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 6, 6),  kTopLeft_Tile, 1);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 7, 7),  kAll_Tile, 1);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(9, 9, 1, 1),  kAll_Tile, 1);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(10, 10, 1, 1),  kBottomRight_Tile, 1);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(17, 17, 1, 1),  kBottomRight_Tile, 1);
+
+    // BBoxes that overlap tiles
+    verifyTileHits(reporter, SkIRect::MakeXYWH(5, 5, 10, 1),  kTopLeft_Tile | kTopRight_Tile);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(5, 5, 1, 10),  kTopLeft_Tile |
+                   kBottomLeft_Tile);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(5, 5, 10, 10),  kAll_Tile);
+    verifyTileHits(reporter, SkIRect::MakeXYWH(-10, -10, 40, 40),  kAll_Tile);
+}