/* * 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 "PathOpsTestCommon.h" #include "SkPath.h" #include "SkPathOpsQuad.h" #include "SkRRect.h" #include "Test.h" static const SkDQuad tests[] = { {{{1, 1}, {2, 1}, {0, 2}}}, {{{0, 0}, {1, 1}, {3, 1}}}, {{{2, 0}, {1, 1}, {2, 2}}}, {{{4, 0}, {0, 1}, {4, 2}}}, {{{0, 0}, {0, 1}, {1, 1}}}, }; static const SkDPoint inPoint[]= { {1, 1.2}, {1, 0.8}, {1.8, 1}, {1.5, 1}, {0.4999, 0.5}, // was 0.5, 0.5; points on the hull are considered outside }; static const SkDPoint outPoint[]= { {1, 1.6}, {1, 1.5}, {2.2, 1}, {1.5, 1.5}, {1.1, 0.5}, }; static const size_t tests_count = SK_ARRAY_COUNT(tests); DEF_TEST(PathOpsDQuad, reporter) { for (size_t index = 0; index < tests_count; ++index) { const SkDQuad& quad = tests[index]; SkASSERT(ValidQuad(quad)); bool result = quad.pointInHull(inPoint[index]); if (!result) { SkDebugf("%s [%d] expected in hull\n", __FUNCTION__, index); REPORTER_ASSERT(reporter, 0); } result = quad.pointInHull(outPoint[index]); if (result) { SkDebugf("%s [%d] expected outside hull\n", __FUNCTION__, index); REPORTER_ASSERT(reporter, 0); } } } DEF_TEST(PathOpsRRect, reporter) { SkPath path; SkRRect rRect; SkRect rect = {135, 143, 250, 177}; SkVector radii[4] = {{8, 8}, {8, 8}, {0, 0}, {0, 0}}; rRect.setRectRadii(rect, radii); path.addRRect(rRect); }