1af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com/*
2af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com * Copyright 2012 Google Inc.
3af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com *
4af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com * Use of this source code is governed by a BSD-style license that can be
5af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com * found in the LICENSE file.
6af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com */
7af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
8af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com#include "EdgeWalker_Test.h"
9af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com#include "Intersection_Tests.h"
108dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com#include "ShapeOps.h"
11af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
1247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com#define TEST(name) { name, #name }
1347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
14af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.comstatic void testLine1() {
1559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
16af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.moveTo(2,0);
17af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.lineTo(1,1);
18af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.lineTo(0,0);
19af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.close();
2088f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    testSimplifyx(path);
21af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com}
22af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
23c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine1x() {
24c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
25c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
26c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(2,0);
27c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1,1);
28c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0,0);
29c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
30c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
31c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
32c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
33af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.comstatic void addInnerCWTriangle(SkPath& path) {
34af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.moveTo(3,0);
35af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.lineTo(4,1);
36af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.lineTo(2,1);
37af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.close();
38af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com}
39af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
40af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.comstatic void addInnerCCWTriangle(SkPath& path) {
41af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.moveTo(3,0);
42af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.lineTo(2,1);
43af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.lineTo(4,1);
44af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.close();
45af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com}
46af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
47af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.comstatic void addOuterCWTriangle(SkPath& path) {
48af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.moveTo(3,0);
49af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.lineTo(6,2);
50af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.lineTo(0,2);
51af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.close();
52af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com}
53af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
54af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.comstatic void addOuterCCWTriangle(SkPath& path) {
55af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.moveTo(3,0);
56af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.lineTo(0,2);
57af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.lineTo(6,2);
58af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    path.close();
59af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com}
60af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
61af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.comstatic void testLine2() {
6259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
63c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
64c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addInnerCWTriangle(path);
65c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addOuterCWTriangle(path);
66c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
67c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
68c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
69c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine2x() {
70c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
71c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
72af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    addInnerCWTriangle(path);
73af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    addOuterCWTriangle(path);
7488f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    testSimplifyx(path);
75af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com}
76af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
77495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.comstatic void testLine3() {
7859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
79c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
80c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addInnerCCWTriangle(path);
81c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addOuterCWTriangle(path);
82c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
83c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
84c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
85c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine3x() {
86c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
87c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
88495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com    addInnerCCWTriangle(path);
89495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com    addOuterCWTriangle(path);
9088f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    testSimplifyx(path);
91495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com}
92495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com
93534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine3a() {
9459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
95534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    addInnerCWTriangle(path);
96534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    addOuterCCWTriangle(path);
97534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
98534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
99534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
100c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine3ax() {
101c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
102c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
103c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addInnerCWTriangle(path);
104c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addOuterCCWTriangle(path);
105c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
106c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
107c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
108534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine3b() {
10959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
110534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    addInnerCCWTriangle(path);
111534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    addOuterCCWTriangle(path);
112534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
113534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
114534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
115c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine3bx() {
116c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
117c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
118c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addInnerCCWTriangle(path);
119c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addOuterCCWTriangle(path);
120c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
121c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
122c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
123495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.comstatic void testLine4() {
12459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
125495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com    addOuterCCWTriangle(path);
126495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com    addOuterCWTriangle(path);
12788f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    testSimplifyx(path);
128495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com}
129495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com
130c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine4x() {
131c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
132c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
133c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addOuterCCWTriangle(path);
134c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addOuterCWTriangle(path);
135c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
136c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
137c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
138495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.comstatic void testLine5() {
13959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
140495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com    addOuterCWTriangle(path);
141495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com    addOuterCWTriangle(path);
14288f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    testSimplifyx(path);
14388f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com}
14488f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com
145c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine5x() {
146c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
147c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
148c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addOuterCWTriangle(path);
149c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addOuterCWTriangle(path);
150c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
151c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
152c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
15388f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.comstatic void testLine6() {
15459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
15588f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.moveTo(0,0);
15688f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(4,0);
15788f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(2,2);
15888f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.close();
15988f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.moveTo(2,0);
16088f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(6,0);
16188f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(4,2);
16288f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.close();
16388f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    testSimplifyx(path);
16488f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com}
16588f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com
166c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine6x() {
167c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
168c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
169c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0,0);
170c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,0);
171c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2,2);
172c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
173c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(2,0);
174c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6,0);
175c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,2);
176c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
177c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
178c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
179c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
18088f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.comstatic void testLine7() {
18159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
18288f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.moveTo(0,0);
18388f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(4,0);
18488f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(2,2);
18588f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.close();
18688f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.moveTo(6,0);
18788f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(2,0);
18888f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(4,2);
18988f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.close();
19088f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    testSimplifyx(path);
191495f8e435b677f28913cd2adc8caa8d3d766dd17caryclark@google.com}
192af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
193c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine7x() {
194c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
195c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
196c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0,0);
197c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,0);
198c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2,2);
199c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
200c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(6,0);
201c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2,0);
202c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,2);
203c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
204c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
205c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
206c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
207fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.comstatic void testLine7a() {
20859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
209fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.moveTo(0,0);
210fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.lineTo(4,0);
211fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.lineTo(2,2);
212fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.close();
213fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    testSimplifyx(path);
214fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com}
215fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com
216c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine7ax() {
217c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
218c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
219c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0,0);
220c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,0);
221c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2,2);
222c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
223c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
224c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
225c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
226fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.comstatic void testLine7b() {
22759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
228fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.moveTo(0,0);
229fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.lineTo(4,0);
230fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.close();
231fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.moveTo(6,0);
232fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.lineTo(2,0);
233fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.lineTo(4,2);
234fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    path.close();
235fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    testSimplifyx(path);
236fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com}
237fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com
238c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine7bx() {
239c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
240c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
241c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0,0);
242c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,0);
243c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
244c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(6,0);
245c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2,0);
246c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,2);
247c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
248c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
249c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
250c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
25188f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.comstatic void testLine8() {
25259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
25388f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.moveTo(0,4);
25488f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(4,4);
25588f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(2,2);
25688f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.close();
25788f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.moveTo(2,4);
25888f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(6,4);
25988f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(4,2);
26088f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.close();
26188f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    testSimplifyx(path);
26288f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com}
26388f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com
264c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine8x() {
265c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
266c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
267c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0,4);
268c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,4);
269c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2,2);
270c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
271c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(2,4);
272c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6,4);
273c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,2);
274c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
275c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
276c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
277c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
27888f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.comstatic void testLine9() {
27959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
28088f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.moveTo(0,4);
28188f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(4,4);
28288f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(2,2);
28388f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.close();
28488f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.moveTo(6,4);
28588f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(2,4);
28688f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.lineTo(4,2);
28788f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    path.close();
28888f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com    testSimplifyx(path);
28988f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com}
29088f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com
291c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine9x() {
292c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
293c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
294c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0,4);
295c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,4);
296c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2,2);
297c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
298c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(6,4);
299c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2,4);
300c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,2);
301c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
302c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
303c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
304c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
3058dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine10() {
30659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
3078dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.moveTo(0,4);
3088dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(4,4);
3098dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(2,2);
3108dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.close();
3118dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.moveTo(2,1);
3128dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(3,4);
3138dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(6,1);
3148dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.close();
3158dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
3168dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
3178dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
318c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine10x() {
319c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
320c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
321c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0,4);
322c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,4);
323c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2,2);
324c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
325c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(2,1);
326c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3,4);
327c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6,1);
328c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
329c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
330c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
331c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
3328dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine10a() {
33359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
3348dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.moveTo(0,4);
3358dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(8,4);
3368dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(4,0);
3378dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.close();
3388dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.moveTo(2,2);
3398dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(3,3);
3408dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(4,2);
3418dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.close();
3428dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
3438dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
3448dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
345c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine10ax() {
346c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
347c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
348c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0,4);
349c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(8,4);
350c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,0);
351c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
352c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(2,2);
353c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3,3);
354c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,2);
355c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
356c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
357c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
358c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
3598dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void addCWContainer(SkPath& path) {
3608dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.moveTo(6,4);
3618dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(0,4);
3628dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(3,1);
3638dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.close();
3648dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
3658dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
3668dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void addCCWContainer(SkPath& path) {
3678dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.moveTo(0,4);
3688dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(6,4);
3698dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(3,1);
3708dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.close();
3718dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
3728dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
3738dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void addCWContents(SkPath& path) {
3748dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.moveTo(2,3);
3758dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(3,2);
3768dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(4,3);
3778dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.close();
3788dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
3798dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
3808dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void addCCWContents(SkPath& path) {
3818dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.moveTo(3,2);
3828dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(2,3);
3838dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(4,3);
3848dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.close();
3858dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
3868dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
3878dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine11() {
38859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
3898dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    addCWContainer(path);
3908dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    addCWContents(path);
3918dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
3928dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
3938dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
394c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine11x() {
395c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
396c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
397c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addCWContainer(path);
398c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addCWContents(path);
399c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
400c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
401c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
4028dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine12() {
40359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
4048dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    addCCWContainer(path);
4058dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    addCWContents(path);
4068dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
4078dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
4088dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
409c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine12x() {
410c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
411c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
412c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addCCWContainer(path);
413c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addCWContents(path);
414c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
415c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
416c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
4178dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine13() {
41859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
4198dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    addCWContainer(path);
4208dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    addCCWContents(path);
4218dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
4228dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
4238dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
424c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine13x() {
425c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
426c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
427c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addCWContainer(path);
428c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addCCWContents(path);
429c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
430c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
431c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
4328dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine14() {
43359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
4348dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    addCCWContainer(path);
4358dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    addCCWContents(path);
4368dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
4378dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
4388dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
439c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine14x() {
440c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
441c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
442c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addCCWContainer(path);
443c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    addCCWContents(path);
444c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
445c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
446c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
4478dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine15() {
44859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
4497fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
4508dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
4518dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
4528dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
453c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine15x() {
454c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
455c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
4567fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
457c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
458c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
459c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
4608dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine16() {
46159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
4627fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
4637fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 4, 9, 9, SkPath::kCW_Direction);
4648dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
4658dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
4668dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
467c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine16x() {
468c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
469c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
4707fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
4717fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 4, 9, 9, SkPath::kCW_Direction);
472c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
473c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
474c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
4758dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine17() {
47659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
4777fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
4787fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
4798dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
4808dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
4818dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
482c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine17x() {
483c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
484c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
4857fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
4867fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
487c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
488c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
489c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
4908dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine18() {
49159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
4927fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
4937fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 4, 21, 21, SkPath::kCW_Direction);
4948dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
4958dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
4968dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
497c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine18x() {
498c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
499c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
5007fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
5017fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 4, 21, 21, SkPath::kCW_Direction);
502c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
503c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
504c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
5058dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine19() {
50659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
5077fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
5087fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 16, 21, 21, SkPath::kCW_Direction);
5098dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
5108dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
5118dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
512c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine19x() {
513c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
514c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
5157fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
5167fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 16, 21, 21, SkPath::kCW_Direction);
517c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
518c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
519c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
5208dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine20() {
52159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
5227fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
5237fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 9, 9, SkPath::kCW_Direction);
5248dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
5258dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
5268dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
527c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine20x() {
528c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
529c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
5307fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
5317fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 9, 9, SkPath::kCW_Direction);
532c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
533c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
534c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
5358dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine21() {
53659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
5377fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
5387fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 16, 9, 9, SkPath::kCW_Direction);
5398dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
5408dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
5418dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
542c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine21x() {
543c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
544c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
5457fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
5467fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 16, 9, 9, SkPath::kCW_Direction);
547c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
548c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
549c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
5508dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine22() {
55159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
5527fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
5537fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
5548dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
5558dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
5568dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
557c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine22x() {
558c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
559c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
5607fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
5617fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
562c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
563c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
564c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
5658dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine23() {
56659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
5677fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
5687fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCW_Direction);
5698dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
5708dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
5718dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
572c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine23x() {
573c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
574c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
5757fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
5767fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCW_Direction);
577c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
578c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
5798dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
5808dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine24a() {
58159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
5828dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.moveTo(2,0);
5838dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(4,4);
5848dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(0,4);
5858dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.close();
5868dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.moveTo(2,0);
5878dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(1,2);
5888dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.lineTo(2,2);
5898dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    path.close();
5908dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
5918dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
5928dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
593c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine24ax() {
59459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
595c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
596c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(2,0);
597c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4,4);
598c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0,4);
599c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
600c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(2,0);
601c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1,2);
602c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2,2);
603c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
604c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
605c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
606c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
607c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine24() {
608c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
6097fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 18, 12, 12, SkPath::kCW_Direction);
6107fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
611c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
612c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
613c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
614c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine24x() {
615c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
616c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
6177fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 18, 12, 12, SkPath::kCW_Direction);
6187fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
619c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
620c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
621c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
622c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine25() {
623c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
6247fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
6257fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCW_Direction);
626c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
627c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
628c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
629c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine25x() {
630c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
631c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
6327fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
6337fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCW_Direction);
6348dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
6358dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
6368dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
6378dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine26() {
63859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
6397fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 18, 12, 12, SkPath::kCW_Direction);
6407fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 9, 9, SkPath::kCW_Direction);
6418dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
6428dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
6438dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
644c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine26x() {
645c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
646c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
6477fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 18, 12, 12, SkPath::kCW_Direction);
6487fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 9, 9, SkPath::kCW_Direction);
649c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
650c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
651c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
6528dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic void testLine27() {
65359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
6547fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 18, 12, 12, SkPath::kCW_Direction);
6557fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 8, 21, 21, SkPath::kCW_Direction);
6568dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    testSimplifyx(path);
6578dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com}
6588dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com
659c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine27x() {
660c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
661c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
6627fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 18, 12, 12, SkPath::kCW_Direction);
6637fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 8, 21, 21, SkPath::kCW_Direction);
664c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
665c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
666c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
667fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.comstatic void testLine28() {
66859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
6697fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
6707fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
671fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    testSimplifyx(path);
672fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com}
673fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com
674c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine28x() {
675c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
676c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
6777fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
6787fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
679c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
680c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
681c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
682fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.comstatic void testLine29() {
68359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
6847fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 18, 12, 12, SkPath::kCW_Direction);
6857fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 12, 21, 21, SkPath::kCW_Direction);
686fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    testSimplifyx(path);
687fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com}
688fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com
689c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine29x() {
690c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
691c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
6927fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 18, 12, 12, SkPath::kCW_Direction);
6937fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 12, 21, 21, SkPath::kCW_Direction);
694c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
695c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
696c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
697fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.comstatic void testLine30() {
69859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
6997fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7007fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
7017fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 4, 13, 13, SkPath::kCW_Direction);
702fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    testSimplifyx(path);
703fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com}
704fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com
705c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine30x() {
706c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
707c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
7087fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7097fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
7107fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 4, 13, 13, SkPath::kCW_Direction);
711c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
712c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
713c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
714fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.comstatic void testLine31() {
71559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
7167fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7177fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
7187fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 4, 9, 9, SkPath::kCW_Direction);
719fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    testSimplifyx(path);
720fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com}
721fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com
722c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine31x() {
723c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
724c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
7257fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7267fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
7277fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 4, 9, 9, SkPath::kCW_Direction);
728c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
729c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
730c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
731fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.comstatic void testLine32() {
73259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
7337fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7347fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
7357fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
736fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com    testSimplifyx(path);
737fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com}
738fa4a6e964691ff9a88bc047418abe2d4324dfcaecaryclark@google.com
739c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine32x() {
740c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
741c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
7427fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7437fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
7447fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
745c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
746c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
747c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
748210acafc5207765e12474064aa01640d5af92770caryclark@google.comstatic void testLine33() {
74959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
7507fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7517fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
7527fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
753210acafc5207765e12474064aa01640d5af92770caryclark@google.com    testSimplifyx(path);
754210acafc5207765e12474064aa01640d5af92770caryclark@google.com}
755210acafc5207765e12474064aa01640d5af92770caryclark@google.com
756c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine33x() {
757c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
758c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
7597fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7607fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
7617fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
762c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
763c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
764c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
765210acafc5207765e12474064aa01640d5af92770caryclark@google.comstatic void testLine34() {
76659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
7677fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7687fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
7697fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
770210acafc5207765e12474064aa01640d5af92770caryclark@google.com    testSimplifyx(path);
771210acafc5207765e12474064aa01640d5af92770caryclark@google.com}
772210acafc5207765e12474064aa01640d5af92770caryclark@google.com
773c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine34x() {
774c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
775c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
7767fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7777fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
7787fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
779c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
780c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
781c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
782210acafc5207765e12474064aa01640d5af92770caryclark@google.comstatic void testLine35() {
78359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
7847fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7857fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 0, 18, 18, SkPath::kCW_Direction);
7867fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
787210acafc5207765e12474064aa01640d5af92770caryclark@google.com    testSimplifyx(path);
788210acafc5207765e12474064aa01640d5af92770caryclark@google.com}
789210acafc5207765e12474064aa01640d5af92770caryclark@google.com
790c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine35x() {
791c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
792c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
7937fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
7947fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 0, 18, 18, SkPath::kCW_Direction);
7957fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
796c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
797c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
798c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
7990e08a19367a496dec82911acbc37f879f64958facaryclark@google.comstatic void testLine36() {
80059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
8017fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 10, 20, 20, SkPath::kCW_Direction);
8027fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 12, 18, 18, SkPath::kCW_Direction);
8037fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
8040e08a19367a496dec82911acbc37f879f64958facaryclark@google.com    testSimplifyx(path);
8050e08a19367a496dec82911acbc37f879f64958facaryclark@google.com}
8060e08a19367a496dec82911acbc37f879f64958facaryclark@google.com
807c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine36x() {
808c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
809c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
8107fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 10, 20, 20, SkPath::kCW_Direction);
8117fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 12, 18, 18, SkPath::kCW_Direction);
8127fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
813c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
814c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
815c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
81647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine37() {
81759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
8187fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
8197fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 24, 30, 30, SkPath::kCW_Direction);
8207fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
82147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
82247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
82347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
824c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine37x() {
825c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
826c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
8277fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
8287fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 24, 30, 30, SkPath::kCW_Direction);
8297fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
830c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
831c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
832c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
83347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine38() {
83459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
8357fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
8367fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 12, 18, 18, SkPath::kCW_Direction);
8377fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 12, 21, 21, SkPath::kCW_Direction);
83847580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
83947580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
84047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
841c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine38x() {
842c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
843c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
8447fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
8457fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 12, 18, 18, SkPath::kCW_Direction);
8467fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 12, 21, 21, SkPath::kCW_Direction);
847c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
848c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
849c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
85047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine40() {
85159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
8527fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
8537fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 18, 24, 24, SkPath::kCW_Direction);
8547fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
85547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
85647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
85747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
858c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine40x() {
859c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
860c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
8617fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
8627fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 18, 24, 24, SkPath::kCW_Direction);
8637fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
864c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
865c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
866c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
86747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine41() {
86859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
8697fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
8707fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 24, 30, 30, SkPath::kCW_Direction);
8717fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCW_Direction);
87247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
87347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
87447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
875c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine41x() {
876c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
877c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
8787fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
8797fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 24, 30, 30, SkPath::kCW_Direction);
8807fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCW_Direction);
881c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
882c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
883c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
88447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine42() {
88559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
8867fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
8877fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
8887fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(8, 16, 17, 17, SkPath::kCW_Direction);
88947580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
89047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
89147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
892c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine42x() {
893c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
894c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
8957fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
8967fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
8977fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(8, 16, 17, 17, SkPath::kCW_Direction);
898c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
899c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
900c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
90147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine43() {
90259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
9037fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
9047fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 24, 18, 18, SkPath::kCW_Direction);
9057fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
90647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
90747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
90847580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
909c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine43x() {
910c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
911c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
9127fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
9137fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 24, 18, 18, SkPath::kCW_Direction);
9147fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
915c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
916c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
917c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
91847580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine44() {
91959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
9207fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
9217fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 0, 30, 30, SkPath::kCW_Direction);
9227fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 32, 27, 36, SkPath::kCCW_Direction);
92347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
92447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
92547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
926c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine44x() {
927c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
928c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
9297fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
9307fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 0, 30, 30, SkPath::kCW_Direction);
9317fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 32, 27, 36, SkPath::kCCW_Direction);
932c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
933c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
934c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
93547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine45() {
93659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
9377fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
9387fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 0, 30, 30, SkPath::kCW_Direction);
9397fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 32, 33, 36, SkPath::kCW_Direction);
94047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
94147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
94247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
943c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine45x() {
944c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
945c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
9467fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
9477fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 0, 30, 30, SkPath::kCW_Direction);
9487fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 32, 33, 36, SkPath::kCW_Direction);
949c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
950c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
951c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
95247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine46() {
95359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
9547fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
9557fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 0, 36, 36, SkPath::kCW_Direction);
9567fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 32, 33, 36, SkPath::kCW_Direction);
95747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
95847580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
95947580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
960c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine46x() {
961c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
962c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
9637fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
9647fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 0, 36, 36, SkPath::kCW_Direction);
9657fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 32, 33, 36, SkPath::kCW_Direction);
966c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
967c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
968c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
96947580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine47() {
97059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
9717fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
9727fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
9737fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction);
97447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
97547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
97647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
977c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine47x() {
978c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
979c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
9807fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
9817fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
9827fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction);
983c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
984c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
985c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
98647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine48() {
98759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
9887fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
9897fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
9907fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction);
99147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
99247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
99347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
994c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine48x() {
995c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
996c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
9977fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
9987fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
9997fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction);
1000c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1001c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1002c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
100347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine49() {
100459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
10057fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
10067fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
10077fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
100847580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
100947580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
101047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
1011c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine49x() {
1012c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1013c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
10147fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
10157fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
10167fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
1017c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1018c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1019c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
102047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine50() {
102159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
10227fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 30, 30, 30, SkPath::kCW_Direction);
10237fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 20, 36, 30, SkPath::kCW_Direction);
102447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
102547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
102647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
1027c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine50x() {
1028c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1029c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
10307fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 30, 30, 30, SkPath::kCW_Direction);
10317fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 20, 36, 30, SkPath::kCW_Direction);
1032c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1033c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
103447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
103547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.comstatic void testLine51() {
103659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
10377fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
10387fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
10397fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
104047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    testSimplifyx(path);
104147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com}
104247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
1043c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine51x() {
1044c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1045c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
10467fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
10477fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
10487fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
1049c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1050c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1051c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1052e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.comstatic void testLine52() {
105359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
10547fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 30, 20, 20, SkPath::kCW_Direction);
10557fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 20, 18, 30, SkPath::kCW_Direction);
10567fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 0, 36, 41, SkPath::kCW_Direction);
1057e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com    testSimplifyx(path);
1058e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com}
1059e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com
1060c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine52x() {
1061c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1062c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
10637fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 30, 20, 20, SkPath::kCW_Direction);
10647fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 20, 18, 30, SkPath::kCW_Direction);
10657fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 0, 36, 41, SkPath::kCW_Direction);
1066c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1067c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1068c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1069e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.comstatic void testLine53() {
107059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
10717fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 30, 30, 30, SkPath::kCW_Direction);
10727fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 20, 24, 30, SkPath::kCW_Direction);
10737fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 32, 21, 36, SkPath::kCCW_Direction);
1074e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com    testSimplifyx(path);
1075e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com}
1076e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com
1077c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine53x() {
1078c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1079c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
10807fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 30, 30, 30, SkPath::kCW_Direction);
10817fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 20, 24, 30, SkPath::kCW_Direction);
10827fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 32, 21, 36, SkPath::kCCW_Direction);
1083c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1084c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1085c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1086e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.comstatic void testLine54() {
108759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
10887fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
10897fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 0, 18, 18, SkPath::kCW_Direction);
10907fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(8, 4, 17, 17, SkPath::kCCW_Direction);
1091e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com    testSimplifyx(path);
1092e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com}
1093e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com
1094c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine54x() {
1095c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1096c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
10977fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
10987fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 0, 18, 18, SkPath::kCW_Direction);
10997fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(8, 4, 17, 17, SkPath::kCCW_Direction);
1100c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1101c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1102c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1103e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.comstatic void testLine55() {
110459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
11057fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
11067fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 6, 18, 18, SkPath::kCW_Direction);
11077fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 4, 13, 13, SkPath::kCCW_Direction);
1108e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com    testSimplifyx(path);
1109e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com}
1110e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com
1111c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine55x() {
1112c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1113c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
11147fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
11157fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 6, 18, 18, SkPath::kCW_Direction);
11167fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 4, 13, 13, SkPath::kCCW_Direction);
1117c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1118c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1119c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1120c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine56() {
112159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
11227fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
11237fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 20, 30, 30, SkPath::kCW_Direction);
11247fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
112518063441c23b334ab2ee7075c39ceeb8378e6fcfcaryclark@google.com    testSimplifyx(path);
112618063441c23b334ab2ee7075c39ceeb8378e6fcfcaryclark@google.com}
112718063441c23b334ab2ee7075c39ceeb8378e6fcfcaryclark@google.com
1128c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine56x() {
1129c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1130c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
11317fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
11327fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 20, 30, 30, SkPath::kCW_Direction);
11337fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
1134c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1135c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1136c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
113718063441c23b334ab2ee7075c39ceeb8378e6fcfcaryclark@google.comstatic void testLine57() {
113859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
11397fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(20, 0, 40, 40, SkPath::kCW_Direction);
11407fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(20, 0, 30, 40, SkPath::kCW_Direction);
11417fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
114218063441c23b334ab2ee7075c39ceeb8378e6fcfcaryclark@google.com    testSimplifyx(path);
114318063441c23b334ab2ee7075c39ceeb8378e6fcfcaryclark@google.com}
114418063441c23b334ab2ee7075c39ceeb8378e6fcfcaryclark@google.com
1145c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine57x() {
1146c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1147c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
11487fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(20, 0, 40, 40, SkPath::kCW_Direction);
11497fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(20, 0, 30, 40, SkPath::kCW_Direction);
11507fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
1151c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1152c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1153c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1154cc90505674cd845fcbebd7e0654c3ff04a2e4f25caryclark@google.comstatic void testLine58() {
115559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
11567fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
11577fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCCW_Direction);
11587fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 9, 9, SkPath::kCCW_Direction);
1159cc90505674cd845fcbebd7e0654c3ff04a2e4f25caryclark@google.com    testSimplifyx(path);
1160cc90505674cd845fcbebd7e0654c3ff04a2e4f25caryclark@google.com}
1161cc90505674cd845fcbebd7e0654c3ff04a2e4f25caryclark@google.com
1162c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine58x() {
1163c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1164c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
11657fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
11667fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCCW_Direction);
11677fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 9, 9, SkPath::kCCW_Direction);
1168c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1169c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1170c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1171cc90505674cd845fcbebd7e0654c3ff04a2e4f25caryclark@google.comstatic void testLine59() {
117259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
11737fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
11747fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 6, 18, 18, SkPath::kCCW_Direction);
11757fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 4, 13, 13, SkPath::kCCW_Direction);
1176cc90505674cd845fcbebd7e0654c3ff04a2e4f25caryclark@google.com    testSimplifyx(path);
1177cc90505674cd845fcbebd7e0654c3ff04a2e4f25caryclark@google.com}
1178cc90505674cd845fcbebd7e0654c3ff04a2e4f25caryclark@google.com
1179c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine59x() {
1180c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1181c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
11827fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
11837fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 6, 18, 18, SkPath::kCCW_Direction);
11847fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 4, 13, 13, SkPath::kCCW_Direction);
1185c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1186c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1187c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
118827c449af06cd1d05db441593d08b84f3530fba52caryclark@google.comstatic void testLine60() {
118959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
11907fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
11917fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 12, 18, 18, SkPath::kCCW_Direction);
11927fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
119327c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    testSimplifyx(path);
119427c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com}
119527c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com
1196c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine60x() {
1197c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1198c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
11997fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
12007fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 12, 18, 18, SkPath::kCCW_Direction);
12017fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
1202c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1203c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1204c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
120527c449af06cd1d05db441593d08b84f3530fba52caryclark@google.comstatic void testLine61() {
120659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
12077fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
12087fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 24, 24, SkPath::kCCW_Direction);
12097fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
121027c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    testSimplifyx(path);
121127c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com}
121227c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com
1213c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine61x() {
1214c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1215c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
12167fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
12177fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 24, 24, SkPath::kCCW_Direction);
12187fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
1219c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1220c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1221c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
122227c449af06cd1d05db441593d08b84f3530fba52caryclark@google.comstatic void testLine62() {
122359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
12247fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
12257fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
12267fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
12277fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
122827c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    testSimplifyx(path);
122927c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com}
123027c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com
1231c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine62x() {
1232c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1233c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
12347fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
12357fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
12367fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
12377fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
1238c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1239c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1240c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
124127c449af06cd1d05db441593d08b84f3530fba52caryclark@google.comstatic void testLine63() {
124259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
12437fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
12447fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 10, 20, 20, SkPath::kCW_Direction);
12457fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 6, 12, 12, SkPath::kCCW_Direction);
12467fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
124727c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    testSimplifyx(path);
124827c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com}
124927c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com
1250c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine63x() {
1251c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1252c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
12537fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
12547fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 10, 20, 20, SkPath::kCW_Direction);
12557fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 6, 12, 12, SkPath::kCCW_Direction);
12567fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
1257c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1258c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1259c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
126027c449af06cd1d05db441593d08b84f3530fba52caryclark@google.comstatic void testLine64() {
126159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
12627fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
12637fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
12647fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 6, 30, 30, SkPath::kCW_Direction);
126527c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    testSimplifyx(path);
126627c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com}
126727c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com
1268c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine64x() {
1269c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1270c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
12717fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
12727fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
12737fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 6, 30, 30, SkPath::kCW_Direction);
1274c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1275c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1276c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
127727c449af06cd1d05db441593d08b84f3530fba52caryclark@google.comstatic void testLine65() {
127859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
12797fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
12807fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
12817fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 0, 36, 36, SkPath::kCW_Direction);
12827fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 6, 36, 41, SkPath::kCCW_Direction);
128327c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    testSimplifyx(path);
128427c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com}
128527c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com
1286c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine65x() {
1287c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1288c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
12897fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
12907fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
12917fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 0, 36, 36, SkPath::kCW_Direction);
12927fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 6, 36, 41, SkPath::kCCW_Direction);
1293c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1294c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1295c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
129627c449af06cd1d05db441593d08b84f3530fba52caryclark@google.comstatic void testLine66() {
129759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
12987fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
12997fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 30, 20, 20, SkPath::kCW_Direction);
13007fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 20, 24, 30, SkPath::kCW_Direction);
130127c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    testSimplifyx(path);
130227c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com}
130327c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com
1304c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine66x() {
1305c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1306c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
13077fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
13087fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 30, 20, 20, SkPath::kCW_Direction);
13097fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 20, 24, 30, SkPath::kCW_Direction);
1310c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1311c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1312c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1313534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine67() {
131459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
13157fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
13167fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
13177fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 20, 36, 30, SkPath::kCW_Direction);
13187fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 0, 36, 41, SkPath::kCW_Direction);
1319534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1320534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1321534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1322c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine67x() {
1323c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1324c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
13257fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
13267fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
13277fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 20, 36, 30, SkPath::kCW_Direction);
13287fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 0, 36, 41, SkPath::kCW_Direction);
1329c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1330c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1331c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1332534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine68a() {
133359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
13347fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
13357fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCW_Direction);
13367fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 4, 2, SkPath::kCW_Direction);
1337534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1338534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1339534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1340c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine68ax() {
1341c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1342c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
13437fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
13447fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCW_Direction);
13457fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 4, 2, SkPath::kCW_Direction);
1346c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1347c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1348c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1349534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine68b() {
135059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
13517fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
13527fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
13537fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
1354534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1355534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1356534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1357c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine68bx() {
1358c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1359c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
13607fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
13617fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
13627fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
1363c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1364c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1365c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1366534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine68c() {
136759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
13687fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCCW_Direction);
13697fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCW_Direction);
13707fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 4, 2, SkPath::kCW_Direction);
1371534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1372534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1373534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1374c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine68cx() {
1375c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1376c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
13777fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCCW_Direction);
13787fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCW_Direction);
13797fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 4, 2, SkPath::kCW_Direction);
1380c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1381c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1382c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1383534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine68d() {
138459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
13857fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCCW_Direction);
13867fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
13877fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 4, 2, SkPath::kCW_Direction);
1388534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1389534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1390534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1391c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine68dx() {
1392c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1393c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
13947fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCCW_Direction);
13957fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
13967fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 4, 2, SkPath::kCW_Direction);
1397c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1398c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1399c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1400534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine68e() {
140159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
14027fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14037fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14047fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14057fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
1406534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1407534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1408534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1409c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine68ex() {
1410c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1411c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
14127fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14137fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14147fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14157fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
1416c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1417c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1418c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1419534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine68f() {
142059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
14217fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14227fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14237fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14247fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
1425534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1426534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1427534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1428c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine68fx() {
1429c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1430c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
14317fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14327fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14337fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14347fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
1435c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1436c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1437c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1438534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine68g() {
143959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
14407fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14417fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14427fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14437fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14447fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
1445534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1446534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1447534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1448c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine68gx() {
1449c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1450c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
14517fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14527fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14537fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14547fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14557fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
1456c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1457c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1458c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1459534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine68h() {
146059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
14617fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14627fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14637fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14647fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14657fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
1466534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1467534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1468534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1469c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine68hx() {
1470c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1471c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
14727fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
14737fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14747fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14757fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
14767fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
1477c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1478c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1479c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1480534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine69() {
148159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
14827fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
14837fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 12, 30, SkPath::kCW_Direction);
14847fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 32, 21, 36, SkPath::kCW_Direction);
1485534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1486534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1487534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1488c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine69x() {
1489c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1490c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
14917fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
14927fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 12, 30, SkPath::kCW_Direction);
14937fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 32, 21, 36, SkPath::kCW_Direction);
1494c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1495c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1496c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1497534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine70() {
149859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
14997fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
15007fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 24, 12, 12, SkPath::kCW_Direction);
15017fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 32, 21, 36, SkPath::kCCW_Direction);
1502534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1503534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1504534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1505c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine70x() {
1506c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1507c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
15087fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
15097fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 24, 12, 12, SkPath::kCW_Direction);
15107fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 32, 21, 36, SkPath::kCCW_Direction);
1511c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1512c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1513c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1514534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic void testLine71() {
151559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
15167fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
15177fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 24, 24, SkPath::kCW_Direction);
15187fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 32, 21, 36, SkPath::kCW_Direction);
1519534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    testSimplifyx(path);
1520534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com}
1521534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
1522c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine71x() {
1523c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1524c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
15257fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
15267fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 24, 24, SkPath::kCW_Direction);
15277fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 32, 21, 36, SkPath::kCW_Direction);
1528c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1529c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1530c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1531200c211d34b11a4a988fc2549df3c17ae6875899caryclark@google.comstatic void testLine72() {
153259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
15337fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
15347fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
15357fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 20, 18, 30, SkPath::kCW_Direction);
1536200c211d34b11a4a988fc2549df3c17ae6875899caryclark@google.com    testSimplifyx(path);
1537200c211d34b11a4a988fc2549df3c17ae6875899caryclark@google.com}
1538200c211d34b11a4a988fc2549df3c17ae6875899caryclark@google.com
1539c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine72x() {
1540c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1541c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
15427fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
15437fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
15447fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(6, 20, 18, 30, SkPath::kCW_Direction);
1545c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1546c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1547c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1548200c211d34b11a4a988fc2549df3c17ae6875899caryclark@google.comstatic void testLine73() {
154959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
15507fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
15517fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 40, 20, 20, SkPath::kCW_Direction);
15527fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 12, 30, SkPath::kCW_Direction);
15537fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction);
1554200c211d34b11a4a988fc2549df3c17ae6875899caryclark@google.com    testSimplifyx(path);
1555200c211d34b11a4a988fc2549df3c17ae6875899caryclark@google.com}
1556200c211d34b11a4a988fc2549df3c17ae6875899caryclark@google.com
1557c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine73x() {
1558c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1559c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
15607fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
15617fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 40, 20, 20, SkPath::kCW_Direction);
15627fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 12, 30, SkPath::kCW_Direction);
15637fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction);
1564c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1565c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1566c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
15670c803d048c826fadfeed51207488867e17e0cc10caryclark@google.comstatic void testLine74() {
156859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
15697fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(20, 30, 40, 40, SkPath::kCW_Direction);
15707fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction);
15717fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 24, 36, 41, SkPath::kCCW_Direction);
15720c803d048c826fadfeed51207488867e17e0cc10caryclark@google.com    testSimplifyx(path);
15730c803d048c826fadfeed51207488867e17e0cc10caryclark@google.com}
15740c803d048c826fadfeed51207488867e17e0cc10caryclark@google.com
1575c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine74x() {
1576c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1577c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
15787fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(20, 30, 40, 40, SkPath::kCW_Direction);
15797fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction);
15807fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 24, 36, 41, SkPath::kCCW_Direction);
1581c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1582c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1583c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
15842ddff9388694263c7be9347de7eb768cd0847997caryclark@google.comstatic void testLine75() {
158559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
15867fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
15877fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 0, 30, 30, SkPath::kCCW_Direction);
15887fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 0, 30, 30, SkPath::kCCW_Direction);
15897fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
15902ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com    testSimplifyx(path);
15912ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com}
15922ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com
1593c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine75x() {
1594c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1595c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
15967fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
15977fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 0, 30, 30, SkPath::kCCW_Direction);
15987fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 0, 30, 30, SkPath::kCCW_Direction);
15997fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
1600c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1601c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1602c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
16032ddff9388694263c7be9347de7eb768cd0847997caryclark@google.comstatic void testLine76() {
160459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
16057fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(36, 0, 66, 60, SkPath::kCW_Direction);
16067fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 20, 40, 30, SkPath::kCW_Direction);
16077fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction);
16087fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 6, 36, 41, SkPath::kCCW_Direction);
16092ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com    testSimplifyx(path);
16102ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com}
16112ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com
1612c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine76x() {
1613c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1614c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
16157fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(36, 0, 66, 60, SkPath::kCW_Direction);
16167fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 20, 40, 30, SkPath::kCW_Direction);
16177fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction);
16187fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 6, 36, 41, SkPath::kCCW_Direction);
1619c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1620c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1621c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
16222ddff9388694263c7be9347de7eb768cd0847997caryclark@google.comstatic void testLine77() {
162359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
16247fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(20, 0, 40, 40, SkPath::kCW_Direction);
16257fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 6, 36, 36, SkPath::kCCW_Direction);
16267fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 32, 33, 36, SkPath::kCCW_Direction);
16272ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com    testSimplifyx(path);
16282ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com}
16292ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com
1630c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine77x() {
1631c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1632c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
16337fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(20, 0, 40, 40, SkPath::kCW_Direction);
16347fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 6, 36, 36, SkPath::kCCW_Direction);
16357fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 32, 33, 36, SkPath::kCCW_Direction);
1636c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1637c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1638c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
16392ddff9388694263c7be9347de7eb768cd0847997caryclark@google.comstatic void testLine78() {
164059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
16417fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 30, 60, SkPath::kCW_Direction);
16427fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 20, 30, 30, SkPath::kCCW_Direction);
16437fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 20, 30, 30, SkPath::kCCW_Direction);
16447fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 0, 36, 41, SkPath::kCCW_Direction);
16452ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com    testSimplifyx(path);
16462ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com}
16472ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com
1648c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine78x() {
1649c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1650c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
16517fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 30, 60, SkPath::kCW_Direction);
16527fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 20, 30, 30, SkPath::kCCW_Direction);
16537fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 20, 30, 30, SkPath::kCCW_Direction);
16547fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(32, 0, 36, 41, SkPath::kCCW_Direction);
1655c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1656c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1657c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
16582ddff9388694263c7be9347de7eb768cd0847997caryclark@google.comstatic void testLine79() {
165959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
16607fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 36, 60, 30, SkPath::kCW_Direction);
16617fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 30, 40, 30, SkPath::kCW_Direction);
16627fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 12, 30, SkPath::kCCW_Direction);
16637fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
16642ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com    testSimplifyx(path);
16652ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com}
16662ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com
1667c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine79x() {
1668c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1669c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
16707fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 36, 60, 30, SkPath::kCW_Direction);
16717fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 30, 40, 30, SkPath::kCW_Direction);
16727fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 12, 30, SkPath::kCCW_Direction);
16737fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
16747fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    testSimplifyx(path);
16757fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com}
16767fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com
16777fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.comstatic void testLine81() {
16787fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    SkPath path;
16797fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(-1, -1, 3, 3, SkPath::kCW_Direction);
16807fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
16817fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
16827fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
16837fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(1, 1, 2, 2, SkPath::kCCW_Direction);
1684c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1685c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1686c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
168759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.comstatic void testDegenerate1() {
168859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
168959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
169059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 0);
169159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(2, 0);
169259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
169359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
169459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 0);
169559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(2, 0);
169659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
169759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    testSimplifyx(path);
169859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com}
169959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com
1700c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testDegenerate1x() {
1701c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1702c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1703c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1704c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
1705c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 0);
1706c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1707c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1708c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
1709c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 0);
1710c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1711c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1712c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1713c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
171459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.comstatic void testDegenerate2() {
171559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
171659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
171759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 0);
171859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 0);
171959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
172059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
172159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 0);
172259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 1);
172359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
172459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    testSimplifyx(path);
172559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com}
172659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com
1727c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testDegenerate2x() {
1728c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1729c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1730c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1731c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
1732c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
1733c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1734c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1735c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
1736c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 1);
1737c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1738c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1739c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1740c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
174159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.comstatic void testDegenerate3() {
174259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
174359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
174459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(2, 0);
174559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 0);
174659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
174759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
174859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 0);
174959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(3, 0);
175059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
175159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    testSimplifyx(path);
175259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com}
175359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com
1754c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testDegenerate3x() {
1755c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1756c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1757c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1758c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 0);
1759c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
1760c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1761c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1762c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
1763c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 0);
1764c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1765c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1766c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1767c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
176859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.comstatic void testDegenerate4() {
176959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
177059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
177159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 0);
177259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 3);
177359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
177459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(1, 0);
177559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 1);
177659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 2);
177759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
177859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    testSimplifyx(path);
177959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com}
178059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com
1781c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testDegenerate4x() {
1782c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1783c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1784c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1785c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
1786c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 3);
1787c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1788c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1, 0);
1789c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 1);
1790c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 2);
1791c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1792c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1793c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1794c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
179559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.comstatic void testNondegenerate1() {
179659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
179759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
179859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(3, 0);
179959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 3);
180059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
180159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(1, 1);
180259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(2, 1);
180359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 2);
180459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
180559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    testSimplifyx(path);
180659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com}
180759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com
1808c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testNondegenerate1x() {
1809c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1810c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1811c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1812c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 0);
1813c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 3);
1814c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1815c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1, 1);
1816c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 1);
1817c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 2);
1818c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1819c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1820c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1821c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
182259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.comstatic void testNondegenerate2() {
182359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
182459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(1, 0);
182559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 1);
182659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 1);
182759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
182859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 2);
182959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 3);
183059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 2);
183159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
183259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    testSimplifyx(path);
183359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com}
183459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com
1835c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testNondegenerate2x() {
1836c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1837c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1838c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1, 0);
1839c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 1);
1840c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 1);
1841c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1842c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 2);
1843c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 3);
1844c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 2);
1845c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1846c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1847c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1848c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
184959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.comstatic void testNondegenerate3() {
185059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
185159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
185259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 0);
185359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(2, 1);
185459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
185559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 1);
185659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 1);
185759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 2);
185859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
185959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    testSimplifyx(path);
186059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com}
186159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com
1862c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testNondegenerate3x() {
1863c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1864c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1865c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1866c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
1867c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 1);
1868c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1869c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 1);
1870c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 1);
1871c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 2);
1872c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1873c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1874c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1875c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
187659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.comstatic void testNondegenerate4() {
187759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
187859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(1, 0);
187959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 1);
188059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 2);
188159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
188259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 2);
188359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 3);
188459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 3);
188559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
188659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    testSimplifyx(path);
188759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com}
188859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com
1889c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testNondegenerate4x() {
1890c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1891c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1892c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1, 0);
1893c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 1);
1894c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 2);
1895c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1896c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 2);
1897c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 3);
1898c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 3);
1899c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1900c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1901c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1902c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
190359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.comstatic void testQuadralateral5() {
190459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
190559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
190659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(0, 0);
190759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 0);
190859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(1, 1);
190959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
191059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
191159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(2, 2);
191259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(3, 2);
191359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.lineTo(3, 3);
191459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
191559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    testSimplifyx(path);
191659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com}
191759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com
1918c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadralateral5x() {
1919c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1920c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1921c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1922c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
1923c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
1924c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 1);
1925c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1926c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1927c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 2);
1928c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 2);
1929c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 3);
1930c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1931c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1932c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1933c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1934c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadralateral6() {
1935c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1936c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1937c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
1938c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
1939c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 1);
1940c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1941c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1, 0);
1942c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 0);
1943c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 2);
1944c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 2);
1945c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1946c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1947c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1948c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1949c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadralateral6x() {
1950c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1951c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1952c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1953c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
1954c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
1955c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 1);
1956c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1957c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1, 0);
1958c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 0);
1959c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 2);
1960c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 2);
1961c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1962c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1963c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1964c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1965c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testFauxQuadralateral6() {
1966c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1967c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1968c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
1969c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 1);
1970c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1971c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1, 0);
1972c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 0);
1973c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1 + 1.0f/3, 2.0f/3);
1974c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1975c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1 + 1.0f/3, 2.0f/3);
1976c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 2);
1977c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 2);
1978c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1979c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1980c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1981c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
1982c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testFauxQuadralateral6x() {
1983c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
1984c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
1985c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
1986c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
1987c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 1);
1988c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1989c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1, 0);
1990c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 0);
1991c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1 + 1.0f/3, 2.0f/3);
1992c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1993c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1 + 1.0f/3, 2.0f/3);
1994c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 2);
1995c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 2);
1996c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
1997c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
1998c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
1999c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2000c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testFauxQuadralateral6a() {
2001c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2002c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2003c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 0);
2004c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 3);
2005c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2006c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(3, 0);
2007c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 0);
2008c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4, 2);
2009c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2010c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(4, 2);
2011c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 6);
2012c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 6);
2013c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2014c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2015c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2016c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2017c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testFauxQuadralateral6ax() {
2018c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2019c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2020c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2021c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 0);
2022c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 3);
2023c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2024c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(3, 0);
2025c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 0);
2026c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4, 2);
2027c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2028c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(4, 2);
2029c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 6);
2030c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 6);
2031c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2032c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2033c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2034c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2035c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testFauxQuadralateral6b() {
203659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    SkPath path;
203759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.moveTo(0, 0);
2038c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 0);
2039c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 3);
204059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
2041c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(3, 0);
2042c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 0);
2043c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4, 2);
2044c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2045c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(4, 2);
2046c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 6);
2047c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 6);
204859823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    path.close();
204959823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    testSimplifyx(path);
205059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com}
205159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com
2052c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testFauxQuadralateral6bx() {
205324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
2054c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
205524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
2056c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 0);
2057c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 3);
205824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
2059c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(3, 0);
2060c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 0);
2061c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(4, 2);
206224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
2063c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(4, 2);
2064c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 6);
2065c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 6);
206624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
206724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
206824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
206924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2070c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testFauxQuadralateral6c() {
207124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
207224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
207324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 3);
2074c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 0);
207524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
207624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(3, 0);
207724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(6, 0);
207824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(4, 2);
207924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
208024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(4, 2);
208124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(0, 6);
208224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(6, 6);
208324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
208424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
208524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
208624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2087c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testFauxQuadralateral6cx() {
208824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
2089c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
209024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
209124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 3);
2092c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 0);
209324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
209424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(3, 0);
209524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(6, 0);
209624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(4, 2);
209724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
209824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(4, 2);
209924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(0, 6);
2100c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 6);
210124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
210224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
210324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
210424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2105c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testFauxQuadralateral6d() {
210624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
210724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
210824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 3);
210924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 0);
211024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
211124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(3, 0);
211224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(6, 0);
211324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(4, 2);
211424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
211524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(4, 2);
211624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(6, 6);
2117c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 6);
211824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
211924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
212024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
212124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2122c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testFauxQuadralateral6dx() {
212324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
2124c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
212524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
212624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 3);
212724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 0);
212824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
212924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(3, 0);
213024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(6, 0);
213124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(4, 2);
213224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
213324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(4, 2);
213424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(6, 6);
213524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(0, 6);
213624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
213724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
213824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
213924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
214024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.comstatic void testQuadralateral6a() {
214124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
214224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
214324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(0, 0);
214424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 0);
214524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 3);
214624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
214724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(3, 0);
214824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(6, 0);
214924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(0, 6);
215024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(6, 6);
215124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
215224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
215324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
215424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2155c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadralateral6ax() {
2156c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2157c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2158c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2159c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
2160c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 0);
2161c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 3);
2162c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2163c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(3, 0);
2164c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 0);
2165c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 6);
2166c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(6, 6);
2167c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2168c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2169c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2170c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
217124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.comstatic void testQuadralateral7() {
217224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
217324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
217424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(0, 0);
217524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(1, 0);
217624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(2, 1);
217724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
217824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(1, 0);
217924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(1, 1);
218024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(2, 2);
218124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(1, 3);
218224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
218324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
218424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
218524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2186c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadralateral7x() {
2187c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2188c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2189c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2190c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
2191c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
2192c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 1);
2193c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2194c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1, 0);
2195c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 1);
2196c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 2);
2197c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 3);
2198c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2199c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2200c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2201c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
220224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.comstatic void testQuadralateral8() {
220324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
220424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
220524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 1);
220624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(1, 3);
220724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 3);
220824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
220924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(2, 1);
221024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(0, 2);
221124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 2);
221224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(2, 3);
221324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
221424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
221524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
221624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2217c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadralateral8x() {
2218c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2219c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2220c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2221c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 1);
2222c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 3);
2223c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 3);
2224c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2225c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(2, 1);
2226c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 2);
2227c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 2);
2228c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 3);
2229c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2230c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2231c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2232c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
223324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.comstatic void testQuadralateral9() {
223424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
223524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
223624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(1, 0);
223724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(1, 2);
223824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(2, 2);
223924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
224024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(1, 1);
224124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(2, 1);
224224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(1, 3);
224324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(2, 3);
224424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
224524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
224624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
224724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2248c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadralateral9x() {
2249c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2250c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2251c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2252c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
2253c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 2);
2254c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 2);
2255c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2256c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(1, 1);
2257c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 1);
2258c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 3);
2259c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 3);
2260c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2261c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2262c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2263c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2264e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testLine1a() {
2265e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    SkPath path;
2266e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
2267e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
2268e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.addRect(4, 0, 13, 13, SkPath::kCCW_Direction);
2269e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
2270e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
2271e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
2272c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine1ax() {
227324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
227424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
22757fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
2276e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.addRect(4, 0, 13, 13, SkPath::kCCW_Direction);
227724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
227824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
227924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2280c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine2ax() {
228124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
228224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
22837fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
22847fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 20, 12, 30, SkPath::kCW_Direction);
22857fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
228624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
228724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
228824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2289c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine3aax() {
229024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
229124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
22927fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 30, 30, 30, SkPath::kCW_Direction);
22937fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(18, 20, 30, 30, SkPath::kCCW_Direction);
22947fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
229524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
229624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
229724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2298c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testLine4ax() {
229924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
230024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
23017fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(10, 30, 30, 30, SkPath::kCW_Direction);
23027fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction);
23037fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
230424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
230524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
230624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
230724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.comstatic void testQuadratic1() {
230824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
230924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
231024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.quadTo(0, 0, 0, 0);
231124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(1, 0);
231224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
231324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
231424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(0, 0);
231524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.quadTo(0, 0, 0, 0);
231624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
231724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
231824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
231924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2320c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic1x() {
2321c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2322c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2323c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2324c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 0, 0);
2325c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
2326c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2327c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2328c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
2329c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 0, 0);
2330c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2331c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2332c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2333c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
233424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.comstatic void testQuadratic2() {
233524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    SkPath path;
233624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
233724bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.quadTo(0, 0, 0, 0);
233824bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(3, 0);
233924bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
234024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.moveTo(0, 0);
234124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.lineTo(0, 0);
234224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.quadTo(1, 0, 0, 1);
234324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    path.close();
234424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    testSimplifyx(path);
234524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com}
234624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com
2347c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic2x() {
2348c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2349c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2350c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2351c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 0, 0);
2352c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 0);
2353c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2354c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2355c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
2356c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(1, 0, 0, 1);
2357c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2358c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2359c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2360c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
236103f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.comstatic void testQuadratic3() {
236203f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    SkPath path;
236303f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    path.moveTo(0, 0);
236403f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    path.quadTo(0, 0, 1, 0);
236503f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    path.lineTo(0, 2);
236603f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    path.close();
236703f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    path.moveTo(0, 0);
236803f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    path.lineTo(0, 0);
236903f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    path.quadTo(1, 0, 0, 1);
237003f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    path.close();
237103f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    testSimplifyx(path);
237203f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com}
237303f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com
2374c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic3x() {
2375c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2376c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2377c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2378c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 1, 0);
2379c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 2);
2380c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2381c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2382c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
2383c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(1, 0, 0, 1);
2384c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2385c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2386c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2387c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2388c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic4() {
2389c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2390c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2391c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 1, 0);
2392c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 2);
2393c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2394c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2395c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
2396c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(1, 0, 0, 2);
2397c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2398c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2399c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2400c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2401c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic4x() {
2402c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2403c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2404c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2405c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 1, 0);
2406c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 2);
2407c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2408c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2409c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
2410c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(1, 0, 0, 2);
2411c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2412c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2413c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2414c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2415c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic5() {
2416c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2417c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2418c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 0, 0);
2419c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 1);
2420c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2421c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2422c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
2423c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 1, 0, 2);
2424c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2425c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2426c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2427c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2428c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic6() {
2429c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2430c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2431c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 1, 0);
2432c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(2, 1);
2433c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2434c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2435c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
2436c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(2, 0, 0, 1);
2437c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2438c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2439c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2440c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2441c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic7() {
2442c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2443c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2444c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 1, 0);
2445c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 1);
2446c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2447c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2448c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 0);
2449c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(3, 0, 1, 2);
2450c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2451c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2452c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2453c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2454c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic8() {
2455c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2456c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2457c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 1, 0);
2458c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(0, 2);
2459c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2460c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2461c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
2462c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 1, 1, 2);
2463c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2464c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2465c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2466c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2467c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic9() {
2468c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2469c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2470c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 1, 0);
2471c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 1);
2472c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2473c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2474c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
2475c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(1, 2, 3, 2);
2476c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2477c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2478c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2479c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
2480c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.comstatic void testQuadratic14() {
2481c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    SkPath path;
2482c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2483c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(0, 0, 1, 0);
2484c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(3, 2);
2485c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2486c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.moveTo(0, 0);
2487c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.lineTo(1, 0);
2488c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.quadTo(3, 2, 3, 3);
2489c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    path.close();
2490c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    testSimplifyx(path);
2491c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com}
2492c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com
24933350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.comstatic void testQuadratic15() {
24943350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    SkPath path;
24953350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.moveTo(0, 0);
24963350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.quadTo(0, 0, 1, 0);
24973350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.lineTo(1, 3);
24983350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.close();
24993350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.moveTo(1, 0);
25003350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.lineTo(0, 1);
25013350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.quadTo(1, 1, 0, 3);
25023350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.close();
25033350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    testSimplifyx(path);
25043350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com}
25053350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com
25063350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.comstatic void testQuadratic17x() {
25073350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    SkPath path;
25083350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
25093350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.moveTo(0, 0);
25103350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.quadTo(0, 0, 3, 1);
25113350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.lineTo(0, 2);
25123350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.close();
25133350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.moveTo(0, 0);
25143350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.lineTo(1, 0);
25153350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.quadTo(3, 1, 0, 2);
25163350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.close();
25173350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    testSimplifyx(path);
25183350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com}
25193350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com
25203350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.comstatic void testQuadratic18() {
25213350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    SkPath path;
25223350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.moveTo(0, 0);
25233350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.quadTo(1, 0, 0, 1);
25243350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.lineTo(0, 1);
25253350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.close();
25263350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.moveTo(0, 0);
25273350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.lineTo(0, 0);
25283350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.quadTo(1, 0, 1, 1);
25293350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    path.close();
25303350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    testSimplifyx(path);
25313350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com}
25323350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com
2533a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.comstatic void testQuadratic19() {
2534a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    SkPath path;
2535a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    path.moveTo(0, 0);
2536a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    path.quadTo(1, 0, 0, 1);
2537a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    path.lineTo(0, 1);
2538a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    path.close();
2539a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    path.moveTo(0, 0);
2540a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    path.lineTo(0, 0);
2541a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    path.quadTo(2, 0, 0, 1);
2542a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    path.close();
2543a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    testSimplifyx(path);
2544a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com}
2545a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com
254632546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.comstatic void testQuadratic20() {
254732546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    SkPath path;
254832546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    path.moveTo(0, 0);
254932546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    path.quadTo(1, 0, 0, 1);
255032546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    path.lineTo(0, 1);
255132546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    path.close();
255232546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    path.moveTo(0, 0);
255332546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    path.lineTo(0, 0);
255432546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    path.quadTo(1, 0, 0, 1);
255532546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    path.close();
255632546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    testSimplifyx(path);
255732546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com}
255832546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com
2559235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.comstatic void testQuadratic21() {
2560235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    SkPath path;
2561235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2562235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 0, 0, 1);
2563235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 1);
2564235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2565235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2566235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 0);
2567235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 0, 0, 2);
2568235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2569235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    testSimplifyx(path);
2570235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com}
2571235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com
2572235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.comstatic void testQuadratic22() {
2573235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    SkPath path;
2574235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2575235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 0, 0, 1);
2576235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 1);
2577235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2578235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2579235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 0);
2580235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(0, 1, 2, 1);
2581235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2582235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    testSimplifyx(path);
2583235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com}
2584235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com
2585235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.comstatic void testQuadratic23() {
2586235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    SkPath path;
2587235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2588235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 0, 0, 1);
2589235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 1);
2590235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2591235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2592235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 0);
2593235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(0, 2, 1, 2);
2594235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2595235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    testSimplifyx(path);
2596235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com}
2597235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com
2598235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.comstatic void testQuadratic24() {
2599235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    SkPath path;
2600235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2601235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 0, 0, 1);
2602235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 1);
2603235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2604235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2605235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(1, 0);
2606235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(2, 0, 0, 1);
2607235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2608235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    testSimplifyx(path);
2609235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com}
2610235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com
2611235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.comstatic void testQuadratic25() {
2612235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    SkPath path;
2613235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2614235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 0, 1, 1);
2615235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(1, 1);
2616235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2617235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2618235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 0);
2619235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(2, 1, 0, 2);
2620235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2621235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    testSimplifyx(path);
2622235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com}
2623235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com
2624235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.comstatic void testQuadratic26() {
2625235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    SkPath path;
2626235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2627235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 0, 1, 1);
2628235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 2);
2629235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2630235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2631235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 0);
2632235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 0, 0, 1);
2633235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2634235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    testSimplifyx(path);
2635235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com}
2636235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com
2637235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.comstatic void testQuadratic27() {
2638235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    SkPath path;
2639235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2640235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 0, 1, 1);
2641235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(2, 1);
2642235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2643235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2644235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 0);
2645235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(2, 1, 0, 2);
2646235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2647235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    testSimplifyx(path);
2648235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com}
2649235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com
2650235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.comstatic void testQuadratic28() {
2651235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    SkPath path;
2652235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2653235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 0, 0, 1);
2654235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 1);
2655235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2656235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.moveTo(0, 0);
2657235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.lineTo(0, 2);
2658235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.quadTo(1, 2, 0, 3);
2659235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    path.close();
2660235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    testSimplifyx(path);
2661235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com}
2662235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com
2663d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.comstatic void testQuadratic29() {
2664d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    SkPath path;
2665d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2666d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(1, 0, 2, 1);
2667d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(0, 2);
2668d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2669d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2670d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(0, 0);
2671d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(1, 0, 0, 1);
2672d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2673d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    testSimplifyx(path);
2674d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com}
2675d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com
2676d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.comstatic void testQuadratic30() {
2677d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    SkPath path;
2678d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2679d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(1, 0, 1, 2);
2680d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 2);
2681d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2682d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2683d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 0);
2684d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(0, 1, 1, 2);
2685d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2686d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    testSimplifyx(path);
2687d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com}
2688d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com
2689d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.comstatic void testQuadratic31() {
2690d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    SkPath path;
2691d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2692d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(1, 0, 1, 2);
2693d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 2);
2694d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2695d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2696d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 0);
2697d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(0, 1, 1, 3);
2698d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2699d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    testSimplifyx(path);
2700d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com}
2701d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com
2702d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.comstatic void testQuadratic32() {
2703d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    SkPath path;
2704d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2705d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(1, 0, 2, 3);
2706d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(2, 3);
2707d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2708d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2709d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(0, 0);
2710d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(3, 1, 0, 2);
2711d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2712d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    testSimplifyx(path);
2713d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com}
2714d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com
2715d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.comstatic void testQuadratic33() {
2716d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    SkPath path;
2717d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2718d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(2, 0, 0, 1);
2719d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(0, 1);
2720d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2721d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2722d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 1);
2723d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(2, 1, 2, 2);
2724d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2725d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    testSimplifyx(path);
2726d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com}
2727d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com
2728d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.comstatic void testQuadratic34() {
2729d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    SkPath path;
2730d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2731d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(2, 0, 0, 1);
2732d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(0, 1);
2733d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2734d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(1, 0);
2735d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 1);
2736d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(2, 1, 1, 2);
2737d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2738d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    testSimplifyx(path);
2739d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com}
2740d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com
2741d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.comstatic void testQuadratic35() {
2742d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    SkPath path;
2743d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2744d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(0, 1, 1, 1);
2745d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 3);
2746d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2747d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(2, 0);
2748d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(3, 0);
2749d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(0, 1, 1, 1);
2750d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2751d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    testSimplifyx(path);
2752d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com}
2753d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com
2754d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.comstatic void testQuadratic36() {
2755d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    SkPath path;
2756d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2757d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(2, 1, 2, 3);
2758d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(2, 3);
2759d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2760d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(3, 1);
2761d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 2);
2762d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(3, 2, 1, 3);
2763d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2764d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    testSimplifyx(path);
2765d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com}
2766d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com
2767d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.comstatic void testQuadratic37() {
2768d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    SkPath path;
2769d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2770d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(0, 2, 1, 2);
2771d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 2);
2772d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2773d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(0, 0);
2774d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(3, 1);
2775d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(0, 2, 1, 2);
2776d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2777d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    testSimplifyx(path);
2778d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com}
2779d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com
2780d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.comstatic void testQuadratic38() {
2781d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    SkPath path;
2782d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(1, 0);
2783d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(0, 1, 1, 1);
2784d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 1);
2785d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2786d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.moveTo(1, 0);
2787d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.lineTo(1, 2);
2788d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.quadTo(2, 2, 1, 3);
2789d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    path.close();
2790d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    testSimplifyx(path);
2791d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com}
2792d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com
2793fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.comstatic void testQuadratic51() {
2794fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    SkPath path;
2795fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    path.moveTo(369.863983f, 145.645813f);
2796fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    path.quadTo(382.380371f, 121.254936f, 406.236359f, 121.254936f);
2797fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    path.lineTo(369.863983f, 145.645813f);
2798fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    path.close();
2799fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    path.moveTo(369.970581f, 137.94342f);
2800fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    path.quadTo(383.98465f, 121.254936f, 406.235992f, 121.254936f);
2801fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    path.lineTo(369.970581f, 137.94342f);
2802fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    path.close();
2803fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    testSimplifyx(path);
2804fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com}
2805fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com
2806f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.comstatic void testQuadratic53() {
2807f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    SkPath path;
2808f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    path.moveTo(303.12088f, 141.299606f);
2809f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    path.lineTo(330.463562f, 217.659027f);
2810f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    path.lineTo(303.12088f, 141.299606f);
2811f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    path.close();
2812f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    path.moveTo(371.919067f, 205.854996f);
2813f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    path.lineTo(326.236786f, 205.854996f);
2814f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    path.quadTo(329.104431f, 231.663818f, 351.512085f, 231.663818f);
2815f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    path.lineTo(371.919067f, 205.854996f);
2816f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    path.close();
2817f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    testSimplifyx(path);
2818f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com}
2819f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.comstatic void testQuadratic55() {
2820f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    SkPath path;
2821f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.moveTo(303.12088f, 141.299606f);
2822f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(330.463562f, 217.659027f);
2823f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(358.606506f, 141.299606f);
2824f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(303.12088f, 141.299606f);
2825f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.close();
2826f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.moveTo(326.236786f, 205.854996f);
2827f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(329.104431f, 231.663818f, 351.512085f, 231.663818f);
2828f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(326.236786f, 205.854996f);
2829f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.close();
2830f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    testSimplifyx(path);
2831f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com}
2832f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com
2833f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.comstatic void testQuadratic56() {
2834f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    SkPath path;
2835f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.moveTo(366.608826f, 151.196014f);
2836f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(378.803101f, 136.674606f, 398.164948f, 136.674606f);
2837f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(354.009216f, 208.816208f);
2838f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(393.291473f, 102.232819f);
2839f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(359.978058f, 136.581512f);
2840f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(378.315979f, 136.581512f, 388.322723f, 149.613556f);
2841f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(364.390686f, 157.898193f);
2842f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(375.281769f, 136.674606f, 396.039917f, 136.674606f);
2843f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(350, 120);
2844f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(366.608826f, 151.196014f);
2845f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.close();
2846f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    testSimplifyx(path);
2847f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com}
2848f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com
2849f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.comstatic void testLine80() {
2850f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    SkPath path;
2851f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.moveTo(4, 0);
2852f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(3, 7);
2853f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(7, 5);
2854f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(2, 2);
2855f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.close();
2856f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.moveTo(0, 6);
2857f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(6, 12);
2858f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(8, 3);
2859f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.close();
2860f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    testSimplifyx(path);
2861f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com}
2862f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com
2863f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.comstatic void testQuadratic58() {
2864f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    SkPath path;
2865f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.moveTo(283.714233f, 240);
2866f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(283.714233f, 141.299606f);
2867f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(303.12088f, 141.299606f);
2868f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(330.463562f, 217.659027f);
2869f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(358.606506f, 141.299606f);
2870f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(362.874634f, 159.705902f);
2871f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(335.665344f, 233.397751f);
2872f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(322.12738f, 233.397751f);
2873f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(295.718353f, 159.505829f);
2874f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(295.718353f, 240);
2875f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(283.714233f, 240);
2876f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.close();
2877f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.moveTo(322.935669f, 231.030273f);
2878f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(312.832214f, 220.393295f, 312.832214f, 203.454178f);
2879f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(312.832214f, 186.981888f, 321.73526f, 176.444946f);
2880f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(330.638306f, 165.90802f, 344.509705f, 165.90802f);
2881f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(357.647522f, 165.90802f, 364.81665f, 175.244537f);
2882f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(371.919067f, 205.854996f);
2883f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(326.236786f, 205.854996f);
2884f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(329.104431f, 231.663818f, 351.512085f, 231.663818f);
2885f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(322.935669f, 231.030273f);
2886f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.close();
2887f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.moveTo(326.837006f, 195.984955f);
2888f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.lineTo(358.78125f, 195.984955f);
2889f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(358.78125f, 175.778046f, 343.709442f, 175.778046f);
2890f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.quadTo(328.570923f, 175.778046f, 326.837006f, 195.984955f);
2891f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.compath.close();
2892f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    testSimplifyx(path);
2893f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com}
2894f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com
2895e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic59x() {
28968f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
2897e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2898e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2899e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 0, 0, 0);
2900e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 2);
2901e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2902e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2903e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 0);
2904e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(3, 1, 1, 2);
2905e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2906e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
2907e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
2908e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
2909e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic59() {
29108f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
2911e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
2912e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2913e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 0, 0, 0);
2914e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 2);
2915e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2916e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2917e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 0);
2918e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(3, 1, 1, 2);
2919e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2920e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
2921e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
2922e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
2923e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic63() {
29248f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
2925e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2926e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 0, 0, 0);
2927e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(3, 2);
2928e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2929e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(1, 0);
2930e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 1);
2931e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(2, 1, 2, 2);
2932e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2933e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
2934e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
2935e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
2936e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic64() {
29378f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
2938e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2939e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 0, 0, 0);
2940e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 3);
2941e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2942e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(1, 2);
2943e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 2);
2944e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 3, 3, 3);
2945e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2946e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
2947e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
2948e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
2949e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic65() {
29508f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
2951e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2952e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 0, 0, 0);
2953e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(3, 2);
2954e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2955e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(2, 1);
2956e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 2);
2957e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 3, 1, 3);
2958e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2959e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
2960e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
2961e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
2962e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic67x() {
29638f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
2964e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
2965e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2966e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 0, 2, 1);
2967e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 2);
2968e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2969e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2970e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 0);
2971e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(1, 1, 3, 2);
2972e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2973e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
2974e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
2975e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
2976e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic68() {
29778f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
2978e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2979e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(1, 0, 0, 1);
2980e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(1, 2);
2981e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2982e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2983e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(0, 0);
2984e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 1, 2, 1);
2985e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2986e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
2987e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
2988e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
2989e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic69() {
29908f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
2991e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
2992e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 0, 0, 1);
2993e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(3, 2);
2994e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2995e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(2, 0);
2996e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(1, 1);
2997e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(3, 2, 2, 3);
2998e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
2999e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
3000e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
3001e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
3002e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic70x() {
30038f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3004e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
3005e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3006e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(1, 0, 0, 1);
3007e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(1, 2);
3008e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3009e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3010e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(0, 0);
3011e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 1, 2, 1);
3012e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3013e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
3014e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
3015e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
3016e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic71() {
30178f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3018e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3019e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(1, 0, 1, 1);
3020e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(3, 2);
3021e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3022e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3023e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(0, 0);
3024e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(1, 1, 3, 1);
3025e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3026e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
3027e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
3028e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
3029e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic72() {
30308f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3031e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3032e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(1, 0, 1, 2);
3033e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(1, 2);
3034e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3035e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3036e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(1, 0);
3037e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 1, 3, 2);
3038e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3039e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
3040e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
3041e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
3042e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic73() {
30438f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3044e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3045e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(1, 0, 0, 3);
3046e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(0, 3);
3047e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3048e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3049e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(1, 0);
3050e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(0, 1, 1, 1);
3051e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3052e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
3053e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
3054e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
3055e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic74() {
30568f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3057e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3058e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(1, 0, 1, 3);
3059e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(1, 3);
3060e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3061e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3062e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(0, 1);
3063e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(3, 2, 2, 3);
3064e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3065e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
3066e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
3067e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
3068e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.comstatic void testQuadratic75() {
30698f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3070e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3071e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(1, 0, 1, 3);
3072e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(2, 3);
3073e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3074e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.moveTo(0, 0);
3075e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.lineTo(0, 1);
3076e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.quadTo(3, 2, 2, 3);
3077e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    path.close();
3078e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    testSimplifyx(path);
3079e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com}
3080e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com
3081db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testQuadratic76() {
30828f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3083db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3084db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(0, 0, 0, 0);
3085db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 3);
3086db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3087db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(1, 0);
3088db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(1, 2);
3089db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(1, 2, 2, 2);
3090db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3091db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3092db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3093db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3094db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testQuadratic77() {
30958f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3096db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3097db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(1, 0, 1, 1);
3098db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(3, 1);
3099db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3100db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3101db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(1, 0);
3102db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(0, 1, 3, 2);
3103db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3104db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3105db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3106db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3107db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testQuadratic78() {
31088f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3109db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3110db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(1, 0, 1, 2);
3111db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(3, 2);
3112db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3113db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3114db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 0);
3115db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(2, 1, 0, 2);
3116db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3117db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3118db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3119db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3120db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testQuadratic79() {
31218f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3122db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3123db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(1, 0, 1, 2);
3124db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(3, 2);
3125db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3126db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3127db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(1, 0);
3128db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(0, 1, 3, 2);
3129db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3130db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3131db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3132db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3133db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testEight1() {
31348f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3135db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3136db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 2);
3137db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 2);
3138db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 0);
3139db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3140db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3141db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3142db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3143db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testEight2() {
31448f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3145db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3146db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 0);
3147db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 2);
3148db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 2);
3149db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3150db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3151db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3152db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3153db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testEight3() {
31548f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3155db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3156db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 2);
3157db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 0);
3158db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 2);
3159db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3160db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3161db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3162db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3163db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testEight4() {
31648f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3165db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3166db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 2);
3167db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 0);
3168db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 2);
3169db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3170db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3171db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3172db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3173db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testEight5() {
31748f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3175db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(1, 0);
3176db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(1, 2);
3177db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 2);
3178db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 0);
3179db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3180db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3181db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3182db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3183db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testEight6() {
31848f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3185db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(1, 0);
3186db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 0);
3187db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 2);
3188db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(1, 2);
3189db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3190db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3191db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3192db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3193db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testEight7() {
31948f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3195db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3196db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 1);
3197db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 1);
3198db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 2);
3199db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3200db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3201db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3202db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3203db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testEight8() {
32048f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3205db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3206db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 2);
3207db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 1);
3208db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 1);
3209db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3210db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3211db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3212db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3213db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testEight9() {
32148f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3215db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(1, 0);
3216db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(1, 2);
3217db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 1);
3218db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 1);
3219db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3220db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3221db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3222db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3223db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testEight10() {
32248f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3225db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(1, 0);
3226db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 1);
3227db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 1);
3228db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(1, 2);
3229db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3230db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3231db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3232db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3233db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testQuadratic80() {
32348f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3235db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3236db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(1, 0, 2, 3);
3237db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(2, 3);
3238db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3239db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(1, 0);
3240db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(3, 0);
3241db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(0, 1, 1, 1);
3242db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3243db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3244db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3245db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3246db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testQuadratic81() {
32478f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3248db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3249db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(2, 0, 1, 1);
3250db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(1, 1);
3251db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3252db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3253db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 0);
3254db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(2, 1, 0, 2);
3255db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3256db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3257db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3258db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
3259db0b3e099f888213535c4ad4c785b84544309033caryclark@google.comstatic void testQuadratic82() {
32608f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
3261db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3262db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(2, 0, 1, 1);
3263db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 3);
3264db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3265db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.moveTo(0, 0);
3266db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.lineTo(0, 0);
3267db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.quadTo(2, 1, 0, 2);
3268db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    path.close();
3269db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    testSimplifyx(path);
3270db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com}
3271db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com
32723586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.comstatic void testQuadratic83() {
32738f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
32743586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com    path.moveTo(0, 0);
32753586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com    path.quadTo(0, 0, 2, 0);
32763586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com    path.lineTo(2, 2);
32773586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com    path.close();
32783586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com    path.moveTo(0, 1);
32793586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com    path.lineTo(0, 2);
32803586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com    path.quadTo(2, 2, 1, 3);
32813586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com    path.close();
32823586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com    testSimplifyx(path);
32833586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com}
32843586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com
328510227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.comstatic void testQuadratic84() {
32868f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
328710227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.moveTo(0, 0);
328810227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.quadTo(2, 0, 1, 1);
328910227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.lineTo(2, 1);
329010227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.close();
329110227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.moveTo(1, 0);
329210227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.lineTo(2, 0);
329310227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.quadTo(0, 1, 2, 2);
329410227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.close();
329510227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    testSimplifyx(path);
329610227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com}
329710227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com
329810227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.comstatic void testQuadratic85() {
32998f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
330010227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.moveTo(0, 0);
330110227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.quadTo(3, 0, 1, 1);
330210227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.lineTo(1, 1);
330310227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.close();
330410227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.moveTo(1, 0);
330510227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.lineTo(3, 0);
330610227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.quadTo(0, 1, 1, 2);
330710227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.close();
330810227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    testSimplifyx(path);
330910227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com}
331010227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com
331110227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.comstatic void testQuadratic86() {
33128f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
331310227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.moveTo(0, 0);
331410227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.quadTo(0, 1, 1, 1);
331510227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.lineTo(2, 3);
331610227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.close();
331710227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.moveTo(0, 0);
331810227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.lineTo(0, 0);
331910227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.quadTo(1, 1, 1, 3);
332010227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.close();
332110227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    testSimplifyx(path);
332210227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com}
332310227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com
332410227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.comstatic void testQuadratic87() {
33258f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
332610227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.moveTo(0, 0);
332710227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.quadTo(2, 1, 0, 2);
332810227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.lineTo(2, 3);
332910227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.close();
333010227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.moveTo(0, 0);
333110227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.lineTo(1, 1);
333210227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.quadTo(0, 2, 3, 2);
333310227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.close();
333410227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    testSimplifyx(path);
333510227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com}
333610227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com
333710227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.comstatic void testQuadratic88() {
33388f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
333910227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.moveTo(0, 0);
334010227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.quadTo(2, 1, 0, 2);
334110227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.lineTo(2, 2);
334210227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.close();
334310227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.moveTo(1, 0);
334410227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.lineTo(1, 1);
334510227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.quadTo(0, 2, 2, 2);
334610227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    path.close();
334710227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    testSimplifyx(path);
334810227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com}
334910227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com
33508f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testQuadratic89x() {
33518f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
33528f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
33538f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.moveTo(0, 0);
33548f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.quadTo(3, 1, 2, 2);
33558f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.lineTo(0, 3);
33568f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.close();
33578f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.moveTo(0, 0);
33588f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.lineTo(2, 1);
33598f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.quadTo(3, 1, 3, 3);
33608f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.close();
33618f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
33628f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
33638f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
33648f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testQuadratic90x() {
33658f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
33668f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
33678f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.moveTo(0, 0);
33688f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.quadTo(3, 0, 2, 2);
33698f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.lineTo(1, 3);
33708f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.close();
33718f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.moveTo(0, 0);
33728f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.lineTo(0, 1);
33738f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.quadTo(3, 2, 2, 3);
33748f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.close();
33758f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
33768f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
33778f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
33788f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testQuadratic91() {
33798f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
33808f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.moveTo(0, 0);
33818f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.quadTo(3, 2, 2, 3);
33828f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.lineTo(2, 3);
33838f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.close();
33848f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.moveTo(0, 0);
33858f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.lineTo(1, 1);
33868f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.quadTo(2, 1, 2, 3);
33878f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.close();
33888f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
33898f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
33908f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
33918f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testQuadratic92x() {
33928f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
33938f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
33948f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.moveTo(1, 0);
33958f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.quadTo(3, 0, 2, 2);
33968f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.lineTo(2, 2);
33978f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.close();
33988f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.moveTo(2, 0);
33998f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.lineTo(0, 1);
34008f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.quadTo(3, 2, 2, 3);
34018f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.close();
34028f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34038f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34048f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34058f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine82() {
34068f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34078f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(20, 0, 40, 40, SkPath::kCCW_Direction);
34088f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction);
34098f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(24, 32, 33, 36, SkPath::kCCW_Direction);
34108f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34118f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34128f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34138f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine82a() {
34148f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34158f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 0, 6, 10, SkPath::kCW_Direction);
34168f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 2, 4, 4, SkPath::kCW_Direction);
34178f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 6, 4, 8, SkPath::kCW_Direction);
34188f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34198f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34208f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34218f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine82b() {
34228f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34238f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 0, 6, 10, SkPath::kCW_Direction);
34248f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 2, 4, 4, SkPath::kCW_Direction);
34258f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction);
34268f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34278f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34288f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34298f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine82c() {
34308f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34318f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 0, 6, 10, SkPath::kCW_Direction);
34328f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction);
34338f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 6, 4, 8, SkPath::kCW_Direction);
34348f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34358f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34368f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34378f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine82d() {
34388f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34398f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 0, 6, 10, SkPath::kCW_Direction);
34408f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction);
34418f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction);
34428f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34438f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34448f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34458f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine82e() {
34468f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34478f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction);
34488f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 2, 4, 4, SkPath::kCW_Direction);
34498f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 6, 4, 8, SkPath::kCW_Direction);
34508f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34518f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34528f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34538f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine82f() {
34548f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34558f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction);
34568f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 2, 4, 4, SkPath::kCW_Direction);
34578f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction);
34588f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34598f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34608f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34618f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine82g() {
34628f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34638f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction);
34648f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction);
34658f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 6, 4, 8, SkPath::kCW_Direction);
34668f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34678f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34688f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34698f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine82h() {
34708f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34718f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction);
34728f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction);
34738f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction);
34748f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34758f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34768f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34778f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine83() {
34788f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34798f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.compath.addRect(10, 30, 30, 40, SkPath::kCCW_Direction);
34808f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.compath.addRect(0, 12, 12, 18, SkPath::kCCW_Direction);
34818f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.compath.addRect(4, 13, 13, 16, SkPath::kCCW_Direction);
34828f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34838f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34848f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34858f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine84() {
34868f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34878f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 12, 60, 30, SkPath::kCCW_Direction);
34888f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(10, 20, 40, 30, SkPath::kCW_Direction);
34898f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
34908f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
34918f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
34928f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
34938f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
34948f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine84x() {
34958f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
34968f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
34978f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 12, 60, 30, SkPath::kCCW_Direction);
34988f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(10, 20, 40, 30, SkPath::kCCW_Direction);
34998f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(0, 12, 12, 12, SkPath::kCCW_Direction);
35008f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
35018f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
35028f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
35038f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
35048f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void testLine85() {
35058f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    SkPath path;
35068f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(36, 0, 66, 60, SkPath::kCCW_Direction);
35078f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(20, 0, 40, 40, SkPath::kCCW_Direction);
35088f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(12, 0, 24, 24, SkPath::kCCW_Direction);
35098f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    path.addRect(32, 0, 36, 41, SkPath::kCCW_Direction);
35108f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    testSimplifyx(path);
35118f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com}
35128f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com
351373ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.comstatic void testQuadralateral1() {
351473ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    SkPath path;
351573ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.moveTo(0, 0);
351673ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.lineTo(0, 0);
351773ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.lineTo(0, 0);
351873ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.lineTo(3, 2);
351973ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.close();
352073ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.moveTo(0, 0);
352173ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.lineTo(2, 1);
352273ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.lineTo(2, 2);
352373ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.lineTo(2, 3);
352473ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.close();
352573ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    testSimplifyx(path);
352673ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com}
352773ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com
352873ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.comstatic void testCubic1() {
352973ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    SkPath path;
353073ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.moveTo(0, 0);
353173ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.cubicTo(0, 1, 1, 1, 1, 0);
353273ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.close();
353373ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.moveTo(1, 0);
353473ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.cubicTo(0, 0, 0, 1, 1, 1);
353573ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    path.close();
353673ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    testSimplifyx(path);
353773ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com}
353873ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com
353985ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.comstatic void testQuadratic93() {
354085ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com    SkPath path;
354185ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com    path.moveTo(3, 0);
354285ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com    path.quadTo(0, 1, 3, 2);
354385ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com    path.lineTo(0, 3);
354485ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com    path.close();
354585ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com    path.moveTo(1, 0);
354685ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com    path.lineTo(2, 0);
354785ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com    path.quadTo(1, 1, 2, 2);
354885ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com    path.close();
354985ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com    testSimplifyx(path);
355085ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com}
3551aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com
3552aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.comstatic void cubicOp1d() {
3553aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    SkPath path, pathB;
3554aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3555aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    path.moveTo(0,1);
3556aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    path.cubicTo(0,2, 1,0, 1,0);
3557aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    path.close();
3558aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
3559aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    pathB.moveTo(0,1);
3560aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    pathB.cubicTo(0,1, 1,0, 2,0);
3561aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    pathB.close();
3562aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
3563aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com}
356485ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com
3565beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.comstatic void cubicOp2d() {
3566beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    SkPath path, pathB;
3567beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3568beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.moveTo(0,2);
3569beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.cubicTo(0,1, 1,0, 1,0);
3570beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.close();
3571beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
3572beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.moveTo(0,1);
3573beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.cubicTo(0,1, 2,0, 1,0);
3574beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.close();
3575beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
3576beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com}
3577beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com
3578beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.comstatic void cubicOp3d() {
3579beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    SkPath path, pathB;
3580beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3581beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.moveTo(0,1);
3582beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.cubicTo(2,3, 1,0, 1,0);
3583beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.close();
3584beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
3585beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.moveTo(0,1);
3586beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.cubicTo(0,1, 1,0, 3,2);
3587beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.close();
3588beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
3589beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com}
3590beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com
3591beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.comstatic void cubicOp5d() {
3592beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    SkPath path, pathB;
3593beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3594beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.moveTo(0,1);
3595beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.cubicTo(0,2, 1,0, 2,0);
3596beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.close();
3597beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
3598beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.moveTo(0,1);
3599beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.cubicTo(0,2, 1,0, 2,0);
3600beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.close();
3601beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
3602beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com}
3603beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com
3604beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.comstatic void cubicOp6d() {
3605beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    SkPath path, pathB;
3606beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3607beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.moveTo(0,1);
3608beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.cubicTo(0,6, 1,0, 3,0);
3609beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.close();
3610beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
3611beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.moveTo(0,1);
3612beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.cubicTo(0,3, 1,0, 6,0);
3613beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.close();
3614beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
3615beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com}
3616beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com
3617beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.comstatic void cubicOp7d() {
3618beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    SkPath path, pathB;
3619beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3620beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.moveTo(0,1);
3621beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.cubicTo(3,4, 1,0, 3,0);
3622beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    path.close();
3623beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
3624beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.moveTo(0,1);
3625beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.cubicTo(0,3, 1,0, 4,3);
3626beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    pathB.close();
3627beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
3628beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com}
3629beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com
363045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.comstatic void cubicOp8d() {
363145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    SkPath path, pathB;
363245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
363345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.moveTo(0,1);
363445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.cubicTo(0,5, 1,0, 4,0);
363545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.close();
363645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
363745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.moveTo(0,1);
363845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.cubicTo(0,4, 1,0, 5,0);
363945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.close();
364045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
364145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com}
364245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com
364345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.comstatic void cubicOp9d() {
364445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    SkPath path, pathB;
364545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
364645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.moveTo(0,1);
364745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.cubicTo(1,6, 1,0, 2,1);
364845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.close();
364945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
365045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.moveTo(0,1);
365145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.cubicTo(1,2, 1,0, 6,1);
365245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.close();
365345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
365445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com}
365545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com
365645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.comstatic void quadOp9d() {
365745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    SkPath path, pathB;
365845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
365945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.moveTo(0,1);
366045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.quadTo(1,6, 1.5f,1);
366145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.quadTo(1.5f,0.5f, 2,1);
366245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.close();
366345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
366445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.moveTo(0,1);
366545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.quadTo(1,2, 1.4f,1);
366645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.quadTo(3,0.4f, 6,1);
366745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.close();
366845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
366945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com}
367045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com
367145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.comstatic void lineOp9d() {
367245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    SkPath path, pathB;
367345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
367445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.moveTo(0,1);
367545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.lineTo(1,6);
367645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.lineTo(1.5f,1);
367745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.lineTo(1.8f,0.8f);
367845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.lineTo(2,1);
367945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.close();
368045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
368145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.moveTo(0,1);
368245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.lineTo(1,2);
368345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.lineTo(1.4f,1);
368445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.lineTo(3,0.4f);
368545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.lineTo(6,1);
368645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.close();
368745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
368845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com}
368945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com
369045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.comstatic void cubicOp1i() {
369145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    SkPath path, pathB;
369245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
369345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.moveTo(0,1);
369445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.cubicTo(1,2, 1,0, 2,1);
369545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.close();
369645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
369745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.moveTo(0,1);
369845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.cubicTo(1,2, 1,0, 2,1);
369945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.close();
370045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    testShapeOp(path, pathB, kIntersect_Op);
370145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com}
370245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com
370345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.comstatic void cubicOp10d() {
370445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    SkPath path, pathB;
370545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
370645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.moveTo(0,1);
370745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.cubicTo(1,3, 1,0, 4,1);
370845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.close();
370945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
371045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.moveTo(0,1);
371145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.cubicTo(1,4, 1,0, 3,1);
371245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.close();
371345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
371445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com}
371545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com
371645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.comstatic void cubicOp11d() {
371745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    SkPath path, pathB;
371845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
371945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.moveTo(0,1);
372045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.cubicTo(3,4, 1,0, 5,1);
372145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.close();
372245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
372345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.moveTo(0,1);
372445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.cubicTo(1,5, 1,0, 4,3);
372545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.close();
372645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
372745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com}
372845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com
372945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.comstatic void cubicOp12d() {
373045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    SkPath path, pathB;
373145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
373245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.moveTo(0,1);
373345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.cubicTo(1,6, 1,0, 1,0);
373445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.close();
373545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
373645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.moveTo(0,1);
373745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.cubicTo(0,1, 1,0, 6,1);
373845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.close();
373945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
374045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com}
374145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com
374245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.comstatic void cubicOp13d() {
374345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    SkPath path, pathB;
374445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
374545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.moveTo(0,1);
374645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.cubicTo(4,5, 1,0, 5,3);
374745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.close();
374845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
374945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.moveTo(0,1);
375045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.cubicTo(3,5, 1,0, 5,4);
375145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.close();
375245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
375345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com}
375445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com
375545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.comstatic void cubicOp14d() {
375645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    SkPath path, pathB;
375745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
375845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.moveTo(0,1);
375945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.cubicTo(0,2, 2,0, 2,1);
376045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    path.close();
376145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
376245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.moveTo(0,2);
376345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.cubicTo(1,2, 1,0, 2,0);
376445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    pathB.close();
376545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
376645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com}
376745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com
376847d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.comstatic void cubicOp15d() {
376947d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    SkPath path, pathB;
377047d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
377147d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.moveTo(0,1);
377247d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.cubicTo(3,6, 2,0, 2,1);
377347d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.close();
377447d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
377547d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.moveTo(0,2);
377647d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.cubicTo(1,2, 1,0, 6,3);
377747d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.close();
377847d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
377947d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com}
378047d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com
378147d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.comstatic void cubicOp16d() {
378247d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    SkPath path, pathB;
378347d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
378447d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.moveTo(0,2);
378547d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.cubicTo(0,1, 3,0, 1,0);
378647d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.close();
378747d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
378847d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.moveTo(0,3);
378947d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.cubicTo(0,1, 2,0, 1,0);
379047d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.close();
379147d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
379247d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com}
379347d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com
379447d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.comstatic void cubicOp17d() {
379547d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    SkPath path, pathB;
379647d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
379747d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.moveTo(0,2);
379847d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.cubicTo(0,2, 4,0, 2,1);
379947d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.close();
380047d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
380147d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.moveTo(0,4);
380247d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.cubicTo(1,2, 2,0, 2,0);
380347d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.close();
380447d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
380547d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com}
380647d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com
380747d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.comstatic void cubicOp18d() {
380847d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    SkPath path, pathB;
380947d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
381047d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.moveTo(0,1);
381147d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.cubicTo(3,5, 2,0, 2,1);
381247d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.close();
381347d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
381447d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.moveTo(0,2);
381547d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.cubicTo(1,2, 1,0, 5,3);
381647d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.close();
381747d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
381847d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com}
381947d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com
382047d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.comstatic void cubicOp19i() {
382147d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    SkPath path, pathB;
382247d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
382347d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.moveTo(0,2);
382447d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.cubicTo(0,1, 2,1, 6,2);
382547d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    path.close();
382647d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
382747d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.moveTo(1,2);
382847d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.cubicTo(2,6, 2,0, 1,0);
382947d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    pathB.close();
383047d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    testShapeOp(path, pathB, kIntersect_Op);
383147d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com}
383247d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com
3833d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.comstatic void cubicOp20d() {
3834d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    SkPath path, pathB;
3835d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3836d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    path.moveTo(0,1);
3837d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    path.cubicTo(0,1, 6,0, 2,1);
3838d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    path.close();
3839d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
3840d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    pathB.moveTo(0,6);
3841d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    pathB.cubicTo(1,2, 1,0, 1,0);
3842d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    pathB.close();
3843d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
3844d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com}
3845d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com
38465e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.comstatic void cubicOp21d() {
38475e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    SkPath path, pathB;
38485e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
38495e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.moveTo(0,1);
38505e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.cubicTo(0,1, 2,1, 6,5);
38515e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.close();
38525e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
38535e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.moveTo(1,2);
38545e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.cubicTo(5,6, 1,0, 1,0);
38555e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.close();
38565e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
38575e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com}
38585e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com
38595e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.comstatic void cubicOp22d() {
38605e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    SkPath path, pathB;
38615e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
38625e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.moveTo(0,1);
38635e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.cubicTo(2,3, 3,0, 2,1);
38645e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.close();
38655e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
38665e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.moveTo(0,3);
38675e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.cubicTo(1,2, 1,0, 3,2);
38685e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.close();
38695e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
38705e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com}
38715e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com
38725e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.comstatic void cubicOp23d() {
38735e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    SkPath path, pathB;
38745e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
38755e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.moveTo(0,1);
38765e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.cubicTo(1,2, 4,0, 2,1);
38775e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.close();
38785e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
38795e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.moveTo(0,4);
38805e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.cubicTo(1,2, 1,0, 2,1);
38815e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.close();
38825e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
38835e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com}
38845e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com
38855e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.comstatic void cubicOp24d() {
38865e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    SkPath path, pathB;
38875e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
38885e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.moveTo(0,1);
38895e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.cubicTo(1,2, 2,0, 3,2);
38905e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    path.close();
38915e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
38925e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.moveTo(0,2);
38935e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.cubicTo(2,3, 1,0, 2,1);
38945e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    pathB.close();
38955e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
38965e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com}
38975e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com
3898c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testIntersect1() {
3899c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath one, two;
3900c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    one.addRect(0, 0, 6, 6, SkPath::kCW_Direction);
3901c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    two.addRect(3, 3, 9, 9, SkPath::kCW_Direction);
3902c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(one, two, kIntersect_Op);
3903c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3904c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3905c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testUnion1() {
3906c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath one, two;
3907c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    one.addRect(0, 0, 6, 6, SkPath::kCW_Direction);
3908c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    two.addRect(3, 3, 9, 9, SkPath::kCW_Direction);
3909c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(one, two, kUnion_Op);
3910c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3911c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3912c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testDiff1() {
3913c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath one, two;
3914c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    one.addRect(0, 0, 6, 6, SkPath::kCW_Direction);
3915c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    two.addRect(3, 3, 9, 9, SkPath::kCW_Direction);
3916c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(one, two, kDifference_Op);
3917c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3918c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3919c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testXor1() {
3920c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath one, two;
3921c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    one.addRect(0, 0, 6, 6, SkPath::kCW_Direction);
3922c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    two.addRect(3, 3, 9, 9, SkPath::kCW_Direction);
3923c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(one, two, kXor_Op);
3924c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3925c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3926c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testIntersect2() {
3927c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath one, two;
3928c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    one.addRect(0, 0, 6, 6, SkPath::kCW_Direction);
3929c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    two.addRect(0, 3, 9, 9, SkPath::kCW_Direction);
3930c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(one, two, kIntersect_Op);
3931c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3932c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3933c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testUnion2() {
3934c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath one, two;
3935c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    one.addRect(0, 0, 6, 6, SkPath::kCW_Direction);
3936c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    two.addRect(0, 3, 9, 9, SkPath::kCW_Direction);
3937c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(one, two, kUnion_Op);
3938c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3939c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3940c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testDiff2() {
3941c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath one, two;
3942c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    one.addRect(0, 0, 6, 6, SkPath::kCW_Direction);
3943c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    two.addRect(0, 3, 9, 9, SkPath::kCW_Direction);
3944c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(one, two, kDifference_Op);
3945c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3946c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3947c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testXor2() {
3948c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath one, two;
3949c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    one.addRect(0, 0, 6, 6, SkPath::kCW_Direction);
3950c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    two.addRect(0, 3, 9, 9, SkPath::kCW_Direction);
3951c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(one, two, kXor_Op);
3952c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3953c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3954c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testOp1d() {
3955c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
3956c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3957c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3958c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 2, 2, SkPath::kCW_Direction);
3959c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
3960c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3961c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3962c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
3963c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3964c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3965c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testOp2d() {
3966c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
3967c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3968c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3969c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 2, 2, SkPath::kCW_Direction);
3970c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kEvenOdd_FillType);
3971c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3972c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3973c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
3974c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3975c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3976c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testOp3d() {
3977c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
3978c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3979c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3980c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(1, 1, 2, 2, SkPath::kCW_Direction);
3981c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
3982c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3983c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3984c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
3985c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3986c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3987c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testOp1u() {
3988c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
3989c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
3990c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3991c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 3, 3, SkPath::kCW_Direction);
3992c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
3993c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3994c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
3995c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kUnion_Op);
3996c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
3997c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
3998c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testOp4d() {
3999c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4000c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4001c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4002c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(2, 2, 4, 4, SkPath::kCW_Direction);
4003c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4004c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4005c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4006c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4007c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4008c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
4009c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testOp5d() {
4010c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4011c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
4012c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 2, 2, SkPath::kCW_Direction);
4013c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 3, 3, SkPath::kCW_Direction);
4014c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kEvenOdd_FillType);
4015c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4016c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4017c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4018c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4019c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
4020c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testOp6d() {
4021c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4022c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
4023c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4024c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 3, 3, SkPath::kCW_Direction);
4025c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4026c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4027c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4028c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4029c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4030c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
4031c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testOp7d() {
4032c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4033c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
4034c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 2, 2, SkPath::kCW_Direction);
4035c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4036c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kEvenOdd_FillType);
4037c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4038c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4039c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4040c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4041c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
4042c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testOp2u() {
4043c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4044c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kEvenOdd_FillType);
4045c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 2, 2, SkPath::kCW_Direction);
4046c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 2, 2, SkPath::kCW_Direction);
4047c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4048c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(0, 0, 3, 3, SkPath::kCW_Direction);
4049c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.addRect(1, 1, 2, 2, SkPath::kCW_Direction);
4050c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kUnion_Op);
4051c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4052c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
4053c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void testOp8d() {
4054c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4055c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.addRect(0, 0, 640, 480);
4056c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.moveTo(577330, 1971.72f);
4057c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.cubicTo(10.7082f, -116.596f, 262.057f, 45.6468f, 294.694f, 1.96237f);
4058c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.close();
4059c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4060c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4061c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void cubicOp25i() {
4062c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4063c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4064c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.moveTo(0,1);
4065c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.cubicTo(2,4, 5,0, 3,2);
4066c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.close();
4067c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4068c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.moveTo(0,5);
4069c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.cubicTo(2,3, 1,0, 4,2);
4070c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.close();
4071c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kIntersect_Op);
4072c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4073c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
4074c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void cubicOp26d() {
4075c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4076c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4077c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.moveTo(0,1);
4078c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.cubicTo(3,4, 4,0, 3,2);
4079c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.close();
4080c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4081c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.moveTo(0,4);
4082c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.cubicTo(2,3, 1,0, 4,3);
4083c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.close();
4084c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4085c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4086c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
4087c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void cubicOp27d() {
4088c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4089c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4090c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.moveTo(0,1);
4091c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.cubicTo(3,6, 1,0, 5,2);
4092c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.close();
4093c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4094c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.moveTo(0,1);
4095c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.cubicTo(2,5, 1,0, 6,3);
4096c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.close();
4097c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4098c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4099c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
4100c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void cubicOp28u() {
4101c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4102c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4103c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.moveTo(0,1);
4104c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.cubicTo(1,4, 6,0, 3,2);
4105c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.close();
4106c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4107c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.moveTo(0,6);
4108c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.cubicTo(2,3, 1,0, 4,1);
4109c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.close();
4110c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kUnion_Op);
4111c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4112c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
4113c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void cubicOp29d() {
4114c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4115c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4116c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.moveTo(0,1);
4117c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.cubicTo(2,5, 6,0, 4,2);
4118c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.close();
4119c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4120c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.moveTo(0,6);
4121c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.cubicTo(2,4, 1,0, 5,2);
4122c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.close();
4123c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4124c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4125c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
4126c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void cubicOp30d() {
4127c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    SkPath path, pathB;
4128c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4129c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.moveTo(0,1);
4130c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.cubicTo(2,5, 6,0, 5,3);
4131c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    path.close();
4132c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4133c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.moveTo(0,6);
4134c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.cubicTo(3,5, 1,0, 5,2);
4135c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    pathB.close();
4136c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4137c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com}
4138c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
41397ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.comstatic void cubicOp31d() {
41407ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    SkPath path, pathB;
41417ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
41427ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.moveTo(0,2);
41437ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.cubicTo(0,3, 2,1, 4,0);
41447ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.close();
41457ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
41467ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    pathB.moveTo(1,2);
41477ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    pathB.cubicTo(0,4, 2,0, 3,0);
41487ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    pathB.close();
41497ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
41507ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com}
41517ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com
41527ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.comstatic void cubicOp31u() {
41537ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    SkPath path, pathB;
41547ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
41557ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.moveTo(0,2);
41567ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.cubicTo(0,3, 2,1, 4,0);
41577ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.close();
41587ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
41597ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    pathB.moveTo(1,2);
41607ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    pathB.cubicTo(0,4, 2,0, 3,0);
41617ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    pathB.close();
41627ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    testShapeOp(path, pathB, kUnion_Op);
41637ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com}
41647ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com
41654aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.comstatic void cubicOp31x() {
41664aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    SkPath path, pathB;
41674aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
41684aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.moveTo(0,2);
41694aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.cubicTo(0,3, 2,1, 4,0);
41704aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.close();
41714aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
41724aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.moveTo(1,2);
41734aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.cubicTo(0,4, 2,0, 3,0);
41744aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.close();
41754aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    testShapeOp(path, pathB, kXor_Op);
41764aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com}
41774aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com
41787ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.comstatic void testCubic2() {
41797ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    SkPath path;
41807ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.moveTo(0,2);
41817ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.cubicTo(0,3, 2,1, 4,0);
41827ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.close();
41837ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.moveTo(1,2);
41847ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.cubicTo(0,4, 2,0, 3,0);
41857ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    path.close();
41867ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    testSimplifyx(path);
41877ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com}
41887ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com
41894aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.comstatic void cubicOp32d() {
41904aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    SkPath path, pathB;
41914aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
41924aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.moveTo(0,1);
41934aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.cubicTo(1,2, 6,0, 3,1);
41944aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.close();
41954aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
41964aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.moveTo(0,6);
41974aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.cubicTo(1,3, 1,0, 2,1);
41984aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.close();
41994aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
42004aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com}
42014aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com
42024aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.comstatic void cubicOp33i() {
42034aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    SkPath path, pathB;
42044aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
42054aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.moveTo(0,1);
42064aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.cubicTo(1,2, 6,0, 3,1);
42074aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.close();
42084aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
42094aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.moveTo(0,6);
42104aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.cubicTo(1,3, 1,0, 2,1);
42114aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.close();
42124aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    testShapeOp(path, pathB, kIntersect_Op);
42134aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com}
42144aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com
42154aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.comstatic void cubicOp34d() {
42164aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    SkPath path, pathB;
42174aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
42184aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.moveTo(0,1);
42194aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.cubicTo(3,5, 2,1, 3,1);
42204aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.close();
42214aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
42224aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.moveTo(1,2);
42234aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.cubicTo(1,3, 1,0, 5,3);
42244aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.close();
42254aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
42264aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com}
42274aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com
42284aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.comstatic void cubicOp35d() {
42294aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    SkPath path, pathB;
42304aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
42314aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.moveTo(0,1);
42324aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.cubicTo(1,5, 2,1, 4,0);
42334aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    path.close();
42344aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
42354aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.moveTo(1,2);
42364aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.cubicTo(0,4, 1,0, 5,1);
42374aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    pathB.close();
42384aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
42394aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com}
42404aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com
4241d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.comstatic void cubicOp36u() {
4242d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    SkPath path, pathB;
4243d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4244d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    path.moveTo(0,1);
4245d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    path.cubicTo(1,6, 2,0, 5,1);
4246d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    path.close();
4247d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4248d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    pathB.moveTo(0,2);
4249d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    pathB.cubicTo(1,5, 1,0, 6,1);
4250d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    pathB.close();
4251d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    testShapeOp(path, pathB, kUnion_Op);
4252d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com}
4253d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com
42541304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp37d() {
42551304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
42561304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
42571304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,1);
42581304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(2,6, 6,1, 4,3);
42591304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
42601304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
42611304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(1,6);
42621304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(3,4, 1,0, 6,2);
42631304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
42641304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
42651304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
42661304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
42671304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com#if 1
42681304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com// this fails to detect a cubic/cubic intersection
42691304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com// the slight overlap is missed when the cubics are approximated by quadratics
42701304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com// and the subsequent line/cubic intersection also (correctly) misses the intersection
42711304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com// if the line/cubic was a matching line/approx.quadratic then the missing intersection
42721304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com// could have been detected
42731304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp38d() {
42741304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
42751304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
42761304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,1);
42771304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(0,6, 3,2, 4,1);
42781304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
42791304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
42801304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(2,3);
42811304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(1,4, 1,0, 6,0);
42821304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
42831304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
42841304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
42851304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com#endif
42861304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
42871304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp39d() {
42881304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
42891304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
42901304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,1);
42911304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(2,3, 5,1, 4,3);
42921304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
42931304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
42941304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(1,5);
42951304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(3,4, 1,0, 3,2);
42961304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
42971304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
42981304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
42991304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
43001304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp40d() {
43011304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
43021304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
43031304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,1);
43041304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,5, 3,2, 4,2);
43051304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
43061304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
43071304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(2,3);
43081304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(2,4, 1,0, 5,1);
43091304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
43101304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
43111304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
43121304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
43131304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp41i() {
43141304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
43151304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
43161304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,1);
43171304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(2,6, 4,3, 6,4);
43181304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
43191304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
43201304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(3,4);
43211304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(4,6, 1,0, 6,2);
43221304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
43231304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kIntersect_Op);
43241304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
43251304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
43261304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp42d() {
43271304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
43281304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
43291304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,1);
43301304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,2, 6,5, 5,4);
43311304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
43321304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
43331304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(5,6);
43341304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(4,5, 1,0, 2,1);
43351304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
43361304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
43371304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
43381304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
43391304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp43d() {
43401304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
43411304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
43421304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,2);
43431304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,2, 4,0, 3,1);
43441304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
43451304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
43461304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(0,4);
43471304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(1,3, 2,0, 2,1);
43481304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
43491304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
43501304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
43511304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
43521304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp44d() {
43531304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
43541304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
43551304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,2);
43561304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(3,6, 4,0, 3,2);
43571304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
43581304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
43591304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(0,4);
43601304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(2,3, 2,0, 6,3);
43611304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
43621304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
43631304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
43641304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
43651304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp45d() {
43661304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
43671304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
43681304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,2);
43691304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(2,4, 4,0, 3,2);
43701304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
43711304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
43721304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(0,4);
43731304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(2,3, 2,0, 4,2);
43741304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
43751304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
43761304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
43771304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
43781304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp46d() {
43791304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
43801304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
43811304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,2);
43821304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(3,5, 5,0, 4,2);
43831304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
43841304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
43851304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(0,5);
43861304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(2,4, 2,0, 5,3);
43871304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
43881304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
43891304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
43901304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
43911304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp47d() {
43921304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
43931304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
43941304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,1);
43951304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,6, 6,2, 5,4);
43961304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
43971304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
43981304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(2,6);
43991304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(4,5, 1,0, 6,1);
44001304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
44011304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
44021304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
44031304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
44041304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp48d() {
44051304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
44061304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
44071304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,2);
44081304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(2,3, 5,1, 3,2);
44091304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
44101304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
44111304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(1,5);
44121304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(2,3, 2,0, 3,2);
44131304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
44141304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
44151304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
44161304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
44171304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp49d() {
44181304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
44191304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
44201304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,2);
44211304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,5, 3,2, 4,1);
44221304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
44231304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
44241304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(2,3);
44251304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(1,4, 2,0, 5,1);
44261304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
44271304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
44281304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
44291304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
44301304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp50d() {
44311304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
44321304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
44331304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,3);
44341304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,6, 5,0, 5,1);
44351304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
44361304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
44371304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(0,5);
44381304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(1,5, 3,0, 6,1);
44391304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
44401304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
44411304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
44421304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
44431304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp51d() {
44441304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
44451304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
44461304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,3);
44471304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,2, 4,1, 6,0);
44481304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
44491304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
44501304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(1,4);
44511304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(0,6, 3,0, 2,1);
44521304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
44531304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
44541304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
44551304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
44561304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp52d() {
44571304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
44581304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
44591304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,2);
44601304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,2, 5,4, 4,3);
44611304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
44621304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
44631304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(4,5);
44641304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(3,4, 2,0, 2,1);
44651304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
44661304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
44671304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
44681304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
44691304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp53d() {
44701304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
44711304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
44721304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,3);
44731304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,2, 5,3, 2,1);
44741304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
44751304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
44761304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(3,5);
44771304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(1,2, 3,0, 2,1);
44781304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
44791304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
44801304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
44811304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
44821304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp54d() {
44831304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
44841304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
44851304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,4);
44861304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,3, 5,4, 4,2);
44871304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
44881304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
44891304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(4,5);
44901304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(2,4, 4,0, 3,1);
44911304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
44921304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
44931304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
44941304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
44951304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp55d() {
44961304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
44971304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
44981304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,5);
44991304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(1,3, 3,2, 5,0);
45001304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
45011304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
45021304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(2,3);
45031304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(0,5, 5,0, 3,1);
45041304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
45051304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
45061304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
45071304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
45081304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp56d() {
45091304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
45101304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
45111304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,1);
45121304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(2,6, 5,0, 2,1);
45131304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
45141304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
45151304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(0,5);
45161304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(1,2, 1,0, 6,2);
45171304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
45181304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
45191304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
45201304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
45211304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp57d() {
45221304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
45231304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
45241304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,5);
45251304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(0,5, 5,4, 6,4);
45261304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
45271304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
45281304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(4,5);
45291304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(4,6, 5,0, 5,0);
45301304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
45311304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
45321304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
45331304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
45341304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp58d() {
45351304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
45361304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
45371304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,5);
45381304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(3,4, 6,5, 5,3);
45391304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
45401304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
45411304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(5,6);
45421304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(3,5, 5,0, 4,3);
45431304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
45441304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
45451304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
45461304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
45471304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp59d() {
45481304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
45491304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
45501304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,1);
45511304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(5,6, 4,0, 4,1);
45521304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
45531304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
45541304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(0,4);
45551304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(1,4, 1,0, 6,5);
45561304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
45571304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
45581304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
45591304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
45601304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp60d() {
45611304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
45621304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
45631304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(0,2);
45641304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(4,6, 6,0, 5,2);
45651304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
45661304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
45671304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(0,6);
45681304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(2,5, 2,0, 6,4);
45691304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
45701304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
45711304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
45721304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
45731304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.comstatic void cubicOp61d() {
45741304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    SkPath path, pathB;
45751304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
45761304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.moveTo(1,2);
45771304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.cubicTo(0,5, 3,2, 6,1);
45781304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    path.close();
45791304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
45801304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.moveTo(2,3);
45811304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.cubicTo(1,6, 2,1, 5,0);
45821304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    pathB.close();
45831304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
45841304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com}
45851304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com
4586996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.comstatic void cubicOp62d() {
4587996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    SkPath path, pathB;
4588996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4589996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    path.moveTo(1,3);
4590996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    path.cubicTo(5,6, 5,3, 5,4);
4591996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    path.close();
4592996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4593996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    pathB.moveTo(3,5);
4594996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    pathB.cubicTo(4,5, 3,1, 6,5);
4595996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    pathB.close();
4596996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4597996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com}
4598996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com
4599996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.comstatic void cubicOp63d() {
4600996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    SkPath path, pathB;
4601996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4602996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    path.moveTo(2,3);
4603996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    path.cubicTo(0,4, 3,2, 5,3);
4604996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    path.close();
4605996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    pathB.setFillType(SkPath::kWinding_FillType);
4606996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    pathB.moveTo(2,3);
4607996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    pathB.cubicTo(3,5, 3,2, 4,0);
4608996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    pathB.close();
4609996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4610996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com}
4611996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com
4612ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.comstatic void testQuad1() {
4613ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    SkPath path;
4614ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.moveTo(0,0);
4615ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.quadTo(0,0, 0,1);
4616ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.lineTo(1,1);
4617ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.close();
4618ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.moveTo(0,0);
4619ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.quadTo(1,1, 0,2);
4620ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.close();
4621ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    testSimplifyx(path);
4622ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com}
4623ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com
4624ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.comstatic void testQuad1z() {
4625ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    SkPath path;
4626ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.moveTo(0,0);
4627ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.quadTo(0,0, 0,1);
4628ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.lineTo(1,1);
4629ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.close();
4630ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.moveTo(0,0);
4631ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.lineTo(0.5f,1);
4632ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.lineTo(0,2);
4633ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.close();
4634ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    testSimplifyx(path);
4635ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com}
4636ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com
4637ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.comstatic void testQuad1c() {
4638ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    SkPath path;
4639ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.moveTo(0,0);
4640ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.quadTo(0,0, 0,1);
4641ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.lineTo(1,1);
4642ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.close();
4643ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.moveTo(0,0);
4644ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.cubicTo(0.5f,0.5f, 0.5f,1.5f, 0,2);
4645ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.close();
4646ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    testSimplifyx(path);
4647ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com}
4648ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com
4649ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.comstatic void testRectOp1d() {
4650ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    SkPath path, pathB;
4651ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.moveTo(0,1);
4652ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.cubicTo(0,1, 1,0, 3,0);
4653ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.lineTo(0,1);
4654ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.close();
4655ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    pathB.moveTo(0,1);
4656ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    pathB.cubicTo(0,3, 1,0, 1,0);
4657ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    pathB.lineTo(0,1);
4658ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    pathB.close();
4659ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4660ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com}
4661ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com
4662ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.comstatic void testCubicOp64d() {
4663ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    SkPath path, pathB;
4664ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.setFillType(SkPath::kWinding_FillType);
4665ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
4666ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    path.addRect(2, 2, 3, 3, SkPath::kCW_Direction);
4667ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    pathB.setFillType(SkPath::kEvenOdd_FillType);
4668ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    pathB.addRect(0, 0, 4, 4, SkPath::kCW_Direction);
4669ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    pathB.addRect(0, 0, 3, 3, SkPath::kCW_Direction);
4670ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    testShapeOp(path, pathB, kDifference_Op);
4671ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com}
4672ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com
4673ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.comstatic void (*firstTest)() = testRectOp1d;
467488f7d0cb09707355bc9079d4b0569537e8048fa9caryclark@google.com
46758dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.comstatic struct {
46768dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    void (*fun)();
46778dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    const char* str;
46788dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com} tests[] = {
4679ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    TEST(testRectOp1d),
4680ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    TEST(testCubicOp64d),
4681ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    TEST(testQuad1c),
4682ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    TEST(testQuad1z),
4683ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    TEST(testQuad1),
4684ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com    TEST(testQuadratic93),    // FIXME: gets stuck in a loop because top is unsortable
4685996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    TEST(cubicOp63d),
4686996d78b7cf9863a5b574fc1b64b1715cad4d0a23caryclark@google.com    TEST(cubicOp62d),
46871304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp61d),
46881304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp60d),
46891304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp59d),
46901304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp58d),
46911304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp57d),
46921304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp56d),
46931304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp55d),
46941304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp54d),
46951304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp53d),
46961304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp52d),
46971304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp51d),
46981304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp50d),
46991304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp49d),
47001304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp48d),
47011304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp47d),
47021304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp46d),
47031304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp45d),
47041304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp44d),
47051304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp43d),
47061304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp42d),
47071304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp41i),
47081304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp40d),
47091304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp39d),
47101304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp38d),
47111304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp37d),
4712d4c8e1e035bc2edb6caf2c9eac71ef918e60b80bcaryclark@google.com    TEST(cubicOp36u),
47134aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    TEST(cubicOp35d),
47144aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    TEST(cubicOp34d),
47154aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    TEST(cubicOp33i),
47164aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    TEST(cubicOp32d),
47174aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    TEST(cubicOp31d),
47187ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    TEST(testCubic2),
47194aaaaeace7e617ddc473645756fb7c20790bc270caryclark@google.com    TEST(cubicOp31x),
47207ff5c841bf669826b4cbd708ae1a6b3527f15dcacaryclark@google.com    TEST(cubicOp31u),
4721c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(cubicOp30d),
4722c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(cubicOp29d),
4723c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(cubicOp28u),
4724c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(cubicOp27d),
4725c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(cubicOp26d),
4726c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(cubicOp25i),
4727c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testOp8d),
4728c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testDiff1),
4729c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testIntersect1),
4730c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testUnion1),
4731c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testXor1),
4732c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testDiff2),
4733c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testIntersect2),
4734c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testUnion2),
4735c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testXor2),
4736c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testOp1d),
4737c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testOp2d),
4738c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testOp3d),
4739c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testOp1u),
4740c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testOp4d),
4741c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testOp5d),
4742c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testOp6d),
4743c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testOp7d),
4744c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(testOp2u),
4745c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com
47465e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    TEST(cubicOp24d),
47475e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    TEST(cubicOp23d),
47485e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    TEST(cubicOp22d),
47495e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com    TEST(cubicOp21d),
4750d0a19eb9140ecb968357f798f06d2b052b51fd89caryclark@google.com    TEST(cubicOp20d),
475147d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    TEST(cubicOp19i),
475247d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    TEST(cubicOp18d),
475347d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    TEST(cubicOp17d),
475447d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    TEST(cubicOp16d),
475547d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com    TEST(cubicOp15d),
475645a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    TEST(cubicOp14d),
475745a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    TEST(cubicOp13d),
475845a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    TEST(cubicOp12d),
475945a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    TEST(cubicOp11d),
476045a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    TEST(cubicOp10d),
476145a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    TEST(cubicOp1i),
476245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    TEST(cubicOp9d),
476345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    TEST(quadOp9d),
476445a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    TEST(lineOp9d),
476545a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com    TEST(cubicOp8d),
4766beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    TEST(cubicOp7d),
4767beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    TEST(cubicOp6d),
4768beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    TEST(cubicOp5d),
4769beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    TEST(cubicOp3d),
4770beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com    TEST(cubicOp2d),
4771aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com    TEST(cubicOp1d),
477273ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    TEST(testCubic1),
477373ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com    TEST(testQuadralateral1),
47748f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine85),
47758f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine84),
47768f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine84x),
47778f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine83),
47788f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine82h),
47798f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine82g),
47808f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine82f),
47818f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine82e),
47828f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine82d),
47838f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine82c),
47848f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine82b),
47858f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine82a),
47868f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testLine82),
47878f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testQuadratic92x),
47888f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testQuadratic91),
47898f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testQuadratic90x),
47908f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com    TEST(testQuadratic89x),
479110227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    TEST(testQuadratic88),
479210227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    TEST(testQuadratic87),
479310227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    TEST(testQuadratic86),
479410227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    TEST(testQuadratic85),
479510227bf4679cd0eccae337cb83de8f64dfa959ebcaryclark@google.com    TEST(testQuadratic84),
47963586ece1ddbb48cabb2e7a4792be9ff5d74e40d9caryclark@google.com    TEST(testQuadratic83),
4797db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testQuadratic82),
4798db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testQuadratic81),
4799db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testQuadratic80),
4800db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testEight1),
4801db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testEight2),
4802db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testEight3),
4803db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testEight4),
4804db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testEight5),
4805db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testEight6),
4806db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testEight7),
4807db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testEight8),
4808db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testEight9),
4809db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testEight10),
4810db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testQuadratic79),
4811db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testQuadratic78),
4812db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testQuadratic77),
4813db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testQuadratic76),
4814db0b3e099f888213535c4ad4c785b84544309033caryclark@google.com    TEST(testQuadratic75),
4815e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic74),
4816e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic73),
4817e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic72),
4818e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic71),
4819e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic70x),
4820e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic69),
482161b05dcc7ebe48663c3ba84b7bd7449d6c887ac1skia.committer@gmail.com    TEST(testQuadratic68),
4822e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic67x),
4823e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic65),
4824e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic64),
4825e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic63),
4826e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testLine1a),
4827e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testLine1ax),
4828e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic59),
4829e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com    TEST(testQuadratic59x),
4830f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    TEST(testQuadratic58),
4831f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    TEST(testQuadratic56),
4832f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    TEST(testQuadratic55),
4833f839c0359c308fd06895d9f73fc12c4f3869e399caryclark@google.com    TEST(testQuadratic53),
4834fb51afb03e76c5701fffaa847584a8b7b2c18a7ecaryclark@google.com    TEST(testQuadratic51),
4835d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    TEST(testQuadratic38),
4836d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    TEST(testQuadratic37),
4837d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    TEST(testQuadratic36),
4838d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    TEST(testQuadratic35),
4839d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    TEST(testQuadratic34),
4840d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    TEST(testQuadratic33),
4841d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    TEST(testQuadratic32),
4842d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    TEST(testQuadratic31),
4843d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    TEST(testQuadratic30),
4844d1688744d537d928699b6069f99c4470a0f6e772caryclark@google.com    TEST(testQuadratic29),
4845235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    TEST(testQuadratic28),
4846235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    TEST(testQuadratic27),
4847235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    TEST(testQuadratic26),
4848235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    TEST(testQuadratic25),
4849235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    TEST(testQuadratic24),
4850235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    TEST(testQuadratic23),
4851235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    TEST(testQuadratic22),
4852235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    TEST(testQuadratic21),
485332546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com    TEST(testQuadratic20),
4854a7e483d130a65833e4c0d4abb4c2f13a9ce7703bcaryclark@google.com    TEST(testQuadratic19),
48553350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    TEST(testQuadratic18),
48563350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    TEST(testQuadratic17x),
48573350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com    TEST(testQuadratic15),
4858c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic14),
4859c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic9),
4860c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic8),
4861c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic7),
4862c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic6),
4863c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic5),
4864c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic4x),
4865c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic3x),
4866c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic2x),
4867c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic1x),
4868c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadratic4),
486903f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com    TEST(testQuadratic3),
487024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testQuadratic2),
487124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testQuadratic1),
4872c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine4ax),
4873c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine3aax),
4874c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine2ax),
4875c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine1ax),
4876c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadralateral9x),
4877c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadralateral8x),
4878c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadralateral7x),
4879c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadralateral6x),
4880c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadralateral6ax),
488124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testQuadralateral9),
488224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testQuadralateral8),
488324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testQuadralateral7),
488459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    TEST(testQuadralateral6),
488524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testQuadralateral6a),
4886c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testFauxQuadralateral6dx),
4887c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testFauxQuadralateral6cx),
4888c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testFauxQuadralateral6bx),
4889c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testFauxQuadralateral6ax),
4890c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testFauxQuadralateral6x),
489124bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testFauxQuadralateral6d),
489224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testFauxQuadralateral6c),
489324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testFauxQuadralateral6b),
489424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testFauxQuadralateral6a),
489524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com    TEST(testFauxQuadralateral6),
4896c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testQuadralateral5x),
489759823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    TEST(testQuadralateral5),
4898c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testNondegenerate4x),
4899c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testNondegenerate3x),
4900c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testNondegenerate2x),
4901c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testNondegenerate1x),
490259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    TEST(testNondegenerate4),
490359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    TEST(testNondegenerate3),
490459823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    TEST(testNondegenerate2),
490559823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    TEST(testNondegenerate1),
4906c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testDegenerate4x),
4907c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testDegenerate3x),
4908c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testDegenerate2x),
4909c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testDegenerate1x),
491059823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    TEST(testDegenerate4),
491159823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    TEST(testDegenerate3),
491259823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    TEST(testDegenerate2),
491359823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com    TEST(testDegenerate1),
4914c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine79x),
4915c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine78x),
4916c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine77x),
4917c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine76x),
4918c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine75x),
4919c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine74x),
4920c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine73x),
4921c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine72x),
4922c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine71x),
4923c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine70x),
4924c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine69x),
4925c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine68hx),
4926c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine68gx),
4927c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine68fx),
4928c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine68ex),
4929c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine68dx),
4930c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine68cx),
4931c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine68bx),
4932c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine68ax),
4933c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine67x),
4934c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine66x),
4935c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine65x),
4936c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine64x),
4937c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine63x),
4938c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine62x),
4939c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine61x),
4940c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine60x),
4941c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine59x),
4942c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine58x),
4943c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine57x),
4944c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine56x),
4945c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine55x),
4946c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine54x),
4947c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine53x),
4948c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine52x),
4949c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine51x),
4950c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine50x),
4951c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine49x),
4952c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine48x),
4953c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine47x),
4954c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine46x),
4955c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine45x),
4956c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine44x),
4957c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine43x),
4958c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine42x),
4959c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine41x),
4960c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine40x),
4961c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine38x),
4962c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine37x),
4963c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine36x),
4964c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine35x),
4965c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine34x),
4966c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine33x),
4967c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine32x),
4968c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine31x),
4969c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine30x),
4970c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine29x),
4971c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine28x),
4972c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine27x),
4973c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine26x),
4974c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine25x),
4975c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine24ax),
4976c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine24x),
4977c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine23x),
4978c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine22x),
4979c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine21x),
4980c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine20x),
4981c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine19x),
4982c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine18x),
4983c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine17x),
4984c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine16x),
4985c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine15x),
4986c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine14x),
4987c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine13x),
4988c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine12x),
4989c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine11x),
4990c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine10ax),
4991c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine10x),
4992c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine9x),
4993c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine8x),
4994c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine7bx),
4995c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine7ax),
4996c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine7x),
4997c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine6x),
4998c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine5x),
4999c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine4x),
5000c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine3bx),
5001c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine3ax),
5002c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine3x),
5003c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine2x),
5004c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com    TEST(testLine1x),
50057fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    TEST(testLine81),
50067fce0de0b9674ca6cc65ebbb40b924b615d9fc9ecaryclark@google.com    TEST(testLine80),
50072ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com    TEST(testLine79),
50082ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com    TEST(testLine78),
50092ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com    TEST(testLine77),
50102ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com    TEST(testLine76),
50112ddff9388694263c7be9347de7eb768cd0847997caryclark@google.com    TEST(testLine75),
50120c803d048c826fadfeed51207488867e17e0cc10caryclark@google.com    TEST(testLine74),
5013200c211d34b11a4a988fc2549df3c17ae6875899caryclark@google.com    TEST(testLine73),
5014200c211d34b11a4a988fc2549df3c17ae6875899caryclark@google.com    TEST(testLine72),
5015534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine71),
5016534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine70),
5017534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine69),
5018534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine68h),
5019534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine68g),
5020534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine68f),
5021534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine68e),
5022534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine68d),
5023534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine68c),
5024534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine68b),
5025534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine68a),
5026534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine67),
502727c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    TEST(testLine66),
502827c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    TEST(testLine65),
502927c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    TEST(testLine64),
503027c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    TEST(testLine63),
503127c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    TEST(testLine62),
503227c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    TEST(testLine61),
503327c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    TEST(testLine60),
5034cc90505674cd845fcbebd7e0654c3ff04a2e4f25caryclark@google.com    TEST(testLine59),
5035cc90505674cd845fcbebd7e0654c3ff04a2e4f25caryclark@google.com    TEST(testLine58),
503618063441c23b334ab2ee7075c39ceeb8378e6fcfcaryclark@google.com    TEST(testLine57),
503718063441c23b334ab2ee7075c39ceeb8378e6fcfcaryclark@google.com    TEST(testLine56),
5038e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com    TEST(testLine55),
5039e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com    TEST(testLine54),
5040e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com    TEST(testLine53),
5041e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com    TEST(testLine52),
504247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine51),
504347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine50),
504447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine49),
504547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine48),
504647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine47),
504747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine46),
504847580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine45),
504947580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine44),
505047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine43),
505147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine42),
505247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine41),
505347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine40),
505447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine38),
505547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine37),
505647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine36),
505747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine35),
505847580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine34),
505947580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine33),
506047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine32),
506147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine31),
506247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine30),
506347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine29),
506447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine28),
506547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine27),
506647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine26),
506747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine25),
50688dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    TEST(testLine24a),
50698dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com    TEST(testLine24),
507047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine23),
507147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine22),
507247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine21),
507347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine20),
507447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine19),
507547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine18),
507647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine17),
507747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine16),
507847580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine15),
507947580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine14),
508047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine13),
508147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine12),
508247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine11),
508347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine10a),
508447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine10),
508547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine9),
508647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine8),
508747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine7b),
508847580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine7a),
508947580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine7),
509047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine6),
509147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine5),
509247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine4),
5093534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine3b),
5094534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    TEST(testLine3a),
509547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine3),
509647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine2),
509747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    TEST(testLine1),
5098af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com};
5099af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
510085ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.comstatic const size_t testCount = sizeof(tests) / sizeof(tests[0]);
510185ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com
510273ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com
5103534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic struct {
5104534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    void (*fun)();
5105534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    const char* str;
5106534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com} subTests[] = {
51071304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp43d),
51081304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(quadOp9d),
51091304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp9d),
51101304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp1i),
51111304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp10d),
51121304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp11d),
51131304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp15d),
51141304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp18d),
51151304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp22d),
5116c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(cubicOp23d),
5117c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    TEST(cubicOp24d),
51181304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp28u),
51191304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp33i),
51201304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp36u),
51211304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    TEST(cubicOp40d),
5122534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com};
5123534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
5124534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.comstatic const size_t subTestCount = sizeof(subTests) / sizeof(subTests[0]);
5125534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com
5126c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic void (*firstSubTest)() = 0;
512757cff8dbdfb32b3fea426519a4fdc05f13be69d9caryclark@google.com
5128af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.comstatic bool skipAll = false;
5129c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.comstatic bool runSubTestsFirst = false;
5130ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.comstatic bool runReverse = false;
51318f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.comstatic void (*stopTest)() = 0;
5132af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com
5133af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.comvoid SimplifyNew_Test() {
5134af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    if (skipAll) {
5135af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com        return;
5136af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    }
513747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com#ifdef SK_DEBUG
513827c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    gDebugMaxWindSum = 4;
513927c449af06cd1d05db441593d08b84f3530fba52caryclark@google.com    gDebugMaxWindValue = 4;
514047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com#endif
51411304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    size_t index;
5142c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    if (runSubTestsFirst && firstSubTest) {
514357cff8dbdfb32b3fea426519a4fdc05f13be69d9caryclark@google.com        index = subTestCount - 1;
5144c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com        while (index > 0 && subTests[index].fun != firstSubTest) {
514557cff8dbdfb32b3fea426519a4fdc05f13be69d9caryclark@google.com            --index;
514657cff8dbdfb32b3fea426519a4fdc05f13be69d9caryclark@google.com        }
514757cff8dbdfb32b3fea426519a4fdc05f13be69d9caryclark@google.com        SkDebugf("  %s [%s]\n", __FUNCTION__, subTests[index].str);
514857cff8dbdfb32b3fea426519a4fdc05f13be69d9caryclark@google.com        (*subTests[index].fun)();
514957cff8dbdfb32b3fea426519a4fdc05f13be69d9caryclark@google.com    }
5150c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    if (runSubTestsFirst) {
5151534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com        index = subTestCount - 1;
5152534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com        do {
5153534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com            SkDebugf("  %s [%s]\n", __FUNCTION__, subTests[index].str);
5154534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com            (*subTests[index].fun)();
5155534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com        } while (index--);
5156534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    }
5157534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com    index = testCount - 1;
5158af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    if (firstTest) {
5159e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com        while (index > 0 && tests[index].fun != firstTest) {
5160e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com            --index;
5161af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com        }
51621304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    #if FORCE_RELEASE == 0
51631304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com        SkDebugf("<div id=\"%s\">\n", tests[index].str);
51641304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com    #endif
516524bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com        SkDebugf("  %s [%s]\n", __FUNCTION__, tests[index].str);
516659823f7f3ba43c7c6bc1fa8c600b093ecb4236aacaryclark@google.com        (*tests[index].fun)();
5167af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    }
5168235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    index = runReverse ? testCount - 1 : 0;
5169235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    size_t last = runReverse ? 0 : testCount - 1;
5170af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com    bool firstTestComplete = false;
5171e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com    do {
5172e21cb18c52fe82de3412b10fc078799ac35ca94bcaryclark@google.com        SkDebugf("  %s [%s]\n", __FUNCTION__, tests[index].str);
51738dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com        (*tests[index].fun)();
5174af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com        firstTestComplete = true;
51758f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com        if (tests[index].fun == stopTest) {
51768f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com            SkDebugf("lastTest\n");
51778f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com        }
5178235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com        if (index == last) {
5179235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com            break;
5180235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com        }
5181235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com        index += runReverse ? -1 : 1;
5182235f56a92f6eb6accbb243e11b3c45e3798f38f2caryclark@google.com    } while (true);
5183c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com    if (!runSubTestsFirst) {
518431143cf37fa38dc98f71c71e518ecc21c83b5e27caryclark@google.com        index = subTestCount - 1;
518531143cf37fa38dc98f71c71e518ecc21c83b5e27caryclark@google.com        do {
518631143cf37fa38dc98f71c71e518ecc21c83b5e27caryclark@google.com            SkDebugf("  %s [%s]\n", __FUNCTION__, subTests[index].str);
518731143cf37fa38dc98f71c71e518ecc21c83b5e27caryclark@google.com            (*subTests[index].fun)();
518831143cf37fa38dc98f71c71e518ecc21c83b5e27caryclark@google.com        } while (index--);
518931143cf37fa38dc98f71c71e518ecc21c83b5e27caryclark@google.com    }
519047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com#ifdef SK_DEBUG
519147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    gDebugMaxWindSum = SK_MaxS32;
519247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com    gDebugMaxWindValue = SK_MaxS32;
519347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com#endif
5194af46cff4ee6099cebf3aa395805748af7d193a31caryclark@google.com}
5195