diff options
Diffstat (limited to 'chromium/third_party/skia/experimental/Intersection/EdgeWalkerQuadralaterals_Test.cpp')
-rw-r--r-- | chromium/third_party/skia/experimental/Intersection/EdgeWalkerQuadralaterals_Test.cpp | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/chromium/third_party/skia/experimental/Intersection/EdgeWalkerQuadralaterals_Test.cpp b/chromium/third_party/skia/experimental/Intersection/EdgeWalkerQuadralaterals_Test.cpp new file mode 100644 index 00000000000..92e474b84a9 --- /dev/null +++ b/chromium/third_party/skia/experimental/Intersection/EdgeWalkerQuadralaterals_Test.cpp @@ -0,0 +1,126 @@ +/* + * Copyright 2012 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#include "EdgeWalker_Test.h" +#include "Intersection_Tests.h" +#include "SkBitmap.h" + +static SkBitmap bitmap; + +static void testSimplifyQuad1() { + SkPath path, out; + path.moveTo(0, 0); + path.lineTo(1, 0); + path.lineTo(3, 2); + path.lineTo(3, 3); + path.close(); + path.moveTo(1, 0); + path.lineTo(1, 3); + path.lineTo(1, 3); + path.lineTo(1, 3); + path.close(); + testSimplify(path, true, out, bitmap); +} + +static void testSimplifyQuad2() { + SkPath path, out; + path.moveTo(0, 0); + path.lineTo(0, 0); + path.lineTo(0, 0); + path.lineTo(0, 2); + path.close(); + path.moveTo(0, 1); + path.lineTo(0, 1); + path.lineTo(1, 1); + path.lineTo(0, 2); + path.close(); + testSimplify(path, true, out, bitmap); +} + +static void testSimplifyQuad3() { + SkPath path, out; + path.moveTo(0, 0); + path.lineTo(0, 0); + path.lineTo(1, 0); + path.lineTo(1, 2); + path.close(); + path.moveTo(0, 1); + path.lineTo(1, 1); + path.lineTo(2, 1); + path.lineTo(0, 2); + path.close(); + testSimplify(path, true, out, bitmap); +} + +static void testSimplifyQuad4() { + SkPath path, out; + path.moveTo(0, 0); + path.lineTo(0, 0); + path.lineTo(1, 0); + path.lineTo(2, 2); + path.close(); + path.moveTo(0, 0); + path.lineTo(2, 1); + path.lineTo(3, 1); + path.lineTo(3, 3); + path.close(); + testSimplify(path, true, out, bitmap); +} + +static void testSimplifyQuad5() { + SkPath path, out; + path.moveTo(0, 0); + path.lineTo(0, 0); + path.lineTo(1, 0); + path.lineTo(3, 2); + path.close(); + path.moveTo(0, 1); + path.lineTo(1, 1); + path.lineTo(2, 1); + path.lineTo(0, 2); + path.close(); + testSimplify(path, true, out, bitmap); +} + +static void testSimplifyQuad6() { + SkPath path, out; + path.moveTo(0, 0); + path.lineTo(1, 0); + path.lineTo(1, 1); + path.lineTo(3, 3); + path.close(); + path.moveTo(1, 1); + path.lineTo(1, 1); + path.lineTo(1, 1); + path.lineTo(2, 2); + path.close(); + testSimplify(path, true, out, bitmap); +} + +static void (*simplifyTests[])() = { + testSimplifyQuad6, + testSimplifyQuad5, + testSimplifyQuad4, + testSimplifyQuad3, + testSimplifyQuad2, + testSimplifyQuad1, +}; + +static size_t simplifyTestsCount = sizeof(simplifyTests) / sizeof(simplifyTests[0]); + +static void (*firstTest)() = 0; + +void SimplifyQuadralateralPaths_Test() { + size_t index = 0; + if (firstTest) { + while (index < simplifyTestsCount && simplifyTests[index] != firstTest) { + ++index; + } + } + for ( ; index < simplifyTestsCount; ++index) { + (*simplifyTests[index])(); + } +} |