OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |