Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(552)

Side by Side Diff: tests/PathOpsSimplifyTest.cpp

Issue 2373533002: add tiger tests (Closed)
Patch Set: oops forgot to add the test Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gyp/pathops_unittest.gypi ('k') | tests/PathOpsTigerTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 #include "PathOpsExtendedTest.h" 7 #include "PathOpsExtendedTest.h"
8 8
9 #define TEST(name) { name, #name } 9 #define TEST(name) { name, #name }
10 10
(...skipping 5037 matching lines...) Expand 10 before | Expand all | Expand 10 after
5048 5048
5049 path.moveTo(SkBits2Float(0x42f60000), SkBits2Float(0x00000000)); // 123, 0 5049 path.moveTo(SkBits2Float(0x42f60000), SkBits2Float(0x00000000)); // 123, 0
5050 path.lineTo(SkBits2Float(0x4c00001e), SkBits2Float(0x00000000)); // 3.35546e+07 f, 0 5050 path.lineTo(SkBits2Float(0x4c00001e), SkBits2Float(0x00000000)); // 3.35546e+07 f, 0
5051 path.lineTo(SkBits2Float(0x4c00001e), SkBits2Float(0x00000000)); // 3.35546e+07 f, 0 5051 path.lineTo(SkBits2Float(0x4c00001e), SkBits2Float(0x00000000)); // 3.35546e+07 f, 0
5052 path.lineTo(SkBits2Float(0x42f60000), SkBits2Float(0x00000000)); // 123, 0 5052 path.lineTo(SkBits2Float(0x42f60000), SkBits2Float(0x00000000)); // 123, 0
5053 path.close(); 5053 path.close();
5054 5054
5055 testSimplify(reporter, path, filename); 5055 testSimplify(reporter, path, filename);
5056 } 5056 }
5057 5057
5058 static void tiger8(skiatest::Reporter* reporter, const char* filename) {
5059 #if DEBUG_UNDER_DEVELOPMENT // tiger
5060 return;
5061 #endif
5062 SkPath path;
5063 path.moveTo(SkBits2Float(0x43f639c5), SkBits2Float(0x4361375a)); // 492.451 f, 225.216f
5064 path.quadTo(SkBits2Float(0x43f58ce4), SkBits2Float(0x435d2a04), SkBits2Float(0x4 3f71bd9), SkBits2Float(0x435ac7d8)); // 491.101f, 221.164f, 494.218f, 218.781f
5065 path.quadTo(SkBits2Float(0x43f7d69d), SkBits2Float(0x4359aa35), SkBits2Float(0x4 3f8b3b3), SkBits2Float(0x435951c5)); // 495.677f, 217.665f, 497.404f, 217.319f
5066 path.conicTo(SkBits2Float(0x43f8ba67), SkBits2Float(0x43594f16), SkBits2Float(0x 43f8c136), SkBits2Float(0x43594dd9), SkBits2Float(0x3f7fa2b1)); // 497.456f, 21 7.309f, 497.509f, 217.304f, 0.998576f
5067 path.quadTo(SkBits2Float(0x43fcc3a8), SkBits2Float(0x43589340), SkBits2Float(0x4 3ff01dc), SkBits2Float(0x4352e191)); // 505.529f, 216.575f, 510.015f, 210.881f
5068 path.conicTo(SkBits2Float(0x43ff5113), SkBits2Float(0x4352187b), SkBits2Float(0x 43ffb59e), SkBits2Float(0x4352b6e9), SkBits2Float(0x3f3504f3)); // 510.633f, 21 0.096f, 511.419f, 210.714f, 0.707107f
5069 path.conicTo(SkBits2Float(0x43ffdc85), SkBits2Float(0x4352f435), SkBits2Float(0x 43ffe4a9), SkBits2Float(0x435355e9), SkBits2Float(0x3f6ec0ae)); // 511.723f, 21 0.954f, 511.786f, 211.336f, 0.932628f
5070 path.quadTo(SkBits2Float(0x4400461c), SkBits2Float(0x435b3080), SkBits2Float(0x4 400b692), SkBits2Float(0x4360b229)); // 513.095f, 219.189f, 514.853f, 224.696f
5071 path.conicTo(SkBits2Float(0x4400c662), SkBits2Float(0x43617856), SkBits2Float(0x 44009920), SkBits2Float(0x4361decb), SkBits2Float(0x3f46ad5b)); // 515.1f, 225. 47f, 514.393f, 225.87f, 0.776083f
5072 path.quadTo(SkBits2Float(0x43fb4920), SkBits2Float(0x43688f50), SkBits2Float(0x4 3f8340f), SkBits2Float(0x4365b887)); // 502.571f, 232.56f, 496.407f, 229.721f
5073 path.quadTo(SkBits2Float(0x43f72cd2), SkBits2Float(0x4364c612), SkBits2Float(0x4 3f69888), SkBits2Float(0x4362e330)); // 494.35f, 228.774f, 493.192f, 226.887f
5074 path.quadTo(SkBits2Float(0x43f66a00), SkBits2Float(0x43624bae), SkBits2Float(0x4 3f64c73), SkBits2Float(0x4361ad04)); // 492.828f, 226.296f, 492.597f, 225.676f
5075 path.quadTo(SkBits2Float(0x43f642ea), SkBits2Float(0x436179d2), SkBits2Float(0x4 3f63c1c), SkBits2Float(0x43614abe)); // 492.523f, 225.476f, 492.47f, 225.292f
5076 path.quadTo(SkBits2Float(0x43f639c9), SkBits2Float(0x43613aa5), SkBits2Float(0x4 3f63809), SkBits2Float(0x43612cda)); // 492.451f, 225.229f, 492.438f, 225.175f
5077 path.quadTo(SkBits2Float(0x43f63777), SkBits2Float(0x43612855), SkBits2Float(0x4 3f636df), SkBits2Float(0x43612357)); // 492.433f, 225.158f, 492.429f, 225.138f
5078 path.quadTo(SkBits2Float(0x43f6368f), SkBits2Float(0x436120b2), SkBits2Float(0x4 3f6367b), SkBits2Float(0x43612005)); // 492.426f, 225.128f, 492.426f, 225.125f
5079 path.lineTo(SkBits2Float(0x43f63656), SkBits2Float(0x43611ebc)); // 492.424f, 2 25.12f
5080 path.lineTo(SkBits2Float(0x43f63647), SkBits2Float(0x43611e34)); // 492.424f, 2 25.118f
5081 path.lineTo(SkBits2Float(0x43f6363f), SkBits2Float(0x43611df3)); // 492.424f, 2 25.117f
5082 path.lineTo(SkBits2Float(0x43f6363e), SkBits2Float(0x43611de5)); // 492.424f, 2 25.117f
5083 path.lineTo(SkBits2Float(0x43f6363f), SkBits2Float(0x43611deb)); // 492.424f, 2 25.117f
5084 path.lineTo(SkBits2Float(0x43f63647), SkBits2Float(0x43611e37)); // 492.424f, 2 25.118f
5085 path.lineTo(SkBits2Float(0x43f63644), SkBits2Float(0x43611e19)); // 492.424f, 2 25.118f
5086 path.quadTo(SkBits2Float(0x43f6365c), SkBits2Float(0x43611ee7), SkBits2Float(0x4 3f6365d), SkBits2Float(0x43611ef9)); // 492.425f, 225.121f, 492.425f, 225.121f
5087 path.quadTo(SkBits2Float(0x43f63666), SkBits2Float(0x43611f4b), SkBits2Float(0x4 3f63672), SkBits2Float(0x43611fb1)); // 492.425f, 225.122f, 492.425f, 225.124f
5088 path.quadTo(SkBits2Float(0x43f636ab), SkBits2Float(0x436121a4), SkBits2Float(0x4 3f636e3), SkBits2Float(0x4361236a)); // 492.427f, 225.131f, 492.429f, 225.138f
5089 path.quadTo(SkBits2Float(0x43f636fd), SkBits2Float(0x43612443), SkBits2Float(0x4 3f63705), SkBits2Float(0x4361247e)); // 492.43f, 225.142f, 492.43f, 225.143f
5090 path.quadTo(SkBits2Float(0x43f637d7), SkBits2Float(0x43612b15), SkBits2Float(0x4 3f638dc), SkBits2Float(0x436131b0)); // 492.436f, 225.168f, 492.444f, 225.194f
5091 path.quadTo(SkBits2Float(0x43f63b88), SkBits2Float(0x43614303), SkBits2Float(0x4 3f63f62), SkBits2Float(0x43615368)); // 492.465f, 225.262f, 492.495f, 225.326f
5092 path.quadTo(SkBits2Float(0x43f6436f), SkBits2Float(0x4361649f), SkBits2Float(0x4 3f648b2), SkBits2Float(0x43617468)); // 492.527f, 225.393f, 492.568f, 225.455f
5093 path.quadTo(SkBits2Float(0x43f68760), SkBits2Float(0x43623072), SkBits2Float(0x4 3f6ec71), SkBits2Float(0x4361cb60)); // 493.058f, 226.189f, 493.847f, 225.794f
5094 path.quadTo(SkBits2Float(0x43f722ef), SkBits2Float(0x436194e0), SkBits2Float(0x4 3f73027), SkBits2Float(0x43611df0)); // 494.273f, 225.582f, 494.376f, 225.117f
5095 path.quadTo(SkBits2Float(0x43f73334), SkBits2Float(0x43610284), SkBits2Float(0x4 3f73333), SkBits2Float(0x4360e667)); // 494.4f, 225.01f, 494.4f, 224.9f
5096 path.lineTo(SkBits2Float(0x43f63638), SkBits2Float(0x43611daf)); // 492.424f, 2 25.116f
5097 path.lineTo(SkBits2Float(0x43f6b333), SkBits2Float(0x4360e666)); // 493.4f, 224 .9f
5098 path.lineTo(SkBits2Float(0x43f639c5), SkBits2Float(0x4361375a)); // 492.451f, 2 25.216f
5099 path.close();
5100 path.moveTo(SkBits2Float(0x43f72ca1), SkBits2Float(0x43609572)); // 494.349f, 2 24.584f
5101 path.conicTo(SkBits2Float(0x43f72ebd), SkBits2Float(0x4360a219), SkBits2Float(0x 43f7302e), SkBits2Float(0x4360af1f), SkBits2Float(0x3f7fa741)); // 494.365f, 22 4.633f, 494.376f, 224.684f, 0.998646f
5102 path.lineTo(SkBits2Float(0x43f63333), SkBits2Float(0x4360e667)); // 492.4f, 224 .9f
5103 path.quadTo(SkBits2Float(0x43f63333), SkBits2Float(0x4360ca4b), SkBits2Float(0x4 3f6363f), SkBits2Float(0x4360aede)); // 492.4f, 224.79f, 492.424f, 224.683f
5104 path.quadTo(SkBits2Float(0x43f64377), SkBits2Float(0x436037ee), SkBits2Float(0x4 3f679f5), SkBits2Float(0x4360016e)); // 492.527f, 224.218f, 492.953f, 224.006f
5105 path.quadTo(SkBits2Float(0x43f6df06), SkBits2Float(0x435f9c5c), SkBits2Float(0x4 3f71db4), SkBits2Float(0x43605866)); // 493.742f, 223.611f, 494.232f, 224.345f
5106 path.quadTo(SkBits2Float(0x43f722f8), SkBits2Float(0x43606830), SkBits2Float(0x4 3f72704), SkBits2Float(0x43607966)); // 494.273f, 224.407f, 494.305f, 224.474f
5107 path.quadTo(SkBits2Float(0x43f72ae0), SkBits2Float(0x436089cd), SkBits2Float(0x4 3f72d8a), SkBits2Float(0x43609b1e)); // 494.335f, 224.538f, 494.356f, 224.606f
5108 path.quadTo(SkBits2Float(0x43f72e8e), SkBits2Float(0x4360a1b8), SkBits2Float(0x4 3f72f61), SkBits2Float(0x4360a850)); // 494.364f, 224.632f, 494.37f, 224.657f
5109 path.quadTo(SkBits2Float(0x43f72f68), SkBits2Float(0x4360a88a), SkBits2Float(0x4 3f72f83), SkBits2Float(0x4360a964)); // 494.37f, 224.658f, 494.371f, 224.662f
5110 path.quadTo(SkBits2Float(0x43f72fbb), SkBits2Float(0x4360ab2a), SkBits2Float(0x4 3f72ff4), SkBits2Float(0x4360ad1d)); // 494.373f, 224.669f, 494.375f, 224.676f
5111 path.quadTo(SkBits2Float(0x43f73000), SkBits2Float(0x4360ad83), SkBits2Float(0x4 3f73009), SkBits2Float(0x4360add5)); // 494.375f, 224.678f, 494.375f, 224.679f
5112 path.quadTo(SkBits2Float(0x43f7300b), SkBits2Float(0x4360ade9), SkBits2Float(0x4 3f73022), SkBits2Float(0x4360aeb5)); // 494.375f, 224.679f, 494.376f, 224.682f
5113 path.lineTo(SkBits2Float(0x43f7301f), SkBits2Float(0x4360ae97)); // 494.376f, 2 24.682f
5114 path.lineTo(SkBits2Float(0x43f73027), SkBits2Float(0x4360aee3)); // 494.376f, 2 24.683f
5115 path.lineTo(SkBits2Float(0x43f73028), SkBits2Float(0x4360aeeb)); // 494.376f, 2 24.683f
5116 path.lineTo(SkBits2Float(0x43f73027), SkBits2Float(0x4360aedf)); // 494.376f, 2 24.683f
5117 path.lineTo(SkBits2Float(0x43f73021), SkBits2Float(0x4360aeaa)); // 494.376f, 2 24.682f
5118 path.lineTo(SkBits2Float(0x43f73016), SkBits2Float(0x4360ae50)); // 494.376f, 2 24.681f
5119 path.lineTo(SkBits2Float(0x43f73007), SkBits2Float(0x4360adc1)); // 494.375f, 2 24.679f
5120 path.lineTo(SkBits2Float(0x43f72ff9), SkBits2Float(0x4360ad4d)); // 494.375f, 2 24.677f
5121 path.quadTo(SkBits2Float(0x43f7300d), SkBits2Float(0x4360adf7), SkBits2Float(0x4 3f73031), SkBits2Float(0x4360af12)); // 494.375f, 224.68f, 494.376f, 224.684f
5122 path.quadTo(SkBits2Float(0x43f730f0), SkBits2Float(0x4360b4f1), SkBits2Float(0x4 3f7320a), SkBits2Float(0x4360bc94)); // 494.382f, 224.707f, 494.391f, 224.737f
5123 path.quadTo(SkBits2Float(0x43f73625), SkBits2Float(0x4360d8fe), SkBits2Float(0x4 3f73c59), SkBits2Float(0x4360fa4a)); // 494.423f, 224.848f, 494.471f, 224.978f
5124 path.quadTo(SkBits2Float(0x43f75132), SkBits2Float(0x43616a36), SkBits2Float(0x4 3f772ac), SkBits2Float(0x4361d738)); // 494.634f, 225.415f, 494.896f, 225.841f
5125 path.quadTo(SkBits2Float(0x43f7de60), SkBits2Float(0x436335ea), SkBits2Float(0x4 3f89f25), SkBits2Float(0x4363e779)); // 495.737f, 227.211f, 497.243f, 227.904f
5126 path.quadTo(SkBits2Float(0x43fb3d30), SkBits2Float(0x436650a0), SkBits2Float(0x4 4005a14), SkBits2Float(0x43602133)); // 502.478f, 230.315f, 513.407f, 224.13f
5127 path.lineTo(SkBits2Float(0x4400799a), SkBits2Float(0x4360ffff)); // 513.9f, 225
5128 path.lineTo(SkBits2Float(0x44003ca2), SkBits2Float(0x43614dd5)); // 512.947f, 2 25.304f
5129 path.quadTo(SkBits2Float(0x43ff92b8), SkBits2Float(0x435ba8f8), SkBits2Float(0x4 3fee825), SkBits2Float(0x4353aa15)); // 511.146f, 219.66f, 509.814f, 211.664f
5130 path.lineTo(SkBits2Float(0x43ff6667), SkBits2Float(0x43537fff)); // 510.8f, 211 .5f
5131 path.lineTo(SkBits2Float(0x43ffcaf2), SkBits2Float(0x43541e6d)); // 511.586f, 2 12.119f
5132 path.quadTo(SkBits2Float(0x43fd4888), SkBits2Float(0x435a7d38), SkBits2Float(0x4 3f8d864), SkBits2Float(0x435b4bbf)); // 506.567f, 218.489f, 497.691f, 219.296f
5133 path.lineTo(SkBits2Float(0x43f8cccd), SkBits2Float(0x435a4ccc)); // 497.6f, 218 .3f
5134 path.lineTo(SkBits2Float(0x43f8e5e7), SkBits2Float(0x435b47d3)); // 497.796f, 2 19.281f
5135 path.quadTo(SkBits2Float(0x43f84300), SkBits2Float(0x435b88fd), SkBits2Float(0x4 3f7b75b), SkBits2Float(0x435c5e8e)); // 496.523f, 219.535f, 495.432f, 220.369f
5136 path.quadTo(SkBits2Float(0x43f6b984), SkBits2Float(0x435de2c4), SkBits2Float(0x4 3f72ca1), SkBits2Float(0x43609572)); // 493.449f, 221.886f, 494.349f, 224.584f
5137 path.close();
5138 testSimplify(reporter, path, filename);
5139 }
5140
5141 // fails to include a line of edges, probably mis-sorting
5142 static void tiger8a(skiatest::Reporter* reporter, const char* filename) {
5143 #if DEBUG_UNDER_DEVELOPMENT // tiger
5144 return;
5145 #endif
5146 SkPath path;
5147 path.moveTo(SkBits2Float(0x43f639c5), SkBits2Float(0x4361375a)); // 492.451 f, 225.216f
5148 path.quadTo(SkBits2Float(0x43f58ce4), SkBits2Float(0x435d2a04), SkBits2Float(0x4 3f71bd9), SkBits2Float(0x435ac7d8)); // 491.101f, 221.164f, 494.218f, 218.781f
5149 path.quadTo(SkBits2Float(0x43f7d69d), SkBits2Float(0x4359aa35), SkBits2Float(0x4 3f8b3b3), SkBits2Float(0x435951c5)); // 495.677f, 217.665f, 497.404f, 217.319f
5150 path.conicTo(SkBits2Float(0x43f8ba67), SkBits2Float(0x43594f16), SkBits2Float(0x 43f8c136), SkBits2Float(0x43594dd9), SkBits2Float(0x3f7fa2b1)); // 497.456f, 21 7.309f, 497.509f, 217.304f, 0.998576f
5151 path.quadTo(SkBits2Float(0x43fcc3a8), SkBits2Float(0x43589340), SkBits2Float(0x4 3ff01dc), SkBits2Float(0x4352e191)); // 505.529f, 216.575f, 510.015f, 210.881f
5152 path.conicTo(SkBits2Float(0x43ff5113), SkBits2Float(0x4352187b), SkBits2Float(0x 43ffb59e), SkBits2Float(0x4352b6e9), SkBits2Float(0x3f3504f3)); // 510.633f, 21 0.096f, 511.419f, 210.714f, 0.707107f
5153 path.conicTo(SkBits2Float(0x43ffdc85), SkBits2Float(0x4352f435), SkBits2Float(0x 43ffe4a9), SkBits2Float(0x435355e9), SkBits2Float(0x3f6ec0ae)); // 511.723f, 21 0.954f, 511.786f, 211.336f, 0.932628f
5154 path.quadTo(SkBits2Float(0x4400461c), SkBits2Float(0x435b3080), SkBits2Float(0x4 400b692), SkBits2Float(0x4360b229)); // 513.095f, 219.189f, 514.853f, 224.696f
5155 path.conicTo(SkBits2Float(0x4400c662), SkBits2Float(0x43617856), SkBits2Float(0x 44009920), SkBits2Float(0x4361decb), SkBits2Float(0x3f46ad5b)); // 515.1f, 225. 47f, 514.393f, 225.87f, 0.776083f
5156 path.quadTo(SkBits2Float(0x43fb4920), SkBits2Float(0x43688f50), SkBits2Float(0x4 3f8340f), SkBits2Float(0x4365b887)); // 502.571f, 232.56f, 496.407f, 229.721f
5157 path.quadTo(SkBits2Float(0x43f72cd2), SkBits2Float(0x4364c612), SkBits2Float(0x4 3f69888), SkBits2Float(0x4362e330)); // 494.35f, 228.774f, 493.192f, 226.887f
5158 path.quadTo(SkBits2Float(0x43f66a00), SkBits2Float(0x43624bae), SkBits2Float(0x4 3f64c73), SkBits2Float(0x4361ad04)); // 492.828f, 226.296f, 492.597f, 225.676f
5159 path.quadTo(SkBits2Float(0x43f642ea), SkBits2Float(0x436179d2), SkBits2Float(0x4 3f63c1c), SkBits2Float(0x43614abe)); // 492.523f, 225.476f, 492.47f, 225.292f
5160 path.quadTo(SkBits2Float(0x43f639c9), SkBits2Float(0x43613aa5), SkBits2Float(0x4 3f63809), SkBits2Float(0x43612cda)); // 492.451f, 225.229f, 492.438f, 225.175f
5161 path.quadTo(SkBits2Float(0x43f63777), SkBits2Float(0x43612855), SkBits2Float(0x4 3f636df), SkBits2Float(0x43612357)); // 492.433f, 225.158f, 492.429f, 225.138f
5162 path.quadTo(SkBits2Float(0x43f6368f), SkBits2Float(0x436120b2), SkBits2Float(0x4 3f6367b), SkBits2Float(0x43612005)); // 492.426f, 225.128f, 492.426f, 225.125f
5163 path.lineTo(SkBits2Float(0x43f63656), SkBits2Float(0x43611ebc)); // 492.424f, 2 25.12f
5164 path.lineTo(SkBits2Float(0x43f63647), SkBits2Float(0x43611e34)); // 492.424f, 2 25.118f
5165 path.lineTo(SkBits2Float(0x43f6363f), SkBits2Float(0x43611df3)); // 492.424f, 2 25.117f
5166 path.lineTo(SkBits2Float(0x43f6363e), SkBits2Float(0x43611de5)); // 492.424f, 2 25.117f
5167 path.lineTo(SkBits2Float(0x43f6363f), SkBits2Float(0x43611deb)); // 492.424f, 2 25.117f
5168 path.lineTo(SkBits2Float(0x43f63647), SkBits2Float(0x43611e37)); // 492.424f, 2 25.118f
5169 path.lineTo(SkBits2Float(0x43f63644), SkBits2Float(0x43611e19)); // 492.424f, 2 25.118f
5170 path.quadTo(SkBits2Float(0x43f6365c), SkBits2Float(0x43611ee7), SkBits2Float(0x4 3f6365d), SkBits2Float(0x43611ef9)); // 492.425f, 225.121f, 492.425f, 225.121f
5171 path.quadTo(SkBits2Float(0x43f63666), SkBits2Float(0x43611f4b), SkBits2Float(0x4 3f63672), SkBits2Float(0x43611fb1)); // 492.425f, 225.122f, 492.425f, 225.124f
5172 path.quadTo(SkBits2Float(0x43f636ab), SkBits2Float(0x436121a4), SkBits2Float(0x4 3f636e3), SkBits2Float(0x4361236a)); // 492.427f, 225.131f, 492.429f, 225.138f
5173 path.quadTo(SkBits2Float(0x43f636fd), SkBits2Float(0x43612443), SkBits2Float(0x4 3f63705), SkBits2Float(0x4361247e)); // 492.43f, 225.142f, 492.43f, 225.143f
5174 path.quadTo(SkBits2Float(0x43f637d7), SkBits2Float(0x43612b15), SkBits2Float(0x4 3f638dc), SkBits2Float(0x436131b0)); // 492.436f, 225.168f, 492.444f, 225.194f
5175 path.quadTo(SkBits2Float(0x43f63b88), SkBits2Float(0x43614303), SkBits2Float(0x4 3f63f62), SkBits2Float(0x43615368)); // 492.465f, 225.262f, 492.495f, 225.326f
5176 path.quadTo(SkBits2Float(0x43f6436f), SkBits2Float(0x4361649f), SkBits2Float(0x4 3f648b2), SkBits2Float(0x43617468)); // 492.527f, 225.393f, 492.568f, 225.455f
5177 path.quadTo(SkBits2Float(0x43f68760), SkBits2Float(0x43623072), SkBits2Float(0x4 3f6ec71), SkBits2Float(0x4361cb60)); // 493.058f, 226.189f, 493.847f, 225.794f
5178 path.quadTo(SkBits2Float(0x43f722ef), SkBits2Float(0x436194e0), SkBits2Float(0x4 3f73027), SkBits2Float(0x43611df0)); // 494.273f, 225.582f, 494.376f, 225.117f
5179 path.quadTo(SkBits2Float(0x43f73334), SkBits2Float(0x43610284), SkBits2Float(0x4 3f73333), SkBits2Float(0x4360e667)); // 494.4f, 225.01f, 494.4f, 224.9f
5180 path.lineTo(SkBits2Float(0x43f63638), SkBits2Float(0x43611daf)); // 492.424f, 2 25.116f
5181 path.lineTo(SkBits2Float(0x43f6b333), SkBits2Float(0x4360e666)); // 493.4f, 224 .9f
5182 path.lineTo(SkBits2Float(0x43f639c5), SkBits2Float(0x4361375a)); // 492.451f, 2 25.216f
5183 path.close();
5184 testSimplify(reporter, path, filename);
5185 }
5186
5187 static void tiger8a_x(skiatest::Reporter* reporter, const char* filename, uint64 _t testlines) {
5188 #if DEBUG_UNDER_DEVELOPMENT // tiger
5189 return;
5190 #endif
5191 SkPath path;
5192 uint64_t i = 0;
5193 if (testlines & (1LL << i++)) path.moveTo(SkBits2Float(0x43f639c5), SkBits2Float (0x4361375a)); // 492.451f, 225.216f
5194 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f58ce4), SkBits2Float (0x435d2a04), SkBits2Float(0x43f71bd9), SkBits2Float(0x435ac7d8)); // 491.101f, 221.164f, 494.218f, 218.781f
5195 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f7d69d), SkBits2Float (0x4359aa35), SkBits2Float(0x43f8b3b3), SkBits2Float(0x435951c5)); // 495.677f, 217.665f, 497.404f, 217.319f
5196 if (testlines & (1LL << i++)) path.conicTo(SkBits2Float(0x43f8ba67), SkBits2Floa t(0x43594f16), SkBits2Float(0x43f8c136), SkBits2Float(0x43594dd9), SkBits2Float( 0x3f7fa2b1)); // 497.456f, 217.309f, 497.509f, 217.304f, 0.998576f
5197 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43fcc3a8), SkBits2Float (0x43589340), SkBits2Float(0x43ff01dc), SkBits2Float(0x4352e191)); // 505.529f, 216.575f, 510.015f, 210.881f
5198 if (testlines & (1LL << i++)) path.conicTo(SkBits2Float(0x43ff5113), SkBits2Floa t(0x4352187b), SkBits2Float(0x43ffb59e), SkBits2Float(0x4352b6e9), SkBits2Float( 0x3f3504f3)); // 510.633f, 210.096f, 511.419f, 210.714f, 0.707107f
5199 if (testlines & (1LL << i++)) path.conicTo(SkBits2Float(0x43ffdc85), SkBits2Floa t(0x4352f435), SkBits2Float(0x43ffe4a9), SkBits2Float(0x435355e9), SkBits2Float( 0x3f6ec0ae)); // 511.723f, 210.954f, 511.786f, 211.336f, 0.932628f
5200 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x4400461c), SkBits2Float (0x435b3080), SkBits2Float(0x4400b692), SkBits2Float(0x4360b229)); // 513.095f, 219.189f, 514.853f, 224.696f
5201 if (testlines & (1LL << i++)) path.conicTo(SkBits2Float(0x4400c662), SkBits2Floa t(0x43617856), SkBits2Float(0x44009920), SkBits2Float(0x4361decb), SkBits2Float( 0x3f46ad5b)); // 515.1f, 225.47f, 514.393f, 225.87f, 0.776083f
5202 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43fb4920), SkBits2Float (0x43688f50), SkBits2Float(0x43f8340f), SkBits2Float(0x4365b887)); // 502.571f, 232.56f, 496.407f, 229.721f
5203 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f72cd2), SkBits2Float (0x4364c612), SkBits2Float(0x43f69888), SkBits2Float(0x4362e330)); // 494.35f, 228.774f, 493.192f, 226.887f
5204 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f66a00), SkBits2Float (0x43624bae), SkBits2Float(0x43f64c73), SkBits2Float(0x4361ad04)); // 492.828f, 226.296f, 492.597f, 225.676f
5205 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f642ea), SkBits2Float (0x436179d2), SkBits2Float(0x43f63c1c), SkBits2Float(0x43614abe)); // 492.523f, 225.476f, 492.47f, 225.292f
5206 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f639c9), SkBits2Float (0x43613aa5), SkBits2Float(0x43f63809), SkBits2Float(0x43612cda)); // 492.451f, 225.229f, 492.438f, 225.175f
5207 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f63777), SkBits2Float (0x43612855), SkBits2Float(0x43f636df), SkBits2Float(0x43612357)); // 492.433f, 225.158f, 492.429f, 225.138f
5208 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f6368f), SkBits2Float (0x436120b2), SkBits2Float(0x43f6367b), SkBits2Float(0x43612005)); // 492.426f, 225.128f, 492.426f, 225.125f
5209 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f63656), SkBits2Float (0x43611ebc)); // 492.424f, 225.12f
5210 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f63647), SkBits2Float (0x43611e34)); // 492.424f, 225.118f
5211 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f6363f), SkBits2Float (0x43611df3)); // 492.424f, 225.117f
5212 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f6363e), SkBits2Float (0x43611de5)); // 492.424f, 225.117f
5213 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f6363f), SkBits2Float (0x43611deb)); // 492.424f, 225.117f
5214 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f63647), SkBits2Float (0x43611e37)); // 492.424f, 225.118f
5215 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f63644), SkBits2Float (0x43611e19)); // 492.424f, 225.118f
5216 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f6365c), SkBits2Float (0x43611ee7), SkBits2Float(0x43f6365d), SkBits2Float(0x43611ef9)); // 492.425f, 225.121f, 492.425f, 225.121f
5217 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f63666), SkBits2Float (0x43611f4b), SkBits2Float(0x43f63672), SkBits2Float(0x43611fb1)); // 492.425f, 225.122f, 492.425f, 225.124f
5218 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f636ab), SkBits2Float (0x436121a4), SkBits2Float(0x43f636e3), SkBits2Float(0x4361236a)); // 492.427f, 225.131f, 492.429f, 225.138f
5219 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f636fd), SkBits2Float (0x43612443), SkBits2Float(0x43f63705), SkBits2Float(0x4361247e)); // 492.43f, 225.142f, 492.43f, 225.143f
5220 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f637d7), SkBits2Float (0x43612b15), SkBits2Float(0x43f638dc), SkBits2Float(0x436131b0)); // 492.436f, 225.168f, 492.444f, 225.194f
5221 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f63b88), SkBits2Float (0x43614303), SkBits2Float(0x43f63f62), SkBits2Float(0x43615368)); // 492.465f, 225.262f, 492.495f, 225.326f
5222 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f6436f), SkBits2Float (0x4361649f), SkBits2Float(0x43f648b2), SkBits2Float(0x43617468)); // 492.527f, 225.393f, 492.568f, 225.455f
5223 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f68760), SkBits2Float (0x43623072), SkBits2Float(0x43f6ec71), SkBits2Float(0x4361cb60)); // 493.058f, 226.189f, 493.847f, 225.794f
5224 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f722ef), SkBits2Float (0x436194e0), SkBits2Float(0x43f73027), SkBits2Float(0x43611df0)); // 494.273f, 225.582f, 494.376f, 225.117f
5225 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f73334), SkBits2Float (0x43610284), SkBits2Float(0x43f73333), SkBits2Float(0x4360e667)); // 494.4f, 2 25.01f, 494.4f, 224.9f
5226 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f63638), SkBits2Float (0x43611daf)); // 492.424f, 225.116f
5227 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f6b333), SkBits2Float (0x4360e666)); // 493.4f, 224.9f
5228 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f639c5), SkBits2Float (0x4361375a)); // 492.451f, 225.216f
5229 if (testlines & (1LL << i++)) path.close();
5230 testSimplify(reporter, path, filename);
5231 }
5232
5233 #include "SkRandom.h"
5234
5235 static void tiger8a_h(skiatest::Reporter* reporter, const char* filename) {
5236 #if DEBUG_UNDER_DEVELOPMENT // tiger
5237 return;
5238 #endif
5239 SkRandom r;
5240 for (int samples = 2; samples < 38; ++samples) {
5241 for (int tests = 0; tests < 10000; ++tests) {
5242 uint64_t testlines = 0;
5243 for (int i = 0; i < samples; ++i) {
5244 int bit;
5245 do {
5246 bit = r.nextRangeU(0, 38);
5247 } while (testlines & (1LL << bit));
5248 testlines |= 1LL << bit;
5249 }
5250 tiger8a_x(reporter, filename, testlines);
5251 }
5252 }
5253 }
5254
5255 static void tiger8a_h_1(skiatest::Reporter* reporter, const char* filename) {
5256 #if DEBUG_UNDER_DEVELOPMENT // tiger
5257 return;
5258 #endif
5259 uint64_t testlines = 0x0000000000002008; // best so far: 0x0000001d14c14bb1 ;
5260 tiger8a_x(reporter, filename, testlines);
5261 }
5262
5263 static void tiger8b_x(skiatest::Reporter* reporter, const char* filename, uint64 _t testlines) {
5264 #if DEBUG_UNDER_DEVELOPMENT // tiger
5265 return;
5266 #endif
5267 SkPath path;
5268 uint64_t i = 0;
5269 if (testlines & (1LL << i++)) path.moveTo(SkBits2Float(0x43f72ca1), SkBits2Float (0x43609572)); // 494.349f, 224.584f
5270 if (testlines & (1LL << i++)) path.conicTo(SkBits2Float(0x43f72ebd), SkBits2Floa t(0x4360a219), SkBits2Float(0x43f7302e), SkBits2Float(0x4360af1f), SkBits2Float( 0x3f7fa741)); // 494.365f, 224.633f, 494.376f, 224.684f, 0.998646f
5271 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f63333), SkBits2Float (0x4360e667)); // 492.4f, 224.9f
5272 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f63333), SkBits2Float (0x4360ca4b), SkBits2Float(0x43f6363f), SkBits2Float(0x4360aede)); // 492.4f, 2 24.79f, 492.424f, 224.683f
5273 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f64377), SkBits2Float (0x436037ee), SkBits2Float(0x43f679f5), SkBits2Float(0x4360016e)); // 492.527f, 224.218f, 492.953f, 224.006f
5274 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f6df06), SkBits2Float (0x435f9c5c), SkBits2Float(0x43f71db4), SkBits2Float(0x43605866)); // 493.742f, 223.611f, 494.232f, 224.345f
5275 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f722f8), SkBits2Float (0x43606830), SkBits2Float(0x43f72704), SkBits2Float(0x43607966)); // 494.273f, 224.407f, 494.305f, 224.474f
5276 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f72ae0), SkBits2Float (0x436089cd), SkBits2Float(0x43f72d8a), SkBits2Float(0x43609b1e)); // 494.335f, 224.538f, 494.356f, 224.606f
5277 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f72e8e), SkBits2Float (0x4360a1b8), SkBits2Float(0x43f72f61), SkBits2Float(0x4360a850)); // 494.364f, 224.632f, 494.37f, 224.657f
5278 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f72f68), SkBits2Float (0x4360a88a), SkBits2Float(0x43f72f83), SkBits2Float(0x4360a964)); // 494.37f, 224.658f, 494.371f, 224.662f
5279 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f72fbb), SkBits2Float (0x4360ab2a), SkBits2Float(0x43f72ff4), SkBits2Float(0x4360ad1d)); // 494.373f, 224.669f, 494.375f, 224.676f
5280 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f73000), SkBits2Float (0x4360ad83), SkBits2Float(0x43f73009), SkBits2Float(0x4360add5)); // 494.375f, 224.678f, 494.375f, 224.679f
5281 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f7300b), SkBits2Float (0x4360ade9), SkBits2Float(0x43f73022), SkBits2Float(0x4360aeb5)); // 494.375f, 224.679f, 494.376f, 224.682f
5282 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f7301f), SkBits2Float (0x4360ae97)); // 494.376f, 224.682f
5283 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f73027), SkBits2Float (0x4360aee3)); // 494.376f, 224.683f
5284 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f73028), SkBits2Float (0x4360aeeb)); // 494.376f, 224.683f
5285 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f73027), SkBits2Float (0x4360aedf)); // 494.376f, 224.683f
5286 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f73021), SkBits2Float (0x4360aeaa)); // 494.376f, 224.682f
5287 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f73016), SkBits2Float (0x4360ae50)); // 494.376f, 224.681f
5288 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f73007), SkBits2Float (0x4360adc1)); // 494.375f, 224.679f
5289 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f72ff9), SkBits2Float (0x4360ad4d)); // 494.375f, 224.677f
5290 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f7300d), SkBits2Float (0x4360adf7), SkBits2Float(0x43f73031), SkBits2Float(0x4360af12)); // 494.375f, 224.68f, 494.376f, 224.684f
5291 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f730f0), SkBits2Float (0x4360b4f1), SkBits2Float(0x43f7320a), SkBits2Float(0x4360bc94)); // 494.382f, 224.707f, 494.391f, 224.737f
5292 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f73625), SkBits2Float (0x4360d8fe), SkBits2Float(0x43f73c59), SkBits2Float(0x4360fa4a)); // 494.423f, 224.848f, 494.471f, 224.978f
5293 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f75132), SkBits2Float (0x43616a36), SkBits2Float(0x43f772ac), SkBits2Float(0x4361d738)); // 494.634f, 225.415f, 494.896f, 225.841f
5294 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f7de60), SkBits2Float (0x436335ea), SkBits2Float(0x43f89f25), SkBits2Float(0x4363e779)); // 495.737f, 227.211f, 497.243f, 227.904f
5295 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43fb3d30), SkBits2Float (0x436650a0), SkBits2Float(0x44005a14), SkBits2Float(0x43602133)); // 502.478f, 230.315f, 513.407f, 224.13f
5296 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x4400799a), SkBits2Float (0x4360ffff)); // 513.9f, 225
5297 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x44003ca2), SkBits2Float (0x43614dd5)); // 512.947f, 225.304f
5298 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43ff92b8), SkBits2Float (0x435ba8f8), SkBits2Float(0x43fee825), SkBits2Float(0x4353aa15)); // 511.146f, 219.66f, 509.814f, 211.664f
5299 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43ff6667), SkBits2Float (0x43537fff)); // 510.8f, 211.5f
5300 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43ffcaf2), SkBits2Float (0x43541e6d)); // 511.586f, 212.119f
5301 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43fd4888), SkBits2Float (0x435a7d38), SkBits2Float(0x43f8d864), SkBits2Float(0x435b4bbf)); // 506.567f, 218.489f, 497.691f, 219.296f
5302 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f8cccd), SkBits2Float (0x435a4ccc)); // 497.6f, 218.3f
5303 if (testlines & (1LL << i++)) path.lineTo(SkBits2Float(0x43f8e5e7), SkBits2Float (0x435b47d3)); // 497.796f, 219.281f
5304 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f84300), SkBits2Float (0x435b88fd), SkBits2Float(0x43f7b75b), SkBits2Float(0x435c5e8e)); // 496.523f, 219.535f, 495.432f, 220.369f
5305 if (testlines & (1LL << i++)) path.quadTo(SkBits2Float(0x43f6b984), SkBits2Float (0x435de2c4), SkBits2Float(0x43f72ca1), SkBits2Float(0x43609572)); // 493.449f, 221.886f, 494.349f, 224.584f
5306 if (testlines & (1LL << i++)) path.close();
5307 testSimplify(reporter, path, filename);
5308 }
5309
5310 static void tiger8b_h(skiatest::Reporter* reporter, const char* filename) {
5311 #if DEBUG_UNDER_DEVELOPMENT // tiger
5312 return;
5313 #endif
5314 SkRandom r;
5315 for (int samples = 2; samples < 37; ++samples) {
5316 for (int tests = 0; tests < 10000; ++tests) {
5317 uint64_t testlines = 0;
5318 for (int i = 0; i < samples; ++i) {
5319 int bit;
5320 do {
5321 bit = r.nextRangeU(0, 38);
5322 } while (testlines & (1LL << bit));
5323 testlines |= 1LL << bit;
5324 }
5325 tiger8b_x(reporter, filename, testlines);
5326 }
5327 }
5328 }
5329
5330 static void tiger8b_h_1(skiatest::Reporter* reporter, const char* filename) {
5331 #if DEBUG_UNDER_DEVELOPMENT // tiger
5332 return;
5333 #endif
5334 uint64_t testlines = 0x000000000f27b9e3; // best so far: 0x000000201304b4a3
5335 tiger8b_x(reporter, filename, testlines);
5336 }
5337
5338 // tries to add same edge twice
5339 static void tiger8b(skiatest::Reporter* reporter, const char* filename) {
5340 #if DEBUG_UNDER_DEVELOPMENT // tiger
5341 return;
5342 #endif
5343 SkPath path;
5344 path.moveTo(SkBits2Float(0x43f72ca1), SkBits2Float(0x43609572)); // 494.349f, 2 24.584f
5345 path.conicTo(SkBits2Float(0x43f72ebd), SkBits2Float(0x4360a219), SkBits2Float(0x 43f7302e), SkBits2Float(0x4360af1f), SkBits2Float(0x3f7fa741)); // 494.365f, 22 4.633f, 494.376f, 224.684f, 0.998646f
5346 path.lineTo(SkBits2Float(0x43f63333), SkBits2Float(0x4360e667)); // 492.4f, 224 .9f
5347 path.quadTo(SkBits2Float(0x43f63333), SkBits2Float(0x4360ca4b), SkBits2Float(0x4 3f6363f), SkBits2Float(0x4360aede)); // 492.4f, 224.79f, 492.424f, 224.683f
5348 path.quadTo(SkBits2Float(0x43f64377), SkBits2Float(0x436037ee), SkBits2Float(0x4 3f679f5), SkBits2Float(0x4360016e)); // 492.527f, 224.218f, 492.953f, 224.006f
5349 path.quadTo(SkBits2Float(0x43f6df06), SkBits2Float(0x435f9c5c), SkBits2Float(0x4 3f71db4), SkBits2Float(0x43605866)); // 493.742f, 223.611f, 494.232f, 224.345f
5350 path.quadTo(SkBits2Float(0x43f722f8), SkBits2Float(0x43606830), SkBits2Float(0x4 3f72704), SkBits2Float(0x43607966)); // 494.273f, 224.407f, 494.305f, 224.474f
5351 path.quadTo(SkBits2Float(0x43f72ae0), SkBits2Float(0x436089cd), SkBits2Float(0x4 3f72d8a), SkBits2Float(0x43609b1e)); // 494.335f, 224.538f, 494.356f, 224.606f
5352 path.quadTo(SkBits2Float(0x43f72e8e), SkBits2Float(0x4360a1b8), SkBits2Float(0x4 3f72f61), SkBits2Float(0x4360a850)); // 494.364f, 224.632f, 494.37f, 224.657f
5353 path.quadTo(SkBits2Float(0x43f72f68), SkBits2Float(0x4360a88a), SkBits2Float(0x4 3f72f83), SkBits2Float(0x4360a964)); // 494.37f, 224.658f, 494.371f, 224.662f
5354 path.quadTo(SkBits2Float(0x43f72fbb), SkBits2Float(0x4360ab2a), SkBits2Float(0x4 3f72ff4), SkBits2Float(0x4360ad1d)); // 494.373f, 224.669f, 494.375f, 224.676f
5355 path.quadTo(SkBits2Float(0x43f73000), SkBits2Float(0x4360ad83), SkBits2Float(0x4 3f73009), SkBits2Float(0x4360add5)); // 494.375f, 224.678f, 494.375f, 224.679f
5356 path.quadTo(SkBits2Float(0x43f7300b), SkBits2Float(0x4360ade9), SkBits2Float(0x4 3f73022), SkBits2Float(0x4360aeb5)); // 494.375f, 224.679f, 494.376f, 224.682f
5357 path.lineTo(SkBits2Float(0x43f7301f), SkBits2Float(0x4360ae97)); // 494.376f, 2 24.682f
5358 path.lineTo(SkBits2Float(0x43f73027), SkBits2Float(0x4360aee3)); // 494.376f, 2 24.683f
5359 path.lineTo(SkBits2Float(0x43f73028), SkBits2Float(0x4360aeeb)); // 494.376f, 2 24.683f
5360 path.lineTo(SkBits2Float(0x43f73027), SkBits2Float(0x4360aedf)); // 494.376f, 2 24.683f
5361 path.lineTo(SkBits2Float(0x43f73021), SkBits2Float(0x4360aeaa)); // 494.376f, 2 24.682f
5362 path.lineTo(SkBits2Float(0x43f73016), SkBits2Float(0x4360ae50)); // 494.376f, 2 24.681f
5363 path.lineTo(SkBits2Float(0x43f73007), SkBits2Float(0x4360adc1)); // 494.375f, 2 24.679f
5364 path.lineTo(SkBits2Float(0x43f72ff9), SkBits2Float(0x4360ad4d)); // 494.375f, 2 24.677f
5365 path.quadTo(SkBits2Float(0x43f7300d), SkBits2Float(0x4360adf7), SkBits2Float(0x4 3f73031), SkBits2Float(0x4360af12)); // 494.375f, 224.68f, 494.376f, 224.684f
5366 path.quadTo(SkBits2Float(0x43f730f0), SkBits2Float(0x4360b4f1), SkBits2Float(0x4 3f7320a), SkBits2Float(0x4360bc94)); // 494.382f, 224.707f, 494.391f, 224.737f
5367 path.quadTo(SkBits2Float(0x43f73625), SkBits2Float(0x4360d8fe), SkBits2Float(0x4 3f73c59), SkBits2Float(0x4360fa4a)); // 494.423f, 224.848f, 494.471f, 224.978f
5368 path.quadTo(SkBits2Float(0x43f75132), SkBits2Float(0x43616a36), SkBits2Float(0x4 3f772ac), SkBits2Float(0x4361d738)); // 494.634f, 225.415f, 494.896f, 225.841f
5369 path.quadTo(SkBits2Float(0x43f7de60), SkBits2Float(0x436335ea), SkBits2Float(0x4 3f89f25), SkBits2Float(0x4363e779)); // 495.737f, 227.211f, 497.243f, 227.904f
5370 path.quadTo(SkBits2Float(0x43fb3d30), SkBits2Float(0x436650a0), SkBits2Float(0x4 4005a14), SkBits2Float(0x43602133)); // 502.478f, 230.315f, 513.407f, 224.13f
5371 path.lineTo(SkBits2Float(0x4400799a), SkBits2Float(0x4360ffff)); // 513.9f, 225
5372 path.lineTo(SkBits2Float(0x44003ca2), SkBits2Float(0x43614dd5)); // 512.947f, 2 25.304f
5373 path.quadTo(SkBits2Float(0x43ff92b8), SkBits2Float(0x435ba8f8), SkBits2Float(0x4 3fee825), SkBits2Float(0x4353aa15)); // 511.146f, 219.66f, 509.814f, 211.664f
5374 path.lineTo(SkBits2Float(0x43ff6667), SkBits2Float(0x43537fff)); // 510.8f, 211 .5f
5375 path.lineTo(SkBits2Float(0x43ffcaf2), SkBits2Float(0x43541e6d)); // 511.586f, 2 12.119f
5376 path.quadTo(SkBits2Float(0x43fd4888), SkBits2Float(0x435a7d38), SkBits2Float(0x4 3f8d864), SkBits2Float(0x435b4bbf)); // 506.567f, 218.489f, 497.691f, 219.296f
5377 path.lineTo(SkBits2Float(0x43f8cccd), SkBits2Float(0x435a4ccc)); // 497.6f, 218 .3f
5378 path.lineTo(SkBits2Float(0x43f8e5e7), SkBits2Float(0x435b47d3)); // 497.796f, 2 19.281f
5379 path.quadTo(SkBits2Float(0x43f84300), SkBits2Float(0x435b88fd), SkBits2Float(0x4 3f7b75b), SkBits2Float(0x435c5e8e)); // 496.523f, 219.535f, 495.432f, 220.369f
5380 path.quadTo(SkBits2Float(0x43f6b984), SkBits2Float(0x435de2c4), SkBits2Float(0x4 3f72ca1), SkBits2Float(0x43609572)); // 493.449f, 221.886f, 494.349f, 224.584f
5381 path.close();
5382 testSimplify(reporter, path, filename);
5383 }
5384
5385 static void fuzz763_4713_b(skiatest::Reporter* reporter, const char* filename) { 5058 static void fuzz763_4713_b(skiatest::Reporter* reporter, const char* filename) {
5386 SkPath path; 5059 SkPath path;
5387 path.setFillType((SkPath::FillType) 0); 5060 path.setFillType((SkPath::FillType) 0);
5388 path.moveTo(SkBits2Float(0x42240000), SkBits2Float(0x42040000)); 5061 path.moveTo(SkBits2Float(0x42240000), SkBits2Float(0x42040000));
5389 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x4211413d), SkBits2Float(0x4 21aa09e), SkBits2Float(0x421aa09e)); 5062 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x4211413d), SkBits2Float(0x4 21aa09e), SkBits2Float(0x421aa09e));
5390 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x42240000), SkBits2Float(0x4 2040000), SkBits2Float(0x42240000)); 5063 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x42240000), SkBits2Float(0x4 2040000), SkBits2Float(0x42240000));
5391 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x42240000), SkBits2Float(0x4 1dabec3), SkBits2Float(0x421aa09e)); 5064 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x42240000), SkBits2Float(0x4 1dabec3), SkBits2Float(0x421aa09e));
5392 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x4211413d), SkBits2Float(0x4 1c80000), SkBits2Float(0x42040000)); 5065 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x4211413d), SkBits2Float(0x4 1c80000), SkBits2Float(0x42040000));
5393 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 1dabec3), SkBits2Float(0x41dabec3)); 5066 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 1dabec3), SkBits2Float(0x41dabec3));
5394 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x41c80000), SkBits2Float(0x4 2040000), SkBits2Float(0x41c80000)); 5067 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x41c80000), SkBits2Float(0x4 2040000), SkBits2Float(0x41c80000));
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after
5863 path.lineTo(0, 3); 5536 path.lineTo(0, 3);
5864 path.close(); 5537 path.close();
5865 path.moveTo(0, 0); 5538 path.moveTo(0, 0);
5866 path.lineTo(0, 0); 5539 path.lineTo(0, 0);
5867 path.quadTo(0, 1, 1, 1); 5540 path.quadTo(0, 1, 1, 1);
5868 path.close(); 5541 path.close();
5869 testSimplify(reporter, path, filename); 5542 testSimplify(reporter, path, filename);
5870 } 5543 }
5871 5544
5872 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0; 5545 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0;
5873 static void (*firstTest)(skiatest::Reporter* , const char* filename) = tiger8b_h _1; 5546 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
5874 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; 5547 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
5875 5548
5876 static TestDesc tests[] = { 5549 static TestDesc tests[] = {
5877 TEST(tiger8a_h_1),
5878 TEST(tiger8a_h),
5879 TEST(tiger8a),
5880 TEST(tiger8b_h_1),
5881 TEST(tiger8b_h),
5882 TEST(tiger8b),
5883 TEST(tiger8),
5884 TEST(testQuads73), 5550 TEST(testQuads73),
5885 TEST(testQuads72), 5551 TEST(testQuads72),
5886 TEST(testQuads71), 5552 TEST(testQuads71),
5887 TEST(testQuads70), 5553 TEST(testQuads70),
5888 TEST(testQuads69), 5554 TEST(testQuads69),
5889 TEST(testQuads68), 5555 TEST(testQuads68),
5890 TEST(testQuads67), 5556 TEST(testQuads67),
5891 TEST(testQuads66), 5557 TEST(testQuads66),
5892 TEST(dean4), 5558 TEST(dean4),
5893 TEST(fuzz763_4713_b), 5559 TEST(fuzz763_4713_b),
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
6338 6004
6339 DEF_TEST(PathOpsSimplify, reporter) { 6005 DEF_TEST(PathOpsSimplify, reporter) {
6340 if (runSubTests && runSubTestsFirst) { 6006 if (runSubTests && runSubTestsFirst) {
6341 RunTestSet(reporter, subTests, subTestCount, firstSubTest, nullptr, stop Test, runReverse); 6007 RunTestSet(reporter, subTests, subTestCount, firstSubTest, nullptr, stop Test, runReverse);
6342 } 6008 }
6343 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev erse); 6009 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev erse);
6344 if (runSubTests && !runSubTestsFirst) { 6010 if (runSubTests && !runSubTestsFirst) {
6345 RunTestSet(reporter, subTests, subTestCount, firstSubTest, nullptr, stop Test, runReverse); 6011 RunTestSet(reporter, subTests, subTestCount, firstSubTest, nullptr, stop Test, runReverse);
6346 } 6012 }
6347 } 6013 }
OLDNEW
« no previous file with comments | « gyp/pathops_unittest.gypi ('k') | tests/PathOpsTigerTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698