diff --git a/tests/PathOpsDQuadTest.cpp b/tests/PathOpsDQuadTest.cpp
new file mode 100644
index 0000000..f78e2aa
--- /dev/null
+++ b/tests/PathOpsDQuadTest.cpp
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#include "SkPathOpsQuad.h"
+#include "Test.h"
+
+static const SkDQuad tests[] = {
+    {{{1, 1}, {2, 1}, {0, 2}}},
+    {{{0, 0}, {1, 1}, {3, 1}}},
+    {{{2, 0}, {1, 1}, {2, 2}}},
+    {{{4, 0}, {0, 1}, {4, 2}}},
+    {{{0, 0}, {0, 1}, {1, 1}}},
+};
+
+static const SkDPoint inPoint[]= {
+    {1,   1.2},
+    {1,   0.8},
+    {1.8, 1},
+    {1.5, 1},
+    {0.5, 0.5},
+};
+
+static const SkDPoint outPoint[]= {
+    {1,   1.6},
+    {1,   1.5},
+    {2.2, 1},
+    {1.5, 1.5},
+    {1.1, 0.5},
+};
+
+static const size_t tests_count = sizeof(tests) / sizeof(tests[0]);
+
+static void DQuadTest(skiatest::Reporter* reporter) {
+    for (size_t index = 0; index < tests_count; ++index) {
+        const SkDQuad& quad = tests[index];
+        bool result = quad.pointInHull(inPoint[index]);
+        if (!result) {
+            SkDebugf("%s [%d] expected in hull\n", __FUNCTION__, index);
+            REPORTER_ASSERT(reporter, 0);
+        }
+        result = quad.pointInHull(outPoint[index]);
+        if (result) {
+            SkDebugf("%s [%d] expected outside hull\n", __FUNCTION__, index);
+            REPORTER_ASSERT(reporter, 0);
+        }
+    }
+}
+
+#include "TestClassDef.h"
+DEFINE_TESTCLASS("PathOpsDQuad", PathOpsDQuadClass, DQuadTest)
