1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2014 Google Inc. 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci#include "include/core/SkRegion.h" 9cb93a386Sopenharmony_ci#include "include/utils/SkRandom.h" 10cb93a386Sopenharmony_ci#include "tests/PathOpsExtendedTest.h" 11cb93a386Sopenharmony_ci#include "tests/SubsetPath.h" 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_ci#define DEBUG_SIMPLIFY_FAILS 0 14cb93a386Sopenharmony_ci 15cb93a386Sopenharmony_cistruct OvalSet { 16cb93a386Sopenharmony_ci SkRect fBounds; 17cb93a386Sopenharmony_ci int fColumns; 18cb93a386Sopenharmony_ci int fRows; 19cb93a386Sopenharmony_ci int fRotations; 20cb93a386Sopenharmony_ci SkScalar fXSpacing; 21cb93a386Sopenharmony_ci SkScalar fYSpacing; 22cb93a386Sopenharmony_ci}; 23cb93a386Sopenharmony_ci 24cb93a386Sopenharmony_cistatic void testOvalSet(const OvalSet& set, const SkPath& oval, SkOpBuilder* builder, 25cb93a386Sopenharmony_ci SkRegion* region, SkPath* result) { 26cb93a386Sopenharmony_ci for (int x = 0; x < set.fColumns; ++x) { 27cb93a386Sopenharmony_ci for (int y = 0; y < set.fRows; ++y) { 28cb93a386Sopenharmony_ci for (SkScalar r = 0; r < 360; r += 360.f / set.fRotations) { 29cb93a386Sopenharmony_ci SkPath rotated; 30cb93a386Sopenharmony_ci SkMatrix matrix; 31cb93a386Sopenharmony_ci matrix.reset(); 32cb93a386Sopenharmony_ci matrix.postRotate(r, 0, 0); 33cb93a386Sopenharmony_ci matrix.postTranslate(x * set.fXSpacing, y * set.fYSpacing); 34cb93a386Sopenharmony_ci oval.transform(matrix, &rotated); 35cb93a386Sopenharmony_ci if (builder) { 36cb93a386Sopenharmony_ci builder->add(rotated, kUnion_SkPathOp); 37cb93a386Sopenharmony_ci } else if (!region) { 38cb93a386Sopenharmony_ci Op(*result, rotated, kUnion_SkPathOp, result); 39cb93a386Sopenharmony_ci } else { 40cb93a386Sopenharmony_ci SkRegion rgnB, openClip; 41cb93a386Sopenharmony_ci openClip.setRect({-16000, -16000, 16000, 16000}); 42cb93a386Sopenharmony_ci rgnB.setPath(rotated, openClip); 43cb93a386Sopenharmony_ci region->op(rgnB, SkRegion::kUnion_Op); 44cb93a386Sopenharmony_ci } 45cb93a386Sopenharmony_ci } 46cb93a386Sopenharmony_ci } 47cb93a386Sopenharmony_ci } 48cb93a386Sopenharmony_ci if (builder) { 49cb93a386Sopenharmony_ci builder->resolve(result); 50cb93a386Sopenharmony_ci } else if (region) { 51cb93a386Sopenharmony_ci region->getBoundaryPath(result); 52cb93a386Sopenharmony_ci } 53cb93a386Sopenharmony_ci} 54cb93a386Sopenharmony_ci 55cb93a386Sopenharmony_cistatic void testOne(skiatest::Reporter* reporter, const OvalSet& set) { 56cb93a386Sopenharmony_ci SkPath oval, regionResult, builderResult, opResult; 57cb93a386Sopenharmony_ci oval.setFillType(SkPathFillType::kWinding); 58cb93a386Sopenharmony_ci oval.addOval(set.fBounds); 59cb93a386Sopenharmony_ci SkOpBuilder builder; 60cb93a386Sopenharmony_ci SkRegion region; 61cb93a386Sopenharmony_ci testOvalSet(set, oval, nullptr, ®ion, ®ionResult); 62cb93a386Sopenharmony_ci testOvalSet(set, oval, &builder, nullptr, &builderResult); 63cb93a386Sopenharmony_ci testOvalSet(set, oval, nullptr, nullptr, &opResult); 64cb93a386Sopenharmony_ci SkBitmap bitmap; 65cb93a386Sopenharmony_ci comparePaths(reporter, __FUNCTION__ , regionResult, builderResult, bitmap); 66cb93a386Sopenharmony_ci comparePaths(reporter, __FUNCTION__ , regionResult, opResult, bitmap); 67cb93a386Sopenharmony_ci} 68cb93a386Sopenharmony_ci 69cb93a386Sopenharmony_cistruct OvalSetOneOff { 70cb93a386Sopenharmony_ci int fCol; 71cb93a386Sopenharmony_ci int fRow; 72cb93a386Sopenharmony_ci int fRot; 73cb93a386Sopenharmony_ci int fTrial; 74cb93a386Sopenharmony_ci} oneOffs[] = { 75cb93a386Sopenharmony_ci { 2, 2, 9, 73 }, 76cb93a386Sopenharmony_ci { 1, 2, 7, 93 } 77cb93a386Sopenharmony_ci}; 78cb93a386Sopenharmony_ci 79cb93a386Sopenharmony_cistatic void setupOne(skiatest::Reporter* reporter, int col, int row, int rot, int trial) { 80cb93a386Sopenharmony_ci const int scale = 10; 81cb93a386Sopenharmony_ci SkRandom r; 82cb93a386Sopenharmony_ci r.setSeed(col * 100000000 + row * 10000000 + rot * 1000000 + trial); 83cb93a386Sopenharmony_ci SkScalar xOffset = r.nextRangeScalar(1, 40) * scale; 84cb93a386Sopenharmony_ci SkScalar yOffset = r.nextRangeScalar(1, 100) * scale; 85cb93a386Sopenharmony_ci OvalSet set = {{0, 0, 0, 0}, col, row, rot, xOffset, yOffset}; 86cb93a386Sopenharmony_ci set.fBounds.setXYWH(5, 5, 87cb93a386Sopenharmony_ci r.nextRangeScalar(5, 50) * scale, r.nextRangeScalar(50, 90) * scale); 88cb93a386Sopenharmony_ci testOne(reporter, set); 89cb93a386Sopenharmony_ci} 90cb93a386Sopenharmony_ci 91cb93a386Sopenharmony_ci#include "tools/flags/CommandLineFlags.h" 92cb93a386Sopenharmony_ci 93cb93a386Sopenharmony_cistatic DEFINE_int(processOffset, 0, 94cb93a386Sopenharmony_ci "Offset the test by this value. This permits multiple processes " 95cb93a386Sopenharmony_ci "to exercise the same test in parallel with different test values."); 96cb93a386Sopenharmony_cistatic DEFINE_int(processCount, 1, 97cb93a386Sopenharmony_ci "Test iteration count. This permits multiple processes " 98cb93a386Sopenharmony_ci "to exercise the same test in parallel with different test values."); 99cb93a386Sopenharmony_cistatic DEFINE_int(trialRuns, 100, "Run this many tests (defaults to 100)."); 100cb93a386Sopenharmony_ci 101cb93a386Sopenharmony_ciDEF_TEST(SixtyOvals, reporter) { 102cb93a386Sopenharmony_ci bool skipOneOffs = false; 103cb93a386Sopenharmony_ci int trialRuns = FLAGS_trialRuns / FLAGS_processCount; 104cb93a386Sopenharmony_ci for (int col = 1; col <= 2; ++col) { 105cb93a386Sopenharmony_ci for (int row = 1; row <= 3; ++row) { 106cb93a386Sopenharmony_ci for (int rot = 2; rot <= 9; ++rot) { 107cb93a386Sopenharmony_ci for (int trial = FLAGS_processOffset * trialRuns; --trialRuns >= 0; ++trial) { 108cb93a386Sopenharmony_ci if (skipOneOffs) { 109cb93a386Sopenharmony_ci for (const OvalSetOneOff& oneOff : oneOffs) { 110cb93a386Sopenharmony_ci if (col == oneOff.fCol && row == oneOff.fRow && rot == oneOff.fRot 111cb93a386Sopenharmony_ci && trial == oneOff.fTrial) { 112cb93a386Sopenharmony_ci goto skipTest; 113cb93a386Sopenharmony_ci } 114cb93a386Sopenharmony_ci } 115cb93a386Sopenharmony_ci } 116cb93a386Sopenharmony_ci setupOne(reporter, col, row, rot, trial); 117cb93a386Sopenharmony_ci skipTest: 118cb93a386Sopenharmony_ci ; 119cb93a386Sopenharmony_ci } 120cb93a386Sopenharmony_ci } 121cb93a386Sopenharmony_ci } 122cb93a386Sopenharmony_ci } 123cb93a386Sopenharmony_ci} 124cb93a386Sopenharmony_ci 125cb93a386Sopenharmony_ciDEF_TEST(SixtyOvalsOneOff, reporter) { 126cb93a386Sopenharmony_ci for (const OvalSetOneOff& oneOff : oneOffs) { 127cb93a386Sopenharmony_ci setupOne(reporter, oneOff.fCol, oneOff.fRow, oneOff.fRot, oneOff.fTrial); 128cb93a386Sopenharmony_ci } 129cb93a386Sopenharmony_ci} 130cb93a386Sopenharmony_ci 131cb93a386Sopenharmony_ci#if DEBUG_SIMPLIFY_FAILS 132cb93a386Sopenharmony_cistatic bool simplify_fails(skiatest::Reporter* reporter, const SkPath& path) { 133cb93a386Sopenharmony_ci SkPath simplifiedPath; 134cb93a386Sopenharmony_ci bool failed = !Simplify(path, &simplifiedPath); 135cb93a386Sopenharmony_ci if (!failed) { 136cb93a386Sopenharmony_ci SkBitmap bitmap; 137cb93a386Sopenharmony_ci failed = !!comparePaths(reporter, __FUNCTION__, path, simplifiedPath, bitmap); 138cb93a386Sopenharmony_ci } 139cb93a386Sopenharmony_ci return failed; 140cb93a386Sopenharmony_ci} 141cb93a386Sopenharmony_ci 142cb93a386Sopenharmony_cistatic SkPath subset_simplify_fail(skiatest::Reporter* reporter, const SkPath& path) { 143cb93a386Sopenharmony_ci SubsetContours subsetContours(path); 144cb93a386Sopenharmony_ci bool failed = simplify_fails(reporter, path); 145cb93a386Sopenharmony_ci SkASSERT(failed); 146cb93a386Sopenharmony_ci SkPath lastFailed = path; 147cb93a386Sopenharmony_ci SkPath minimal; 148cb93a386Sopenharmony_ci while (subsetContours.subset(failed, &minimal)) { 149cb93a386Sopenharmony_ci failed = simplify_fails(reporter, minimal); 150cb93a386Sopenharmony_ci SkDebugf(" %s\n", failed ? "failed" : ""); 151cb93a386Sopenharmony_ci if (failed) { 152cb93a386Sopenharmony_ci lastFailed = minimal; 153cb93a386Sopenharmony_ci } 154cb93a386Sopenharmony_ci } 155cb93a386Sopenharmony_ci failed = simplify_fails(reporter, lastFailed); 156cb93a386Sopenharmony_ci SkASSERT(failed); 157cb93a386Sopenharmony_ci SubsetVerbs subsetVerbs(lastFailed); 158cb93a386Sopenharmony_ci while (subsetVerbs.subset(failed, &minimal)) { 159cb93a386Sopenharmony_ci failed = simplify_fails(reporter, minimal); 160cb93a386Sopenharmony_ci SkDebugf(" %s\n", failed ? "failed" : ""); 161cb93a386Sopenharmony_ci if (failed) { 162cb93a386Sopenharmony_ci lastFailed = minimal; 163cb93a386Sopenharmony_ci } 164cb93a386Sopenharmony_ci } 165cb93a386Sopenharmony_ci return lastFailed; 166cb93a386Sopenharmony_ci} 167cb93a386Sopenharmony_ci#endif 168cb93a386Sopenharmony_ci 169cb93a386Sopenharmony_ciDEF_TEST(SixtyOvals_2_2_9_73, reporter) { 170cb93a386Sopenharmony_ci SkPath path; 171cb93a386Sopenharmony_ci path.moveTo(SkBits2Float(0x434d53ca), SkBits2Float(0x43ad6ab0)); // 205.327f, 346.833f 172cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x434d53ca), SkBits2Float(0x40a00000), SkBits2Float(0x42d253ca), SkBits2Float(0x40a00000), SkBits2Float(0x3f3504f3)); // 205.327f, 5, 105.164f, 5, 0.707107f 173cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x40a00000), SkBits2Float(0x40a00000), SkBits2Float(0x40a00000), SkBits2Float(0x43ad6ab0), SkBits2Float(0x3f3504f3)); // 5, 5, 5, 346.833f, 0.707107f 174cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x40a00000), SkBits2Float(0x442c2ab0), SkBits2Float(0x42d253ca), SkBits2Float(0x442c2ab0), SkBits2Float(0x3f3504f3)); // 5, 688.667f, 105.164f, 688.667f, 0.707107f 175cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x434d53ca), SkBits2Float(0x442c2ab0), SkBits2Float(0x434d53ca), SkBits2Float(0x43ad6ab0), SkBits2Float(0x3f3504f3)); // 205.327f, 688.667f, 205.327f, 346.833f, 0.707107f 176cb93a386Sopenharmony_cipath.close(); 177cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc2834d04), SkBits2Float(0x43c6d5fb)); // -65.6504f, 397.672f 178cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x431a136e), SkBits2Float(0x4307cfe3), SkBits2Float(0x429ab133), SkBits2Float(0x428edb31), SkBits2Float(0x3f3504f3)); // 154.076f, 135.812f, 77.3461f, 71.4281f, 0.707107f 179cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x3f1dc4d0), SkBits2Float(0x40e169c2), SkBits2Float(0xc35b1c2c), SkBits2Float(0x438673b0), SkBits2Float(0x3f3504f3)); // 0.616284f, 7.04416f, -219.11f, 268.904f, 0.707107f 180cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3db6b0e), SkBits2Float(0x4404b0dc), SkBits2Float(0xc3b50da4), SkBits2Float(0x4414c96f), SkBits2Float(0x3f3504f3)); // -438.836f, 530.763f, -362.107f, 595.147f, 0.707107f 181cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc38eb03a), SkBits2Float(0x4424e202), SkBits2Float(0xc2834d04), SkBits2Float(0x43c6d5fb), SkBits2Float(0x3f3504f3)); // -285.377f, 659.531f, -65.6504f, 397.672f, 0.707107f 182cb93a386Sopenharmony_cipath.close(); 183cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc398f46d), SkBits2Float(0x438337ac)); // -305.91f, 262.435f 184cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41f5d870), SkBits2Float(0x434b137f), SkBits2Float(0x41556629), SkBits2Float(0x42d0de52), SkBits2Float(0x3f3504f3)); // 30.7307f, 203.076f, 13.3374f, 104.434f, 0.707107f 185cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc081c918), SkBits2Float(0x40b95a5c), SkBits2Float(0xc3aa5918), SkBits2Float(0x42824d58), SkBits2Float(0x3f3504f3)); // -4.0558f, 5.79228f, -340.696f, 65.1511f, 0.707107f 186cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc4295587), SkBits2Float(0x42f9050a), SkBits2Float(0xc424fc5c), SkBits2Float(0x435f26db), SkBits2Float(0x3f3504f3)); // -677.336f, 124.51f, -659.943f, 223.152f, 0.707107f 187cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc420a331), SkBits2Float(0x43a0e598), SkBits2Float(0xc398f46d), SkBits2Float(0x438337ac), SkBits2Float(0x3f3504f3)); // -642.55f, 321.794f, -305.91f, 262.435f, 0.707107f 188cb93a386Sopenharmony_cipath.close(); 189cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc3c983e0), SkBits2Float(0x408cdc40)); // -403.03f, 4.40189f 190cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc2d5fcd2), SkBits2Float(0x432f5193), SkBits2Float(0xc263a5d9), SkBits2Float(0x42b12617), SkBits2Float(0x3f3504f3)); // -106.994f, 175.319f, -56.912f, 88.5744f, 0.707107f 191cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc0da9066), SkBits2Float(0x3fea4196), SkBits2Float(0xc3976eed), SkBits2Float(0xc329162e), SkBits2Float(0x3f3504f3)); // -6.83013f, 1.83013f, -302.867f, -169.087f, 0.707107f 192cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc415b9cc), SkBits2Float(0xc3aa006f), SkBits2Float(0xc4223f09), SkBits2Float(0xc37d4256), SkBits2Float(0x3f3504f3)); // -598.903f, -340.003f, -648.985f, -253.259f, 0.707107f 193cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc42ec446), SkBits2Float(0xc32683cf), SkBits2Float(0xc3c983e0), SkBits2Float(0x408cdc40), SkBits2Float(0x3f3504f3)); // -699.067f, -166.515f, -403.03f, 4.40189f, 0.707107f 194cb93a386Sopenharmony_cipath.close(); 195cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc39bc8c8), SkBits2Float(0xc37fb0d7)); // -311.569f, -255.691f 196cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc342a797), SkBits2Float(0x42830e25), SkBits2Float(0xc2c9102e), SkBits2Float(0x41fa2834), SkBits2Float(0x3f3504f3)); // -194.655f, 65.5276f, -100.532f, 31.2696f, 0.707107f 197cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc0cd12f5), SkBits2Float(0xc03f4152), SkBits2Float(0xc2f6a523), SkBits2Float(0xc3a21a77), SkBits2Float(0x3f3504f3)); // -6.40856f, -2.98836f, -123.323f, -324.207f, 0.707107f 198cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3703c8a), SkBits2Float(0xc4215b37), SkBits2Float(0xc3a72e05), SkBits2Float(0xc418cab4), SkBits2Float(0x3f3504f3)); // -240.236f, -645.425f, -334.36f, -611.167f, 0.707107f 199cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3d63dc5), SkBits2Float(0xc4103a31), SkBits2Float(0xc39bc8c8), SkBits2Float(0xc37fb0d7), SkBits2Float(0x3f3504f3)); // -428.483f, -576.909f, -311.569f, -255.691f, 0.707107f 200cb93a386Sopenharmony_cipath.close(); 201cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc294a419), SkBits2Float(0xc3c6124c)); // -74.3205f, -396.143f 202cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc33f3c05), SkBits2Float(0xc295d95d), SkBits2Float(0xc2c2390a), SkBits2Float(0xc222aa8c), SkBits2Float(0x3f3504f3)); // -191.234f, -74.9245f, -97.1114f, -40.6665f, 0.707107f 203cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc03f4154), SkBits2Float(0xc0cd12f4), SkBits2Float(0x42e3d9e6), SkBits2Float(0xc3a3d041), SkBits2Float(0x3f3504f3)); // -2.98836f, -6.40856f, 113.926f, -327.627f, 0.707107f 204cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4366d6ec), SkBits2Float(0xc422361b), SkBits2Float(0x4308b76c), SkBits2Float(0xc42ac69e), SkBits2Float(0x3f3504f3)); // 230.84f, -648.845f, 136.716f, -683.103f, 0.707107f 205cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x422a5fb0), SkBits2Float(0xc4335721), SkBits2Float(0xc294a419), SkBits2Float(0xc3c6124c), SkBits2Float(0x3f3504f3)); // 42.5934f, -717.361f, -74.3205f, -396.143f, 0.707107f 206cb93a386Sopenharmony_cipath.close(); 207cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x4345b3f8), SkBits2Float(0xc3af9e21)); // 197.703f, -351.235f 208cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc2c4aac2), SkBits2Float(0xc3345194), SkBits2Float(0xc24101bb), SkBits2Float(0xc2bb2617), SkBits2Float(0x3f3504f3)); // -98.3335f, -180.319f, -48.2517f, -93.5744f, 0.707107f 209cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x3fea41a0), SkBits2Float(0xc0da9066), SkBits2Float(0x4394eeee), SkBits2Float(0xc331bf31), SkBits2Float(0x3f3504f3)); // 1.83013f, -6.83013f, 297.867f, -177.747f, 0.707107f 210cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x441479cd), SkBits2Float(0xc3ae54f0), SkBits2Float(0x4407f490), SkBits2Float(0xc3d9b434), SkBits2Float(0x3f3504f3)); // 593.903f, -348.664f, 543.821f, -435.408f, 0.707107f 211cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43f6dea8), SkBits2Float(0xc40289bc), SkBits2Float(0x4345b3f8), SkBits2Float(0xc3af9e21), SkBits2Float(0x3f3504f3)); // 493.74f, -522.152f, 197.703f, -351.235f, 0.707107f 212cb93a386Sopenharmony_cipath.close(); 213cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x43bc9c08), SkBits2Float(0xc30dfb1e)); // 377.219f, -141.981f 214cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x422250a2), SkBits2Float(0xc34956f5), SkBits2Float(0x41b97bee), SkBits2Float(0xc2cd653e), SkBits2Float(0x3f3504f3)); // 40.5787f, -201.34f, 23.1855f, -102.698f, 0.707107f 215cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x40b95a5b), SkBits2Float(0xc081c919), SkBits2Float(0x43ab375e), SkBits2Float(0x425d363a), SkBits2Float(0x3f3504f3)); // 5.79228f, -4.0558f, 342.433f, 55.303f, 0.707107f 216cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4429c4a9), SkBits2Float(0x42e552cb), SkBits2Float(0x442e1dd4), SkBits2Float(0x4180287c), SkBits2Float(0x3f3504f3)); // 679.073f, 114.662f, 696.466f, 16.0198f, 0.707107f 217cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x443276ff), SkBits2Float(0xc2a53e8d), SkBits2Float(0x43bc9c08), SkBits2Float(0xc30dfb1e), SkBits2Float(0x3f3504f3)); // 713.859f, -82.6222f, 377.219f, -141.981f, 0.707107f 218cb93a386Sopenharmony_cipath.close(); 219cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x43be1d75), SkBits2Float(0x4305b53c)); // 380.23f, 133.708f 220cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432080f6), SkBits2Float(0xc30026d3), SkBits2Float(0x42a78c44), SkBits2Float(0xc27f121c), SkBits2Float(0x3f3504f3)); // 160.504f, -128.152f, 83.774f, -63.7677f, 0.707107f 221cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x40e169c3), SkBits2Float(0x3f1dc4b8), SkBits2Float(0x4362c542), SkBits2Float(0x43833cea), SkBits2Float(0x3f3504f3)); // 7.04416f, 0.616283f, 226.771f, 262.476f, 0.707107f 222cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43df3f9c), SkBits2Float(0x44031579), SkBits2Float(0x4402ce83), SkBits2Float(0x43e5f9cc), SkBits2Float(0x3f3504f3)); // 446.497f, 524.336f, 523.227f, 459.952f, 0.707107f 223cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4415fd38), SkBits2Float(0x43c5c8a6), SkBits2Float(0x43be1d75), SkBits2Float(0x4305b53c), SkBits2Float(0x3f3504f3)); // 599.957f, 395.568f, 380.23f, 133.708f, 0.707107f 224cb93a386Sopenharmony_cipath.close(); 225cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x434d53ca), SkBits2Float(0x44487cfb)); // 205.327f, 801.953f 226cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x434d53ca), SkBits2Float(0x43e60f46), SkBits2Float(0x42d253ca), SkBits2Float(0x43e60f46), SkBits2Float(0x3f3504f3)); // 205.327f, 460.119f, 105.164f, 460.119f, 0.707107f 227cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x40a00000), SkBits2Float(0x43e60f46), SkBits2Float(0x40a00000), SkBits2Float(0x44487cfb), SkBits2Float(0x3f3504f3)); // 5, 460.119f, 5, 801.953f, 0.707107f 228cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x40a00000), SkBits2Float(0x448ef92a), SkBits2Float(0x42d253ca), SkBits2Float(0x448ef92a), SkBits2Float(0x3f3504f3)); // 5, 1143.79f, 105.164f, 1143.79f, 0.707107f 229cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x434d53ca), SkBits2Float(0x448ef92a), SkBits2Float(0x434d53ca), SkBits2Float(0x44487cfb), SkBits2Float(0x3f3504f3)); // 205.327f, 1143.79f, 205.327f, 801.953f, 0.707107f 230cb93a386Sopenharmony_cipath.close(); 231cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc2834d04), SkBits2Float(0x445532a0)); // -65.6504f, 852.791f 232cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x431a136e), SkBits2Float(0x4413bb9c), SkBits2Float(0x429ab133), SkBits2Float(0x4403a309), SkBits2Float(0x3f3504f3)); // 154.076f, 590.931f, 77.3461f, 526.547f, 0.707107f 233cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x3f1dc4d0), SkBits2Float(0x43e714ed), SkBits2Float(0xc35b1c2c), SkBits2Float(0x4435017b), SkBits2Float(0x3f3504f3)); // 0.616284f, 462.163f, -219.11f, 724.023f, 0.707107f 234cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3db6b0e), SkBits2Float(0x4476787f), SkBits2Float(0xc3b50da4), SkBits2Float(0x44834889), SkBits2Float(0x3f3504f3)); // -438.836f, 985.883f, -362.107f, 1050.27f, 0.707107f 235cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc38eb03a), SkBits2Float(0x448b54d2), SkBits2Float(0xc2834d04), SkBits2Float(0x445532a0), SkBits2Float(0x3f3504f3)); // -285.377f, 1114.65f, -65.6504f, 852.791f, 0.707107f 236cb93a386Sopenharmony_cipath.close(); 237cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc398f46d), SkBits2Float(0x44336379)); // -305.91f, 717.554f 238cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41f5d870), SkBits2Float(0x44248c83), SkBits2Float(0x41556629), SkBits2Float(0x440be36d), SkBits2Float(0x3f3504f3)); // 30.7307f, 658.195f, 13.3374f, 559.554f, 0.707107f 239cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc081c918), SkBits2Float(0x43e674af), SkBits2Float(0xc3aa5918), SkBits2Float(0x4402114e), SkBits2Float(0x3f3504f3)); // -4.0558f, 460.912f, -340.696f, 520.27f, 0.707107f 240cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc4295587), SkBits2Float(0x4410e844), SkBits2Float(0xc424fc5c), SkBits2Float(0x4429915a), SkBits2Float(0x3f3504f3)); // -677.336f, 579.629f, -659.943f, 678.271f, 0.707107f 241cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc420a331), SkBits2Float(0x44423a6f), SkBits2Float(0xc398f46d), SkBits2Float(0x44336379), SkBits2Float(0x3f3504f3)); // -642.55f, 776.913f, -305.91f, 717.554f, 0.707107f 242cb93a386Sopenharmony_cipath.close(); 243cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc3c983e0), SkBits2Float(0x43e5c2b7)); // -403.03f, 459.521f 244cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc2d5fcd2), SkBits2Float(0x441d9c08), SkBits2Float(0xc263a5d9), SkBits2Float(0x4407ec66), SkBits2Float(0x3f3504f3)); // -106.994f, 630.438f, -56.912f, 543.694f, 0.707107f 245cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc0da9066), SkBits2Float(0x43e47988), SkBits2Float(0xc3976eed), SkBits2Float(0x438f042f), SkBits2Float(0x3f3504f3)); // -6.83013f, 456.949f, -302.867f, 286.033f, 0.707107f 246cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc415b9cc), SkBits2Float(0x42e63b5c), SkBits2Float(0xc4223f09), SkBits2Float(0x4349dc36), SkBits2Float(0x3f3504f3)); // -598.903f, 115.116f, -648.985f, 201.86f, 0.707107f 247cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc42ec446), SkBits2Float(0x43904d5e), SkBits2Float(0xc3c983e0), SkBits2Float(0x43e5c2b7), SkBits2Float(0x3f3504f3)); // -699.067f, 288.604f, -403.03f, 459.521f, 0.707107f 248cb93a386Sopenharmony_cipath.close(); 249cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc39bc8c8), SkBits2Float(0x43476db5)); // -311.569f, 199.429f 250cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc342a797), SkBits2Float(0x44022968), SkBits2Float(0xc2c9102e), SkBits2Float(0x43f331c9), SkBits2Float(0x3f3504f3)); // -194.655f, 520.647f, -100.532f, 486.389f, 0.707107f 251cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc0cd12f5), SkBits2Float(0x43e210c3), SkBits2Float(0xc2f6a523), SkBits2Float(0x4302e99e), SkBits2Float(0x3f3504f3)); // -6.40856f, 452.131f, -123.323f, 130.913f, 0.707107f 252cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3703c8a), SkBits2Float(0xc33e4e50), SkBits2Float(0xc3a72e05), SkBits2Float(0xc31c0c44), SkBits2Float(0x3f3504f3)); // -240.236f, -190.306f, -334.36f, -156.048f, 0.707107f 253cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3d63dc5), SkBits2Float(0xc2f39470), SkBits2Float(0xc39bc8c8), SkBits2Float(0x43476db5), SkBits2Float(0x3f3504f3)); // -428.483f, -121.79f, -311.569f, 199.429f, 0.707107f 254cb93a386Sopenharmony_cipath.close(); 255cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc294a419), SkBits2Float(0x426be7d0)); // -74.3205f, 58.9764f 256cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc33f3c05), SkBits2Float(0x43be18ef), SkBits2Float(0xc2c2390a), SkBits2Float(0x43cf39f4), SkBits2Float(0x3f3504f3)); // -191.234f, 380.195f, -97.1114f, 414.453f, 0.707107f 257cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc03f4154), SkBits2Float(0x43e05afa), SkBits2Float(0x42e3d9e6), SkBits2Float(0x42fefc14), SkBits2Float(0x3f3504f3)); // -2.98836f, 448.711f, 113.926f, 127.492f, 0.707107f 258cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4366d6ec), SkBits2Float(0xc341b9e0), SkBits2Float(0x4308b76c), SkBits2Float(0xc363fbec), SkBits2Float(0x3f3504f3)); // 230.84f, -193.726f, 136.716f, -227.984f, 0.707107f 259cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x422a5fb0), SkBits2Float(0xc3831efc), SkBits2Float(0xc294a419), SkBits2Float(0x426be7d0), SkBits2Float(0x3f3504f3)); // 42.5934f, -262.242f, -74.3205f, 58.9764f, 0.707107f 260cb93a386Sopenharmony_cipath.close(); 261cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x4345b3f8), SkBits2Float(0x42cfc494)); // 197.703f, 103.884f 262cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc2c4aac2), SkBits2Float(0x4389667c), SkBits2Float(0xc24101bb), SkBits2Float(0x43b4c5c0), SkBits2Float(0x3f3504f3)); // -98.3335f, 274.801f, -48.2517f, 361.545f, 0.707107f 263cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x3fea41a0), SkBits2Float(0x43e02504), SkBits2Float(0x4394eeee), SkBits2Float(0x438aafae), SkBits2Float(0x3f3504f3)); // 1.83013f, 448.289f, 297.867f, 277.372f, 0.707107f 264cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x441479cd), SkBits2Float(0x42d4e958), SkBits2Float(0x4407f490), SkBits2Float(0x419db120), SkBits2Float(0x3f3504f3)); // 593.903f, 106.456f, 543.821f, 19.7115f, 0.707107f 265cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43f6dea8), SkBits2Float(0xc28610c8), SkBits2Float(0x4345b3f8), SkBits2Float(0x42cfc494), SkBits2Float(0x3f3504f3)); // 493.74f, -67.0328f, 197.703f, 103.884f, 0.707107f 266cb93a386Sopenharmony_cipath.close(); 267cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x43bc9c08), SkBits2Float(0x439c91b7)); // 377.219f, 313.138f 268cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x422250a2), SkBits2Float(0x437dc797), SkBits2Float(0x41b97bee), SkBits2Float(0x43b035f6), SkBits2Float(0x3f3504f3)); // 40.5787f, 253.78f, 23.1855f, 352.422f, 0.707107f 269cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x40b95a5b), SkBits2Float(0x43e18822), SkBits2Float(0x43ab375e), SkBits2Float(0x43ff360d), SkBits2Float(0x3f3504f3)); // 5.79228f, 451.064f, 342.433f, 510.422f, 0.707107f 270cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4429c4a9), SkBits2Float(0x440e71fc), SkBits2Float(0x442e1dd4), SkBits2Float(0x43eb91ce), SkBits2Float(0x3f3504f3)); // 679.073f, 569.781f, 696.466f, 471.139f, 0.707107f 271cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x443276ff), SkBits2Float(0x43ba3fa3), SkBits2Float(0x43bc9c08), SkBits2Float(0x439c91b7), SkBits2Float(0x3f3504f3)); // 713.859f, 372.497f, 377.219f, 313.138f, 0.707107f 272cb93a386Sopenharmony_cipath.close(); 273cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x43be1d75), SkBits2Float(0x441334f2)); // 380.23f, 588.827f 274cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432080f6), SkBits2Float(0x43a37bdc), SkBits2Float(0x42a78c44), SkBits2Float(0x43c3ad02), SkBits2Float(0x3f3504f3)); // 160.504f, 326.968f, 83.774f, 391.352f, 0.707107f 275cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x40e169c3), SkBits2Float(0x43e3de28), SkBits2Float(0x4362c542), SkBits2Float(0x44336618), SkBits2Float(0x3f3504f3)); // 7.04416f, 455.736f, 226.771f, 717.595f, 0.707107f 276cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43df3f9c), SkBits2Float(0x4474dd1c), SkBits2Float(0x4402ce83), SkBits2Float(0x4464c489), SkBits2Float(0x3f3504f3)); // 446.497f, 979.455f, 523.227f, 915.071f, 0.707107f 277cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4415fd38), SkBits2Float(0x4454abf6), SkBits2Float(0x43be1d75), SkBits2Float(0x441334f2), SkBits2Float(0x3f3504f3)); // 599.957f, 850.687f, 380.23f, 588.827f, 0.707107f 278cb93a386Sopenharmony_cipath.close(); 279cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x43bb9978), SkBits2Float(0x43ad6ab0)); // 375.199f, 346.833f 280cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43bb9978), SkBits2Float(0x40a00000), SkBits2Float(0x43898486), SkBits2Float(0x40a00000), SkBits2Float(0x3f3504f3)); // 375.199f, 5, 275.035f, 5, 0.707107f 281cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432edf26), SkBits2Float(0x40a00000), SkBits2Float(0x432edf26), SkBits2Float(0x43ad6ab0), SkBits2Float(0x3f3504f3)); // 174.872f, 5, 174.872f, 346.833f, 0.707107f 282cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432edf26), SkBits2Float(0x442c2ab0), SkBits2Float(0x43898486), SkBits2Float(0x442c2ab0), SkBits2Float(0x3f3504f3)); // 174.872f, 688.667f, 275.035f, 688.667f, 0.707107f 283cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43bb9978), SkBits2Float(0x442c2ab0), SkBits2Float(0x43bb9978), SkBits2Float(0x43ad6ab0), SkBits2Float(0x3f3504f3)); // 375.199f, 688.667f, 375.199f, 346.833f, 0.707107f 284cb93a386Sopenharmony_cipath.close(); 285cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x42d07148), SkBits2Float(0x43c6d5fb)); // 104.221f, 397.672f 286cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43a1f94a), SkBits2Float(0x4307cfe3), SkBits2Float(0x437737c0), SkBits2Float(0x428edb31), SkBits2Float(0x3f3504f3)); // 323.948f, 135.812f, 247.218f, 71.4281f, 0.707107f 287cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432a7ceb), SkBits2Float(0x40e169c2), SkBits2Float(0xc244f418), SkBits2Float(0x438673b0), SkBits2Float(0x3f3504f3)); // 170.488f, 7.04416f, -49.2384f, 268.904f, 0.707107f 288cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3867b7b), SkBits2Float(0x4404b0dc), SkBits2Float(0xc3403c22), SkBits2Float(0x4414c96f), SkBits2Float(0x3f3504f3)); // -268.965f, 530.763f, -192.235f, 595.147f, 0.707107f 289cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc2e7029c), SkBits2Float(0x4424e202), SkBits2Float(0x42d07148), SkBits2Float(0x43c6d5fb), SkBits2Float(0x3f3504f3)); // -115.505f, 659.531f, 104.221f, 397.672f, 0.707107f 290cb93a386Sopenharmony_cipath.close(); 291cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc30809b4), SkBits2Float(0x438337ac)); // -136.038f, 262.435f 292cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43489a34), SkBits2Float(0x434b137f), SkBits2Float(0x43373589), SkBits2Float(0x42d0de52), SkBits2Float(0x3f3504f3)); // 200.602f, 203.076f, 183.209f, 104.434f, 0.707107f 293cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4325d0dd), SkBits2Float(0x40b95a5c), SkBits2Float(0xc32ad30a), SkBits2Float(0x42824d58), SkBits2Float(0x3f3504f3)); // 165.816f, 5.79228f, -170.824f, 65.1511f, 0.707107f 294cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3fdbb7b), SkBits2Float(0x42f9050a), SkBits2Float(0xc3f50925), SkBits2Float(0x435f26db), SkBits2Float(0x3f3504f3)); // -507.465f, 124.51f, -490.071f, 223.152f, 0.707107f 295cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3ec56cf), SkBits2Float(0x43a0e598), SkBits2Float(0xc30809b4), SkBits2Float(0x438337ac), SkBits2Float(0x3f3504f3)); // -472.678f, 321.794f, -136.038f, 262.435f, 0.707107f 296cb93a386Sopenharmony_cipath.close(); 297cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc369289a), SkBits2Float(0x408cdc40)); // -233.159f, 4.40189f 298cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x427b82f4), SkBits2Float(0x432f5193), SkBits2Float(0x42e1eb60), SkBits2Float(0x42b12617), SkBits2Float(0x3f3504f3)); // 62.8779f, 175.319f, 112.96f, 88.5744f, 0.707107f 299cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43230aa3), SkBits2Float(0x3fea4196), SkBits2Float(0xc304feb4), SkBits2Float(0xc329162e), SkBits2Float(0x3f3504f3)); // 163.042f, 1.83013f, -132.995f, -169.087f, 0.707107f 300cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3d68405), SkBits2Float(0xc3aa006f), SkBits2Float(0xc3ef8e7f), SkBits2Float(0xc37d4256), SkBits2Float(0x3f3504f3)); // -429.031f, -340.003f, -479.113f, -253.259f, 0.707107f 301cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc4044c7c), SkBits2Float(0xc32683cf), SkBits2Float(0xc369289a), SkBits2Float(0x408cdc40), SkBits2Float(0x3f3504f3)); // -529.195f, -166.515f, -233.159f, 4.40189f, 0.707107f 302cb93a386Sopenharmony_cipath.close(); 303cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc30db26a), SkBits2Float(0xc37fb0d7)); // -141.697f, -255.691f 304cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1c64388), SkBits2Float(0x42830e25), SkBits2Float(0x428aae1e), SkBits2Float(0x41fa2834), SkBits2Float(0x3f3504f3)); // -24.783f, 65.5276f, 69.3401f, 31.2696f, 0.707107f 305cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4323768e), SkBits2Float(0xc03f4152), SkBits2Float(0x423a3252), SkBits2Float(0xc3a21a77), SkBits2Float(0x3f3504f3)); // 163.463f, -2.98836f, 46.5491f, -324.207f, 0.707107f 306cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc28cbac8), SkBits2Float(0xc4215b37), SkBits2Float(0xc3247ce4), SkBits2Float(0xc418cab4), SkBits2Float(0x3f3504f3)); // -70.3648f, -645.425f, -164.488f, -611.167f, 0.707107f 307cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3814e32), SkBits2Float(0xc4103a31), SkBits2Float(0xc30db26a), SkBits2Float(0xc37fb0d7), SkBits2Float(0x3f3504f3)); // -258.611f, -576.909f, -141.697f, -255.691f, 0.707107f 308cb93a386Sopenharmony_cipath.close(); 309cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x42bf1a33), SkBits2Float(0xc3c6124c)); // 95.5512f, -396.143f 310cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1aae6f8), SkBits2Float(0xc295d95d), SkBits2Float(0x42918542), SkBits2Float(0xc222aa8c), SkBits2Float(0x3f3504f3)); // -21.3628f, -74.9245f, 72.7603f, -40.6665f, 0.707107f 311cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4326e221), SkBits2Float(0xc0cd12f4), SkBits2Float(0x438de60c), SkBits2Float(0xc3a3d041), SkBits2Float(0x3f3504f3)); // 166.883f, -6.40856f, 283.797f, -327.627f, 0.707107f 312cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43c85b09), SkBits2Float(0xc422361b), SkBits2Float(0x43994b49), SkBits2Float(0xc42ac69e), SkBits2Float(0x3f3504f3)); // 400.711f, -648.845f, 306.588f, -683.103f, 0.707107f 313cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43547712), SkBits2Float(0xc4335721), SkBits2Float(0x42bf1a33), SkBits2Float(0xc3c6124c), SkBits2Float(0x3f3504f3)); // 212.465f, -717.361f, 95.5512f, -396.143f, 0.707107f 314cb93a386Sopenharmony_cipath.close(); 315cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x43b7c98f), SkBits2Float(0xc3af9e21)); // 367.575f, -351.235f 316cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x428f138a), SkBits2Float(0xc3345194), SkBits2Float(0x42f33d6e), SkBits2Float(0xc2bb2617), SkBits2Float(0x3f3504f3)); // 71.5382f, -180.319f, 121.62f, -93.5744f, 0.707107f 317cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432bb3a9), SkBits2Float(0xc0da9066), SkBits2Float(0x43e9de81), SkBits2Float(0xc331bf31), SkBits2Float(0x3f3504f3)); // 171.702f, -6.83013f, 467.738f, -177.747f, 0.707107f 318cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x443ef196), SkBits2Float(0xc3ae54f0), SkBits2Float(0x44326c5a), SkBits2Float(0xc3d9b434), SkBits2Float(0x3f3504f3)); // 763.775f, -348.664f, 713.693f, -435.408f, 0.707107f 319cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4425e71e), SkBits2Float(0xc40289bc), SkBits2Float(0x43b7c98f), SkBits2Float(0xc3af9e21), SkBits2Float(0x3f3504f3)); // 663.611f, -522.152f, 367.575f, -351.235f, 0.707107f 320cb93a386Sopenharmony_cipath.close(); 321cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x4408c5ce), SkBits2Float(0xc30dfb1e)); // 547.091f, -141.981f 322cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4352734e), SkBits2Float(0xc34956f5), SkBits2Float(0x43410ea4), SkBits2Float(0xc2cd653e), SkBits2Float(0x3f3504f3)); // 210.45f, -201.34f, 193.057f, -102.698f, 0.707107f 323cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432fa9f9), SkBits2Float(0xc081c919), SkBits2Float(0x44001378), SkBits2Float(0x425d363a), SkBits2Float(0x3f3504f3)); // 175.664f, -4.0558f, 512.304f, 55.303f, 0.707107f 324cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x44543c72), SkBits2Float(0x42e552cb), SkBits2Float(0x4458959e), SkBits2Float(0x4180287c), SkBits2Float(0x3f3504f3)); // 848.944f, 114.662f, 866.338f, 16.0198f, 0.707107f 325cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x445ceec8), SkBits2Float(0xc2a53e8d), SkBits2Float(0x4408c5ce), SkBits2Float(0xc30dfb1e), SkBits2Float(0x3f3504f3)); // 883.731f, -82.6222f, 547.091f, -141.981f, 0.707107f 326cb93a386Sopenharmony_cipath.close(); 327cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x44098684), SkBits2Float(0x4305b53c)); // 550.102f, 133.708f 328cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43a5300e), SkBits2Float(0xc30026d3), SkBits2Float(0x437da548), SkBits2Float(0xc27f121c), SkBits2Float(0x3f3504f3)); // 330.375f, -128.152f, 253.646f, -63.7677f, 0.707107f 329cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4330ea74), SkBits2Float(0x3f1dc4b8), SkBits2Float(0x43c65234), SkBits2Float(0x43833cea), SkBits2Float(0x3f3504f3)); // 176.916f, 0.616283f, 396.642f, 262.476f, 0.707107f 330cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x441a1798), SkBits2Float(0x44031579), SkBits2Float(0x442d464c), SkBits2Float(0x43e5f9cc), SkBits2Float(0x3f3504f3)); // 616.369f, 524.336f, 693.098f, 459.952f, 0.707107f 331cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x44407502), SkBits2Float(0x43c5c8a6), SkBits2Float(0x44098684), SkBits2Float(0x4305b53c), SkBits2Float(0x3f3504f3)); // 769.828f, 395.568f, 550.102f, 133.708f, 0.707107f 332cb93a386Sopenharmony_cipath.close(); 333cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x43bb9978), SkBits2Float(0x44487cfb)); // 375.199f, 801.953f 334cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43bb9978), SkBits2Float(0x43e60f46), SkBits2Float(0x43898486), SkBits2Float(0x43e60f46), SkBits2Float(0x3f3504f3)); // 375.199f, 460.119f, 275.035f, 460.119f, 0.707107f 335cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432edf26), SkBits2Float(0x43e60f46), SkBits2Float(0x432edf26), SkBits2Float(0x44487cfb), SkBits2Float(0x3f3504f3)); // 174.872f, 460.119f, 174.872f, 801.953f, 0.707107f 336cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432edf26), SkBits2Float(0x448ef92a), SkBits2Float(0x43898486), SkBits2Float(0x448ef92a), SkBits2Float(0x3f3504f3)); // 174.872f, 1143.79f, 275.035f, 1143.79f, 0.707107f 337cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43bb9978), SkBits2Float(0x448ef92a), SkBits2Float(0x43bb9978), SkBits2Float(0x44487cfb), SkBits2Float(0x3f3504f3)); // 375.199f, 1143.79f, 375.199f, 801.953f, 0.707107f 338cb93a386Sopenharmony_cipath.close(); 339cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x42d07148), SkBits2Float(0x445532a0)); // 104.221f, 852.791f 340cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43a1f94a), SkBits2Float(0x4413bb9c), SkBits2Float(0x437737c0), SkBits2Float(0x4403a309), SkBits2Float(0x3f3504f3)); // 323.948f, 590.931f, 247.218f, 526.547f, 0.707107f 341cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432a7ceb), SkBits2Float(0x43e714ed), SkBits2Float(0xc244f418), SkBits2Float(0x4435017b), SkBits2Float(0x3f3504f3)); // 170.488f, 462.163f, -49.2384f, 724.023f, 0.707107f 342cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3867b7b), SkBits2Float(0x4476787f), SkBits2Float(0xc3403c22), SkBits2Float(0x44834889), SkBits2Float(0x3f3504f3)); // -268.965f, 985.883f, -192.235f, 1050.27f, 0.707107f 343cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc2e7029c), SkBits2Float(0x448b54d2), SkBits2Float(0x42d07148), SkBits2Float(0x445532a0), SkBits2Float(0x3f3504f3)); // -115.505f, 1114.65f, 104.221f, 852.791f, 0.707107f 344cb93a386Sopenharmony_cipath.close(); 345cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc30809b4), SkBits2Float(0x44336379)); // -136.038f, 717.554f 346cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43489a34), SkBits2Float(0x44248c83), SkBits2Float(0x43373589), SkBits2Float(0x440be36d), SkBits2Float(0x3f3504f3)); // 200.602f, 658.195f, 183.209f, 559.554f, 0.707107f 347cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4325d0dd), SkBits2Float(0x43e674af), SkBits2Float(0xc32ad30a), SkBits2Float(0x4402114e), SkBits2Float(0x3f3504f3)); // 165.816f, 460.912f, -170.824f, 520.27f, 0.707107f 348cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3fdbb7b), SkBits2Float(0x4410e844), SkBits2Float(0xc3f50925), SkBits2Float(0x4429915a), SkBits2Float(0x3f3504f3)); // -507.465f, 579.629f, -490.071f, 678.271f, 0.707107f 349cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3ec56cf), SkBits2Float(0x44423a6f), SkBits2Float(0xc30809b4), SkBits2Float(0x44336379), SkBits2Float(0x3f3504f3)); // -472.678f, 776.913f, -136.038f, 717.554f, 0.707107f 350cb93a386Sopenharmony_cipath.close(); 351cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc369289a), SkBits2Float(0x43e5c2b7)); // -233.159f, 459.521f 352cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x427b82f4), SkBits2Float(0x441d9c08), SkBits2Float(0x42e1eb60), SkBits2Float(0x4407ec66), SkBits2Float(0x3f3504f3)); // 62.8779f, 630.438f, 112.96f, 543.694f, 0.707107f 353cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43230aa3), SkBits2Float(0x43e47988), SkBits2Float(0xc304feb4), SkBits2Float(0x438f042f), SkBits2Float(0x3f3504f3)); // 163.042f, 456.949f, -132.995f, 286.033f, 0.707107f 354cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3d68405), SkBits2Float(0x42e63b5c), SkBits2Float(0xc3ef8e7f), SkBits2Float(0x4349dc36), SkBits2Float(0x3f3504f3)); // -429.031f, 115.116f, -479.113f, 201.86f, 0.707107f 355cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc4044c7c), SkBits2Float(0x43904d5e), SkBits2Float(0xc369289a), SkBits2Float(0x43e5c2b7), SkBits2Float(0x3f3504f3)); // -529.195f, 288.604f, -233.159f, 459.521f, 0.707107f 356cb93a386Sopenharmony_cipath.close(); 357cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xc30db26a), SkBits2Float(0x43476db5)); // -141.697f, 199.429f 358cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1c64388), SkBits2Float(0x44022968), SkBits2Float(0x428aae1e), SkBits2Float(0x43f331c9), SkBits2Float(0x3f3504f3)); // -24.783f, 520.647f, 69.3401f, 486.389f, 0.707107f 359cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4323768e), SkBits2Float(0x43e210c3), SkBits2Float(0x423a3252), SkBits2Float(0x4302e99e), SkBits2Float(0x3f3504f3)); // 163.463f, 452.131f, 46.5491f, 130.913f, 0.707107f 360cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc28cbac8), SkBits2Float(0xc33e4e50), SkBits2Float(0xc3247ce4), SkBits2Float(0xc31c0c44), SkBits2Float(0x3f3504f3)); // -70.3648f, -190.306f, -164.488f, -156.048f, 0.707107f 361cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc3814e32), SkBits2Float(0xc2f39470), SkBits2Float(0xc30db26a), SkBits2Float(0x43476db5), SkBits2Float(0x3f3504f3)); // -258.611f, -121.79f, -141.697f, 199.429f, 0.707107f 362cb93a386Sopenharmony_cipath.close(); 363cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x42bf1a33), SkBits2Float(0x426be7d0)); // 95.5512f, 58.9764f 364cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1aae6f8), SkBits2Float(0x43be18ef), SkBits2Float(0x42918542), SkBits2Float(0x43cf39f4), SkBits2Float(0x3f3504f3)); // -21.3628f, 380.195f, 72.7603f, 414.453f, 0.707107f 365cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4326e221), SkBits2Float(0x43e05afa), SkBits2Float(0x438de60c), SkBits2Float(0x42fefc14), SkBits2Float(0x3f3504f3)); // 166.883f, 448.711f, 283.797f, 127.492f, 0.707107f 366cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43c85b09), SkBits2Float(0xc341b9e0), SkBits2Float(0x43994b49), SkBits2Float(0xc363fbec), SkBits2Float(0x3f3504f3)); // 400.711f, -193.726f, 306.588f, -227.984f, 0.707107f 367cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43547712), SkBits2Float(0xc3831efc), SkBits2Float(0x42bf1a33), SkBits2Float(0x426be7d0), SkBits2Float(0x3f3504f3)); // 212.465f, -262.242f, 95.5512f, 58.9764f, 0.707107f 368cb93a386Sopenharmony_cipath.close(); 369cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x43b7c98f), SkBits2Float(0x42cfc494)); // 367.575f, 103.884f 370cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x428f138a), SkBits2Float(0x4389667c), SkBits2Float(0x42f33d6e), SkBits2Float(0x43b4c5c0), SkBits2Float(0x3f3504f3)); // 71.5382f, 274.801f, 121.62f, 361.545f, 0.707107f 371cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432bb3a9), SkBits2Float(0x43e02504), SkBits2Float(0x43e9de81), SkBits2Float(0x438aafae), SkBits2Float(0x3f3504f3)); // 171.702f, 448.289f, 467.738f, 277.372f, 0.707107f 372cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x443ef196), SkBits2Float(0x42d4e958), SkBits2Float(0x44326c5a), SkBits2Float(0x419db120), SkBits2Float(0x3f3504f3)); // 763.775f, 106.456f, 713.693f, 19.7115f, 0.707107f 373cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4425e71e), SkBits2Float(0xc28610c8), SkBits2Float(0x43b7c98f), SkBits2Float(0x42cfc494), SkBits2Float(0x3f3504f3)); // 663.611f, -67.0328f, 367.575f, 103.884f, 0.707107f 374cb93a386Sopenharmony_cipath.close(); 375cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x4408c5ce), SkBits2Float(0x439c91b7)); // 547.091f, 313.138f 376cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4352734e), SkBits2Float(0x437dc797), SkBits2Float(0x43410ea4), SkBits2Float(0x43b035f6), SkBits2Float(0x3f3504f3)); // 210.45f, 253.78f, 193.057f, 352.422f, 0.707107f 377cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x432fa9f9), SkBits2Float(0x43e18822), SkBits2Float(0x44001378), SkBits2Float(0x43ff360d), SkBits2Float(0x3f3504f3)); // 175.664f, 451.064f, 512.304f, 510.422f, 0.707107f 378cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x44543c72), SkBits2Float(0x440e71fc), SkBits2Float(0x4458959e), SkBits2Float(0x43eb91ce), SkBits2Float(0x3f3504f3)); // 848.944f, 569.781f, 866.338f, 471.139f, 0.707107f 379cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x445ceec8), SkBits2Float(0x43ba3fa3), SkBits2Float(0x4408c5ce), SkBits2Float(0x439c91b7), SkBits2Float(0x3f3504f3)); // 883.731f, 372.497f, 547.091f, 313.138f, 0.707107f 380cb93a386Sopenharmony_cipath.close(); 381cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x44098684), SkBits2Float(0x441334f2)); // 550.102f, 588.827f 382cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x43a5300e), SkBits2Float(0x43a37bdc), SkBits2Float(0x437da548), SkBits2Float(0x43c3ad02), SkBits2Float(0x3f3504f3)); // 330.375f, 326.968f, 253.646f, 391.352f, 0.707107f 383cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4330ea74), SkBits2Float(0x43e3de28), SkBits2Float(0x43c65234), SkBits2Float(0x44336618), SkBits2Float(0x3f3504f3)); // 176.916f, 455.736f, 396.642f, 717.595f, 0.707107f 384cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x441a1798), SkBits2Float(0x4474dd1c), SkBits2Float(0x442d464c), SkBits2Float(0x4464c489), SkBits2Float(0x3f3504f3)); // 616.369f, 979.455f, 693.098f, 915.071f, 0.707107f 385cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x44407502), SkBits2Float(0x4454abf6), SkBits2Float(0x44098684), SkBits2Float(0x441334f2), SkBits2Float(0x3f3504f3)); // 769.828f, 850.687f, 550.102f, 588.827f, 0.707107f 386cb93a386Sopenharmony_cipath.close(); 387cb93a386Sopenharmony_ciSkPath lastFailed = path; 388cb93a386Sopenharmony_ci#if DEBUG_SIMPLIFY_FAILS 389cb93a386Sopenharmony_ci for (;;) { 390cb93a386Sopenharmony_ci SkPath failed = subset_simplify_fail(reporter, lastFailed); 391cb93a386Sopenharmony_ci if (failed == lastFailed) { 392cb93a386Sopenharmony_ci break; 393cb93a386Sopenharmony_ci } 394cb93a386Sopenharmony_ci lastFailed = failed; 395cb93a386Sopenharmony_ci } 396cb93a386Sopenharmony_ci#endif 397cb93a386Sopenharmony_ci testSimplify(reporter, lastFailed, __FUNCTION__); 398cb93a386Sopenharmony_ci} 399cb93a386Sopenharmony_ci 400cb93a386Sopenharmony_ciDEF_TEST(SixtyOvals_2_2_9_73_reduced, reporter) { 401cb93a386Sopenharmony_ci SkPath path; 402cb93a386Sopenharmony_cipath.moveTo(377.219f, -141.981f); 403cb93a386Sopenharmony_cipath.conicTo(40.5787f, -201.34f, 23.1855f, -102.698f, 0.707107f); 404cb93a386Sopenharmony_cipath.lineTo(377.219f, -141.981f); 405cb93a386Sopenharmony_cipath.close(); 406cb93a386Sopenharmony_cipath.moveTo(306.588f, -227.984f); 407cb93a386Sopenharmony_cipath.conicTo(212.465f, -262.242f, 95.5512f, 58.9764f, 0.707107f); 408cb93a386Sopenharmony_cipath.lineTo(306.588f, -227.984f); 409cb93a386Sopenharmony_cipath.close(); 410cb93a386Sopenharmony_citestSimplify(reporter, path, __FUNCTION__); 411cb93a386Sopenharmony_ci} 412cb93a386Sopenharmony_ci 413cb93a386Sopenharmony_ciDEF_TEST(SixtyOvalsA, reporter) { 414cb93a386Sopenharmony_ciSkPath path; 415cb93a386Sopenharmony_cipath.setFillType(SkPathFillType::kEvenOdd); 416cb93a386Sopenharmony_cipath.moveTo(11.1722f, -8.10398f); 417cb93a386Sopenharmony_cipath.conicTo(22.9143f, -10.3787f, 23.7764f, -7.72542f, 1.00863f); 418cb93a386Sopenharmony_cipath.conicTo(24.6671f, -4.98406f, 13.8147f, 0.0166066f, 0.973016f); 419cb93a386Sopenharmony_cipath.conicTo(24.6378f, 5.07425f, 23.7764f, 7.72542f, 1.00888f); 420cb93a386Sopenharmony_cipath.conicTo(22.8777f, 10.4915f, 11.1648f, 8.13034f, 0.960143f); 421cb93a386Sopenharmony_cipath.conicTo(16.9503f, 18.5866f, 14.6946f, 20.2254f, 1.00881f); 422cb93a386Sopenharmony_cipath.conicTo(12.4417f, 21.8623f, 4.29722f, 13.1468f, 1.0092f); 423cb93a386Sopenharmony_cipath.conicTo(2.92708f, 25, 0, 25, 0.955692f); 424cb93a386Sopenharmony_cipath.conicTo(-2.79361f, 25, -4.258f, 13.1048f, 1.00818f); 425cb93a386Sopenharmony_cipath.conicTo(-4.27813f, 13.1264f, -4.29822f, 13.1479f, 1.03158f); 426cb93a386Sopenharmony_cipath.conicTo(-12.44f, 21.8635f, -14.6946f, 20.2254f, 1.00811f); 427cb93a386Sopenharmony_cipath.conicTo(-16.9933f, 18.5554f, -11.1722f, 8.10398f, 0.989875f); 428cb93a386Sopenharmony_cipath.conicTo(-22.9143f, 10.3787f, -23.7764f, 7.72542f, 1.00863f); 429cb93a386Sopenharmony_cipath.conicTo(-24.6671f, 4.98406f, -13.8147f, -0.0166066f, 0.973016f); 430cb93a386Sopenharmony_cipath.conicTo(-24.6378f, -5.07425f, -23.7764f, -7.72542f, 1.00888f); 431cb93a386Sopenharmony_cipath.conicTo(-22.8777f, -10.4915f, -11.1648f, -8.13034f, 0.960143f); 432cb93a386Sopenharmony_cipath.conicTo(-16.9503f, -18.5866f, -14.6946f, -20.2254f, 1.00881f); 433cb93a386Sopenharmony_cipath.conicTo(-12.4417f, -21.8623f, -4.29722f, -13.1468f, 1.0092f); 434cb93a386Sopenharmony_cipath.conicTo(-2.92708f, -25, 0, -25, 0.955692f); 435cb93a386Sopenharmony_cipath.conicTo(2.79361f, -25, 4.258f, -13.1048f, 1.00818f); 436cb93a386Sopenharmony_cipath.conicTo(4.27813f, -13.1264f, 4.29822f, -13.1479f, 1.03158f); 437cb93a386Sopenharmony_cipath.conicTo(12.44f, -21.8635f, 14.6946f, -20.2254f, 1.00811f); 438cb93a386Sopenharmony_cipath.conicTo(16.9933f, -18.5554f, 11.1722f, -8.10398f, 0.989875f); 439cb93a386Sopenharmony_cipath.close(); 440cb93a386Sopenharmony_ciSkPath one(path); 441cb93a386Sopenharmony_cipath.reset(); 442cb93a386Sopenharmony_cipath.setFillType(SkPathFillType::kWinding); 443cb93a386Sopenharmony_cipath.moveTo(-1.54509f, -4.75528f); 444cb93a386Sopenharmony_cipath.conicTo(22.2313f, -12.4807f, 23.7764f, -7.72543f, 0.707107f); 445cb93a386Sopenharmony_cipath.conicTo(25.3215f, -2.97014f, 1.54509f, 4.75528f, 0.707107f); 446cb93a386Sopenharmony_cipath.conicTo(-22.2313f, 12.4807f, -23.7764f, 7.72543f, 0.707107f); 447cb93a386Sopenharmony_cipath.conicTo(-25.3215f, 2.97014f, -1.54509f, -4.75528f, 0.707107f); 448cb93a386Sopenharmony_cipath.close(); 449cb93a386Sopenharmony_ciSkPath two(path); 450cb93a386Sopenharmony_ciSkPath result; 451cb93a386Sopenharmony_ciOp(one, two, kUnion_SkPathOp, &result); 452cb93a386Sopenharmony_ci} 453cb93a386Sopenharmony_ci 454cb93a386Sopenharmony_ciDEF_TEST(SixtyOvalsAX, reporter) { 455cb93a386Sopenharmony_ciSkPath path; 456cb93a386Sopenharmony_cipath.setFillType(SkPathFillType::kEvenOdd); 457cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0x4132c174), SkBits2Float(0xc101a9e5)); // 11.1722f, -8.10398f 458cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41b7508a), SkBits2Float(0xc1260efe), SkBits2Float(0x41be3618), SkBits2Float(0xc0f736ad), SkBits2Float(0x3f811abd)); // 22.9143f, -10.3787f, 23.7764f, -7.72542f, 1.00863f 459cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41c5564b), SkBits2Float(0xc09f7d6d), SkBits2Float(0x415d0934), SkBits2Float(0x3c880a93), SkBits2Float(0x3f79179a)); // 24.6671f, -4.98406f, 13.8147f, 0.0166066f, 0.973016f 460cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41c51a48), SkBits2Float(0x40a2603c), SkBits2Float(0x41be3618), SkBits2Float(0x40f736ac), SkBits2Float(0x3f8122f3)); // 24.6378f, 5.07425f, 23.7764f, 7.72542f, 1.00888f 461cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41b7056f), SkBits2Float(0x4127dd49), SkBits2Float(0x4132a328), SkBits2Float(0x410215e1), SkBits2Float(0x3f75cbec)); // 22.8777f, 10.4915f, 11.1648f, 8.13034f, 0.960143f 462cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41879a3b), SkBits2Float(0x4194b151), SkBits2Float(0x416b1d34), SkBits2Float(0x41a1cdac), SkBits2Float(0x3f8120d4)); // 16.9503f, 18.5866f, 14.6946f, 20.2254f, 1.00881f 463cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41471107), SkBits2Float(0x41aee601), SkBits2Float(0x408982d1), SkBits2Float(0x41525939), SkBits2Float(0x3f812d7f)); // 12.4417f, 21.8623f, 4.29722f, 13.1468f, 1.0092f 464cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x403b5543), SkBits2Float(0x41c80000), SkBits2Float(0x00000000), SkBits2Float(0x41c80000), SkBits2Float(0x3f74a837)); // 2.92708f, 25, 0, 25, 0.955692f 465cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc032ca93), SkBits2Float(0x41c80000), SkBits2Float(0xc088418e), SkBits2Float(0x4151ad32), SkBits2Float(0x3f810c2d)); // -2.79361f, 25, -4.258f, 13.1048f, 1.00818f 466cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc088e66c), SkBits2Float(0x4152058a), SkBits2Float(0xc0898afc), SkBits2Float(0x41525d9e), SkBits2Float(0x3f840adb)); // -4.27813f, 13.1264f, -4.29822f, 13.1479f, 1.03158f 467cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1470a56), SkBits2Float(0x41aee870), SkBits2Float(0xc16b1d36), SkBits2Float(0x41a1cdac), SkBits2Float(0x3f81099f)); // -12.44f, 21.8635f, -14.6946f, 20.2254f, 1.00811f 468cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc187f23a), SkBits2Float(0x41947162), SkBits2Float(0xc132c174), SkBits2Float(0x4101a9e5), SkBits2Float(0x3f7d6873)); // -16.9933f, 18.5554f, -11.1722f, 8.10398f, 0.989875f 469cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1b7508a), SkBits2Float(0x41260efe), SkBits2Float(0xc1be3618), SkBits2Float(0x40f736ad), SkBits2Float(0x3f811abd)); // -22.9143f, 10.3787f, -23.7764f, 7.72542f, 1.00863f 470cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1c5564b), SkBits2Float(0x409f7d6d), SkBits2Float(0xc15d0934), SkBits2Float(0xbc880a93), SkBits2Float(0x3f79179a)); // -24.6671f, 4.98406f, -13.8147f, -0.0166066f, 0.973016f 471cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1c51a48), SkBits2Float(0xc0a2603c), SkBits2Float(0xc1be3618), SkBits2Float(0xc0f736ac), SkBits2Float(0x3f8122f3)); // -24.6378f, -5.07425f, -23.7764f, -7.72542f, 1.00888f 472cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1b7056f), SkBits2Float(0xc127dd49), SkBits2Float(0xc132a328), SkBits2Float(0xc10215e1), SkBits2Float(0x3f75cbec)); // -22.8777f, -10.4915f, -11.1648f, -8.13034f, 0.960143f 473cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1879a3b), SkBits2Float(0xc194b151), SkBits2Float(0xc16b1d34), SkBits2Float(0xc1a1cdac), SkBits2Float(0x3f8120d4)); // -16.9503f, -18.5866f, -14.6946f, -20.2254f, 1.00881f 474cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1471107), SkBits2Float(0xc1aee601), SkBits2Float(0xc08982d1), SkBits2Float(0xc1525939), SkBits2Float(0x3f812d7f)); // -12.4417f, -21.8623f, -4.29722f, -13.1468f, 1.0092f 475cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc03b5543), SkBits2Float(0xc1c80000), SkBits2Float(0x00000000), SkBits2Float(0xc1c80000), SkBits2Float(0x3f74a837)); // -2.92708f, -25, 0, -25, 0.955692f 476cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4032ca93), SkBits2Float(0xc1c80000), SkBits2Float(0x4088418e), SkBits2Float(0xc151ad32), SkBits2Float(0x3f810c2d)); // 2.79361f, -25, 4.258f, -13.1048f, 1.00818f 477cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4088e66c), SkBits2Float(0xc152058a), SkBits2Float(0x40898afc), SkBits2Float(0xc1525d9e), SkBits2Float(0x3f840adb)); // 4.27813f, -13.1264f, 4.29822f, -13.1479f, 1.03158f 478cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41470a56), SkBits2Float(0xc1aee870), SkBits2Float(0x416b1d36), SkBits2Float(0xc1a1cdac), SkBits2Float(0x3f81099f)); // 12.44f, -21.8635f, 14.6946f, -20.2254f, 1.00811f 479cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x4187f23a), SkBits2Float(0xc1947162), SkBits2Float(0x4132c174), SkBits2Float(0xc101a9e5), SkBits2Float(0x3f7d6873)); // 16.9933f, -18.5554f, 11.1722f, -8.10398f, 0.989875f 480cb93a386Sopenharmony_cipath.close(); 481cb93a386Sopenharmony_cipath.close(); 482cb93a386Sopenharmony_ciSkPath one(path); 483cb93a386Sopenharmony_cipath.reset(); 484cb93a386Sopenharmony_cipath.setFillType(SkPathFillType::kWinding); 485cb93a386Sopenharmony_cipath.moveTo(SkBits2Float(0xbfc5c55c), SkBits2Float(0xc0982b46)); // -1.54509f, -4.75528f 486cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41b1d9c2), SkBits2Float(0xc147b0fc), SkBits2Float(0x41be3618), SkBits2Float(0xc0f736b3), SkBits2Float(0x3f3504f3)); // 22.2313f, -12.4807f, 23.7764f, -7.72543f, 0.707107f 487cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0x41ca926e), SkBits2Float(0xc03e16da), SkBits2Float(0x3fc5c55c), SkBits2Float(0x40982b46), SkBits2Float(0x3f3504f3)); // 25.3215f, -2.97014f, 1.54509f, 4.75528f, 0.707107f 488cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1b1d9c2), SkBits2Float(0x4147b0fc), SkBits2Float(0xc1be3618), SkBits2Float(0x40f736b3), SkBits2Float(0x3f3504f3)); // -22.2313f, 12.4807f, -23.7764f, 7.72543f, 0.707107f 489cb93a386Sopenharmony_cipath.conicTo(SkBits2Float(0xc1ca926e), SkBits2Float(0x403e16da), SkBits2Float(0xbfc5c55c), SkBits2Float(0xc0982b46), SkBits2Float(0x3f3504f3)); // -25.3215f, 2.97014f, -1.54509f, -4.75528f, 0.707107f 490cb93a386Sopenharmony_cipath.close(); 491cb93a386Sopenharmony_ciSkPath two(path); 492cb93a386Sopenharmony_ciSkPath result; 493cb93a386Sopenharmony_ciOp(one, two, kUnion_SkPathOp, &result); 494cb93a386Sopenharmony_ci} 495cb93a386Sopenharmony_ci 496cb93a386Sopenharmony_ciconst char ovalsAsQuads[] = "M 146.4187316894531 136.5" 497cb93a386Sopenharmony_ci" Q 146.4187316894531 139.8508911132812 146.4066772460938 143.19775390625" 498cb93a386Sopenharmony_ci" Q 146.3946533203125 146.5446166992188 146.3705749511719 149.8793640136719" 499cb93a386Sopenharmony_ci" Q 146.3465270996094 153.214111328125 146.3104858398438 156.5287170410156" 500cb93a386Sopenharmony_ci" Q 146.2744750976562 159.8433227539062 146.2265930175781 163.1298217773438" 501cb93a386Sopenharmony_ci" Q 146.1786804199219 166.4163208007812 146.1190490722656 169.6668090820312" 502cb93a386Sopenharmony_ci" Q 146.0593872070312 172.9172973632812 145.9881286621094 176.1238708496094" 503cb93a386Sopenharmony_ci" Q 145.9168701171875 179.3304443359375 145.8341674804688 182.4854736328125" 504cb93a386Sopenharmony_ci" Q 145.75146484375 185.6404418945312 145.6575317382812 188.7362670898438" 505cb93a386Sopenharmony_ci" Q 145.5635681152344 191.8320922851562 145.4586181640625 194.8612365722656" 506cb93a386Sopenharmony_ci" Q 145.3536682128906 197.8904113769531 145.2379455566406 200.8456420898438" 507cb93a386Sopenharmony_ci" Q 145.1222229003906 203.8008422851562 144.9960021972656 206.6750183105469" 508cb93a386Sopenharmony_ci" Q 144.8698120117188 209.5491638183594 144.7334289550781 212.3353271484375" 509cb93a386Sopenharmony_ci" Q 144.5970458984375 215.1214599609375 144.4508056640625 217.8129272460938" 510cb93a386Sopenharmony_ci" Q 144.3045654296875 220.50439453125 144.1488342285156 223.0946655273438" 511cb93a386Sopenharmony_ci" Q 143.9931030273438 225.6849365234375 143.8282470703125 228.1677856445312" 512cb93a386Sopenharmony_ci" Q 143.6633911132812 230.650634765625 143.4898071289062 233.0200805664062" 513cb93a386Sopenharmony_ci" Q 143.3162231445312 235.3894958496094 143.1343078613281 237.6398315429688" 514cb93a386Sopenharmony_ci" Q 142.9524230957031 239.89013671875 142.7626647949219 242.0159301757812" 515cb93a386Sopenharmony_ci" Q 142.5729064941406 244.1417236328125 142.375732421875 246.1378173828125" 516cb93a386Sopenharmony_ci" Q 142.1785583496094 248.1339111328125 141.9744262695312 249.99560546875" 517cb93a386Sopenharmony_ci" Q 141.7703247070312 251.8572387695312 141.5597534179688 253.5799255371094" 518cb93a386Sopenharmony_ci" Q 141.3492126464844 255.3026428222656 141.1326904296875 256.8822326660156" 519cb93a386Sopenharmony_ci" Q 140.9161987304688 258.4617919921875 140.6942749023438 259.8945007324219" 520cb93a386Sopenharmony_ci" Q 140.4723510742188 261.3271789550781 140.2455749511719 262.6095275878906" 521cb93a386Sopenharmony_ci" Q 140.0187683105469 263.8918762207031 139.7876281738281 265.020751953125" 522cb93a386Sopenharmony_ci" Q 139.5564880371094 266.1496276855469 139.3215637207031 267.1223449707031" 523cb93a386Sopenharmony_ci" Q 139.086669921875 268.0950622558594 138.8485412597656 268.9092712402344" 524cb93a386Sopenharmony_ci" Q 138.6104125976562 269.7234497070312 138.36962890625 270.3771667480469" 525cb93a386Sopenharmony_ci" Q 138.1288757324219 271.0308837890625 137.8860473632812 271.5225830078125" 526cb93a386Sopenharmony_ci" Q 137.6432189941406 272.0142822265625 137.3988952636719 272.3427124023438" 527cb93a386Sopenharmony_ci" Q 137.1546020507812 272.6711730957031 136.9093933105469 272.8355712890625" 528cb93a386Sopenharmony_ci" Q 136.6642150878906 272.9999694824219 136.4187316894531 273" 529cb93a386Sopenharmony_ci" Q 136.1732482910156 272.9999694824219 135.9280700683594 272.8355712890625" 530cb93a386Sopenharmony_ci" Q 135.682861328125 272.6711730957031 135.4385681152344 272.3427124023438" 531cb93a386Sopenharmony_ci" Q 135.1942443847656 272.0142822265625 134.951416015625 271.5225830078125" 532cb93a386Sopenharmony_ci" Q 134.7085876464844 271.0308837890625 134.4678344726562 270.3771667480469" 533cb93a386Sopenharmony_ci" Q 134.22705078125 269.7234497070312 133.9889221191406 268.9092407226562" 534cb93a386Sopenharmony_ci" Q 133.7507934570312 268.0950622558594 133.5158996582031 267.122314453125" 535cb93a386Sopenharmony_ci" Q 133.2809753417969 266.1495971679688 133.0498352050781 265.020751953125" 536cb93a386Sopenharmony_ci" Q 132.8186950683594 263.8918762207031 132.5918884277344 262.6095275878906" 537cb93a386Sopenharmony_ci" Q 132.3651123046875 261.3271789550781 132.1431884765625 259.8945007324219" 538cb93a386Sopenharmony_ci" Q 131.9212646484375 258.4617919921875 131.7047729492188 256.8822326660156" 539cb93a386Sopenharmony_ci" Q 131.4882507324219 255.3026428222656 131.2777099609375 253.5799560546875" 540cb93a386Sopenharmony_ci" Q 131.067138671875 251.8572387695312 130.863037109375 249.99560546875" 541cb93a386Sopenharmony_ci" Q 130.6589050292969 248.1339111328125 130.4617309570312 246.1378173828125" 542cb93a386Sopenharmony_ci" Q 130.2645568847656 244.1417236328125 130.0747985839844 242.0159301757812" 543cb93a386Sopenharmony_ci" Q 129.8850402832031 239.89013671875 129.7031555175781 237.6398315429688" 544cb93a386Sopenharmony_ci" Q 129.521240234375 235.3894958496094 129.34765625 233.0200805664062" 545cb93a386Sopenharmony_ci" Q 129.174072265625 230.650634765625 129.0092163085938 228.1677856445312" 546cb93a386Sopenharmony_ci" Q 128.8443603515625 225.6849365234375 128.6886291503906 223.0946655273438" 547cb93a386Sopenharmony_ci" Q 128.5328979492188 220.50439453125 128.3866577148438 217.8129272460938" 548cb93a386Sopenharmony_ci" Q 128.2404174804688 215.1214599609375 128.1040344238281 212.3353271484375" 549cb93a386Sopenharmony_ci" Q 127.9676513671875 209.5491333007812 127.8414306640625 206.6749877929688" 550cb93a386Sopenharmony_ci" Q 127.7152404785156 203.8008422851562 127.5995178222656 200.8456420898438" 551cb93a386Sopenharmony_ci" Q 127.4837951660156 197.8904113769531 127.3788452148438 194.8612365722656" 552cb93a386Sopenharmony_ci" Q 127.2738647460938 191.8320922851562 127.179931640625 188.7362670898438" 553cb93a386Sopenharmony_ci" Q 127.0859985351562 185.6404418945312 127.0032958984375 182.4854431152344" 554cb93a386Sopenharmony_ci" Q 126.9205932617188 179.3304443359375 126.8493347167969 176.1238708496094" 555cb93a386Sopenharmony_ci" Q 126.778076171875 172.9172973632812 126.7184143066406 169.6668090820312" 556cb93a386Sopenharmony_ci" Q 126.6587829589844 166.4163208007812 126.6108703613281 163.1298217773438" 557cb93a386Sopenharmony_ci" Q 126.56298828125 159.8433227539062 126.5269775390625 156.5287170410156" 558cb93a386Sopenharmony_ci" Q 126.4909362792969 153.214111328125 126.4668884277344 149.8793640136719" 559cb93a386Sopenharmony_ci" Q 126.4428100585938 146.5446166992188 126.4307861328125 143.19775390625" 560cb93a386Sopenharmony_ci" Q 126.4187316894531 139.8508911132812 126.4187316894531 136.5" 561cb93a386Sopenharmony_ci" Q 126.4187316894531 133.1491088867188 126.4307861328125 129.8022613525391" 562cb93a386Sopenharmony_ci" Q 126.4428100585938 126.4554138183594 126.4668884277344 123.1206665039062" 563cb93a386Sopenharmony_ci" Q 126.4909362792969 119.7859039306641 126.5269775390625 116.4712829589844" 564cb93a386Sopenharmony_ci" Q 126.56298828125 113.1566619873047 126.6108703613281 109.8701629638672" 565cb93a386Sopenharmony_ci" Q 126.6587829589844 106.5836639404297 126.7184143066406 103.3331909179688" 566cb93a386Sopenharmony_ci" Q 126.778076171875 100.0827331542969 126.8493347167969 96.87612915039062" 567cb93a386Sopenharmony_ci" Q 126.9205932617188 93.66952514648438 127.0032958984375 90.5145263671875" 568cb93a386Sopenharmony_ci" Q 127.0859985351562 87.35951232910156 127.179931640625 84.26370239257812" 569cb93a386Sopenharmony_ci" Q 127.2738647460938 81.16787719726562 127.3788452148438 78.13871765136719" 570cb93a386Sopenharmony_ci" Q 127.4837951660156 75.10955810546875 127.5995178222656 72.15434265136719" 571cb93a386Sopenharmony_ci" Q 127.7152404785156 69.19912719726562 127.8414306640625 66.32498168945312" 572cb93a386Sopenharmony_ci" Q 127.9676513671875 63.45082092285156 128.1040344238281 60.66465759277344" 573cb93a386Sopenharmony_ci" Q 128.2404174804688 57.87849426269531 128.3866577148438 55.18704223632812" 574cb93a386Sopenharmony_ci" Q 128.5328979492188 52.49559020996094 128.6886291503906 49.90530395507812" 575cb93a386Sopenharmony_ci" Q 128.8443603515625 47.31504821777344 129.0092163085938 44.83219909667969" 576cb93a386Sopenharmony_ci" Q 129.174072265625 42.349365234375 129.34765625 39.97991943359375" 577cb93a386Sopenharmony_ci" Q 129.521240234375 37.61048889160156 129.7031555175781 35.36016845703125" 578cb93a386Sopenharmony_ci" Q 129.8850402832031 33.10984802246094 130.0747985839844 30.98406982421875" 579cb93a386Sopenharmony_ci" Q 130.2645568847656 28.85829162597656 130.4617309570312 26.86216735839844" 580cb93a386Sopenharmony_ci" Q 130.6589050292969 24.86604309082031 130.863037109375 23.00439453125" 581cb93a386Sopenharmony_ci" Q 131.067138671875 21.14274597167969 131.2777099609375 19.4200439453125" 582cb93a386Sopenharmony_ci" Q 131.4882507324219 17.69734191894531 131.7047729492188 16.11775207519531" 583cb93a386Sopenharmony_ci" Q 131.9212646484375 14.53814697265625 132.1431884765625 13.10545349121094" 584cb93a386Sopenharmony_ci" Q 132.3651123046875 11.67277526855469 132.5918884277344 10.39044189453125" 585cb93a386Sopenharmony_ci" Q 132.8186950683594 9.108108520507812 133.0498352050781 7.979232788085938" 586cb93a386Sopenharmony_ci" Q 133.2809753417969 6.850357055664062 133.5158996582031 5.877639770507812" 587cb93a386Sopenharmony_ci" Q 133.7507934570312 4.904937744140625 133.9889221191406 4.090728759765625" 588cb93a386Sopenharmony_ci" Q 134.22705078125 3.276535034179688 134.4678344726562 2.622810363769531" 589cb93a386Sopenharmony_ci" Q 134.7085876464844 1.969085693359375 134.951416015625 1.477409362792969" 590cb93a386Sopenharmony_ci" Q 135.1942443847656 0.9857254028320312 135.4385681152344 0.65728759765625" 591cb93a386Sopenharmony_ci" Q 135.682861328125 0.3288421630859375 135.9280700683594 0.1644210815429688" 592cb93a386Sopenharmony_ci" Q 136.1732482910156 0 136.4187316894531 0" 593cb93a386Sopenharmony_ci" Q 136.6642150878906 0 136.9093933105469 0.1644210815429688" 594cb93a386Sopenharmony_ci" Q 137.1546020507812 0.3288421630859375 137.3988952636719 0.65728759765625" 595cb93a386Sopenharmony_ci" Q 137.6432189941406 0.9857254028320312 137.8860473632812 1.477409362792969" 596cb93a386Sopenharmony_ci" Q 138.1288757324219 1.969085693359375 138.36962890625 2.622810363769531" 597cb93a386Sopenharmony_ci" Q 138.6104125976562 3.276535034179688 138.8485412597656 4.090728759765625" 598cb93a386Sopenharmony_ci" Q 139.086669921875 4.904937744140625 139.3215637207031 5.877639770507812" 599cb93a386Sopenharmony_ci" Q 139.5564880371094 6.850357055664062 139.7876281738281 7.979232788085938" 600cb93a386Sopenharmony_ci" Q 140.0187683105469 9.108108520507812 140.2455749511719 10.39044189453125" 601cb93a386Sopenharmony_ci" Q 140.4723510742188 11.67277526855469 140.6942749023438 13.10545349121094" 602cb93a386Sopenharmony_ci" Q 140.9161987304688 14.53814697265625 141.1326904296875 16.11775207519531" 603cb93a386Sopenharmony_ci" Q 141.3492126464844 17.69734191894531 141.5597534179688 19.4200439453125" 604cb93a386Sopenharmony_ci" Q 141.7703247070312 21.14274597167969 141.9744262695312 23.00439453125" 605cb93a386Sopenharmony_ci" Q 142.1785583496094 24.86604309082031 142.375732421875 26.86216735839844" 606cb93a386Sopenharmony_ci" Q 142.5729064941406 28.85829162597656 142.7626647949219 30.98406982421875" 607cb93a386Sopenharmony_ci" Q 142.9524230957031 33.10984802246094 143.1343078613281 35.36016845703125" 608cb93a386Sopenharmony_ci" Q 143.3162231445312 37.61048889160156 143.4898071289062 39.97991943359375" 609cb93a386Sopenharmony_ci" Q 143.6633911132812 42.349365234375 143.8282470703125 44.83219909667969" 610cb93a386Sopenharmony_ci" Q 143.9931030273438 47.31504821777344 144.1488342285156 49.90531921386719" 611cb93a386Sopenharmony_ci" Q 144.3045654296875 52.49559020996094 144.4508056640625 55.18704223632812" 612cb93a386Sopenharmony_ci" Q 144.5970458984375 57.87849426269531 144.7334289550781 60.66465759277344" 613cb93a386Sopenharmony_ci" Q 144.8698120117188 63.45082092285156 144.9960021972656 66.32498168945312" 614cb93a386Sopenharmony_ci" Q 145.1222229003906 69.19912719726562 145.2379455566406 72.15434265136719" 615cb93a386Sopenharmony_ci" Q 145.3536682128906 75.10955810546875 145.4586181640625 78.13871765136719" 616cb93a386Sopenharmony_ci" Q 145.5635681152344 81.16787719726562 145.6575317382812 84.26370239257812" 617cb93a386Sopenharmony_ci" Q 145.75146484375 87.35951232910156 145.8341674804688 90.5145263671875" 618cb93a386Sopenharmony_ci" Q 145.9168701171875 93.66952514648438 145.9881286621094 96.87614440917969" 619cb93a386Sopenharmony_ci" Q 146.0593872070312 100.0827331542969 146.1190490722656 103.3332061767578" 620cb93a386Sopenharmony_ci" Q 146.1786804199219 106.5836639404297 146.2265930175781 109.8701629638672" 621cb93a386Sopenharmony_ci" Q 146.2744750976562 113.1566619873047 146.3104858398438 116.4712829589844" 622cb93a386Sopenharmony_ci" Q 146.3465270996094 119.785888671875 146.3705749511719 123.1206665039062" 623cb93a386Sopenharmony_ci" Q 146.3946533203125 126.4554138183594 146.4066772460938 129.8022613525391" 624cb93a386Sopenharmony_ci" Q 146.4187316894531 133.1491088867188 146.4187316894531 136.5 Z"; 625cb93a386Sopenharmony_ci 626cb93a386Sopenharmony_ci#include "include/utils/SkParsePath.h" 627cb93a386Sopenharmony_ci 628cb93a386Sopenharmony_ciDEF_TEST(PathOpsOvalsAsQuads, reporter) { 629cb93a386Sopenharmony_ci return; // don't execute this for now 630cb93a386Sopenharmony_ci SkPath path; 631cb93a386Sopenharmony_ci SkParsePath::FromSVGString(ovalsAsQuads, &path); 632cb93a386Sopenharmony_ci Simplify(path, &path); 633cb93a386Sopenharmony_ci} 634cb93a386Sopenharmony_ci 635cb93a386Sopenharmony_ciDEF_TEST(PathOps64OvalsAsQuads, reporter) { 636cb93a386Sopenharmony_ci return; // don't execute this for now 637cb93a386Sopenharmony_ci SkPath path, result; 638cb93a386Sopenharmony_ci SkOpBuilder builder; 639cb93a386Sopenharmony_ci SkParsePath::FromSVGString(ovalsAsQuads, &path); 640cb93a386Sopenharmony_ci OvalSet set = {{0, 0, 0, 0}, 2, 3, 9, 100, 100}; 641cb93a386Sopenharmony_ci testOvalSet(set, path, &builder, nullptr, &result); 642cb93a386Sopenharmony_ci} 643