19e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com/* 29e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com * Copyright 2012 Google Inc. 39e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com * 49e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com * Use of this source code is governed by a BSD-style license that can be 59e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com * found in the LICENSE file. 69e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com */ 7a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com#include "EdgeWalker_Test.h" 8a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com#include "Intersection_Tests.h" 9198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com#include "SkBitmap.h" 10198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com 11198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.comstatic SkBitmap bitmap; 12a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com 13a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.comstatic void testSimplifyQuadratic1() { 14a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com SkPath path, out; 15a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.moveTo(0, 0); 16a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.quadTo(1, 0, 1, 1); 17a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.close(); 18a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.moveTo(1, 0); 19a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.quadTo(0, 0, 0, 1); 20a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.close(); 21198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com testSimplify(path, true, out, bitmap); 22a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com} 23a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com 24a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.comstatic void testSimplifyQuadratic2() { 25a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com SkPath path, out; 26a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.moveTo(0, 0); 27a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.quadTo(20, 0, 20, 20); 28a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.close(); 29a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.moveTo(20, 0); 30a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.quadTo(0, 0, 0, 20); 31a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.close(); 32198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com testSimplify(path, true, out, bitmap); 33a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com} 34a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com 35a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.comstatic void testSimplifyQuadratic3() { 36a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com SkPath path, out; 37a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.moveTo(0, 0); 38a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.quadTo(20, 0, 20, 20); 39a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.close(); 40a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.moveTo(0, 20); 41a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.quadTo(0, 0, 20, 0); 42a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com path.close(); 43198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com testSimplify(path, true, out, bitmap); 44198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com} 45198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com 46198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.comstatic void testSimplifyQuadratic4() { 47198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com SkPath path, out; 48198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com path.moveTo(0, 20); 49198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com path.quadTo(20, 0, 40, 20); 50198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com path.close(); 51198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com path.moveTo(40, 10); 52198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com path.quadTo(20, 30, 0, 10); 53198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com path.close(); 54198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com testSimplify(path, true, out, bitmap); 55a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com drawAsciiPaths(path, out, true); 56a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com} 57a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com 5878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic5() { 5978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 6078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 6178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 0, 0); 6278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 6378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 6478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 6578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 6678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 0, 1); 6778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 6878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 6978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 7078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 7178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 7278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic6() { 7378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 7478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 7578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 0, 0); 7678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(1, 0); 7778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 7878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 7978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 8078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(1, 0, 0, 1); 8178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 8278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 8378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 8478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 8578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 8678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic7() { 8778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 8878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 8978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 0, 0); 9078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 1); 9178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 9278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 9378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 9478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(1, 0, 0, 2); 9578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 9678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 9778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 9878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 9978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 10078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic8() { 10178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 10278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 10378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 0, 0); 10478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 10578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 10678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 10778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 10878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(1, 0, 0, 2); 10978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 11078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 11178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 11278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 11378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 11478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic9() { 11578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 11678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 11778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 0, 0); 11878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(1, 1); 11978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 12078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 12178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 12278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(1, 0, 2, 2); 12378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 12478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 12578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 12678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 12778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 12878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic10() { 12978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 13078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 13178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 0, 0); 13278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 13378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 13478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 13578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 1); 13678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(1, 1, 1, 2); 13778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 13878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 13978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 14078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 14178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 14278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic11() { 14378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 14478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 14578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 0, 0); 14678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 2); 14778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 14878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 14978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(2, 1); 15078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(2, 2, 3, 3); 15178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 15278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 15378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 15478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 15578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 15678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic12() { 15778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 15878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 15978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 2); 16078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 16178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 16278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(3, 0); 16378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(1, 1, 0, 2); 16478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(3, 0); 16578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 16678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 16778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 16878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 16978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 17078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic13() { 17178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 17278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.compath.moveTo(0, 0); 17378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.compath.quadTo(0, 0, 1, 0); 17478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.compath.lineTo(1, 1); 17578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.compath.lineTo(0, 0); 17678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.compath.close(); 17778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.compath.moveTo(0, 0); 17878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.compath.quadTo(3, 0, 1, 1); 17978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.compath.lineTo(0, 0); 18078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.compath.close(); 18178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 18278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 18378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 18478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 18578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic14() { 18678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 18778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 18878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 0, 0); 18978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(1, 1); 19078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 19178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 19278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 19378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 1, 2, 1); 19478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 19578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 19678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 19778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 19878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 19978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic15() { 20078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 20178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 20278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 1, 3); 20378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(3, 3); 20478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 20578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 1); 20678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(1, 1); 20778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 3, 3, 3); 20878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 20978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 21078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 21178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 21278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 21378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.comstatic void testSimplifyQuadratic16() { 21478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com SkPath path, out; 21578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 21678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(0, 0, 0, 0); 21778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 1); 21878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 21978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.moveTo(0, 0); 22078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.lineTo(0, 0); 22178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.quadTo(1, 0, 0, 1); 22278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com path.close(); 22378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplify(path, true, out, bitmap); 22478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com drawAsciiPaths(path, out, true); 22578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com} 22678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 227fa0588ff672564af1c235a63589573829035a60bcaryclark@google.comstatic void testSimplifyQuadratic17() { 228fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com SkPath path, out; 229fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com path.moveTo(0, 0); 230fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com path.quadTo(0, 0, 0, 0); 231fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com path.lineTo(2, 2); 232fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com path.close(); 233fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com path.moveTo(0, 1); 234fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com path.lineTo(0, 1); 235fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com path.quadTo(2, 1, 3, 3); 236fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com path.close(); 237fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com testSimplify(path, true, out, bitmap); 238fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com drawAsciiPaths(path, out, true); 239fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com} 240fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com 241a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.comstatic void (*simplifyTests[])() = { 242fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com testSimplifyQuadratic17, 24378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic16, 24478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic15, 24578e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic14, 24678e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic13, 24778e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic12, 24878e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic11, 24978e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic10, 25078e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic9, 25178e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic8, 25278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic7, 25378e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic6, 25478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com testSimplifyQuadratic5, 255198e054b33051a6cd5f606ccbc8d539cefc5631fcaryclark@google.com testSimplifyQuadratic4, 256a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com testSimplifyQuadratic3, 257a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com testSimplifyQuadratic2, 258a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com testSimplifyQuadratic1, 259a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com}; 260a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com 261a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.comstatic size_t simplifyTestsCount = sizeof(simplifyTests) / sizeof(simplifyTests[0]); 262a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com 263fa0588ff672564af1c235a63589573829035a60bcaryclark@google.comstatic void (*firstTest)() = testSimplifyQuadratic14; 264fb173424e915e696a73067d616ce4f39a407261acaryclark@google.comstatic bool skipAll = false; 265a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com 266a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.comvoid SimplifyQuadraticPaths_Test() { 267fb173424e915e696a73067d616ce4f39a407261acaryclark@google.com if (skipAll) { 268fb173424e915e696a73067d616ce4f39a407261acaryclark@google.com return; 269fb173424e915e696a73067d616ce4f39a407261acaryclark@google.com } 270a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com size_t index = 0; 271a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com if (firstTest) { 272a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com while (index < simplifyTestsCount && simplifyTests[index] != firstTest) { 273a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com ++index; 274a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com } 275a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com } 276a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com bool firstTestComplete = false; 277a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com for ( ; index < simplifyTestsCount; ++index) { 278a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com (*simplifyTests[index])(); 279a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com if (simplifyTests[index] == testSimplifyQuadratic1) { 280a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com SkDebugf("%s last fast quad test\n", __FUNCTION__); 281a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com } 282a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com firstTestComplete = true; 283a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com } 284a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com} 285