diff --git a/tests/GeometryTest.cpp b/tests/GeometryTest.cpp
index 5b05952..1465288 100644
--- a/tests/GeometryTest.cpp
+++ b/tests/GeometryTest.cpp
@@ -1,6 +1,10 @@
 #include "Test.h"
 #include "SkGeometry.h"
 
+static bool nearly_equal(const SkPoint& a, const SkPoint& b) {
+    return SkScalarNearlyEqual(a.fX, b.fX) && SkScalarNearlyEqual(a.fY, b.fY);
+}
+
 static void TestGeometry(skiatest::Reporter* reporter) {
     SkPoint pts[3], dst[5];
 
@@ -10,6 +14,20 @@
 
     int count = SkChopQuadAtMaxCurvature(pts, dst);
     REPORTER_ASSERT(reporter, count == 1 || count == 2);
+
+    pts[0].set(0, 0);
+    pts[1].set(SkIntToScalar(3), 0);
+    pts[2].set(SkIntToScalar(3), SkIntToScalar(3));
+    SkConvertQuadToCubic(pts, dst);
+    const SkPoint cubic[] = {
+        0, 0,
+        SkIntToScalar(2), 0,
+        SkIntToScalar(3), SkIntToScalar(1),
+        SkIntToScalar(3), SkIntToScalar(3)
+    };
+    for (int i = 0; i < 4; ++i) {
+        REPORTER_ASSERT(reporter, nearly_equal(cubic[i], dst[i]));
+    }
 }
 
 #include "TestClassDef.h"
