work in progress
git-svn-id: http://skia.googlecode.com/svn/trunk@3702 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/Intersection/EdgeWalkerQuadratics_Test.cpp b/experimental/Intersection/EdgeWalkerQuadratics_Test.cpp
index 31a5a23..96ba2f3 100644
--- a/experimental/Intersection/EdgeWalkerQuadratics_Test.cpp
+++ b/experimental/Intersection/EdgeWalkerQuadratics_Test.cpp
@@ -49,7 +49,188 @@
drawAsciiPaths(path, out, true);
}
+static void testSimplifyQuadratic5() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.quadTo(0, 0, 0, 0);
+ path.lineTo(0, 0);
+ path.close();
+ path.moveTo(0, 0);
+ path.lineTo(0, 0);
+ path.quadTo(0, 0, 0, 1);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic6() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.quadTo(0, 0, 0, 0);
+ path.lineTo(1, 0);
+ path.close();
+ path.moveTo(0, 0);
+ path.lineTo(0, 0);
+ path.quadTo(1, 0, 0, 1);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic7() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.quadTo(0, 0, 0, 0);
+ path.lineTo(0, 1);
+ path.close();
+ path.moveTo(0, 0);
+ path.lineTo(0, 0);
+ path.quadTo(1, 0, 0, 2);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic8() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.quadTo(0, 0, 0, 0);
+ path.lineTo(0, 0);
+ path.close();
+ path.moveTo(0, 0);
+ path.lineTo(0, 0);
+ path.quadTo(1, 0, 0, 2);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic9() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.quadTo(0, 0, 0, 0);
+ path.lineTo(1, 1);
+ path.close();
+ path.moveTo(0, 0);
+ path.lineTo(0, 0);
+ path.quadTo(1, 0, 2, 2);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic10() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.quadTo(0, 0, 0, 0);
+ path.lineTo(0, 0);
+ path.close();
+ path.moveTo(0, 0);
+ path.lineTo(0, 1);
+ path.quadTo(1, 1, 1, 2);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic11() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.quadTo(0, 0, 0, 0);
+ path.lineTo(0, 2);
+ path.close();
+ path.moveTo(0, 0);
+ path.lineTo(2, 1);
+ path.quadTo(2, 2, 3, 3);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic12() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.lineTo(0, 2);
+ path.lineTo(0, 0);
+ path.close();
+ path.moveTo(3, 0);
+ path.quadTo(1, 1, 0, 2);
+ path.lineTo(3, 0);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic13() {
+ SkPath path, out;
+path.moveTo(0, 0);
+path.quadTo(0, 0, 1, 0);
+path.lineTo(1, 1);
+path.lineTo(0, 0);
+path.close();
+path.moveTo(0, 0);
+path.quadTo(3, 0, 1, 1);
+path.lineTo(0, 0);
+path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic14() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.quadTo(0, 0, 0, 0);
+ path.lineTo(1, 1);
+ path.close();
+ path.moveTo(0, 0);
+ path.lineTo(0, 0);
+ path.quadTo(0, 1, 2, 1);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic15() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.quadTo(0, 0, 1, 3);
+ path.lineTo(3, 3);
+ path.close();
+ path.moveTo(0, 1);
+ path.lineTo(1, 1);
+ path.quadTo(0, 3, 3, 3);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
+static void testSimplifyQuadratic16() {
+ SkPath path, out;
+ path.moveTo(0, 0);
+ path.quadTo(0, 0, 0, 0);
+ path.lineTo(0, 1);
+ path.close();
+ path.moveTo(0, 0);
+ path.lineTo(0, 0);
+ path.quadTo(1, 0, 0, 1);
+ path.close();
+ testSimplify(path, true, out, bitmap);
+ drawAsciiPaths(path, out, true);
+}
+
static void (*simplifyTests[])() = {
+ testSimplifyQuadratic16,
+ testSimplifyQuadratic15,
+ testSimplifyQuadratic14,
+ testSimplifyQuadratic13,
+ testSimplifyQuadratic12,
+ testSimplifyQuadratic11,
+ testSimplifyQuadratic10,
+ testSimplifyQuadratic9,
+ testSimplifyQuadratic8,
+ testSimplifyQuadratic7,
+ testSimplifyQuadratic6,
+ testSimplifyQuadratic5,
testSimplifyQuadratic4,
testSimplifyQuadratic3,
testSimplifyQuadratic2,
@@ -58,7 +239,7 @@
static size_t simplifyTestsCount = sizeof(simplifyTests) / sizeof(simplifyTests[0]);
-static void (*firstTest)() = testSimplifyQuadratic3;
+static void (*firstTest)() = 0;
static bool skipAll = false;
void SimplifyQuadraticPaths_Test() {