diff options
author | caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-04-08 20:37:35 +0000 |
---|---|---|
committer | caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-04-08 20:37:35 +0000 |
commit | 496120185c7baed4edf1c110f4f5b43f29bab1c0 (patch) | |
tree | 6df2b411a74522a8543b1e8fd0def3680bb46892 /tests/PathOpsQuadReduceOrderTest.cpp | |
parent | 7e0274e80bf87a923cb56f7febb44be36bd8b987 (diff) |
saving the old before blowing away
git-svn-id: http://skia.googlecode.com/svn/trunk@8565 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests/PathOpsQuadReduceOrderTest.cpp')
-rw-r--r-- | tests/PathOpsQuadReduceOrderTest.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/PathOpsQuadReduceOrderTest.cpp b/tests/PathOpsQuadReduceOrderTest.cpp new file mode 100644 index 0000000000..8ee817b627 --- /dev/null +++ b/tests/PathOpsQuadReduceOrderTest.cpp @@ -0,0 +1,71 @@ +/* + * 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 "PathOpsQuadIntersectionTestData.h" +#include "SkIntersections.h" +#include "SkPathOpsRect.h" +#include "SkReduceOrder.h" +#include "Test.h" + +static const SkDQuad testSet[] = { + {{{1, 1}, {2, 2}, {1, 1.000003}}}, + {{{1, 0}, {2, 6}, {3, 0}}} +}; + +static const size_t testSetCount = sizeof(testSet) / sizeof(testSet[0]); + +static void oneOffTest(skiatest::Reporter* reporter) { + for (size_t index = 0; index < testSetCount; ++index) { + const SkDQuad& quad = testSet[index]; + SkReduceOrder reducer; + SkDEBUGCODE(int result = ) reducer.reduce(quad, SkReduceOrder::kFill_Style); + SkASSERT(result == 3); + } +} + +static void standardTestCases(skiatest::Reporter* reporter) { + size_t index; + SkReduceOrder reducer; + int order; + enum { + RunAll, + RunQuadraticLines, + RunQuadraticModLines, + RunNone + } run = RunAll; + int firstTestIndex = 0; +#if 0 + run = RunQuadraticLines; + firstTestIndex = 1; +#endif + int firstQuadraticLineTest = run == RunAll ? 0 : run == RunQuadraticLines ? firstTestIndex + : SK_MaxS32; + int firstQuadraticModLineTest = run == RunAll ? 0 : run == RunQuadraticModLines ? firstTestIndex + : SK_MaxS32; + + for (index = firstQuadraticLineTest; index < quadraticLines_count; ++index) { + const SkDQuad& quad = quadraticLines[index]; + order = reducer.reduce(quad, SkReduceOrder::kFill_Style); + if (order != 2) { + printf("[%d] line quad order=%d\n", (int) index, order); + } + } + for (index = firstQuadraticModLineTest; index < quadraticModEpsilonLines_count; ++index) { + const SkDQuad& quad = quadraticModEpsilonLines[index]; + order = reducer.reduce(quad, SkReduceOrder::kFill_Style); + if (order != 3) { + printf("[%d] line mod quad order=%d\n", (int) index, order); + } + } +} + +void QuadReduceOrderTest(skiatest::Reporter* reporter) { + oneOffTest(reporter); + standardTestCases(reporter); +} + +#include "TestClassDef.h" +DEFINE_TESTCLASS("PathOpsReduceOrderQuad", ReduceOrderQuadTestClass, QuadReduceOrderTest) |