blob: bd29ff11ba032983ead14d9e068867e04fd7b5ab [file] [log] [blame]
caryclark@google.com07393ca2013-04-08 11:47:37 +00001/*
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 */
caryclark@google.com8d0a5242013-07-16 16:11:16 +00007#include "PathOpsTestCommon.h"
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00008#include "SkPath.h"
caryclark@google.com07393ca2013-04-08 11:47:37 +00009#include "SkPathOpsQuad.h"
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +000010#include "SkRRect.h"
caryclark@google.com07393ca2013-04-08 11:47:37 +000011#include "Test.h"
12
13static 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
21static const SkDPoint inPoint[]= {
22 {1, 1.2},
23 {1, 0.8},
24 {1.8, 1},
25 {1.5, 1},
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +000026 {0.4999, 0.5}, // was 0.5, 0.5; points on the hull are considered outside
caryclark@google.com07393ca2013-04-08 11:47:37 +000027};
28
29static 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
caryclark@google.comad65a3e2013-04-15 19:13:59 +000037static const size_t tests_count = SK_ARRAY_COUNT(tests);
caryclark@google.com07393ca2013-04-08 11:47:37 +000038
tfarina@chromium.org78e7b4e2014-01-02 21:45:03 +000039DEF_TEST(PathOpsDQuad, reporter) {
caryclark@google.com07393ca2013-04-08 11:47:37 +000040 for (size_t index = 0; index < tests_count; ++index) {
41 const SkDQuad& quad = tests[index];
caryclark@google.com8d0a5242013-07-16 16:11:16 +000042 SkASSERT(ValidQuad(quad));
caryclark@google.com07393ca2013-04-08 11:47:37 +000043 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
tfarina@chromium.org78e7b4e2014-01-02 21:45:03 +000056DEF_TEST(PathOpsRRect, reporter) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +000057 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}