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 "PathOpsTestCommon.h" 8 #include "SkPath.h" 9 #include "SkPathOpsQuad.h" 10 #include "SkRRect.h" 11 #include "Test.h" 12 13 static const SkDQuad tests[] = { 14 {{{1, 1}, {2, 1}, {0, 2}}}, 15 {{{0, 0}, {1, 1}, {3, 1}}}, 16 {{{2, 0}, {1, 1}, {2, 2}}}, 17 {{{4, 0}, {0, 1}, {4, 2}}}, 18 {{{0, 0}, {0, 1}, {1, 1}}}, 19 }; 20 21 static const SkDPoint inPoint[]= { 22 {1, 1.2}, 23 {1, 0.8}, 24 {1.8, 1}, 25 {1.5, 1}, 26 {0.4999, 0.5}, // was 0.5, 0.5; points on the hull are considered outside 27 }; 28 29 static const SkDPoint outPoint[]= { 30 {1, 1.6}, 31 {1, 1.5}, 32 {2.2, 1}, 33 {1.5, 1.5}, 34 {1.1, 0.5}, 35 }; 36 37 static const size_t tests_count = SK_ARRAY_COUNT(tests); 38 39 static void PathOpsDQuadTest(skiatest::Reporter* reporter) { 40 for (size_t index = 0; index < tests_count; ++index) { 41 const SkDQuad& quad = tests[index]; 42 SkASSERT(ValidQuad(quad)); 43 bool result = quad.pointInHull(inPoint[index]); 44 if (!result) { 45 SkDebugf("%s [%d] expected in hull\n", __FUNCTION__, index); 46 REPORTER_ASSERT(reporter, 0); 47 } 48 result = quad.pointInHull(outPoint[index]); 49 if (result) { 50 SkDebugf("%s [%d] expected outside hull\n", __FUNCTION__, index); 51 REPORTER_ASSERT(reporter, 0); 52 } 53 } 54 } 55 56 static void PathOpsRRectTest(skiatest::Reporter* reporter) { 57 SkPath path; 58 SkRRect rRect; 59 SkRect rect = {135, 143, 250, 177}; 60 SkVector radii[4] = {{8, 8}, {8, 8}, {0, 0}, {0, 0}}; 61 rRect.setRectRadii(rect, radii); 62 path.addRRect(rRect); 63 } 64 65 #include "TestClassDef.h" 66 DEFINE_TESTCLASS_SHORT(PathOpsDQuadTest) 67 68 DEFINE_TESTCLASS_SHORT(PathOpsRRectTest) 69