skia2/experimental/Intersection/ActiveEdge_Test.cpp
caryclark@google.com d88e0894d0 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
2012-03-27 13:23:51 +00:00

68 lines
2.1 KiB
C++
Executable File

#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));
}
}