| /* |
| * Copyright 2012 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #include "EdgeWalker_Test.h" |
| #include "Intersection_Tests.h" |
| #include "ShapeOps.h" |
| |
| #define TEST(name) { name, #name } |
| |
| static void testLine1() { |
| SkPath path; |
| path.moveTo(2,0); |
| path.lineTo(1,1); |
| path.lineTo(0,0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine1x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(2,0); |
| path.lineTo(1,1); |
| path.lineTo(0,0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void addInnerCWTriangle(SkPath& path) { |
| path.moveTo(3,0); |
| path.lineTo(4,1); |
| path.lineTo(2,1); |
| path.close(); |
| } |
| |
| static void addInnerCCWTriangle(SkPath& path) { |
| path.moveTo(3,0); |
| path.lineTo(2,1); |
| path.lineTo(4,1); |
| path.close(); |
| } |
| |
| static void addOuterCWTriangle(SkPath& path) { |
| path.moveTo(3,0); |
| path.lineTo(6,2); |
| path.lineTo(0,2); |
| path.close(); |
| } |
| |
| static void addOuterCCWTriangle(SkPath& path) { |
| path.moveTo(3,0); |
| path.lineTo(0,2); |
| path.lineTo(6,2); |
| path.close(); |
| } |
| |
| static void testLine2() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addInnerCWTriangle(path); |
| addOuterCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine2x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addInnerCWTriangle(path); |
| addOuterCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine3() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addInnerCCWTriangle(path); |
| addOuterCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine3x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addInnerCCWTriangle(path); |
| addOuterCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine3a() { |
| SkPath path; |
| addInnerCWTriangle(path); |
| addOuterCCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine3ax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addInnerCWTriangle(path); |
| addOuterCCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine3b() { |
| SkPath path; |
| addInnerCCWTriangle(path); |
| addOuterCCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine3bx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addInnerCCWTriangle(path); |
| addOuterCCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine4() { |
| SkPath path; |
| addOuterCCWTriangle(path); |
| addOuterCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine4x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addOuterCCWTriangle(path); |
| addOuterCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine5() { |
| SkPath path; |
| addOuterCWTriangle(path); |
| addOuterCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine5x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addOuterCWTriangle(path); |
| addOuterCWTriangle(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine6() { |
| SkPath path; |
| path.moveTo(0,0); |
| path.lineTo(4,0); |
| path.lineTo(2,2); |
| path.close(); |
| path.moveTo(2,0); |
| path.lineTo(6,0); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine6x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0,0); |
| path.lineTo(4,0); |
| path.lineTo(2,2); |
| path.close(); |
| path.moveTo(2,0); |
| path.lineTo(6,0); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine7() { |
| SkPath path; |
| path.moveTo(0,0); |
| path.lineTo(4,0); |
| path.lineTo(2,2); |
| path.close(); |
| path.moveTo(6,0); |
| path.lineTo(2,0); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine7x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0,0); |
| path.lineTo(4,0); |
| path.lineTo(2,2); |
| path.close(); |
| path.moveTo(6,0); |
| path.lineTo(2,0); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine7a() { |
| SkPath path; |
| path.moveTo(0,0); |
| path.lineTo(4,0); |
| path.lineTo(2,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine7ax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0,0); |
| path.lineTo(4,0); |
| path.lineTo(2,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine7b() { |
| SkPath path; |
| path.moveTo(0,0); |
| path.lineTo(4,0); |
| path.close(); |
| path.moveTo(6,0); |
| path.lineTo(2,0); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine7bx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0,0); |
| path.lineTo(4,0); |
| path.close(); |
| path.moveTo(6,0); |
| path.lineTo(2,0); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine8() { |
| SkPath path; |
| path.moveTo(0,4); |
| path.lineTo(4,4); |
| path.lineTo(2,2); |
| path.close(); |
| path.moveTo(2,4); |
| path.lineTo(6,4); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine8x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0,4); |
| path.lineTo(4,4); |
| path.lineTo(2,2); |
| path.close(); |
| path.moveTo(2,4); |
| path.lineTo(6,4); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine9() { |
| SkPath path; |
| path.moveTo(0,4); |
| path.lineTo(4,4); |
| path.lineTo(2,2); |
| path.close(); |
| path.moveTo(6,4); |
| path.lineTo(2,4); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine9x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0,4); |
| path.lineTo(4,4); |
| path.lineTo(2,2); |
| path.close(); |
| path.moveTo(6,4); |
| path.lineTo(2,4); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine10() { |
| SkPath path; |
| path.moveTo(0,4); |
| path.lineTo(4,4); |
| path.lineTo(2,2); |
| path.close(); |
| path.moveTo(2,1); |
| path.lineTo(3,4); |
| path.lineTo(6,1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine10x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0,4); |
| path.lineTo(4,4); |
| path.lineTo(2,2); |
| path.close(); |
| path.moveTo(2,1); |
| path.lineTo(3,4); |
| path.lineTo(6,1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine10a() { |
| SkPath path; |
| path.moveTo(0,4); |
| path.lineTo(8,4); |
| path.lineTo(4,0); |
| path.close(); |
| path.moveTo(2,2); |
| path.lineTo(3,3); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine10ax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0,4); |
| path.lineTo(8,4); |
| path.lineTo(4,0); |
| path.close(); |
| path.moveTo(2,2); |
| path.lineTo(3,3); |
| path.lineTo(4,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void addCWContainer(SkPath& path) { |
| path.moveTo(6,4); |
| path.lineTo(0,4); |
| path.lineTo(3,1); |
| path.close(); |
| } |
| |
| static void addCCWContainer(SkPath& path) { |
| path.moveTo(0,4); |
| path.lineTo(6,4); |
| path.lineTo(3,1); |
| path.close(); |
| } |
| |
| static void addCWContents(SkPath& path) { |
| path.moveTo(2,3); |
| path.lineTo(3,2); |
| path.lineTo(4,3); |
| path.close(); |
| } |
| |
| static void addCCWContents(SkPath& path) { |
| path.moveTo(3,2); |
| path.lineTo(2,3); |
| path.lineTo(4,3); |
| path.close(); |
| } |
| |
| static void testLine11() { |
| SkPath path; |
| addCWContainer(path); |
| addCWContents(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine11x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addCWContainer(path); |
| addCWContents(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine12() { |
| SkPath path; |
| addCCWContainer(path); |
| addCWContents(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine12x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addCCWContainer(path); |
| addCWContents(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine13() { |
| SkPath path; |
| addCWContainer(path); |
| addCCWContents(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine13x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addCWContainer(path); |
| addCCWContents(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine14() { |
| SkPath path; |
| addCCWContainer(path); |
| addCCWContents(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine14x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| addCCWContainer(path); |
| addCCWContents(path); |
| testSimplifyx(path); |
| } |
| |
| static void testLine15() { |
| SkPath path; |
| path.addRect(0, 0, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine15x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine16() { |
| SkPath path; |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 4, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine16x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 4, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine17() { |
| SkPath path; |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine17x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine18() { |
| SkPath path; |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 4, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine18x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 4, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine19() { |
| SkPath path; |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 16, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine19x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 16, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine20() { |
| SkPath path; |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 12, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine20x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 12, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine21() { |
| SkPath path; |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 16, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine21x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 16, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine22() { |
| SkPath path; |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine22x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine23() { |
| SkPath path; |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine23x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine24a() { |
| SkPath path; |
| path.moveTo(2,0); |
| path.lineTo(4,4); |
| path.lineTo(0,4); |
| path.close(); |
| path.moveTo(2,0); |
| path.lineTo(1,2); |
| path.lineTo(2,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine24ax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(2,0); |
| path.lineTo(4,4); |
| path.lineTo(0,4); |
| path.close(); |
| path.moveTo(2,0); |
| path.lineTo(1,2); |
| path.lineTo(2,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine24() { |
| SkPath path; |
| path.addRect(0, 18, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine24x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 18, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine25() { |
| SkPath path; |
| path.addRect(0, 6, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine25x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 6, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine26() { |
| SkPath path; |
| path.addRect(0, 18, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 12, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine26x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 18, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 12, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine27() { |
| SkPath path; |
| path.addRect(0, 18, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 8, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine27x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 18, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 8, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine28() { |
| SkPath path; |
| path.addRect(0, 6, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine28x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 6, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine29() { |
| SkPath path; |
| path.addRect(0, 18, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 12, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine29x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 18, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 12, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine30() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 4, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine30x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 4, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine31() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 4, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine31x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 4, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine32() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine32x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine33() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 16, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine33x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 16, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine34() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 6, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine34x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 6, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine35() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 0, 18, 18, SkPath::kCW_Direction); |
| path.addRect(4, 16, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine35x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 0, 18, 18, SkPath::kCW_Direction); |
| path.addRect(4, 16, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine36() { |
| SkPath path; |
| path.addRect(0, 10, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 12, 18, 18, SkPath::kCW_Direction); |
| path.addRect(4, 16, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine36x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 10, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 12, 18, 18, SkPath::kCW_Direction); |
| path.addRect(4, 16, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine37() { |
| SkPath path; |
| path.addRect(0, 20, 20, 20, SkPath::kCW_Direction); |
| path.addRect(18, 24, 30, 30, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine37x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 20, 20, 20, SkPath::kCW_Direction); |
| path.addRect(18, 24, 30, 30, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine38() { |
| SkPath path; |
| path.addRect(10, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(6, 12, 18, 18, SkPath::kCW_Direction); |
| path.addRect(12, 12, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine38x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(10, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(6, 12, 18, 18, SkPath::kCW_Direction); |
| path.addRect(12, 12, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine40() { |
| SkPath path; |
| path.addRect(10, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(12, 18, 24, 24, SkPath::kCW_Direction); |
| path.addRect(4, 16, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine40x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(10, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(12, 18, 24, 24, SkPath::kCW_Direction); |
| path.addRect(4, 16, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine41() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(18, 24, 30, 30, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine41x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(18, 24, 30, 30, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine42() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(8, 16, 17, 17, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine42x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(8, 16, 17, 17, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine43() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 24, 18, 18, SkPath::kCW_Direction); |
| path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine43x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 24, 18, 18, SkPath::kCW_Direction); |
| path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine44() { |
| SkPath path; |
| path.addRect(10, 40, 30, 30, SkPath::kCW_Direction); |
| path.addRect(18, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(18, 32, 27, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine44x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(10, 40, 30, 30, SkPath::kCW_Direction); |
| path.addRect(18, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(18, 32, 27, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine45() { |
| SkPath path; |
| path.addRect(10, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(18, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 32, 33, 36, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine45x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(10, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(18, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 32, 33, 36, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine46() { |
| SkPath path; |
| path.addRect(10, 40, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 0, 36, 36, SkPath::kCW_Direction); |
| path.addRect(24, 32, 33, 36, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine46x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(10, 40, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 0, 36, 36, SkPath::kCW_Direction); |
| path.addRect(24, 32, 33, 36, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine47() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine47x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine48() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 6, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine48x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 6, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine49() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine49x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine50() { |
| SkPath path; |
| path.addRect(10, 30, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 20, 36, 30, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine50x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(10, 30, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 20, 36, 30, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine51() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine51x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine52() { |
| SkPath path; |
| path.addRect(0, 30, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 20, 18, 30, SkPath::kCW_Direction); |
| path.addRect(32, 0, 36, 41, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine52x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 30, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 20, 18, 30, SkPath::kCW_Direction); |
| path.addRect(32, 0, 36, 41, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine53() { |
| SkPath path; |
| path.addRect(10, 30, 30, 30, SkPath::kCW_Direction); |
| path.addRect(12, 20, 24, 30, SkPath::kCW_Direction); |
| path.addRect(12, 32, 21, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine53x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(10, 30, 30, 30, SkPath::kCW_Direction); |
| path.addRect(12, 20, 24, 30, SkPath::kCW_Direction); |
| path.addRect(12, 32, 21, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine54() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 0, 18, 18, SkPath::kCW_Direction); |
| path.addRect(8, 4, 17, 17, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine54x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 0, 18, 18, SkPath::kCW_Direction); |
| path.addRect(8, 4, 17, 17, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine55() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 6, 18, 18, SkPath::kCW_Direction); |
| path.addRect(4, 4, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine55x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 6, 18, 18, SkPath::kCW_Direction); |
| path.addRect(4, 4, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine56() { |
| SkPath path; |
| path.addRect(0, 20, 20, 20, SkPath::kCW_Direction); |
| path.addRect(18, 20, 30, 30, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine56x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 20, 20, 20, SkPath::kCW_Direction); |
| path.addRect(18, 20, 30, 30, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine57() { |
| SkPath path; |
| path.addRect(20, 0, 40, 40, SkPath::kCW_Direction); |
| path.addRect(20, 0, 30, 40, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine57x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(20, 0, 40, 40, SkPath::kCW_Direction); |
| path.addRect(20, 0, 30, 40, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine58() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCCW_Direction); |
| path.addRect(0, 12, 9, 9, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine58x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 0, 12, 12, SkPath::kCCW_Direction); |
| path.addRect(0, 12, 9, 9, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine59() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 6, 18, 18, SkPath::kCCW_Direction); |
| path.addRect(4, 4, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine59x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 6, 18, 18, SkPath::kCCW_Direction); |
| path.addRect(4, 4, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine60() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 12, 18, 18, SkPath::kCCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine60x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(6, 12, 18, 18, SkPath::kCCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine61() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(12, 0, 24, 24, SkPath::kCCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine61x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(12, 0, 24, 24, SkPath::kCCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine62() { |
| SkPath path; |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine62x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine63() { |
| SkPath path; |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(0, 10, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 6, 12, 12, SkPath::kCCW_Direction); |
| path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine63x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(0, 10, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 6, 12, 12, SkPath::kCCW_Direction); |
| path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine64() { |
| SkPath path; |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(10, 40, 30, 30, SkPath::kCW_Direction); |
| path.addRect(18, 6, 30, 30, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine64x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(10, 40, 30, 30, SkPath::kCW_Direction); |
| path.addRect(18, 6, 30, 30, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine65() { |
| SkPath path; |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(10, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 0, 36, 36, SkPath::kCW_Direction); |
| path.addRect(32, 6, 36, 41, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine65x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(10, 0, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 0, 36, 36, SkPath::kCW_Direction); |
| path.addRect(32, 6, 36, 41, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine66() { |
| SkPath path; |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(0, 30, 20, 20, SkPath::kCW_Direction); |
| path.addRect(12, 20, 24, 30, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine66x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(0, 30, 20, 20, SkPath::kCW_Direction); |
| path.addRect(12, 20, 24, 30, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine67() { |
| SkPath path; |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(10, 40, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 20, 36, 30, SkPath::kCW_Direction); |
| path.addRect(32, 0, 36, 41, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine67x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(10, 40, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 20, 36, 30, SkPath::kCW_Direction); |
| path.addRect(32, 0, 36, 41, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68a() { |
| SkPath path; |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCW_Direction); |
| path.addRect(1, 2, 4, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68ax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCW_Direction); |
| path.addRect(1, 2, 4, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68b() { |
| SkPath path; |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 2, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68bx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 2, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68c() { |
| SkPath path; |
| path.addRect(0, 0, 8, 8, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCW_Direction); |
| path.addRect(1, 2, 4, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68cx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 8, 8, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCW_Direction); |
| path.addRect(1, 2, 4, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68d() { |
| SkPath path; |
| path.addRect(0, 0, 8, 8, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 4, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68dx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 8, 8, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 4, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68e() { |
| SkPath path; |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 2, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68ex() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 2, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68f() { |
| SkPath path; |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 2, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68fx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 2, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68g() { |
| SkPath path; |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 2, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68gx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 2, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68h() { |
| SkPath path; |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 2, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine68hx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 8, 8, SkPath::kCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction); |
| path.addRect(1, 2, 2, 2, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine69() { |
| SkPath path; |
| path.addRect(0, 20, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 20, 12, 30, SkPath::kCW_Direction); |
| path.addRect(12, 32, 21, 36, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine69x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 20, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 20, 12, 30, SkPath::kCW_Direction); |
| path.addRect(12, 32, 21, 36, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine70() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 24, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 32, 21, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine70x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 24, 12, 12, SkPath::kCW_Direction); |
| path.addRect(12, 32, 21, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine71() { |
| SkPath path; |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(12, 0, 24, 24, SkPath::kCW_Direction); |
| path.addRect(12, 32, 21, 36, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine71x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 20, 20, SkPath::kCW_Direction); |
| path.addRect(12, 0, 24, 24, SkPath::kCW_Direction); |
| path.addRect(12, 32, 21, 36, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine72() { |
| SkPath path; |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(10, 40, 30, 30, SkPath::kCW_Direction); |
| path.addRect(6, 20, 18, 30, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine72x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(10, 40, 30, 30, SkPath::kCW_Direction); |
| path.addRect(6, 20, 18, 30, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine73() { |
| SkPath path; |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(0, 40, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 20, 12, 30, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine73x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(0, 40, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 20, 12, 30, SkPath::kCW_Direction); |
| path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine74() { |
| SkPath path; |
| path.addRect(20, 30, 40, 40, SkPath::kCW_Direction); |
| path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction); |
| path.addRect(32, 24, 36, 41, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine74x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(20, 30, 40, 40, SkPath::kCW_Direction); |
| path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction); |
| path.addRect(32, 24, 36, 41, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine75() { |
| SkPath path; |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(10, 0, 30, 30, SkPath::kCCW_Direction); |
| path.addRect(18, 0, 30, 30, SkPath::kCCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine75x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 60, 60, SkPath::kCW_Direction); |
| path.addRect(10, 0, 30, 30, SkPath::kCCW_Direction); |
| path.addRect(18, 0, 30, 30, SkPath::kCCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine76() { |
| SkPath path; |
| path.addRect(36, 0, 66, 60, SkPath::kCW_Direction); |
| path.addRect(10, 20, 40, 30, SkPath::kCW_Direction); |
| path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction); |
| path.addRect(32, 6, 36, 41, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine76x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(36, 0, 66, 60, SkPath::kCW_Direction); |
| path.addRect(10, 20, 40, 30, SkPath::kCW_Direction); |
| path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction); |
| path.addRect(32, 6, 36, 41, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine77() { |
| SkPath path; |
| path.addRect(20, 0, 40, 40, SkPath::kCW_Direction); |
| path.addRect(24, 6, 36, 36, SkPath::kCCW_Direction); |
| path.addRect(24, 32, 33, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine77x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(20, 0, 40, 40, SkPath::kCW_Direction); |
| path.addRect(24, 6, 36, 36, SkPath::kCCW_Direction); |
| path.addRect(24, 32, 33, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine78() { |
| SkPath path; |
| path.addRect(0, 0, 30, 60, SkPath::kCW_Direction); |
| path.addRect(10, 20, 30, 30, SkPath::kCCW_Direction); |
| path.addRect(18, 20, 30, 30, SkPath::kCCW_Direction); |
| path.addRect(32, 0, 36, 41, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine78x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 30, 60, SkPath::kCW_Direction); |
| path.addRect(10, 20, 30, 30, SkPath::kCCW_Direction); |
| path.addRect(18, 20, 30, 30, SkPath::kCCW_Direction); |
| path.addRect(32, 0, 36, 41, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine79() { |
| SkPath path; |
| path.addRect(0, 36, 60, 30, SkPath::kCW_Direction); |
| path.addRect(10, 30, 40, 30, SkPath::kCW_Direction); |
| path.addRect(0, 20, 12, 30, SkPath::kCCW_Direction); |
| path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine79x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 36, 60, 30, SkPath::kCW_Direction); |
| path.addRect(10, 30, 40, 30, SkPath::kCW_Direction); |
| path.addRect(0, 20, 12, 30, SkPath::kCCW_Direction); |
| path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine81() { |
| SkPath path; |
| path.addRect(-1, -1, 3, 3, SkPath::kCW_Direction); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| path.addRect(1, 1, 2, 2, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testDegenerate1() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(2, 0); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(2, 0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testDegenerate1x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(2, 0); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(2, 0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testDegenerate2() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(0, 0); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testDegenerate2x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(0, 0); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testDegenerate3() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(2, 0); |
| path.lineTo(1, 0); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(3, 0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testDegenerate3x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(2, 0); |
| path.lineTo(1, 0); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(3, 0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testDegenerate4() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(1, 3); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(1, 1); |
| path.lineTo(1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testDegenerate4x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(1, 3); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(1, 1); |
| path.lineTo(1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testNondegenerate1() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(3, 0); |
| path.lineTo(1, 3); |
| path.close(); |
| path.moveTo(1, 1); |
| path.lineTo(2, 1); |
| path.lineTo(1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testNondegenerate1x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(3, 0); |
| path.lineTo(1, 3); |
| path.close(); |
| path.moveTo(1, 1); |
| path.lineTo(2, 1); |
| path.lineTo(1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testNondegenerate2() { |
| SkPath path; |
| path.moveTo(1, 0); |
| path.lineTo(0, 1); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(0, 2); |
| path.lineTo(0, 3); |
| path.lineTo(1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testNondegenerate2x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(1, 0); |
| path.lineTo(0, 1); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(0, 2); |
| path.lineTo(0, 3); |
| path.lineTo(1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testNondegenerate3() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(2, 1); |
| path.close(); |
| path.moveTo(0, 1); |
| path.lineTo(1, 1); |
| path.lineTo(0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testNondegenerate3x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(2, 1); |
| path.close(); |
| path.moveTo(0, 1); |
| path.lineTo(1, 1); |
| path.lineTo(0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testNondegenerate4() { |
| SkPath path; |
| path.moveTo(1, 0); |
| path.lineTo(0, 1); |
| path.lineTo(1, 2); |
| path.close(); |
| path.moveTo(0, 2); |
| path.lineTo(0, 3); |
| path.lineTo(1, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testNondegenerate4x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(1, 0); |
| path.lineTo(0, 1); |
| path.lineTo(1, 2); |
| path.close(); |
| path.moveTo(0, 2); |
| path.lineTo(0, 3); |
| path.lineTo(1, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral5() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(2, 2); |
| path.lineTo(3, 2); |
| path.lineTo(3, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral5x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(2, 2); |
| path.lineTo(3, 2); |
| path.lineTo(3, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral6() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(2, 0); |
| path.lineTo(0, 2); |
| path.lineTo(2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral6x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(2, 0); |
| path.lineTo(0, 2); |
| path.lineTo(2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testFauxQuadralateral6() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(2, 0); |
| path.lineTo(1 + 1.0f/3, 2.0f/3); |
| path.close(); |
| path.moveTo(1 + 1.0f/3, 2.0f/3); |
| path.lineTo(0, 2); |
| path.lineTo(2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testFauxQuadralateral6x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(2, 0); |
| path.lineTo(1 + 1.0f/3, 2.0f/3); |
| path.close(); |
| path.moveTo(1 + 1.0f/3, 2.0f/3); |
| path.lineTo(0, 2); |
| path.lineTo(2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testFauxQuadralateral6a() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(3, 0); |
| path.lineTo(3, 3); |
| path.close(); |
| path.moveTo(3, 0); |
| path.lineTo(6, 0); |
| path.lineTo(4, 2); |
| path.close(); |
| path.moveTo(4, 2); |
| path.lineTo(0, 6); |
| path.lineTo(6, 6); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testFauxQuadralateral6ax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(3, 0); |
| path.lineTo(3, 3); |
| path.close(); |
| path.moveTo(3, 0); |
| path.lineTo(6, 0); |
| path.lineTo(4, 2); |
| path.close(); |
| path.moveTo(4, 2); |
| path.lineTo(0, 6); |
| path.lineTo(6, 6); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testFauxQuadralateral6b() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(3, 0); |
| path.lineTo(3, 3); |
| path.close(); |
| path.moveTo(3, 0); |
| path.lineTo(6, 0); |
| path.lineTo(4, 2); |
| path.close(); |
| path.moveTo(4, 2); |
| path.lineTo(6, 6); |
| path.lineTo(0, 6); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testFauxQuadralateral6bx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(3, 0); |
| path.lineTo(3, 3); |
| path.close(); |
| path.moveTo(3, 0); |
| path.lineTo(6, 0); |
| path.lineTo(4, 2); |
| path.close(); |
| path.moveTo(4, 2); |
| path.lineTo(6, 6); |
| path.lineTo(0, 6); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testFauxQuadralateral6c() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(3, 3); |
| path.lineTo(3, 0); |
| path.close(); |
| path.moveTo(3, 0); |
| path.lineTo(6, 0); |
| path.lineTo(4, 2); |
| path.close(); |
| path.moveTo(4, 2); |
| path.lineTo(0, 6); |
| path.lineTo(6, 6); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testFauxQuadralateral6cx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(3, 3); |
| path.lineTo(3, 0); |
| path.close(); |
| path.moveTo(3, 0); |
| path.lineTo(6, 0); |
| path.lineTo(4, 2); |
| path.close(); |
| path.moveTo(4, 2); |
| path.lineTo(0, 6); |
| path.lineTo(6, 6); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testFauxQuadralateral6d() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(3, 3); |
| path.lineTo(3, 0); |
| path.close(); |
| path.moveTo(3, 0); |
| path.lineTo(6, 0); |
| path.lineTo(4, 2); |
| path.close(); |
| path.moveTo(4, 2); |
| path.lineTo(6, 6); |
| path.lineTo(0, 6); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testFauxQuadralateral6dx() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(3, 3); |
| path.lineTo(3, 0); |
| path.close(); |
| path.moveTo(3, 0); |
| path.lineTo(6, 0); |
| path.lineTo(4, 2); |
| path.close(); |
| path.moveTo(4, 2); |
| path.lineTo(6, 6); |
| path.lineTo(0, 6); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral6a() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(3, 0); |
| path.lineTo(3, 3); |
| path.close(); |
| path.moveTo(3, 0); |
| path.lineTo(6, 0); |
| path.lineTo(0, 6); |
| path.lineTo(6, 6); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral6ax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(3, 0); |
| path.lineTo(3, 3); |
| path.close(); |
| path.moveTo(3, 0); |
| path.lineTo(6, 0); |
| path.lineTo(0, 6); |
| path.lineTo(6, 6); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral7() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(2, 1); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(1, 1); |
| path.lineTo(2, 2); |
| path.lineTo(1, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral7x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(2, 1); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(1, 1); |
| path.lineTo(2, 2); |
| path.lineTo(1, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral8() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(3, 1); |
| path.lineTo(1, 3); |
| path.lineTo(3, 3); |
| path.close(); |
| path.moveTo(2, 1); |
| path.lineTo(0, 2); |
| path.lineTo(3, 2); |
| path.lineTo(2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral8x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(3, 1); |
| path.lineTo(1, 3); |
| path.lineTo(3, 3); |
| path.close(); |
| path.moveTo(2, 1); |
| path.lineTo(0, 2); |
| path.lineTo(3, 2); |
| path.lineTo(2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral9() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(1, 2); |
| path.lineTo(2, 2); |
| path.close(); |
| path.moveTo(1, 1); |
| path.lineTo(2, 1); |
| path.lineTo(1, 3); |
| path.lineTo(2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral9x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.lineTo(1, 2); |
| path.lineTo(2, 2); |
| path.close(); |
| path.moveTo(1, 1); |
| path.lineTo(2, 1); |
| path.lineTo(1, 3); |
| path.lineTo(2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine1a() { |
| SkPath path; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 0, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine1ax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 0, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine2ax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 20, 20, 20, SkPath::kCW_Direction); |
| path.addRect(0, 20, 12, 30, SkPath::kCW_Direction); |
| path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine3aax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(10, 30, 30, 30, SkPath::kCW_Direction); |
| path.addRect(18, 20, 30, 30, SkPath::kCCW_Direction); |
| path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine4ax() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(10, 30, 30, 30, SkPath::kCW_Direction); |
| path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction); |
| path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic1() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(1, 0); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic1x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(1, 0); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic2() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(3, 0); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic2x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(3, 0); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic3() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 1, 0); |
| path.lineTo(0, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic3x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 1, 0); |
| path.lineTo(0, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic4() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 1, 0); |
| path.lineTo(0, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic4x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 1, 0); |
| path.lineTo(0, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic5() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(0, 1, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic6() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 1, 0); |
| path.lineTo(2, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(2, 0, 0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic7() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 1, 0); |
| path.lineTo(3, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(3, 0, 1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic8() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 1, 0); |
| path.lineTo(0, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(0, 1, 1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic9() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 1, 0); |
| path.lineTo(3, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(1, 2, 3, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic14() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 1, 0); |
| path.lineTo(3, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(3, 2, 3, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic15() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 1, 0); |
| path.lineTo(1, 3); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(0, 1); |
| path.quadTo(1, 1, 0, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic17x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 3, 1); |
| path.lineTo(0, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(3, 1, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic18() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 1, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic19() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(2, 0, 0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic20() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic21() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic22() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(0, 1, 2, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic23() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(0, 2, 1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic24() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(2, 0, 0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic25() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 1); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(2, 1, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic26() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 1); |
| path.lineTo(0, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic27() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 1); |
| path.lineTo(2, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(2, 1, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic28() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 2); |
| path.quadTo(1, 2, 0, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic29() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 2, 1); |
| path.lineTo(0, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic30() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 2); |
| path.lineTo(1, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(0, 1, 1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic31() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 2); |
| path.lineTo(1, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(0, 1, 1, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic32() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 2, 3); |
| path.lineTo(2, 3); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(3, 1, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic33() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(2, 0, 0, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 1); |
| path.quadTo(2, 1, 2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic34() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(2, 0, 0, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(1, 1); |
| path.quadTo(2, 1, 1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic35() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 1, 1, 1); |
| path.lineTo(1, 3); |
| path.close(); |
| path.moveTo(2, 0); |
| path.lineTo(3, 0); |
| path.quadTo(0, 1, 1, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic36() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(2, 1, 2, 3); |
| path.lineTo(2, 3); |
| path.close(); |
| path.moveTo(3, 1); |
| path.lineTo(1, 2); |
| path.quadTo(3, 2, 1, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic37() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 2, 1, 2); |
| path.lineTo(1, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(3, 1); |
| path.quadTo(0, 2, 1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic38() { |
| SkPath path; |
| path.moveTo(1, 0); |
| path.quadTo(0, 1, 1, 1); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(1, 2); |
| path.quadTo(2, 2, 1, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic51() { |
| SkPath path; |
| path.moveTo(369.863983f, 145.645813f); |
| path.quadTo(382.380371f, 121.254936f, 406.236359f, 121.254936f); |
| path.lineTo(369.863983f, 145.645813f); |
| path.close(); |
| path.moveTo(369.970581f, 137.94342f); |
| path.quadTo(383.98465f, 121.254936f, 406.235992f, 121.254936f); |
| path.lineTo(369.970581f, 137.94342f); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic53() { |
| SkPath path; |
| path.moveTo(303.12088f, 141.299606f); |
| path.lineTo(330.463562f, 217.659027f); |
| path.lineTo(303.12088f, 141.299606f); |
| path.close(); |
| path.moveTo(371.919067f, 205.854996f); |
| path.lineTo(326.236786f, 205.854996f); |
| path.quadTo(329.104431f, 231.663818f, 351.512085f, 231.663818f); |
| path.lineTo(371.919067f, 205.854996f); |
| path.close(); |
| testSimplifyx(path); |
| } |
| static void testQuadratic55() { |
| SkPath path; |
| path.moveTo(303.12088f, 141.299606f); |
| path.lineTo(330.463562f, 217.659027f); |
| path.lineTo(358.606506f, 141.299606f); |
| path.lineTo(303.12088f, 141.299606f); |
| path.close(); |
| path.moveTo(326.236786f, 205.854996f); |
| path.quadTo(329.104431f, 231.663818f, 351.512085f, 231.663818f); |
| path.lineTo(326.236786f, 205.854996f); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic56() { |
| SkPath path; |
| path.moveTo(366.608826f, 151.196014f); |
| path.quadTo(378.803101f, 136.674606f, 398.164948f, 136.674606f); |
| path.lineTo(354.009216f, 208.816208f); |
| path.lineTo(393.291473f, 102.232819f); |
| path.lineTo(359.978058f, 136.581512f); |
| path.quadTo(378.315979f, 136.581512f, 388.322723f, 149.613556f); |
| path.lineTo(364.390686f, 157.898193f); |
| path.quadTo(375.281769f, 136.674606f, 396.039917f, 136.674606f); |
| path.lineTo(350, 120); |
| path.lineTo(366.608826f, 151.196014f); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine80() { |
| SkPath path; |
| path.moveTo(4, 0); |
| path.lineTo(3, 7); |
| path.lineTo(7, 5); |
| path.lineTo(2, 2); |
| path.close(); |
| path.moveTo(0, 6); |
| path.lineTo(6, 12); |
| path.lineTo(8, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic58() { |
| SkPath path; |
| path.moveTo(283.714233f, 240); |
| path.lineTo(283.714233f, 141.299606f); |
| path.lineTo(303.12088f, 141.299606f); |
| path.lineTo(330.463562f, 217.659027f); |
| path.lineTo(358.606506f, 141.299606f); |
| path.lineTo(362.874634f, 159.705902f); |
| path.lineTo(335.665344f, 233.397751f); |
| path.lineTo(322.12738f, 233.397751f); |
| path.lineTo(295.718353f, 159.505829f); |
| path.lineTo(295.718353f, 240); |
| path.lineTo(283.714233f, 240); |
| path.close(); |
| path.moveTo(322.935669f, 231.030273f); |
| path.quadTo(312.832214f, 220.393295f, 312.832214f, 203.454178f); |
| path.quadTo(312.832214f, 186.981888f, 321.73526f, 176.444946f); |
| path.quadTo(330.638306f, 165.90802f, 344.509705f, 165.90802f); |
| path.quadTo(357.647522f, 165.90802f, 364.81665f, 175.244537f); |
| path.lineTo(371.919067f, 205.854996f); |
| path.lineTo(326.236786f, 205.854996f); |
| path.quadTo(329.104431f, 231.663818f, 351.512085f, 231.663818f); |
| path.lineTo(322.935669f, 231.030273f); |
| path.close(); |
| path.moveTo(326.837006f, 195.984955f); |
| path.lineTo(358.78125f, 195.984955f); |
| path.quadTo(358.78125f, 175.778046f, 343.709442f, 175.778046f); |
| path.quadTo(328.570923f, 175.778046f, 326.837006f, 195.984955f); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic59x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(2, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(2, 0); |
| path.quadTo(3, 1, 1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic59() { |
| SkPath path; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(2, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(2, 0); |
| path.quadTo(3, 1, 1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic63() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(3, 2); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(2, 1); |
| path.quadTo(2, 1, 2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic64() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(2, 3); |
| path.close(); |
| path.moveTo(1, 2); |
| path.lineTo(2, 2); |
| path.quadTo(0, 3, 3, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic65() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(3, 2); |
| path.close(); |
| path.moveTo(2, 1); |
| path.lineTo(2, 2); |
| path.quadTo(0, 3, 1, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic67x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 2, 1); |
| path.lineTo(2, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(2, 0); |
| path.quadTo(1, 1, 3, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic68() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.lineTo(1, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(0, 1, 2, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic69() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 1); |
| path.lineTo(3, 2); |
| path.close(); |
| path.moveTo(2, 0); |
| path.lineTo(1, 1); |
| path.quadTo(3, 2, 2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic70x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 1); |
| path.lineTo(1, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(0, 1, 2, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic71() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 1); |
| path.lineTo(3, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 1, 3, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic72() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 2); |
| path.lineTo(1, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(0, 1, 3, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic73() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 0, 3); |
| path.lineTo(0, 3); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(0, 1, 1, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic74() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 3); |
| path.lineTo(1, 3); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 1); |
| path.quadTo(3, 2, 2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic75() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 3); |
| path.lineTo(2, 3); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 1); |
| path.quadTo(3, 2, 2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic76() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 0, 0); |
| path.lineTo(2, 3); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(1, 2); |
| path.quadTo(1, 2, 2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic77() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 1); |
| path.lineTo(3, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(0, 1, 3, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic78() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 2); |
| path.lineTo(3, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(2, 1, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic79() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 1, 2); |
| path.lineTo(3, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 0); |
| path.quadTo(0, 1, 3, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testEight1() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(2, 2); |
| path.lineTo(0, 2); |
| path.lineTo(2, 0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testEight2() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(2, 0); |
| path.lineTo(0, 2); |
| path.lineTo(2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testEight3() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(0, 2); |
| path.lineTo(2, 0); |
| path.lineTo(2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testEight4() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(2, 2); |
| path.lineTo(2, 0); |
| path.lineTo(0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testEight5() { |
| SkPath path; |
| path.moveTo(1, 0); |
| path.lineTo(1, 2); |
| path.lineTo(0, 2); |
| path.lineTo(2, 0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testEight6() { |
| SkPath path; |
| path.moveTo(1, 0); |
| path.lineTo(2, 0); |
| path.lineTo(0, 2); |
| path.lineTo(1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testEight7() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(0, 1); |
| path.lineTo(2, 1); |
| path.lineTo(2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testEight8() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(2, 2); |
| path.lineTo(2, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testEight9() { |
| SkPath path; |
| path.moveTo(1, 0); |
| path.lineTo(1, 2); |
| path.lineTo(2, 1); |
| path.lineTo(0, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testEight10() { |
| SkPath path; |
| path.moveTo(1, 0); |
| path.lineTo(0, 1); |
| path.lineTo(2, 1); |
| path.lineTo(1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic80() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(1, 0, 2, 3); |
| path.lineTo(2, 3); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(3, 0); |
| path.quadTo(0, 1, 1, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic81() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(2, 0, 1, 1); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(2, 1, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic82() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(2, 0, 1, 1); |
| path.lineTo(0, 3); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(2, 1, 0, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic83() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 0, 2, 0); |
| path.lineTo(2, 2); |
| path.close(); |
| path.moveTo(0, 1); |
| path.lineTo(0, 2); |
| path.quadTo(2, 2, 1, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic84() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(2, 0, 1, 1); |
| path.lineTo(2, 1); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(2, 0); |
| path.quadTo(0, 1, 2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic85() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(3, 0, 1, 1); |
| path.lineTo(1, 1); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(3, 0); |
| path.quadTo(0, 1, 1, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic86() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(0, 1, 1, 1); |
| path.lineTo(2, 3); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.quadTo(1, 1, 1, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic87() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(2, 1, 0, 2); |
| path.lineTo(2, 3); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 1); |
| path.quadTo(0, 2, 3, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic88() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(2, 1, 0, 2); |
| path.lineTo(2, 2); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(1, 1); |
| path.quadTo(0, 2, 2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic89x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(3, 1, 2, 2); |
| path.lineTo(0, 3); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(2, 1); |
| path.quadTo(3, 1, 3, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic90x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(0, 0); |
| path.quadTo(3, 0, 2, 2); |
| path.lineTo(1, 3); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(0, 1); |
| path.quadTo(3, 2, 2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic91() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.quadTo(3, 2, 2, 3); |
| path.lineTo(2, 3); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(1, 1); |
| path.quadTo(2, 1, 2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic92x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.moveTo(1, 0); |
| path.quadTo(3, 0, 2, 2); |
| path.lineTo(2, 2); |
| path.close(); |
| path.moveTo(2, 0); |
| path.lineTo(0, 1); |
| path.quadTo(3, 2, 2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testLine82() { |
| SkPath path; |
| path.addRect(20, 0, 40, 40, SkPath::kCCW_Direction); |
| path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction); |
| path.addRect(24, 32, 33, 36, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine82a() { |
| SkPath path; |
| path.addRect(0, 0, 6, 10, SkPath::kCW_Direction); |
| path.addRect(2, 2, 4, 4, SkPath::kCW_Direction); |
| path.addRect(2, 6, 4, 8, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine82b() { |
| SkPath path; |
| path.addRect(0, 0, 6, 10, SkPath::kCW_Direction); |
| path.addRect(2, 2, 4, 4, SkPath::kCW_Direction); |
| path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine82c() { |
| SkPath path; |
| path.addRect(0, 0, 6, 10, SkPath::kCW_Direction); |
| path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction); |
| path.addRect(2, 6, 4, 8, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine82d() { |
| SkPath path; |
| path.addRect(0, 0, 6, 10, SkPath::kCW_Direction); |
| path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction); |
| path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine82e() { |
| SkPath path; |
| path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 4, 4, SkPath::kCW_Direction); |
| path.addRect(2, 6, 4, 8, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine82f() { |
| SkPath path; |
| path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 4, 4, SkPath::kCW_Direction); |
| path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine82g() { |
| SkPath path; |
| path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction); |
| path.addRect(2, 6, 4, 8, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine82h() { |
| SkPath path; |
| path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction); |
| path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction); |
| path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine83() { |
| SkPath path; |
| path.addRect(10, 30, 30, 40, SkPath::kCCW_Direction); |
| path.addRect(0, 12, 12, 18, SkPath::kCCW_Direction); |
| path.addRect(4, 13, 13, 16, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine84() { |
| SkPath path; |
| path.addRect(0, 12, 60, 30, SkPath::kCCW_Direction); |
| path.addRect(10, 20, 40, 30, SkPath::kCW_Direction); |
| path.addRect(0, 12, 12, 12, SkPath::kCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine84x() { |
| SkPath path; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 12, 60, 30, SkPath::kCCW_Direction); |
| path.addRect(10, 20, 40, 30, SkPath::kCCW_Direction); |
| path.addRect(0, 12, 12, 12, SkPath::kCCW_Direction); |
| path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testLine85() { |
| SkPath path; |
| path.addRect(36, 0, 66, 60, SkPath::kCCW_Direction); |
| path.addRect(20, 0, 40, 40, SkPath::kCCW_Direction); |
| path.addRect(12, 0, 24, 24, SkPath::kCCW_Direction); |
| path.addRect(32, 0, 36, 41, SkPath::kCCW_Direction); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadralateral1() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(0, 0); |
| path.lineTo(3, 2); |
| path.close(); |
| path.moveTo(0, 0); |
| path.lineTo(2, 1); |
| path.lineTo(2, 2); |
| path.lineTo(2, 3); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testCubic1() { |
| SkPath path; |
| path.moveTo(0, 0); |
| path.cubicTo(0, 1, 1, 1, 1, 0); |
| path.close(); |
| path.moveTo(1, 0); |
| path.cubicTo(0, 0, 0, 1, 1, 1); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuadratic93() { |
| SkPath path; |
| path.moveTo(3, 0); |
| path.quadTo(0, 1, 3, 2); |
| path.lineTo(0, 3); |
| path.close(); |
| path.moveTo(1, 0); |
| path.lineTo(2, 0); |
| path.quadTo(1, 1, 2, 2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void cubicOp1d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(0,2, 1,0, 1,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(0,1, 1,0, 2,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp2d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(0,1, 1,0, 1,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(0,1, 2,0, 1,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp3d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(2,3, 1,0, 1,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(0,1, 1,0, 3,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp5d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(0,2, 1,0, 2,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(0,2, 1,0, 2,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp6d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(0,6, 1,0, 3,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(0,3, 1,0, 6,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp7d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(3,4, 1,0, 3,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(0,3, 1,0, 4,3); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp8d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(0,5, 1,0, 4,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(0,4, 1,0, 5,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp9d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,6, 1,0, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(1,2, 1,0, 6,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void quadOp9d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.quadTo(1,6, 1.5f,1); |
| path.quadTo(1.5f,0.5f, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.quadTo(1,2, 1.4f,1); |
| pathB.quadTo(3,0.4f, 6,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void lineOp9d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.lineTo(1,6); |
| path.lineTo(1.5f,1); |
| path.lineTo(1.8f,0.8f); |
| path.lineTo(2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.lineTo(1,2); |
| pathB.lineTo(1.4f,1); |
| pathB.lineTo(3,0.4f); |
| pathB.lineTo(6,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp1i() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,2, 1,0, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(1,2, 1,0, 2,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kIntersect_Op); |
| } |
| |
| static void cubicOp10d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,3, 1,0, 4,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(1,4, 1,0, 3,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp11d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(3,4, 1,0, 5,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(1,5, 1,0, 4,3); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp12d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,6, 1,0, 1,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(0,1, 1,0, 6,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp13d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(4,5, 1,0, 5,3); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(3,5, 1,0, 5,4); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp14d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(0,2, 2,0, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,2); |
| pathB.cubicTo(1,2, 1,0, 2,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp15d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(3,6, 2,0, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,2); |
| pathB.cubicTo(1,2, 1,0, 6,3); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp16d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(0,1, 3,0, 1,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,3); |
| pathB.cubicTo(0,1, 2,0, 1,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp17d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(0,2, 4,0, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,4); |
| pathB.cubicTo(1,2, 2,0, 2,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp18d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(3,5, 2,0, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,2); |
| pathB.cubicTo(1,2, 1,0, 5,3); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp19i() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(0,1, 2,1, 6,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,2); |
| pathB.cubicTo(2,6, 2,0, 1,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kIntersect_Op); |
| } |
| |
| static void cubicOp20d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(0,1, 6,0, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,6); |
| pathB.cubicTo(1,2, 1,0, 1,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp21d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(0,1, 2,1, 6,5); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,2); |
| pathB.cubicTo(5,6, 1,0, 1,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp22d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(2,3, 3,0, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,3); |
| pathB.cubicTo(1,2, 1,0, 3,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp23d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,2, 4,0, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,4); |
| pathB.cubicTo(1,2, 1,0, 2,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp24d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,2, 2,0, 3,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,2); |
| pathB.cubicTo(2,3, 1,0, 2,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void testIntersect1() { |
| SkPath one, two; |
| one.addRect(0, 0, 6, 6, SkPath::kCW_Direction); |
| two.addRect(3, 3, 9, 9, SkPath::kCW_Direction); |
| testShapeOp(one, two, kIntersect_Op); |
| } |
| |
| static void testUnion1() { |
| SkPath one, two; |
| one.addRect(0, 0, 6, 6, SkPath::kCW_Direction); |
| two.addRect(3, 3, 9, 9, SkPath::kCW_Direction); |
| testShapeOp(one, two, kUnion_Op); |
| } |
| |
| static void testDiff1() { |
| SkPath one, two; |
| one.addRect(0, 0, 6, 6, SkPath::kCW_Direction); |
| two.addRect(3, 3, 9, 9, SkPath::kCW_Direction); |
| testShapeOp(one, two, kDifference_Op); |
| } |
| |
| static void testXor1() { |
| SkPath one, two; |
| one.addRect(0, 0, 6, 6, SkPath::kCW_Direction); |
| two.addRect(3, 3, 9, 9, SkPath::kCW_Direction); |
| testShapeOp(one, two, kXor_Op); |
| } |
| |
| static void testIntersect2() { |
| SkPath one, two; |
| one.addRect(0, 0, 6, 6, SkPath::kCW_Direction); |
| two.addRect(0, 3, 9, 9, SkPath::kCW_Direction); |
| testShapeOp(one, two, kIntersect_Op); |
| } |
| |
| static void testUnion2() { |
| SkPath one, two; |
| one.addRect(0, 0, 6, 6, SkPath::kCW_Direction); |
| two.addRect(0, 3, 9, 9, SkPath::kCW_Direction); |
| testShapeOp(one, two, kUnion_Op); |
| } |
| |
| static void testDiff2() { |
| SkPath one, two; |
| one.addRect(0, 0, 6, 6, SkPath::kCW_Direction); |
| two.addRect(0, 3, 9, 9, SkPath::kCW_Direction); |
| testShapeOp(one, two, kDifference_Op); |
| } |
| |
| static void testXor2() { |
| SkPath one, two; |
| one.addRect(0, 0, 6, 6, SkPath::kCW_Direction); |
| two.addRect(0, 3, 9, 9, SkPath::kCW_Direction); |
| testShapeOp(one, two, kXor_Op); |
| } |
| |
| static void testOp1d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| path.addRect(0, 0, 2, 2, SkPath::kCW_Direction); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void testOp2d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| path.addRect(0, 0, 2, 2, SkPath::kCW_Direction); |
| pathB.setFillType(SkPath::kEvenOdd_FillType); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void testOp3d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| path.addRect(1, 1, 2, 2, SkPath::kCW_Direction); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void testOp1u() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| path.addRect(0, 0, 3, 3, SkPath::kCW_Direction); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| testShapeOp(path, pathB, kUnion_Op); |
| } |
| |
| static void testOp4d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| path.addRect(2, 2, 4, 4, SkPath::kCW_Direction); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void testOp5d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 2, 2, SkPath::kCW_Direction); |
| path.addRect(0, 0, 3, 3, SkPath::kCW_Direction); |
| pathB.setFillType(SkPath::kEvenOdd_FillType); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void testOp6d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| path.addRect(0, 0, 3, 3, SkPath::kCW_Direction); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void testOp7d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 2, 2, SkPath::kCW_Direction); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| pathB.setFillType(SkPath::kEvenOdd_FillType); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| pathB.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void testOp2u() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kEvenOdd_FillType); |
| path.addRect(0, 0, 2, 2, SkPath::kCW_Direction); |
| path.addRect(0, 0, 2, 2, SkPath::kCW_Direction); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.addRect(0, 0, 3, 3, SkPath::kCW_Direction); |
| pathB.addRect(1, 1, 2, 2, SkPath::kCW_Direction); |
| testShapeOp(path, pathB, kUnion_Op); |
| } |
| |
| static void testOp8d() { |
| SkPath path, pathB; |
| path.addRect(0, 0, 640, 480); |
| pathB.moveTo(577330, 1971.72f); |
| pathB.cubicTo(10.7082f, -116.596f, 262.057f, 45.6468f, 294.694f, 1.96237f); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| static void cubicOp25i() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(2,4, 5,0, 3,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,5); |
| pathB.cubicTo(2,3, 1,0, 4,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kIntersect_Op); |
| } |
| |
| static void cubicOp26d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(3,4, 4,0, 3,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,4); |
| pathB.cubicTo(2,3, 1,0, 4,3); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp27d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(3,6, 1,0, 5,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(2,5, 1,0, 6,3); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp28u() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,4, 6,0, 3,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,6); |
| pathB.cubicTo(2,3, 1,0, 4,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kUnion_Op); |
| } |
| |
| static void cubicOp29d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(2,5, 6,0, 4,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,6); |
| pathB.cubicTo(2,4, 1,0, 5,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp30d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(2,5, 6,0, 5,3); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,6); |
| pathB.cubicTo(3,5, 1,0, 5,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp31d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(0,3, 2,1, 4,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,2); |
| pathB.cubicTo(0,4, 2,0, 3,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp31u() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(0,3, 2,1, 4,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,2); |
| pathB.cubicTo(0,4, 2,0, 3,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kUnion_Op); |
| } |
| |
| static void cubicOp31x() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(0,3, 2,1, 4,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,2); |
| pathB.cubicTo(0,4, 2,0, 3,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kXor_Op); |
| } |
| |
| static void testCubic2() { |
| SkPath path; |
| path.moveTo(0,2); |
| path.cubicTo(0,3, 2,1, 4,0); |
| path.close(); |
| path.moveTo(1,2); |
| path.cubicTo(0,4, 2,0, 3,0); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void cubicOp32d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,2, 6,0, 3,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,6); |
| pathB.cubicTo(1,3, 1,0, 2,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp33i() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,2, 6,0, 3,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,6); |
| pathB.cubicTo(1,3, 1,0, 2,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kIntersect_Op); |
| } |
| |
| static void cubicOp34d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(3,5, 2,1, 3,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,2); |
| pathB.cubicTo(1,3, 1,0, 5,3); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp35d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,5, 2,1, 4,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,2); |
| pathB.cubicTo(0,4, 1,0, 5,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp36u() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,6, 2,0, 5,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,2); |
| pathB.cubicTo(1,5, 1,0, 6,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kUnion_Op); |
| } |
| |
| static void cubicOp37d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(2,6, 6,1, 4,3); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,6); |
| pathB.cubicTo(3,4, 1,0, 6,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| #if 1 |
| // this fails to detect a cubic/cubic intersection |
| // the slight overlap is missed when the cubics are approximated by quadratics |
| // and the subsequent line/cubic intersection also (correctly) misses the intersection |
| // if the line/cubic was a matching line/approx.quadratic then the missing intersection |
| // could have been detected |
| static void cubicOp38d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(0,6, 3,2, 4,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(2,3); |
| pathB.cubicTo(1,4, 1,0, 6,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| #endif |
| |
| static void cubicOp39d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(2,3, 5,1, 4,3); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,5); |
| pathB.cubicTo(3,4, 1,0, 3,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp40d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,5, 3,2, 4,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(2,3); |
| pathB.cubicTo(2,4, 1,0, 5,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp41i() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(2,6, 4,3, 6,4); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(3,4); |
| pathB.cubicTo(4,6, 1,0, 6,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kIntersect_Op); |
| } |
| |
| static void cubicOp42d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,2, 6,5, 5,4); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(5,6); |
| pathB.cubicTo(4,5, 1,0, 2,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp43d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(1,2, 4,0, 3,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,4); |
| pathB.cubicTo(1,3, 2,0, 2,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp44d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(3,6, 4,0, 3,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,4); |
| pathB.cubicTo(2,3, 2,0, 6,3); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp45d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(2,4, 4,0, 3,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,4); |
| pathB.cubicTo(2,3, 2,0, 4,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp46d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(3,5, 5,0, 4,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,5); |
| pathB.cubicTo(2,4, 2,0, 5,3); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp47d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(1,6, 6,2, 5,4); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(2,6); |
| pathB.cubicTo(4,5, 1,0, 6,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp48d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(2,3, 5,1, 3,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,5); |
| pathB.cubicTo(2,3, 2,0, 3,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp49d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(1,5, 3,2, 4,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(2,3); |
| pathB.cubicTo(1,4, 2,0, 5,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp50d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,3); |
| path.cubicTo(1,6, 5,0, 5,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,5); |
| pathB.cubicTo(1,5, 3,0, 6,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp51d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,3); |
| path.cubicTo(1,2, 4,1, 6,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(1,4); |
| pathB.cubicTo(0,6, 3,0, 2,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp52d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(1,2, 5,4, 4,3); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(4,5); |
| pathB.cubicTo(3,4, 2,0, 2,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp53d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,3); |
| path.cubicTo(1,2, 5,3, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(3,5); |
| pathB.cubicTo(1,2, 3,0, 2,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp54d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,4); |
| path.cubicTo(1,3, 5,4, 4,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(4,5); |
| pathB.cubicTo(2,4, 4,0, 3,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp55d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,5); |
| path.cubicTo(1,3, 3,2, 5,0); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(2,3); |
| pathB.cubicTo(0,5, 5,0, 3,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp56d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(2,6, 5,0, 2,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,5); |
| pathB.cubicTo(1,2, 1,0, 6,2); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp57d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,5); |
| path.cubicTo(0,5, 5,4, 6,4); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(4,5); |
| pathB.cubicTo(4,6, 5,0, 5,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp58d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,5); |
| path.cubicTo(3,4, 6,5, 5,3); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(5,6); |
| pathB.cubicTo(3,5, 5,0, 4,3); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp59d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,1); |
| path.cubicTo(5,6, 4,0, 4,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,4); |
| pathB.cubicTo(1,4, 1,0, 6,5); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp60d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(0,2); |
| path.cubicTo(4,6, 6,0, 5,2); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(0,6); |
| pathB.cubicTo(2,5, 2,0, 6,4); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp61d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(1,2); |
| path.cubicTo(0,5, 3,2, 6,1); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(2,3); |
| pathB.cubicTo(1,6, 2,1, 5,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp62d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(1,3); |
| path.cubicTo(5,6, 5,3, 5,4); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(3,5); |
| pathB.cubicTo(4,5, 3,1, 6,5); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void cubicOp63d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.moveTo(2,3); |
| path.cubicTo(0,4, 3,2, 5,3); |
| path.close(); |
| pathB.setFillType(SkPath::kWinding_FillType); |
| pathB.moveTo(2,3); |
| pathB.cubicTo(3,5, 3,2, 4,0); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void testQuad1() { |
| SkPath path; |
| path.moveTo(0,0); |
| path.quadTo(0,0, 0,1); |
| path.lineTo(1,1); |
| path.close(); |
| path.moveTo(0,0); |
| path.quadTo(1,1, 0,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuad1z() { |
| SkPath path; |
| path.moveTo(0,0); |
| path.quadTo(0,0, 0,1); |
| path.lineTo(1,1); |
| path.close(); |
| path.moveTo(0,0); |
| path.lineTo(0.5f,1); |
| path.lineTo(0,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testQuad1c() { |
| SkPath path; |
| path.moveTo(0,0); |
| path.quadTo(0,0, 0,1); |
| path.lineTo(1,1); |
| path.close(); |
| path.moveTo(0,0); |
| path.cubicTo(0.5f,0.5f, 0.5f,1.5f, 0,2); |
| path.close(); |
| testSimplifyx(path); |
| } |
| |
| static void testRectOp1d() { |
| SkPath path, pathB; |
| path.moveTo(0,1); |
| path.cubicTo(0,1, 1,0, 3,0); |
| path.lineTo(0,1); |
| path.close(); |
| pathB.moveTo(0,1); |
| pathB.cubicTo(0,3, 1,0, 1,0); |
| pathB.lineTo(0,1); |
| pathB.close(); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void testCubicOp64d() { |
| SkPath path, pathB; |
| path.setFillType(SkPath::kWinding_FillType); |
| path.addRect(0, 0, 1, 1, SkPath::kCW_Direction); |
| path.addRect(2, 2, 3, 3, SkPath::kCW_Direction); |
| pathB.setFillType(SkPath::kEvenOdd_FillType); |
| pathB.addRect(0, 0, 4, 4, SkPath::kCW_Direction); |
| pathB.addRect(0, 0, 3, 3, SkPath::kCW_Direction); |
| testShapeOp(path, pathB, kDifference_Op); |
| } |
| |
| static void (*firstTest)() = testRectOp1d; |
| |
| static struct { |
| void (*fun)(); |
| const char* str; |
| } tests[] = { |
| TEST(testRectOp1d), |
| TEST(testCubicOp64d), |
| TEST(testQuad1c), |
| TEST(testQuad1z), |
| TEST(testQuad1), |
| TEST(testQuadratic93), // FIXME: gets stuck in a loop because top is unsortable |
| TEST(cubicOp63d), |
| TEST(cubicOp62d), |
| TEST(cubicOp61d), |
| TEST(cubicOp60d), |
| TEST(cubicOp59d), |
| TEST(cubicOp58d), |
| TEST(cubicOp57d), |
| TEST(cubicOp56d), |
| TEST(cubicOp55d), |
| TEST(cubicOp54d), |
| TEST(cubicOp53d), |
| TEST(cubicOp52d), |
| TEST(cubicOp51d), |
| TEST(cubicOp50d), |
| TEST(cubicOp49d), |
| TEST(cubicOp48d), |
| TEST(cubicOp47d), |
| TEST(cubicOp46d), |
| TEST(cubicOp45d), |
| TEST(cubicOp44d), |
| TEST(cubicOp43d), |
| TEST(cubicOp42d), |
| TEST(cubicOp41i), |
| TEST(cubicOp40d), |
| TEST(cubicOp39d), |
| TEST(cubicOp38d), |
| TEST(cubicOp37d), |
| TEST(cubicOp36u), |
| TEST(cubicOp35d), |
| TEST(cubicOp34d), |
| TEST(cubicOp33i), |
| TEST(cubicOp32d), |
| TEST(cubicOp31d), |
| TEST(testCubic2), |
| TEST(cubicOp31x), |
| TEST(cubicOp31u), |
| TEST(cubicOp30d), |
| TEST(cubicOp29d), |
| TEST(cubicOp28u), |
| TEST(cubicOp27d), |
| TEST(cubicOp26d), |
| TEST(cubicOp25i), |
| TEST(testOp8d), |
| TEST(testDiff1), |
| TEST(testIntersect1), |
| TEST(testUnion1), |
| TEST(testXor1), |
| TEST(testDiff2), |
| TEST(testIntersect2), |
| TEST(testUnion2), |
| TEST(testXor2), |
| TEST(testOp1d), |
| TEST(testOp2d), |
| TEST(testOp3d), |
| TEST(testOp1u), |
| TEST(testOp4d), |
| TEST(testOp5d), |
| TEST(testOp6d), |
| TEST(testOp7d), |
| TEST(testOp2u), |
| |
| TEST(cubicOp24d), |
| TEST(cubicOp23d), |
| TEST(cubicOp22d), |
| TEST(cubicOp21d), |
| TEST(cubicOp20d), |
| TEST(cubicOp19i), |
| TEST(cubicOp18d), |
| TEST(cubicOp17d), |
| TEST(cubicOp16d), |
| TEST(cubicOp15d), |
| TEST(cubicOp14d), |
| TEST(cubicOp13d), |
| TEST(cubicOp12d), |
| TEST(cubicOp11d), |
| TEST(cubicOp10d), |
| TEST(cubicOp1i), |
| TEST(cubicOp9d), |
| TEST(quadOp9d), |
| TEST(lineOp9d), |
| TEST(cubicOp8d), |
| TEST(cubicOp7d), |
| TEST(cubicOp6d), |
| TEST(cubicOp5d), |
| TEST(cubicOp3d), |
| TEST(cubicOp2d), |
| TEST(cubicOp1d), |
| TEST(testCubic1), |
| TEST(testQuadralateral1), |
| TEST(testLine85), |
| TEST(testLine84), |
| TEST(testLine84x), |
| TEST(testLine83), |
| TEST(testLine82h), |
| TEST(testLine82g), |
| TEST(testLine82f), |
| TEST(testLine82e), |
| TEST(testLine82d), |
| TEST(testLine82c), |
| TEST(testLine82b), |
| TEST(testLine82a), |
| TEST(testLine82), |
| TEST(testQuadratic92x), |
| TEST(testQuadratic91), |
| TEST(testQuadratic90x), |
| TEST(testQuadratic89x), |
| TEST(testQuadratic88), |
| TEST(testQuadratic87), |
| TEST(testQuadratic86), |
| TEST(testQuadratic85), |
| TEST(testQuadratic84), |
| TEST(testQuadratic83), |
| TEST(testQuadratic82), |
| TEST(testQuadratic81), |
| TEST(testQuadratic80), |
| TEST(testEight1), |
| TEST(testEight2), |
| TEST(testEight3), |
| TEST(testEight4), |
| TEST(testEight5), |
| TEST(testEight6), |
| TEST(testEight7), |
| TEST(testEight8), |
| TEST(testEight9), |
| TEST(testEight10), |
| TEST(testQuadratic79), |
| TEST(testQuadratic78), |
| TEST(testQuadratic77), |
| TEST(testQuadratic76), |
| TEST(testQuadratic75), |
| TEST(testQuadratic74), |
| TEST(testQuadratic73), |
| TEST(testQuadratic72), |
| TEST(testQuadratic71), |
| TEST(testQuadratic70x), |
| TEST(testQuadratic69), |
| TEST(testQuadratic68), |
| TEST(testQuadratic67x), |
| TEST(testQuadratic65), |
| TEST(testQuadratic64), |
| TEST(testQuadratic63), |
| TEST(testLine1a), |
| TEST(testLine1ax), |
| TEST(testQuadratic59), |
| TEST(testQuadratic59x), |
| TEST(testQuadratic58), |
| TEST(testQuadratic56), |
| TEST(testQuadratic55), |
| TEST(testQuadratic53), |
| TEST(testQuadratic51), |
| TEST(testQuadratic38), |
| TEST(testQuadratic37), |
| TEST(testQuadratic36), |
| TEST(testQuadratic35), |
| TEST(testQuadratic34), |
| TEST(testQuadratic33), |
| TEST(testQuadratic32), |
| TEST(testQuadratic31), |
| TEST(testQuadratic30), |
| TEST(testQuadratic29), |
| TEST(testQuadratic28), |
| TEST(testQuadratic27), |
| TEST(testQuadratic26), |
| TEST(testQuadratic25), |
| TEST(testQuadratic24), |
| TEST(testQuadratic23), |
| TEST(testQuadratic22), |
| TEST(testQuadratic21), |
| TEST(testQuadratic20), |
| TEST(testQuadratic19), |
| TEST(testQuadratic18), |
| TEST(testQuadratic17x), |
| TEST(testQuadratic15), |
| TEST(testQuadratic14), |
| TEST(testQuadratic9), |
| TEST(testQuadratic8), |
| TEST(testQuadratic7), |
| TEST(testQuadratic6), |
| TEST(testQuadratic5), |
| TEST(testQuadratic4x), |
| TEST(testQuadratic3x), |
| TEST(testQuadratic2x), |
| TEST(testQuadratic1x), |
| TEST(testQuadratic4), |
| TEST(testQuadratic3), |
| TEST(testQuadratic2), |
| TEST(testQuadratic1), |
| TEST(testLine4ax), |
| TEST(testLine3aax), |
| TEST(testLine2ax), |
| TEST(testLine1ax), |
| TEST(testQuadralateral9x), |
| TEST(testQuadralateral8x), |
| TEST(testQuadralateral7x), |
| TEST(testQuadralateral6x), |
| TEST(testQuadralateral6ax), |
| TEST(testQuadralateral9), |
| TEST(testQuadralateral8), |
| TEST(testQuadralateral7), |
| TEST(testQuadralateral6), |
| TEST(testQuadralateral6a), |
| TEST(testFauxQuadralateral6dx), |
| TEST(testFauxQuadralateral6cx), |
| TEST(testFauxQuadralateral6bx), |
| TEST(testFauxQuadralateral6ax), |
| TEST(testFauxQuadralateral6x), |
| TEST(testFauxQuadralateral6d), |
| TEST(testFauxQuadralateral6c), |
| TEST(testFauxQuadralateral6b), |
| TEST(testFauxQuadralateral6a), |
| TEST(testFauxQuadralateral6), |
| TEST(testQuadralateral5x), |
| TEST(testQuadralateral5), |
| TEST(testNondegenerate4x), |
| TEST(testNondegenerate3x), |
| TEST(testNondegenerate2x), |
| TEST(testNondegenerate1x), |
| TEST(testNondegenerate4), |
| TEST(testNondegenerate3), |
| TEST(testNondegenerate2), |
| TEST(testNondegenerate1), |
| TEST(testDegenerate4x), |
| TEST(testDegenerate3x), |
| TEST(testDegenerate2x), |
| TEST(testDegenerate1x), |
| TEST(testDegenerate4), |
| TEST(testDegenerate3), |
| TEST(testDegenerate2), |
| TEST(testDegenerate1), |
| TEST(testLine79x), |
| TEST(testLine78x), |
| TEST(testLine77x), |
| TEST(testLine76x), |
| TEST(testLine75x), |
| TEST(testLine74x), |
| TEST(testLine73x), |
| TEST(testLine72x), |
| TEST(testLine71x), |
| TEST(testLine70x), |
| TEST(testLine69x), |
| TEST(testLine68hx), |
| TEST(testLine68gx), |
| TEST(testLine68fx), |
| TEST(testLine68ex), |
| TEST(testLine68dx), |
| TEST(testLine68cx), |
| TEST(testLine68bx), |
| TEST(testLine68ax), |
| TEST(testLine67x), |
| TEST(testLine66x), |
| TEST(testLine65x), |
| TEST(testLine64x), |
| TEST(testLine63x), |
| TEST(testLine62x), |
| TEST(testLine61x), |
| TEST(testLine60x), |
| TEST(testLine59x), |
| TEST(testLine58x), |
| TEST(testLine57x), |
| TEST(testLine56x), |
| TEST(testLine55x), |
| TEST(testLine54x), |
| TEST(testLine53x), |
| TEST(testLine52x), |
| TEST(testLine51x), |
| TEST(testLine50x), |
| TEST(testLine49x), |
| TEST(testLine48x), |
| TEST(testLine47x), |
| TEST(testLine46x), |
| TEST(testLine45x), |
| TEST(testLine44x), |
| TEST(testLine43x), |
| TEST(testLine42x), |
| TEST(testLine41x), |
| TEST(testLine40x), |
| TEST(testLine38x), |
| TEST(testLine37x), |
| TEST(testLine36x), |
| TEST(testLine35x), |
| TEST(testLine34x), |
| TEST(testLine33x), |
| TEST(testLine32x), |
| TEST(testLine31x), |
| TEST(testLine30x), |
| TEST(testLine29x), |
| TEST(testLine28x), |
| TEST(testLine27x), |
| TEST(testLine26x), |
| TEST(testLine25x), |
| TEST(testLine24ax), |
| TEST(testLine24x), |
| TEST(testLine23x), |
| TEST(testLine22x), |
| TEST(testLine21x), |
| TEST(testLine20x), |
| TEST(testLine19x), |
| TEST(testLine18x), |
| TEST(testLine17x), |
| TEST(testLine16x), |
| TEST(testLine15x), |
| TEST(testLine14x), |
| TEST(testLine13x), |
| TEST(testLine12x), |
| TEST(testLine11x), |
| TEST(testLine10ax), |
| TEST(testLine10x), |
| TEST(testLine9x), |
| TEST(testLine8x), |
| TEST(testLine7bx), |
| TEST(testLine7ax), |
| TEST(testLine7x), |
| TEST(testLine6x), |
| TEST(testLine5x), |
| TEST(testLine4x), |
| TEST(testLine3bx), |
| TEST(testLine3ax), |
| TEST(testLine3x), |
| TEST(testLine2x), |
| TEST(testLine1x), |
| TEST(testLine81), |
| TEST(testLine80), |
| TEST(testLine79), |
| TEST(testLine78), |
| TEST(testLine77), |
| TEST(testLine76), |
| TEST(testLine75), |
| TEST(testLine74), |
| TEST(testLine73), |
| TEST(testLine72), |
| TEST(testLine71), |
| TEST(testLine70), |
| TEST(testLine69), |
| TEST(testLine68h), |
| TEST(testLine68g), |
| TEST(testLine68f), |
| TEST(testLine68e), |
| TEST(testLine68d), |
| TEST(testLine68c), |
| TEST(testLine68b), |
| TEST(testLine68a), |
| TEST(testLine67), |
| TEST(testLine66), |
| TEST(testLine65), |
| TEST(testLine64), |
| TEST(testLine63), |
| TEST(testLine62), |
| TEST(testLine61), |
| TEST(testLine60), |
| TEST(testLine59), |
| TEST(testLine58), |
| TEST(testLine57), |
| TEST(testLine56), |
| TEST(testLine55), |
| TEST(testLine54), |
| TEST(testLine53), |
| TEST(testLine52), |
| TEST(testLine51), |
| TEST(testLine50), |
| TEST(testLine49), |
| TEST(testLine48), |
| TEST(testLine47), |
| TEST(testLine46), |
| TEST(testLine45), |
| TEST(testLine44), |
| TEST(testLine43), |
| TEST(testLine42), |
| TEST(testLine41), |
| TEST(testLine40), |
| TEST(testLine38), |
| TEST(testLine37), |
| TEST(testLine36), |
| TEST(testLine35), |
| TEST(testLine34), |
| TEST(testLine33), |
| TEST(testLine32), |
| TEST(testLine31), |
| TEST(testLine30), |
| TEST(testLine29), |
| TEST(testLine28), |
| TEST(testLine27), |
| TEST(testLine26), |
| TEST(testLine25), |
| TEST(testLine24a), |
| TEST(testLine24), |
| TEST(testLine23), |
| TEST(testLine22), |
| TEST(testLine21), |
| TEST(testLine20), |
| TEST(testLine19), |
| TEST(testLine18), |
| TEST(testLine17), |
| TEST(testLine16), |
| TEST(testLine15), |
| TEST(testLine14), |
| TEST(testLine13), |
| TEST(testLine12), |
| TEST(testLine11), |
| TEST(testLine10a), |
| TEST(testLine10), |
| TEST(testLine9), |
| TEST(testLine8), |
| TEST(testLine7b), |
| TEST(testLine7a), |
| TEST(testLine7), |
| TEST(testLine6), |
| TEST(testLine5), |
| TEST(testLine4), |
| TEST(testLine3b), |
| TEST(testLine3a), |
| TEST(testLine3), |
| TEST(testLine2), |
| TEST(testLine1), |
| }; |
| |
| static const size_t testCount = sizeof(tests) / sizeof(tests[0]); |
| |
| |
| static struct { |
| void (*fun)(); |
| const char* str; |
| } subTests[] = { |
| TEST(cubicOp43d), |
| TEST(quadOp9d), |
| TEST(cubicOp9d), |
| TEST(cubicOp1i), |
| TEST(cubicOp10d), |
| TEST(cubicOp11d), |
| TEST(cubicOp15d), |
| TEST(cubicOp18d), |
| TEST(cubicOp22d), |
| TEST(cubicOp23d), |
| TEST(cubicOp24d), |
| TEST(cubicOp28u), |
| TEST(cubicOp33i), |
| TEST(cubicOp36u), |
| TEST(cubicOp40d), |
| }; |
| |
| static const size_t subTestCount = sizeof(subTests) / sizeof(subTests[0]); |
| |
| static void (*firstSubTest)() = 0; |
| |
| static bool skipAll = false; |
| static bool runSubTestsFirst = false; |
| static bool runReverse = false; |
| static void (*stopTest)() = 0; |
| |
| void SimplifyNew_Test() { |
| if (skipAll) { |
| return; |
| } |
| #ifdef SK_DEBUG |
| gDebugMaxWindSum = 4; |
| gDebugMaxWindValue = 4; |
| #endif |
| size_t index; |
| if (runSubTestsFirst && firstSubTest) { |
| index = subTestCount - 1; |
| while (index > 0 && subTests[index].fun != firstSubTest) { |
| --index; |
| } |
| SkDebugf(" %s [%s]\n", __FUNCTION__, subTests[index].str); |
| (*subTests[index].fun)(); |
| } |
| if (runSubTestsFirst) { |
| index = subTestCount - 1; |
| do { |
| SkDebugf(" %s [%s]\n", __FUNCTION__, subTests[index].str); |
| (*subTests[index].fun)(); |
| } while (index--); |
| } |
| index = testCount - 1; |
| if (firstTest) { |
| while (index > 0 && tests[index].fun != firstTest) { |
| --index; |
| } |
| #if FORCE_RELEASE == 0 |
| SkDebugf("<div id=\"%s\">\n", tests[index].str); |
| #endif |
| SkDebugf(" %s [%s]\n", __FUNCTION__, tests[index].str); |
| (*tests[index].fun)(); |
| } |
| index = runReverse ? testCount - 1 : 0; |
| size_t last = runReverse ? 0 : testCount - 1; |
| bool firstTestComplete = false; |
| do { |
| SkDebugf(" %s [%s]\n", __FUNCTION__, tests[index].str); |
| (*tests[index].fun)(); |
| firstTestComplete = true; |
| if (tests[index].fun == stopTest) { |
| SkDebugf("lastTest\n"); |
| } |
| if (index == last) { |
| break; |
| } |
| index += runReverse ? -1 : 1; |
| } while (true); |
| if (!runSubTestsFirst) { |
| index = subTestCount - 1; |
| do { |
| SkDebugf(" %s [%s]\n", __FUNCTION__, subTests[index].str); |
| (*subTests[index].fun)(); |
| } while (index--); |
| } |
| #ifdef SK_DEBUG |
| gDebugMaxWindSum = SK_MaxS32; |
| gDebugMaxWindValue = SK_MaxS32; |
| #endif |
| } |