work in progress
nearly coincident mostly work
support files for creating projects from gyp

git-svn-id: http://skia.googlecode.com/svn/trunk@3500 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/Intersection/ActiveEdge_Test.cpp b/experimental/Intersection/ActiveEdge_Test.cpp
new file mode 100755
index 0000000..2ee4089
--- /dev/null
+++ b/experimental/Intersection/ActiveEdge_Test.cpp
@@ -0,0 +1,67 @@
+#include "CurveIntersection.h"
+#include "LineIntersection.h"
+#include "SkPath.h"
+#include "SkRect.h"
+#include "SkTArray.h"
+#include "SkTDArray.h"
+#include "TSearch.h"
+
+namespace UnitTest {
+
+#include "EdgeWalker.cpp"
+
+} // end of UnitTest namespace
+
+#include "Intersection_Tests.h"
+
+SkPoint leftRight[][4] = {
+// equal length
+    {{10, 10}, {10, 50},   {20, 10}, {20, 50}},
+    {{10, 10}, {10, 50},   {10, 10}, {20, 50}},
+    {{10, 10}, {10, 50},   {20, 10}, {10, 50}},
+// left top higher
+    {{10,  0}, {10, 50},   {20, 10}, {20, 50}},
+    {{10,  0}, {10, 50},   {10, 10}, {20, 50}},
+    {{10,  0}, {10, 50},   {20, 10}, {10, 50}},
+    {{10,  0}, {10, 50},   {20, 10}, {10 + 0.000001, 40}},
+// left top lower
+    {{10, 20}, {10, 50},   {20, 10}, {20, 50}},
+    {{10, 20}, {10, 50},   {10, 10}, {20, 50}},
+    {{10, 20}, {10, 50},   {20, 10}, {10, 50}},
+    {{10, 20}, {10, 50},   {20, 10}, {10 + 0.000001, 40}},
+    {{10, 20}, {10, 50},   { 0,  0}, {50, 50}},
+// left bottom higher
+    {{10, 10}, {10, 40},   {20, 10}, {20, 50}},
+    {{10, 10}, {10, 40},   {10, 10}, {20, 50}},
+    {{10, 10}, {10, 40},   {20, 10}, {10, 50}},
+    {{10, 10}, {10, 40},   {20, 10}, { 0 + 0.000001, 70}},
+// left bottom lower
+    {{10, 10}, {10, 60},   {20, 10}, {20, 50}},
+    {{10, 10}, {10, 60},   {10, 10}, {20, 50}},
+    {{10, 10}, {10, 60},   {20, 10}, {10 + 0.000001, 50}},
+    {{10, 10}, {10, 60},   {20, 10}, {10 + 0.000001, 40}},
+    {{10, 10}, {10, 60},   { 0,  0}, {20 + 0.000001, 20}},
+};
+
+size_t leftRightCount = sizeof(leftRight) / sizeof(leftRight[0]);
+
+void ActiveEdge_Test() {
+    UnitTest::InEdge leftIn, rightIn;
+    UnitTest::ActiveEdge left, right;
+    left.fWorkEdge.fEdge = &leftIn;
+    right.fWorkEdge.fEdge = &rightIn;
+    for (size_t x = 0; x < leftRightCount; ++x) {
+        left.fAbove = leftRight[x][0];
+        left.fBelow = leftRight[x][1]; 
+        right.fAbove = leftRight[x][2];
+        right.fBelow = leftRight[x][3];
+        SkASSERT(left < right);
+        SkASSERT(left.operator_less_than(right));
+        SkASSERT(!(right < left));
+        SkASSERT(!right.operator_less_than(left));
+    }
+}
+
+
+
+