shape ops work in progress

git-svn-id: http://skia.googlecode.com/svn/trunk@6223 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/Intersection/LineQuadraticIntersection_Test.cpp b/experimental/Intersection/LineQuadraticIntersection_Test.cpp
index 171a778..69227c3 100644
--- a/experimental/Intersection/LineQuadraticIntersection_Test.cpp
+++ b/experimental/Intersection/LineQuadraticIntersection_Test.cpp
@@ -55,7 +55,41 @@
     return result;
 }
 
+static struct oneLineQuad {
+    Quadratic quad;
+    _Line line;
+} oneOffs[] = {
+    {{{369.848602,145.680267}, {382.360413,121.298294}, {406.207703,121.298294}},
+        {{406.207703,121.298294}, {348.781738,123.864815}}}
+    };
+
+static size_t oneOffs_count = sizeof(oneOffs) / sizeof(oneOffs[0]);
+
+
+static void testOneOffs() {
+    Intersections intersections;
+    bool flipped = false;
+    for (size_t index = 0; index < oneOffs_count; ++index) {
+        const Quadratic& quad = oneOffs[index].quad;
+        const _Line& line = oneOffs[index].line;
+        int result = doIntersect(intersections, quad, line, flipped);
+        for (int inner = 0; inner < result; ++inner) {
+            double quadT = intersections.fT[0][inner];
+            double quadX, quadY;
+            xy_at_t(quad, quadT, quadX, quadY);
+            double lineT = intersections.fT[1][inner];
+            double lineX, lineY;
+            xy_at_t(line, lineT, lineX, lineY);
+            assert(approximately_equal(quadX, lineX)
+                    && approximately_equal(quadY, lineY));
+        }
+    }
+}
+
 void LineQuadraticIntersection_Test() {
+    if (1) {
+        testOneOffs();
+    }
     for (size_t index = firstLineQuadIntersectionTest; index < lineQuadTests_count; ++index) {
         const Quadratic& quad = lineQuadTests[index].quad;
         const _Line& line = lineQuadTests[index].line;