1/* 2 * Copyright 2012 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7#include "EdgeWalker_Test.h" 8#include "Intersection_Tests.h" 9#include "SkBitmap.h" 10 11static SkBitmap bitmap; 12 13static void testSimplifyQuad1() { 14 SkPath path, out; 15 path.moveTo(0, 0); 16 path.lineTo(1, 0); 17 path.lineTo(3, 2); 18 path.lineTo(3, 3); 19 path.close(); 20 path.moveTo(1, 0); 21 path.lineTo(1, 3); 22 path.lineTo(1, 3); 23 path.lineTo(1, 3); 24 path.close(); 25 testSimplify(path, true, out, bitmap); 26} 27 28static void testSimplifyQuad2() { 29 SkPath path, out; 30 path.moveTo(0, 0); 31 path.lineTo(0, 0); 32 path.lineTo(0, 0); 33 path.lineTo(0, 2); 34 path.close(); 35 path.moveTo(0, 1); 36 path.lineTo(0, 1); 37 path.lineTo(1, 1); 38 path.lineTo(0, 2); 39 path.close(); 40 testSimplify(path, true, out, bitmap); 41} 42 43static void testSimplifyQuad3() { 44 SkPath path, out; 45 path.moveTo(0, 0); 46 path.lineTo(0, 0); 47 path.lineTo(1, 0); 48 path.lineTo(1, 2); 49 path.close(); 50 path.moveTo(0, 1); 51 path.lineTo(1, 1); 52 path.lineTo(2, 1); 53 path.lineTo(0, 2); 54 path.close(); 55 testSimplify(path, true, out, bitmap); 56} 57 58static void testSimplifyQuad4() { 59 SkPath path, out; 60 path.moveTo(0, 0); 61 path.lineTo(0, 0); 62 path.lineTo(1, 0); 63 path.lineTo(2, 2); 64 path.close(); 65 path.moveTo(0, 0); 66 path.lineTo(2, 1); 67 path.lineTo(3, 1); 68 path.lineTo(3, 3); 69 path.close(); 70 testSimplify(path, true, out, bitmap); 71} 72 73static void testSimplifyQuad5() { 74 SkPath path, out; 75 path.moveTo(0, 0); 76 path.lineTo(0, 0); 77 path.lineTo(1, 0); 78 path.lineTo(3, 2); 79 path.close(); 80 path.moveTo(0, 1); 81 path.lineTo(1, 1); 82 path.lineTo(2, 1); 83 path.lineTo(0, 2); 84 path.close(); 85 testSimplify(path, true, out, bitmap); 86} 87 88static void testSimplifyQuad6() { 89 SkPath path, out; 90 path.moveTo(0, 0); 91 path.lineTo(1, 0); 92 path.lineTo(1, 1); 93 path.lineTo(3, 3); 94 path.close(); 95 path.moveTo(1, 1); 96 path.lineTo(1, 1); 97 path.lineTo(1, 1); 98 path.lineTo(2, 2); 99 path.close(); 100 testSimplify(path, true, out, bitmap); 101} 102 103static void (*simplifyTests[])() = { 104 testSimplifyQuad6, 105 testSimplifyQuad5, 106 testSimplifyQuad4, 107 testSimplifyQuad3, 108 testSimplifyQuad2, 109 testSimplifyQuad1, 110}; 111 112static size_t simplifyTestsCount = sizeof(simplifyTests) / sizeof(simplifyTests[0]); 113 114static void (*firstTest)() = 0; 115 116void SimplifyQuadralateralPaths_Test() { 117 size_t index = 0; 118 if (firstTest) { 119 while (index < simplifyTestsCount && simplifyTests[index] != firstTest) { 120 ++index; 121 } 122 } 123 for ( ; index < simplifyTestsCount; ++index) { 124 (*simplifyTests[index])(); 125 } 126} 127