| 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 | |
| 10 #define TEST(name) { name, #name } | 9 #define TEST(name) { name, #name } |
| 11 | 10 |
| 12 static void skpcheeseandburger_com225(skiatest::Reporter* reporter) { | 11 static void skpcheeseandburger_com225(skiatest::Reporter* reporter, const char*
filename) { |
| 13 SkPath path; | 12 SkPath path; |
| 14 path.setFillType(SkPath::kEvenOdd_FillType); | 13 path.setFillType(SkPath::kEvenOdd_FillType); |
| 15 path.moveTo(555, 468); | 14 path.moveTo(555, 468); |
| 16 path.lineTo(555, 362); | 15 path.lineTo(555, 362); |
| 17 path.lineTo(872, 362); | 16 path.lineTo(872, 362); |
| 18 path.lineTo(872, 468); | 17 path.lineTo(872, 468); |
| 19 path.lineTo(555, 468); | 18 path.lineTo(555, 468); |
| 20 path.close(); | 19 path.close(); |
| 21 SkPath pathB; | 20 SkPath pathB; |
| 22 pathB.setFillType(SkPath::kWinding_FillType); | 21 pathB.setFillType(SkPath::kWinding_FillType); |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 pathB.cubicTo(717.766663f, 416.906738f, 720.162537f, 415.845551f, 722.354797
f, 414.073608f); | 359 pathB.cubicTo(717.766663f, 416.906738f, 720.162537f, 415.845551f, 722.354797
f, 414.073608f); |
| 361 pathB.cubicTo(724.059875f, 412.69397f, 726.55957f, 410.981903f, 730.675537f,
410.124359f); | 360 pathB.cubicTo(724.059875f, 412.69397f, 726.55957f, 410.981903f, 730.675537f,
410.124359f); |
| 362 pathB.cubicTo(729.75708f, 409.143066f, 729.213013f, 407.993042f, 729.213013f
, 406.683289f); | 361 pathB.cubicTo(729.75708f, 409.143066f, 729.213013f, 407.993042f, 729.213013f
, 406.683289f); |
| 363 pathB.cubicTo(729.213013f, 399.630402f, 729.209045f, 396.103455f, 729.209045
f, 389.047546f); | 362 pathB.cubicTo(729.213013f, 399.630402f, 729.209045f, 396.103455f, 729.209045
f, 389.047546f); |
| 364 pathB.cubicTo(729.209045f, 387.648956f, 730.577698f, 385.292023f, 730.583679
f, 385.149261f); | 363 pathB.cubicTo(729.209045f, 387.648956f, 730.577698f, 385.292023f, 730.583679
f, 385.149261f); |
| 365 pathB.cubicTo(730.583679f, 385.149261f, 720.888306f, 378.762207f, 719.609497
f, 378.947906f); | 364 pathB.cubicTo(730.583679f, 385.149261f, 720.888306f, 378.762207f, 719.609497
f, 378.947906f); |
| 366 pathB.cubicTo(719.275085f, 378.996826f, 717.872498f, 381.118164f, 716.868225
f, 381.896851f); | 365 pathB.cubicTo(719.275085f, 378.996826f, 717.872498f, 381.118164f, 716.868225
f, 381.896851f); |
| 367 pathB.lineTo(716.868225f, 365.046783f); | 366 pathB.lineTo(716.868225f, 365.046783f); |
| 368 pathB.cubicTo(716.868225f, 363.740021f, 716.960083f, 363.043213f, 717.597961
f, 362); | 367 pathB.cubicTo(716.868225f, 363.740021f, 716.960083f, 363.043213f, 717.597961
f, 362); |
| 369 pathB.cubicTo(715.331848f, 363.104095f, 714.19873f, 363.657166f, 711.928711f
, 364.782227f); | 368 pathB.cubicTo(715.331848f, 363.104095f, 714.19873f, 363.657166f, 711.928711f
, 364.782227f); |
| 370 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 369 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 371 } | 370 } |
| 372 | 371 |
| 373 static void skpeverytechpro_blogspot_com100(skiatest::Reporter* reporter) { | 372 static void skpeverytechpro_blogspot_com100(skiatest::Reporter* reporter, const
char* filename) { |
| 374 SkPath path; | 373 SkPath path; |
| 375 path.setFillType(SkPath::kEvenOdd_FillType); | 374 path.setFillType(SkPath::kEvenOdd_FillType); |
| 376 path.moveTo(1074.29285f, 627.292786f); | 375 path.moveTo(1074.29285f, 627.292786f); |
| 377 path.quadTo(1074.58582f, 627, 1075, 627); | 376 path.quadTo(1074.58582f, 627, 1075, 627); |
| 378 path.lineTo(1117, 627); | 377 path.lineTo(1117, 627); |
| 379 path.quadTo(1124.04163f, 627, 1129.02246f, 631.9776f); | 378 path.quadTo(1124.04163f, 627, 1129.02246f, 631.9776f); |
| 380 path.quadTo(1134, 636.958374f, 1134, 644); | 379 path.quadTo(1134, 636.958374f, 1134, 644); |
| 381 path.lineTo(1134, 645); | 380 path.lineTo(1134, 645); |
| 382 path.quadTo(1134, 652.041626f, 1129.02246f, 657.0224f); | 381 path.quadTo(1134, 652.041626f, 1129.02246f, 657.0224f); |
| 383 path.quadTo(1124.04163f, 662, 1117, 662); | 382 path.quadTo(1124.04163f, 662, 1117, 662); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 394 path.cubicTo(1132, 653.284302f, 1125.2843f, 660, 1117, 660); | 393 path.cubicTo(1132, 653.284302f, 1125.2843f, 660, 1117, 660); |
| 395 path.lineTo(1076, 660); | 394 path.lineTo(1076, 660); |
| 396 path.lineTo(1076, 629); | 395 path.lineTo(1076, 629); |
| 397 path.close(); | 396 path.close(); |
| 398 SkPath pathB; | 397 SkPath pathB; |
| 399 pathB.setFillType(SkPath::kWinding_FillType); | 398 pathB.setFillType(SkPath::kWinding_FillType); |
| 400 pathB.moveTo(1074, 627); | 399 pathB.moveTo(1074, 627); |
| 401 pathB.lineTo(1075, 628); | 400 pathB.lineTo(1075, 628); |
| 402 pathB.lineTo(1116.5f, 644.5f); | 401 pathB.lineTo(1116.5f, 644.5f); |
| 403 pathB.lineTo(1134, 627); | 402 pathB.lineTo(1134, 627); |
| 404 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 403 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 405 } | 404 } |
| 406 | 405 |
| 407 static void skpflite_com41(skiatest::Reporter* reporter) { | 406 static void skpflite_com41(skiatest::Reporter* reporter, const char* filename) { |
| 408 SkPath path; | 407 SkPath path; |
| 409 path.setFillType(SkPath::kEvenOdd_FillType); | 408 path.setFillType(SkPath::kEvenOdd_FillType); |
| 410 path.moveTo(301.464081f, 424); | 409 path.moveTo(301.464081f, 424); |
| 411 path.lineTo(296, 433.46405f); | 410 path.lineTo(296, 433.46405f); |
| 412 path.lineTo(296, 433.810822f); | 411 path.lineTo(296, 433.810822f); |
| 413 path.lineTo(303.25589f, 438); | 412 path.lineTo(303.25589f, 438); |
| 414 path.lineTo(304.729736f, 438); | 413 path.lineTo(304.729736f, 438); |
| 415 path.lineTo(311, 427.139557f); | 414 path.lineTo(311, 427.139557f); |
| 416 path.lineTo(311, 426.305237f); | 415 path.lineTo(311, 426.305237f); |
| 417 path.lineTo(307.007202f, 424); | 416 path.lineTo(307.007202f, 424); |
| 418 path.lineTo(301.464081f, 424); | 417 path.lineTo(301.464081f, 424); |
| 419 path.close(); | 418 path.close(); |
| 420 SkPath pathB; | 419 SkPath pathB; |
| 421 pathB.setFillType(SkPath::kWinding_FillType); | 420 pathB.setFillType(SkPath::kWinding_FillType); |
| 422 pathB.moveTo(302.849854f, 421.599762f); | 421 pathB.moveTo(302.849854f, 421.599762f); |
| 423 pathB.lineTo(311.510101f, 426.599762f); | 422 pathB.lineTo(311.510101f, 426.599762f); |
| 424 pathB.lineTo(304.510101f, 438.724121f); | 423 pathB.lineTo(304.510101f, 438.724121f); |
| 425 pathB.lineTo(295.849854f, 433.724121f); | 424 pathB.lineTo(295.849854f, 433.724121f); |
| 426 pathB.close(); | 425 pathB.close(); |
| 427 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 426 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 428 } | 427 } |
| 429 | 428 |
| 430 static void skpilkoora_com37(skiatest::Reporter* reporter) { | 429 static void skpilkoora_com37(skiatest::Reporter* reporter, const char* filename)
{ |
| 431 SkPath path; | 430 SkPath path; |
| 432 path.setFillType(SkPath::kEvenOdd_FillType); | 431 path.setFillType(SkPath::kEvenOdd_FillType); |
| 433 path.moveTo(818, 157); | 432 path.moveTo(818, 157); |
| 434 path.cubicTo(818, 148.715729f, 824.715698f, 142, 833, 142); | 433 path.cubicTo(818, 148.715729f, 824.715698f, 142, 833, 142); |
| 435 path.lineTo(909, 142); | 434 path.lineTo(909, 142); |
| 436 path.lineTo(909, 143); | 435 path.lineTo(909, 143); |
| 437 path.lineTo(833, 143); | 436 path.lineTo(833, 143); |
| 438 path.cubicTo(825.268005f, 143, 819, 149.268005f, 819, 157); | 437 path.cubicTo(825.268005f, 143, 819, 149.268005f, 819, 157); |
| 439 path.lineTo(819, 926); | 438 path.lineTo(819, 926); |
| 440 path.lineTo(818, 926); | 439 path.lineTo(818, 926); |
| 441 path.lineTo(818, 157); | 440 path.lineTo(818, 157); |
| 442 path.close(); | 441 path.close(); |
| 443 path.moveTo(1184, 926); | 442 path.moveTo(1184, 926); |
| 444 path.lineTo(1185, 926); | 443 path.lineTo(1185, 926); |
| 445 path.lineTo(1185, 157); | 444 path.lineTo(1185, 157); |
| 446 path.cubicTo(1185, 148.715729f, 1178.2843f, 142, 1170, 142); | 445 path.cubicTo(1185, 148.715729f, 1178.2843f, 142, 1170, 142); |
| 447 path.lineTo(1093, 142); | 446 path.lineTo(1093, 142); |
| 448 path.lineTo(1093, 143); | 447 path.lineTo(1093, 143); |
| 449 path.lineTo(1170, 143); | 448 path.lineTo(1170, 143); |
| 450 path.cubicTo(1177.73193f, 143, 1184, 149.268005f, 1184, 157); | 449 path.cubicTo(1177.73193f, 143, 1184, 149.268005f, 1184, 157); |
| 451 path.lineTo(1184, 926); | 450 path.lineTo(1184, 926); |
| 452 path.close(); | 451 path.close(); |
| 453 SkPath pathB; | 452 SkPath pathB; |
| 454 pathB.setFillType(SkPath::kWinding_FillType); | 453 pathB.setFillType(SkPath::kWinding_FillType); |
| 455 pathB.moveTo(1185, 142); | 454 pathB.moveTo(1185, 142); |
| 456 pathB.lineTo(1001.5f, 325.5f); | 455 pathB.lineTo(1001.5f, 325.5f); |
| 457 pathB.lineTo(1001.5f, 782.5f); | 456 pathB.lineTo(1001.5f, 782.5f); |
| 458 pathB.lineTo(1185, 966); | 457 pathB.lineTo(1185, 966); |
| 459 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 458 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 460 } | 459 } |
| 461 | 460 |
| 462 static void skpmm4everfriends_com43(skiatest::Reporter* reporter) { | 461 static void skpmm4everfriends_com43(skiatest::Reporter* reporter, const char* fi
lename) { |
| 463 SkPath path; | 462 SkPath path; |
| 464 path.setFillType(SkPath::kEvenOdd_FillType); | 463 path.setFillType(SkPath::kEvenOdd_FillType); |
| 465 path.moveTo(540.74231f, 215.922546f); | 464 path.moveTo(540.74231f, 215.922546f); |
| 466 path.cubicTo(540.893127f, 215.391159f, 541.443909f, 215.090134f, 541.972473f
, 215.250168f); | 465 path.cubicTo(540.893127f, 215.391159f, 541.443909f, 215.090134f, 541.972473f
, 215.250168f); |
| 467 path.lineTo(581.213318f, 227.131104f); | 466 path.lineTo(581.213318f, 227.131104f); |
| 468 path.cubicTo(581.741882f, 227.291153f, 582.048157f, 227.851654f, 581.897339f
, 228.383041f); | 467 path.cubicTo(581.741882f, 227.291153f, 582.048157f, 227.851654f, 581.897339f
, 228.383041f); |
| 469 path.lineTo(576.708923f, 246.663925f); | 468 path.lineTo(576.708923f, 246.663925f); |
| 470 path.cubicTo(576.558167f, 247.195297f, 576.007324f, 247.496338f, 575.47876f,
247.336288f); | 469 path.cubicTo(576.558167f, 247.195297f, 576.007324f, 247.496338f, 575.47876f,
247.336288f); |
| 471 path.lineTo(536.237915f, 235.455353f); | 470 path.lineTo(536.237915f, 235.455353f); |
| 472 path.cubicTo(535.709351f, 235.295319f, 535.403137f, 234.734802f, 535.553894f
, 234.20343f); | 471 path.cubicTo(535.709351f, 235.295319f, 535.403137f, 234.734802f, 535.553894f
, 234.20343f); |
| 473 path.lineTo(540.74231f, 215.922546f); | 472 path.lineTo(540.74231f, 215.922546f); |
| 474 path.close(); | 473 path.close(); |
| 475 SkPath pathB; | 474 SkPath pathB; |
| 476 pathB.setFillType(SkPath::kWinding_FillType); | 475 pathB.setFillType(SkPath::kWinding_FillType); |
| 477 pathB.moveTo(541.015381f, 214.960388f); | 476 pathB.moveTo(541.015381f, 214.960388f); |
| 478 pathB.lineTo(582.17041f, 227.420883f); | 477 pathB.lineTo(582.17041f, 227.420883f); |
| 479 pathB.lineTo(576.435852f, 247.626068f); | 478 pathB.lineTo(576.435852f, 247.626068f); |
| 480 pathB.lineTo(535.280823f, 235.165573f); | 479 pathB.lineTo(535.280823f, 235.165573f); |
| 481 pathB.close(); | 480 pathB.close(); |
| 482 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 481 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 483 } | 482 } |
| 484 | 483 |
| 485 static void skpmtrk_uz27(skiatest::Reporter* reporter) { | 484 static void skpmtrk_uz27(skiatest::Reporter* reporter, const char* filename) { |
| 486 SkPath path; | 485 SkPath path; |
| 487 path.setFillType(SkPath::kEvenOdd_FillType); | 486 path.setFillType(SkPath::kEvenOdd_FillType); |
| 488 path.moveTo(33, 787); | 487 path.moveTo(33, 787); |
| 489 path.lineTo(33, 412); | 488 path.lineTo(33, 412); |
| 490 path.lineTo(1233, 412); | 489 path.lineTo(1233, 412); |
| 491 path.lineTo(1233, 787); | 490 path.lineTo(1233, 787); |
| 492 path.quadTo(1233, 793.213196f, 1228.60803f, 797.607971f); | 491 path.quadTo(1233, 793.213196f, 1228.60803f, 797.607971f); |
| 493 path.quadTo(1224.21326f, 802, 1218, 802); | 492 path.quadTo(1224.21326f, 802, 1218, 802); |
| 494 path.lineTo(48, 802); | 493 path.lineTo(48, 802); |
| 495 path.quadTo(41.7867966f, 802, 37.3919983f, 797.607971f); | 494 path.quadTo(41.7867966f, 802, 37.3919983f, 797.607971f); |
| 496 path.quadTo(33, 793.213196f, 33, 787); | 495 path.quadTo(33, 793.213196f, 33, 787); |
| 497 path.close(); | 496 path.close(); |
| 498 SkPath pathB; | 497 SkPath pathB; |
| 499 pathB.setFillType(SkPath::kWinding_FillType); | 498 pathB.setFillType(SkPath::kWinding_FillType); |
| 500 pathB.moveTo(33, 412); | 499 pathB.moveTo(33, 412); |
| 501 pathB.lineTo(1233, 412); | 500 pathB.lineTo(1233, 412); |
| 502 pathB.lineTo(1233, 787); | 501 pathB.lineTo(1233, 787); |
| 503 pathB.quadTo(1233, 793.213196f, 1228.60791f, 797.608032f); | 502 pathB.quadTo(1233, 793.213196f, 1228.60791f, 797.608032f); |
| 504 pathB.quadTo(1224.21313f, 802, 1218, 802); | 503 pathB.quadTo(1224.21313f, 802, 1218, 802); |
| 505 pathB.lineTo(48, 802); | 504 pathB.lineTo(48, 802); |
| 506 pathB.quadTo(41.7867432f, 802, 37.3919678f, 797.608032f); | 505 pathB.quadTo(41.7867432f, 802, 37.3919678f, 797.608032f); |
| 507 pathB.quadTo(33, 793.213196f, 33, 787); | 506 pathB.quadTo(33, 793.213196f, 33, 787); |
| 508 pathB.close(); | 507 pathB.close(); |
| 509 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 508 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 510 } | 509 } |
| 511 | 510 |
| 512 static void skpfrauen_magazin_com83(skiatest::Reporter* reporter) { | 511 static void skpfrauen_magazin_com83(skiatest::Reporter* reporter, const char* fi
lename) { |
| 513 SkPath path; | 512 SkPath path; |
| 514 path.setFillType(SkPath::kEvenOdd_FillType); | 513 path.setFillType(SkPath::kEvenOdd_FillType); |
| 515 path.moveTo(808, 886); | 514 path.moveTo(808, 886); |
| 516 path.cubicTo(805.581055f, 886, 803.563293f, 887.717773f, 803.100037f, 890); | 515 path.cubicTo(805.581055f, 886, 803.563293f, 887.717773f, 803.100037f, 890); |
| 517 path.lineTo(1122.90002f, 890); | 516 path.lineTo(1122.90002f, 890); |
| 518 path.cubicTo(1122.43677f, 887.717773f, 1120.41895f, 886, 1118, 886); | 517 path.cubicTo(1122.43677f, 887.717773f, 1120.41895f, 886, 1118, 886); |
| 519 path.lineTo(808, 886); | 518 path.lineTo(808, 886); |
| 520 path.close(); | 519 path.close(); |
| 521 SkPath pathB; | 520 SkPath pathB; |
| 522 pathB.setFillType(SkPath::kInverseWinding_FillType); | 521 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 523 pathB.moveTo(808, 886); | 522 pathB.moveTo(808, 886); |
| 524 pathB.lineTo(1118, 886); | 523 pathB.lineTo(1118, 886); |
| 525 pathB.cubicTo(1120.76147f, 886, 1123, 888.238586f, 1123, 891); | 524 pathB.cubicTo(1120.76147f, 886, 1123, 888.238586f, 1123, 891); |
| 526 pathB.lineTo(1123, 1521); | 525 pathB.lineTo(1123, 1521); |
| 527 pathB.cubicTo(1123, 1523.20911f, 1120.76147f, 1525, 1118, 1525); | 526 pathB.cubicTo(1123, 1523.20911f, 1120.76147f, 1525, 1118, 1525); |
| 528 pathB.lineTo(808, 1525); | 527 pathB.lineTo(808, 1525); |
| 529 pathB.cubicTo(805.238586f, 1525, 803, 1523.20911f, 803, 1521); | 528 pathB.cubicTo(805.238586f, 1525, 803, 1523.20911f, 803, 1521); |
| 530 pathB.lineTo(803, 891); | 529 pathB.lineTo(803, 891); |
| 531 pathB.cubicTo(803, 888.238586f, 805.238586f, 886, 808, 886); | 530 pathB.cubicTo(803, 888.238586f, 805.238586f, 886, 808, 886); |
| 532 pathB.close(); | 531 pathB.close(); |
| 533 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 532 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 534 } | 533 } |
| 535 | 534 |
| 536 #define TRY_BROKEN_TESTS 0 | 535 static void skpi_gino_com16(skiatest::Reporter* reporter, const char* filename)
{ |
| 537 #if TRY_BROKEN_TESTS | |
| 538 static void skpi_gino_com16(skiatest::Reporter* reporter) { | |
| 539 SkPath path; | 536 SkPath path; |
| 540 path.setFillType(SkPath::kEvenOdd_FillType); | 537 path.setFillType(SkPath::kEvenOdd_FillType); |
| 541 path.moveTo(184, 734); | 538 path.moveTo(184, 734); |
| 542 path.quadTo(133.051727f, 734, 97.0258636f, 770.025879f); | 539 path.quadTo(133.051727f, 734, 97.0258636f, 770.025879f); |
| 543 path.quadTo(61, 806.051758f, 61, 857); | 540 path.quadTo(61, 806.051758f, 61, 857); |
| 544 path.quadTo(61, 895.835083f, 81.9317017f, 926); | 541 path.quadTo(61, 895.835083f, 81.9317017f, 926); |
| 545 path.lineTo(286.068298f, 926); | 542 path.lineTo(286.068298f, 926); |
| 546 path.quadTo(307, 895.835083f, 307, 857); | 543 path.quadTo(307, 895.835083f, 307, 857); |
| 547 path.quadTo(307, 806.051758f, 270.974121f, 770.025879f); | 544 path.quadTo(307, 806.051758f, 270.974121f, 770.025879f); |
| 548 path.quadTo(234.948273f, 734, 184, 734); | 545 path.quadTo(234.948273f, 734, 184, 734); |
| 549 path.close(); | 546 path.close(); |
| 550 SkPath pathB; | 547 SkPath pathB; |
| 551 pathB.setFillType(SkPath::kWinding_FillType); | 548 pathB.setFillType(SkPath::kWinding_FillType); |
| 552 pathB.moveTo(185, 734); | 549 pathB.moveTo(185, 734); |
| 553 pathB.cubicTo(252.93103f, 734, 308, 789.06897f, 308, 857); | 550 pathB.cubicTo(252.93103f, 734, 308, 789.06897f, 308, 857); |
| 554 pathB.cubicTo(308, 924.93103f, 252.93103f, 980, 185, 980); | 551 pathB.cubicTo(308, 924.93103f, 252.93103f, 980, 185, 980); |
| 555 pathB.lineTo(184, 980); | 552 pathB.lineTo(184, 980); |
| 556 pathB.cubicTo(116.068977f, 980, 61, 924.93103f, 61, 857); | 553 pathB.cubicTo(116.068977f, 980, 61, 924.93103f, 61, 857); |
| 557 pathB.cubicTo(61, 789.06897f, 116.068977f, 734, 184, 734); | 554 pathB.cubicTo(61, 789.06897f, 116.068977f, 734, 184, 734); |
| 558 pathB.lineTo(185, 734); | 555 pathB.lineTo(185, 734); |
| 559 pathB.close(); | 556 pathB.close(); |
| 560 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 557 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 561 } | 558 } |
| 562 | 559 |
| 563 static void skppchappy_com_au102(skiatest::Reporter* reporter) { | 560 static void skppchappy_com_au102(skiatest::Reporter* reporter, const char* filen
ame) { |
| 564 SkPath path; | 561 SkPath path; |
| 565 path.setFillType(SkPath::kEvenOdd_FillType); | 562 path.setFillType(SkPath::kEvenOdd_FillType); |
| 566 path.moveTo(363, 493); | 563 path.moveTo(363, 493); |
| 567 path.cubicTo(360.790863f, 493, 359, 494.790863f, 359, 497); | 564 path.cubicTo(360.790863f, 493, 359, 494.790863f, 359, 497); |
| 568 path.lineTo(359, 656); | 565 path.lineTo(359, 656); |
| 569 path.cubicTo(359, 658.209106f, 360.790863f, 660, 363, 660); | 566 path.cubicTo(359, 658.209106f, 360.790863f, 660, 363, 660); |
| 570 path.lineTo(623.001709f, 660); | 567 path.lineTo(623.001709f, 660); |
| 571 path.cubicTo(624.657776f, 659.999023f, 626, 658.65625f, 626, 657); | 568 path.cubicTo(624.657776f, 659.999023f, 626, 658.65625f, 626, 657); |
| 572 path.lineTo(626, 496); | 569 path.lineTo(626, 496); |
| 573 path.cubicTo(626, 494.343872f, 624.657959f, 493.00116f, 623.002075f, 493); | 570 path.cubicTo(626, 494.343872f, 624.657959f, 493.00116f, 623.002075f, 493); |
| 574 path.lineTo(363, 493); | 571 path.lineTo(363, 493); |
| 575 path.close(); | 572 path.close(); |
| 576 SkPath pathB; | 573 SkPath pathB; |
| 577 pathB.setFillType(SkPath::kInverseWinding_FillType); | 574 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 578 pathB.moveTo(362, 494); | 575 pathB.moveTo(362, 494); |
| 579 pathB.lineTo(623, 494); | 576 pathB.lineTo(623, 494); |
| 580 pathB.cubicTo(624.65686f, 494, 626, 494.895416f, 626, 496); | 577 pathB.cubicTo(624.65686f, 494, 626, 494.895416f, 626, 496); |
| 581 pathB.lineTo(626, 657); | 578 pathB.lineTo(626, 657); |
| 582 pathB.cubicTo(626, 658.65686f, 624.65686f, 660, 623, 660); | 579 pathB.cubicTo(626, 658.65686f, 624.65686f, 660, 623, 660); |
| 583 pathB.lineTo(362, 660); | 580 pathB.lineTo(362, 660); |
| 584 pathB.cubicTo(360.34314f, 660, 359, 658.65686f, 359, 657); | 581 pathB.cubicTo(360.34314f, 660, 359, 658.65686f, 359, 657); |
| 585 pathB.lineTo(359, 496); | 582 pathB.lineTo(359, 496); |
| 586 pathB.cubicTo(359, 494.895416f, 360.34314f, 494, 362, 494); | 583 pathB.cubicTo(359, 494.895416f, 360.34314f, 494, 362, 494); |
| 587 pathB.close(); | 584 pathB.close(); |
| 588 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 585 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 589 } | 586 } |
| 590 | 587 |
| 591 static void skpsciality_com161(skiatest::Reporter* reporter) { | 588 static void skpsciality_com161(skiatest::Reporter* reporter, const char* filenam
e) { |
| 592 SkPath path; | 589 SkPath path; |
| 593 path.setFillType(SkPath::kEvenOdd_FillType); | 590 path.setFillType(SkPath::kEvenOdd_FillType); |
| 594 path.moveTo(656, 728); | 591 path.moveTo(656, 728); |
| 595 path.cubicTo(653.790833f, 728, 652, 729.790833f, 652, 732); | 592 path.cubicTo(653.790833f, 728, 652, 729.790833f, 652, 732); |
| 596 path.lineTo(652, 789); | 593 path.lineTo(652, 789); |
| 597 path.cubicTo(652, 791.209106f, 653.790833f, 793, 656, 793); | 594 path.cubicTo(652, 791.209106f, 653.790833f, 793, 656, 793); |
| 598 path.lineTo(769.001282f, 793); | 595 path.lineTo(769.001282f, 793); |
| 599 path.cubicTo(770.657532f, 792.999268f, 772, 791.656433f, 772, 790); | 596 path.cubicTo(770.657532f, 792.999268f, 772, 791.656433f, 772, 790); |
| 600 path.lineTo(772, 731); | 597 path.lineTo(772, 731); |
| 601 path.cubicTo(772, 729.34314f, 770.65686f, 728, 769, 728); | 598 path.cubicTo(772, 729.34314f, 770.65686f, 728, 769, 728); |
| 602 path.lineTo(656, 728); | 599 path.lineTo(656, 728); |
| 603 path.close(); | 600 path.close(); |
| 604 SkPath pathB; | 601 SkPath pathB; |
| 605 pathB.setFillType(SkPath::kInverseWinding_FillType); | 602 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 606 pathB.moveTo(655, 729); | 603 pathB.moveTo(655, 729); |
| 607 pathB.lineTo(769, 729); | 604 pathB.lineTo(769, 729); |
| 608 pathB.cubicTo(770.65686f, 729, 772, 729.895447f, 772, 731); | 605 pathB.cubicTo(770.65686f, 729, 772, 729.895447f, 772, 731); |
| 609 pathB.lineTo(772, 790); | 606 pathB.lineTo(772, 790); |
| 610 pathB.cubicTo(772, 791.65686f, 770.65686f, 793, 769, 793); | 607 pathB.cubicTo(772, 791.65686f, 770.65686f, 793, 769, 793); |
| 611 pathB.lineTo(655, 793); | 608 pathB.lineTo(655, 793); |
| 612 pathB.cubicTo(653.34314f, 793, 652, 791.65686f, 652, 790); | 609 pathB.cubicTo(653.34314f, 793, 652, 791.65686f, 652, 790); |
| 613 pathB.lineTo(652, 731); | 610 pathB.lineTo(652, 731); |
| 614 pathB.cubicTo(652, 729.895447f, 653.34314f, 729, 655, 729); | 611 pathB.cubicTo(652, 729.895447f, 653.34314f, 729, 655, 729); |
| 615 pathB.close(); | 612 pathB.close(); |
| 616 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 613 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 617 } | 614 } |
| 618 #endif | |
| 619 | 615 |
| 620 static void skpsudoestenegocios_com186(skiatest::Reporter* reporter) { | 616 static void skpsudoestenegocios_com186(skiatest::Reporter* reporter, const char*
filename) { |
| 621 SkPath path; | 617 SkPath path; |
| 622 path.setFillType(SkPath::kEvenOdd_FillType); | 618 path.setFillType(SkPath::kEvenOdd_FillType); |
| 623 path.moveTo(0, 495); | 619 path.moveTo(0, 495); |
| 624 path.lineTo(1.23685242e-14f, 293); | 620 path.lineTo(1.23685242e-14f, 293); |
| 625 path.lineTo(44, 293); | 621 path.lineTo(44, 293); |
| 626 path.quadTo(45.6568527f, 293, 46.8288002f, 294.171204f); | 622 path.quadTo(45.6568527f, 293, 46.8288002f, 294.171204f); |
| 627 path.quadTo(48, 295.34314f, 48, 297); | 623 path.quadTo(48, 295.34314f, 48, 297); |
| 628 path.lineTo(48, 491); | 624 path.lineTo(48, 491); |
| 629 path.quadTo(48, 492.65686f, 46.8288002f, 493.828796f); | 625 path.quadTo(48, 492.65686f, 46.8288002f, 493.828796f); |
| 630 path.quadTo(45.6568527f, 495, 44, 495); | 626 path.quadTo(45.6568527f, 495, 44, 495); |
| 631 path.lineTo(0, 495); | 627 path.lineTo(0, 495); |
| 632 path.close(); | 628 path.close(); |
| 633 path.moveTo(1, 294); | 629 path.moveTo(1, 294); |
| 634 path.lineTo(44, 294); | 630 path.lineTo(44, 294); |
| 635 path.cubicTo(45.6568565f, 294, 47, 295.34314f, 47, 297); | 631 path.cubicTo(45.6568565f, 294, 47, 295.34314f, 47, 297); |
| 636 path.lineTo(47, 491); | 632 path.lineTo(47, 491); |
| 637 path.cubicTo(47, 492.65686f, 45.6568565f, 494, 44, 494); | 633 path.cubicTo(47, 492.65686f, 45.6568565f, 494, 44, 494); |
| 638 path.lineTo(1, 494); | 634 path.lineTo(1, 494); |
| 639 path.lineTo(1, 294); | 635 path.lineTo(1, 294); |
| 640 path.close(); | 636 path.close(); |
| 641 SkPath pathB; | 637 SkPath pathB; |
| 642 pathB.setFillType(SkPath::kWinding_FillType); | 638 pathB.setFillType(SkPath::kWinding_FillType); |
| 643 pathB.moveTo(48, 495); | 639 pathB.moveTo(48, 495); |
| 644 pathB.lineTo(24, 471); | 640 pathB.lineTo(24, 471); |
| 645 pathB.lineTo(24, 317); | 641 pathB.lineTo(24, 317); |
| 646 pathB.lineTo(48, 293); | 642 pathB.lineTo(48, 293); |
| 647 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 643 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 648 } | 644 } |
| 649 | 645 |
| 650 static void skpthesuburbanite_com213(skiatest::Reporter* reporter) { | 646 static void skpthesuburbanite_com213(skiatest::Reporter* reporter, const char* f
ilename) { |
| 651 SkPath path; | 647 SkPath path; |
| 652 path.setFillType(SkPath::kEvenOdd_FillType); | 648 path.setFillType(SkPath::kEvenOdd_FillType); |
| 653 path.moveTo(863.439026f, 692); | 649 path.moveTo(863.439026f, 692); |
| 654 path.lineTo(863.283264f, 692); | 650 path.lineTo(863.283264f, 692); |
| 655 path.lineTo(802, 708.420837f); | 651 path.lineTo(802, 708.420837f); |
| 656 path.lineTo(802, 718.773621f); | 652 path.lineTo(802, 718.773621f); |
| 657 path.lineTo(866, 701.624817f); | 653 path.lineTo(866, 701.624817f); |
| 658 path.lineTo(866, 701.557922f); | 654 path.lineTo(866, 701.557922f); |
| 659 path.lineTo(863.439026f, 692); | 655 path.lineTo(863.439026f, 692); |
| 660 path.close(); | 656 path.close(); |
| 661 SkPath pathB; | 657 SkPath pathB; |
| 662 pathB.setFillType(SkPath::kWinding_FillType); | 658 pathB.setFillType(SkPath::kWinding_FillType); |
| 663 pathB.moveTo(783.256775f, 713.443054f); | 659 pathB.moveTo(783.256775f, 713.443054f); |
| 664 pathB.lineTo(863.428589f, 691.96106f); | 660 pathB.lineTo(863.428589f, 691.96106f); |
| 665 pathB.lineTo(866.016724f, 701.620361f); | 661 pathB.lineTo(866.016724f, 701.620361f); |
| 666 pathB.lineTo(785.84491f, 723.102356f); | 662 pathB.lineTo(785.84491f, 723.102356f); |
| 667 pathB.close(); | 663 pathB.close(); |
| 668 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 664 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 669 } | 665 } |
| 670 | 666 |
| 671 static void skphostloco_com11(skiatest::Reporter* reporter) { | 667 static void skphostloco_com11(skiatest::Reporter* reporter, const char* filename
) { |
| 672 SkPath path; | 668 SkPath path; |
| 673 path.setFillType(SkPath::kEvenOdd_FillType); | 669 path.setFillType(SkPath::kEvenOdd_FillType); |
| 674 path.moveTo(6.66133815e-16f, 648); | 670 path.moveTo(6.66133815e-16f, 648); |
| 675 path.lineTo(25.8522835f, 648); | 671 path.lineTo(25.8522835f, 648); |
| 676 path.quadTo(27.5087376f, 647.999634f, 28.6807098f, 646.82843f); | 672 path.quadTo(27.5087376f, 647.999634f, 28.6807098f, 646.82843f); |
| 677 path.quadTo(29.8518829f, 645.656433f, 29.8522835f, 644); | 673 path.quadTo(29.8518829f, 645.656433f, 29.8522835f, 644); |
| 678 path.lineTo(29.8522835f, 467); | 674 path.lineTo(29.8522835f, 467); |
| 679 path.quadTo(29.8518829f, 465.343536f, 28.6807098f, 464.17157f); | 675 path.quadTo(29.8518829f, 465.343536f, 28.6807098f, 464.17157f); |
| 680 path.quadTo(27.5087376f, 463.000397f, 25.8522835f, 463); | 676 path.quadTo(27.5087376f, 463.000397f, 25.8522835f, 463); |
| 681 path.lineTo(2.22044605e-16f, 463); | 677 path.lineTo(2.22044605e-16f, 463); |
| 682 path.lineTo(6.66133815e-16f, 648); | 678 path.lineTo(6.66133815e-16f, 648); |
| 683 path.close(); | 679 path.close(); |
| 684 SkPath pathB; | 680 SkPath pathB; |
| 685 pathB.setFillType(SkPath::kWinding_FillType); | 681 pathB.setFillType(SkPath::kWinding_FillType); |
| 686 pathB.moveTo(0, 463); | 682 pathB.moveTo(0, 463); |
| 687 pathB.lineTo(30, 463); | 683 pathB.lineTo(30, 463); |
| 688 pathB.lineTo(30, 648); | 684 pathB.lineTo(30, 648); |
| 689 pathB.lineTo(0, 648); | 685 pathB.lineTo(0, 648); |
| 690 pathB.close(); | 686 pathB.close(); |
| 691 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 687 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 692 } | 688 } |
| 693 | 689 |
| 694 static void skpsergeychunkevich_com8(skiatest::Reporter* reporter) { | 690 static void skpsergeychunkevich_com8(skiatest::Reporter* reporter, const char* f
ilename) { |
| 695 SkPath path; | 691 SkPath path; |
| 696 path.setFillType(SkPath::kEvenOdd_FillType); | 692 path.setFillType(SkPath::kEvenOdd_FillType); |
| 697 path.moveTo(0, 926); | 693 path.moveTo(0, 926); |
| 698 path.lineTo(0, 0); | 694 path.lineTo(0, 0); |
| 699 path.lineTo(1265, 0); | 695 path.lineTo(1265, 0); |
| 700 path.lineTo(1265, 926); | 696 path.lineTo(1265, 926); |
| 701 path.lineTo(0, 926); | 697 path.lineTo(0, 926); |
| 702 path.close(); | 698 path.close(); |
| 703 SkPath pathB; | 699 SkPath pathB; |
| 704 pathB.setFillType(SkPath::kInverseWinding_FillType); | 700 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 705 pathB.moveTo(37, 374); | 701 pathB.moveTo(37, 374); |
| 706 pathB.lineTo(37, 535); | 702 pathB.lineTo(37, 535); |
| 707 pathB.cubicTo(37, 536.65686f, 35.6568565f, 538, 34, 538); | 703 pathB.cubicTo(37, 536.65686f, 35.6568565f, 538, 34, 538); |
| 708 pathB.lineTo(1.02866934e-14f, 538); | 704 pathB.lineTo(1.02866934e-14f, 538); |
| 709 pathB.lineTo(6.12303177e-17f, 371); | 705 pathB.lineTo(6.12303177e-17f, 371); |
| 710 pathB.lineTo(34, 371); | 706 pathB.lineTo(34, 371); |
| 711 pathB.cubicTo(35.6568565f, 371, 37, 372.34314f, 37, 374); | 707 pathB.cubicTo(35.6568565f, 371, 37, 372.34314f, 37, 374); |
| 712 pathB.close(); | 708 pathB.close(); |
| 713 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 709 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 714 } | 710 } |
| 715 | 711 |
| 716 static void skptracksflow_com9(skiatest::Reporter* reporter) { | 712 static void skptracksflow_com9(skiatest::Reporter* reporter, const char* filenam
e) { |
| 717 SkPath path; | 713 SkPath path; |
| 718 path.setFillType(SkPath::kEvenOdd_FillType); | 714 path.setFillType(SkPath::kEvenOdd_FillType); |
| 719 path.moveTo(16, 56); | 715 path.moveTo(16, 56); |
| 720 path.lineTo(32, 56); | 716 path.lineTo(32, 56); |
| 721 path.lineTo(32, 72); | 717 path.lineTo(32, 72); |
| 722 path.lineTo(16, 72); | 718 path.lineTo(16, 72); |
| 723 path.lineTo(16, 56); | 719 path.lineTo(16, 56); |
| 724 path.close(); | 720 path.close(); |
| 725 SkPath pathB; | 721 SkPath pathB; |
| 726 pathB.setFillType(SkPath::kEvenOdd_FillType); | 722 pathB.setFillType(SkPath::kEvenOdd_FillType); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 737 pathB.cubicTo(30.2668133f, 71.875f, 30.5524693f, 71.9992828f, 30.868f, 71.99
92828f); | 733 pathB.cubicTo(30.2668133f, 71.875f, 30.5524693f, 71.9992828f, 30.868f, 71.99
92828f); |
| 738 pathB.cubicTo(31.4994049f, 71.9992828f, 32.0014687f, 71.4909363f, 32.0014687
f, 70.8595276f); | 734 pathB.cubicTo(31.4994049f, 71.9992828f, 32.0014687f, 71.4909363f, 32.0014687
f, 70.8595276f); |
| 739 pathB.cubicTo(32.0015335f, 70.5439072f, 31.875f, 70.2623444f, 31.65625f, 70.
0555649f); | 735 pathB.cubicTo(32.0015335f, 70.5439072f, 31.875f, 70.2623444f, 31.65625f, 70.
0555649f); |
| 740 pathB.close(); | 736 pathB.close(); |
| 741 pathB.moveTo(18.0054054f, 62.0027809f); | 737 pathB.moveTo(18.0054054f, 62.0027809f); |
| 742 pathB.cubicTo(18.0054054f, 59.7925949f, 19.7970943f, 58.0009079f, 22.0072823
f, 58.0009079f); | 738 pathB.cubicTo(18.0054054f, 59.7925949f, 19.7970943f, 58.0009079f, 22.0072823
f, 58.0009079f); |
| 743 pathB.cubicTo(24.2174377f, 58.0009079f, 26.0091248f, 59.7925949f, 26.0091248
f, 62.0027809f); | 739 pathB.cubicTo(24.2174377f, 58.0009079f, 26.0091248f, 59.7925949f, 26.0091248
f, 62.0027809f); |
| 744 pathB.cubicTo(26.0091248f, 64.2129364f, 24.2174377f, 66.0046234f, 22.0072803
f, 66.0046234f); | 740 pathB.cubicTo(26.0091248f, 64.2129364f, 24.2174377f, 66.0046234f, 22.0072803
f, 66.0046234f); |
| 745 pathB.cubicTo(19.7970943f, 66.0045929f, 18.0054054f, 64.2129059f, 18.0054054
f, 62.0027809f); | 741 pathB.cubicTo(19.7970943f, 66.0045929f, 18.0054054f, 64.2129059f, 18.0054054
f, 62.0027809f); |
| 746 pathB.close(); | 742 pathB.close(); |
| 747 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 743 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 748 } | 744 } |
| 749 | 745 |
| 750 static void skpautobutler_dk29(skiatest::Reporter* reporter) { | 746 static void skpautobutler_dk29(skiatest::Reporter* reporter, const char* filenam
e) { |
| 751 SkPath path; | 747 SkPath path; |
| 752 path.setFillType(SkPath::kEvenOdd_FillType); | 748 path.setFillType(SkPath::kEvenOdd_FillType); |
| 753 path.moveTo(0, 926); | 749 path.moveTo(0, 926); |
| 754 path.lineTo(0, 0); | 750 path.lineTo(0, 0); |
| 755 path.lineTo(1265, 0); | 751 path.lineTo(1265, 0); |
| 756 path.lineTo(1265, 926); | 752 path.lineTo(1265, 926); |
| 757 path.lineTo(0, 926); | 753 path.lineTo(0, 926); |
| 758 path.close(); | 754 path.close(); |
| 759 SkPath pathB; | 755 SkPath pathB; |
| 760 pathB.setFillType(SkPath::kWinding_FillType); | 756 pathB.setFillType(SkPath::kWinding_FillType); |
| 761 pathB.moveTo(21, 162); | 757 pathB.moveTo(21, 162); |
| 762 pathB.lineTo(21, 301); | 758 pathB.lineTo(21, 301); |
| 763 pathB.lineTo(8.57224448e-15f, 301); | 759 pathB.lineTo(8.57224448e-15f, 301); |
| 764 pathB.lineTo(6.12303177e-17f, 162); | 760 pathB.lineTo(6.12303177e-17f, 162); |
| 765 pathB.close(); | 761 pathB.close(); |
| 766 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 762 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 767 } | 763 } |
| 768 | 764 |
| 769 static void skponlinecollege_org144(skiatest::Reporter* reporter) { | 765 static void skponlinecollege_org144(skiatest::Reporter* reporter, const char* fi
lename) { |
| 770 SkPath path; | 766 SkPath path; |
| 771 path.setFillType(SkPath::kEvenOdd_FillType); | 767 path.setFillType(SkPath::kEvenOdd_FillType); |
| 772 path.moveTo(179, 407); | 768 path.moveTo(179, 407); |
| 773 path.cubicTo(177.34314f, 407, 176, 408.34314f, 176, 410); | 769 path.cubicTo(177.34314f, 407, 176, 408.34314f, 176, 410); |
| 774 path.lineTo(176, 436); | 770 path.lineTo(176, 436); |
| 775 path.cubicTo(176, 437.65686f, 177.34314f, 439, 179, 439); | 771 path.cubicTo(176, 437.65686f, 177.34314f, 439, 179, 439); |
| 776 path.lineTo(337.002289f, 439); | 772 path.lineTo(337.002289f, 439); |
| 777 path.cubicTo(338.105835f, 438.998779f, 339, 438.103821f, 339, 437); | 773 path.cubicTo(338.105835f, 438.998779f, 339, 438.103821f, 339, 437); |
| 778 path.lineTo(339, 409); | 774 path.lineTo(339, 409); |
| 779 path.cubicTo(339, 407.896362f, 338.10611f, 407.001526f, 337.002838f, 407); | 775 path.cubicTo(339, 407.896362f, 338.10611f, 407.001526f, 337.002838f, 407); |
| 780 path.lineTo(179, 407); | 776 path.lineTo(179, 407); |
| 781 path.close(); | 777 path.close(); |
| 782 SkPath pathB; | 778 SkPath pathB; |
| 783 pathB.setFillType(SkPath::kInverseWinding_FillType); | 779 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 784 pathB.moveTo(179, 408); | 780 pathB.moveTo(179, 408); |
| 785 pathB.lineTo(337, 408); | 781 pathB.lineTo(337, 408); |
| 786 pathB.cubicTo(338.65686f, 408, 340, 408.895416f, 340, 410); | 782 pathB.cubicTo(338.65686f, 408, 340, 408.895416f, 340, 410); |
| 787 pathB.lineTo(340, 436); | 783 pathB.lineTo(340, 436); |
| 788 pathB.cubicTo(340, 437.65686f, 338.65686f, 439, 337, 439); | 784 pathB.cubicTo(340, 437.65686f, 338.65686f, 439, 337, 439); |
| 789 pathB.lineTo(179, 439); | 785 pathB.lineTo(179, 439); |
| 790 pathB.cubicTo(177.895432f, 439, 177, 437.65686f, 177, 436); | 786 pathB.cubicTo(177.895432f, 439, 177, 437.65686f, 177, 436); |
| 791 pathB.lineTo(177, 410); | 787 pathB.lineTo(177, 410); |
| 792 pathB.cubicTo(177, 408.895416f, 177.895432f, 408, 179, 408); | 788 pathB.cubicTo(177, 408.895416f, 177.895432f, 408, 179, 408); |
| 793 pathB.close(); | 789 pathB.close(); |
| 794 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 790 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 795 } | 791 } |
| 796 | 792 |
| 797 static void skpnational_com_au81(skiatest::Reporter* reporter) { | 793 static void skpnational_com_au81(skiatest::Reporter* reporter, const char* filen
ame) { |
| 798 SkPath path; | 794 SkPath path; |
| 799 path.setFillType(SkPath::kEvenOdd_FillType); | 795 path.setFillType(SkPath::kEvenOdd_FillType); |
| 800 path.moveTo(807, 817); | 796 path.moveTo(807, 817); |
| 801 path.quadTo(806.585876f, 817.000122f, 806.292908f, 817.292908f); | 797 path.quadTo(806.585876f, 817.000122f, 806.292908f, 817.292908f); |
| 802 path.quadTo(806.000122f, 817.585876f, 806, 818); | 798 path.quadTo(806.000122f, 817.585876f, 806, 818); |
| 803 path.lineTo(806, 881); | 799 path.lineTo(806, 881); |
| 804 path.lineTo(1111, 881); | 800 path.lineTo(1111, 881); |
| 805 path.lineTo(1111, 818); | 801 path.lineTo(1111, 818); |
| 806 path.quadTo(1110.99988f, 817.585876f, 1110.70715f, 817.292908f); | 802 path.quadTo(1110.99988f, 817.585876f, 1110.70715f, 817.292908f); |
| 807 path.quadTo(1110.41406f, 817.000122f, 1110, 817); | 803 path.quadTo(1110.41406f, 817.000122f, 1110, 817); |
| 808 path.lineTo(807, 817); | 804 path.lineTo(807, 817); |
| 809 path.close(); | 805 path.close(); |
| 810 SkPath pathB; | 806 SkPath pathB; |
| 811 pathB.setFillType(SkPath::kInverseWinding_FillType); | 807 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 812 pathB.moveTo(807, 817); | 808 pathB.moveTo(807, 817); |
| 813 pathB.lineTo(1110, 817); | 809 pathB.lineTo(1110, 817); |
| 814 pathB.cubicTo(1110.55225f, 817, 1111, 817.447693f, 1111, 818); | 810 pathB.cubicTo(1110.55225f, 817, 1111, 817.447693f, 1111, 818); |
| 815 pathB.lineTo(1111, 880); | 811 pathB.lineTo(1111, 880); |
| 816 pathB.lineTo(806, 880); | 812 pathB.lineTo(806, 880); |
| 817 pathB.lineTo(806, 818); | 813 pathB.lineTo(806, 818); |
| 818 pathB.cubicTo(806, 817.447693f, 806.447693f, 817, 807, 817); | 814 pathB.cubicTo(806, 817.447693f, 806.447693f, 817, 807, 817); |
| 819 pathB.close(); | 815 pathB.close(); |
| 820 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 816 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 821 } | 817 } |
| 822 | 818 |
| 823 static void skprentacheat_com30(skiatest::Reporter* reporter) { | 819 static void skprentacheat_com30(skiatest::Reporter* reporter, const char* filena
me) { |
| 824 SkPath path; | 820 SkPath path; |
| 825 path.setFillType(SkPath::kEvenOdd_FillType); | 821 path.setFillType(SkPath::kEvenOdd_FillType); |
| 826 path.moveTo(967, 263); | 822 path.moveTo(967, 263); |
| 827 path.quadTo(966.585876f, 263.000092f, 966.292908f, 263.292908f); | 823 path.quadTo(966.585876f, 263.000092f, 966.292908f, 263.292908f); |
| 828 path.quadTo(966.000122f, 263.585876f, 966, 264); | 824 path.quadTo(966.000122f, 263.585876f, 966, 264); |
| 829 path.lineTo(966, 301); | 825 path.lineTo(966, 301); |
| 830 path.lineTo(1214, 301); | 826 path.lineTo(1214, 301); |
| 831 path.lineTo(1214, 264); | 827 path.lineTo(1214, 264); |
| 832 path.quadTo(1213.99988f, 263.585876f, 1213.70715f, 263.292908f); | 828 path.quadTo(1213.99988f, 263.585876f, 1213.70715f, 263.292908f); |
| 833 path.quadTo(1213.41406f, 263.000092f, 1213, 263); | 829 path.quadTo(1213.41406f, 263.000092f, 1213, 263); |
| 834 path.lineTo(967, 263); | 830 path.lineTo(967, 263); |
| 835 path.close(); | 831 path.close(); |
| 836 SkPath pathB; | 832 SkPath pathB; |
| 837 pathB.setFillType(SkPath::kInverseWinding_FillType); | 833 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 838 pathB.moveTo(967, 263); | 834 pathB.moveTo(967, 263); |
| 839 pathB.lineTo(1213, 263); | 835 pathB.lineTo(1213, 263); |
| 840 pathB.cubicTo(1213.55225f, 263, 1214, 263.447723f, 1214, 264); | 836 pathB.cubicTo(1213.55225f, 263, 1214, 263.447723f, 1214, 264); |
| 841 pathB.lineTo(1214, 300); | 837 pathB.lineTo(1214, 300); |
| 842 pathB.lineTo(966, 300); | 838 pathB.lineTo(966, 300); |
| 843 pathB.lineTo(966, 264); | 839 pathB.lineTo(966, 264); |
| 844 pathB.cubicTo(966, 263.447723f, 966.447693f, 263, 967, 263); | 840 pathB.cubicTo(966, 263.447723f, 966.447693f, 263, 967, 263); |
| 845 pathB.close(); | 841 pathB.close(); |
| 846 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 842 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 847 } | 843 } |
| 848 | 844 |
| 849 static void skpbreakmystyle_com10(skiatest::Reporter* reporter) { | 845 static void skpbreakmystyle_com10(skiatest::Reporter* reporter, const char* file
name) { |
| 850 SkPath path; | 846 SkPath path; |
| 851 path.setFillType(SkPath::kEvenOdd_FillType); | 847 path.setFillType(SkPath::kEvenOdd_FillType); |
| 852 path.moveTo(271.032867f, -5.32907052e-15f); | 848 path.moveTo(271.032867f, -5.32907052e-15f); |
| 853 path.lineTo(56.9671326f, -5.16253706e-15f); | 849 path.lineTo(56.9671326f, -5.16253706e-15f); |
| 854 path.quadTo(52.7835083f, 3.69968891f, 48.7416f, 7.74160004f); | 850 path.quadTo(52.7835083f, 3.69968891f, 48.7416f, 7.74160004f); |
| 855 path.quadTo(1, 55.4831848f, 1, 123); | 851 path.quadTo(1, 55.4831848f, 1, 123); |
| 856 path.quadTo(1, 190.516815f, 48.7416f, 238.258392f); | 852 path.quadTo(1, 190.516815f, 48.7416f, 238.258392f); |
| 857 path.quadTo(96.4831848f, 286, 164, 286); | 853 path.quadTo(96.4831848f, 286, 164, 286); |
| 858 path.quadTo(231.516815f, 286, 279.258392f, 238.258392f); | 854 path.quadTo(231.516815f, 286, 279.258392f, 238.258392f); |
| 859 path.quadTo(327, 190.516815f, 327, 123); | 855 path.quadTo(327, 190.516815f, 327, 123); |
| 860 path.quadTo(327, 55.4831848f, 279.258392f, 7.74160004f); | 856 path.quadTo(327, 55.4831848f, 279.258392f, 7.74160004f); |
| 861 path.quadTo(275.216431f, 3.69964004f, 271.032867f, -5.32907052e-15f); | 857 path.quadTo(275.216431f, 3.69964004f, 271.032867f, -5.32907052e-15f); |
| 862 path.close(); | 858 path.close(); |
| 863 SkPath pathB; | 859 SkPath pathB; |
| 864 pathB.setFillType(SkPath::kWinding_FillType); | 860 pathB.setFillType(SkPath::kWinding_FillType); |
| 865 pathB.moveTo(327, 123); | 861 pathB.moveTo(327, 123); |
| 866 pathB.quadTo(327, 190.516815f, 279.258392f, 238.258392f); | 862 pathB.quadTo(327, 190.516815f, 279.258392f, 238.258392f); |
| 867 pathB.quadTo(231.516815f, 286, 164, 286); | 863 pathB.quadTo(231.516815f, 286, 164, 286); |
| 868 pathB.quadTo(96.4831848f, 286, 48.7416f, 238.258392f); | 864 pathB.quadTo(96.4831848f, 286, 48.7416f, 238.258392f); |
| 869 pathB.quadTo(1, 190.516815f, 1, 123); | 865 pathB.quadTo(1, 190.516815f, 1, 123); |
| 870 pathB.quadTo(1, 55.4831848f, 48.7416f, 7.74160004f); | 866 pathB.quadTo(1, 55.4831848f, 48.7416f, 7.74160004f); |
| 871 pathB.quadTo(96.4831848f, -40, 164, -40); | 867 pathB.quadTo(96.4831848f, -40, 164, -40); |
| 872 pathB.quadTo(231.516815f, -40, 279.258392f, 7.74160004f); | 868 pathB.quadTo(231.516815f, -40, 279.258392f, 7.74160004f); |
| 873 pathB.quadTo(327, 55.4831848f, 327, 123); | 869 pathB.quadTo(327, 55.4831848f, 327, 123); |
| 874 pathB.close(); | 870 pathB.close(); |
| 875 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 871 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 876 } | 872 } |
| 877 | 873 |
| 878 static void skpsd_graphic_net104(skiatest::Reporter* reporter) { | 874 static void skpsd_graphic_net104(skiatest::Reporter* reporter, const char* filen
ame) { |
| 879 SkPath path; | 875 SkPath path; |
| 880 path.setFillType(SkPath::kEvenOdd_FillType); | 876 path.setFillType(SkPath::kEvenOdd_FillType); |
| 881 path.moveTo(475.421448f, 836.985962f); | 877 path.moveTo(475.421448f, 836.985962f); |
| 882 path.lineTo(461.280975f, 841.990662f); | 878 path.lineTo(461.280975f, 841.990662f); |
| 883 path.cubicTo(466.80899f, 857.609802f, 458.62854f, 874.752991f, 443.009399f,
880.281006f); | 879 path.cubicTo(466.80899f, 857.609802f, 458.62854f, 874.752991f, 443.009399f,
880.281006f); |
| 884 path.cubicTo(435.199829f, 883.044983f, 427.009247f, 882.381897f, 420.080048f
, 879.075378f); | 880 path.cubicTo(435.199829f, 883.044983f, 427.009247f, 882.381897f, 420.080048f
, 879.075378f); |
| 885 path.lineTo(413.620056f, 892.613037f); | 881 path.lineTo(413.620056f, 892.613037f); |
| 886 path.quadTo(430.419983f, 900.629761f, 447.96701f, 894.43811f); | 882 path.quadTo(430.419983f, 900.629761f, 447.96701f, 894.43811f); |
| 887 path.quadTo(448.00708f, 894.42395f, 448.014038f, 894.421509f); | 883 path.quadTo(448.00708f, 894.42395f, 448.014038f, 894.421509f); |
| 888 path.quadTo(448.043976f, 894.410889f, 448.061066f, 894.404846f); | 884 path.quadTo(448.043976f, 894.410889f, 448.061066f, 894.404846f); |
| 889 path.quadTo(465.596313f, 888.179932f, 473.613037f, 871.379944f); | 885 path.quadTo(465.596313f, 888.179932f, 473.613037f, 871.379944f); |
| 890 path.quadTo(477.351227f, 863.546143f, 478, 855.549866f); | 886 path.quadTo(477.351227f, 863.546143f, 478, 855.549866f); |
| 891 path.lineTo(478, 848.804321f); | 887 path.lineTo(478, 848.804321f); |
| 892 path.quadTo(477.528076f, 842.93811f, 475.421448f, 836.985962f); | 888 path.quadTo(477.528076f, 842.93811f, 475.421448f, 836.985962f); |
| 893 path.close(); | 889 path.close(); |
| 894 SkPath pathB; | 890 SkPath pathB; |
| 895 pathB.setFillType(SkPath::kWinding_FillType); | 891 pathB.setFillType(SkPath::kWinding_FillType); |
| 896 pathB.moveTo(405.592621f, 909.435547f); | 892 pathB.moveTo(405.592621f, 909.435547f); |
| 897 pathB.lineTo(390.578583f, 867.014099f); | 893 pathB.lineTo(390.578583f, 867.014099f); |
| 898 pathB.lineTo(433, 852.000061f); | 894 pathB.lineTo(433, 852.000061f); |
| 899 pathB.lineTo(490.435486f, 879.40741f); | 895 pathB.lineTo(490.435486f, 879.40741f); |
| 900 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 896 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 901 } | 897 } |
| 902 | 898 |
| 903 #if TRY_BROKEN_TESTS | |
| 904 /* this cubic/quad pair | 899 /* this cubic/quad pair |
| 905 c = 430,280 430,278.895416 473.876068,278 528,278 | 900 c = 430,280 430,278.895416 473.876068,278 528,278 |
| 906 q = 430,280 430.009796,277.101196 458.703552,275.050262 | 901 q = 430,280 430.009796,277.101196 458.703552,275.050262 |
| 907 only intersect at the shared point (430,280) | 902 only intersect at the shared point (430,280) |
| 908 they sort backwards because the tangent from pt[0] to control pt[1] | 903 they sort backwards because the tangent from pt[0] to control pt[1] |
| 909 c' = (0.00000000000000000, -1.1045837402343750) | 904 c' = (0.00000000000000000, -1.1045837402343750) |
| 910 q' = (0.0097961425781250000, -2.8988037109375000) | 905 q' = (0.0097961425781250000, -2.8988037109375000) |
| 911 suggests that the quad is counterclockwise of the cubic, when the reverse is tr
ue | 906 suggests that the quad is counterclockwise of the cubic, when the reverse is tr
ue |
| 912 the angle code is fooled because the control pt[1] of both the quad and cubic | 907 the angle code is fooled because the control pt[1] of both the quad and cubic |
| 913 is far away from cubic cntl [2] and quad pt [2]. | 908 is far away from cubic cntl [2] and quad pt [2]. |
| 914 Maybe in angle setup, this instability can be detected to suppress sorting on t
he initial tangent | 909 Maybe in angle setup, this instability can be detected to suppress sorting on t
he initial tangent |
| 915 Or the error term can be passed to NearRay that is magnified by the distance fr
om the next ctrl? | 910 Or the error term can be passed to NearRay that is magnified by the distance fr
om the next ctrl? |
| 916 */ | 911 */ |
| 917 static void skpnaoxrane_ru23(skiatest::Reporter* reporter) { | 912 static void skpnaoxrane_ru23(skiatest::Reporter* reporter, const char* filename)
{ |
| 918 SkPath path; | 913 SkPath path; |
| 919 path.setFillType(SkPath::kEvenOdd_FillType); | 914 path.setFillType(SkPath::kEvenOdd_FillType); |
| 920 path.moveTo(458.703552f, 275.050262f); | 915 path.moveTo(458.703552f, 275.050262f); |
| 921 path.quadTo(487.41687f, 273.000702f, 528, 273); | 916 path.quadTo(487.41687f, 273.000702f, 528, 273); |
| 922 path.lineTo(529, 273); | 917 path.lineTo(529, 273); |
| 923 path.quadTo(530.242371f, 273.000305f, 531.121338f, 273.878693f); | 918 path.quadTo(530.242371f, 273.000305f, 531.121338f, 273.878693f); |
| 924 path.quadTo(531.999695f, 274.75766f, 532, 276); | 919 path.quadTo(531.999695f, 274.75766f, 532, 276); |
| 925 path.lineTo(532, 378); | 920 path.lineTo(532, 378); |
| 926 path.quadTo(531.990173f, 380.898804f, 503.296448f, 382.949738f); | 921 path.quadTo(531.990173f, 380.898804f, 503.296448f, 382.949738f); |
| 927 path.quadTo(474.58313f, 384.999298f, 434, 385); | 922 path.quadTo(474.58313f, 384.999298f, 434, 385); |
| 928 path.lineTo(433, 385); | 923 path.lineTo(433, 385); |
| 929 path.quadTo(431.75766f, 384.999695f, 430.878693f, 384.121307f); | 924 path.quadTo(431.75766f, 384.999695f, 430.878693f, 384.121307f); |
| 930 path.quadTo(430.000305f, 383.24234f, 430, 382); | 925 path.quadTo(430.000305f, 383.24234f, 430, 382); |
| 931 path.lineTo(430, 280); | 926 path.lineTo(430, 280); |
| 932 path.quadTo(430.009796f, 277.101196f, 458.703552f, 275.050262f); | 927 path.quadTo(430.009796f, 277.101196f, 458.703552f, 275.050262f); |
| 933 path.close(); | 928 path.close(); |
| 934 SkPath pathB; | 929 SkPath pathB; |
| 935 pathB.setFillType(SkPath::kInverseWinding_FillType); | 930 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 936 pathB.moveTo(528, 278); | 931 pathB.moveTo(528, 278); |
| 937 pathB.lineTo(529, 278); | 932 pathB.lineTo(529, 278); |
| 938 pathB.cubicTo(530.65686f, 278, 532, 278, 532, 278); | 933 pathB.cubicTo(530.65686f, 278, 532, 278, 532, 278); |
| 939 pathB.lineTo(532, 378); | 934 pathB.lineTo(532, 378); |
| 940 pathB.cubicTo(532, 379.104584f, 488.123932f, 380, 434, 380); | 935 pathB.cubicTo(532, 379.104584f, 488.123932f, 380, 434, 380); |
| 941 pathB.lineTo(433, 380); | 936 pathB.lineTo(433, 380); |
| 942 pathB.cubicTo(431.34314f, 380, 430, 380, 430, 380); | 937 pathB.cubicTo(431.34314f, 380, 430, 380, 430, 380); |
| 943 pathB.lineTo(430, 280); | 938 pathB.lineTo(430, 280); |
| 944 pathB.cubicTo(430, 278.895416f, 473.876068f, 278, 528, 278); | 939 pathB.cubicTo(430, 278.895416f, 473.876068f, 278, 528, 278); |
| 945 pathB.close(); | 940 pathB.close(); |
| 946 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 941 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 947 } | 942 } |
| 948 | 943 |
| 949 /* didn't investigate thoroughly, but looks to be missorting quad and cubic | 944 /* didn't investigate thoroughly, but looks to be missorting quad and cubic |
| 950 {{468.507751,560.724426}, {467.275146,552.856262}, {465.84668,547.288391}} | 945 {{468.507751,560.724426}, {467.275146,552.856262}, {465.84668,547.288391}} |
| 951 {{463.779907,542.671143}, {464.829529,542.672974}, {466.946289,550.755676},
{468.507751,560.724426}} | 946 {{463.779907,542.671143}, {464.829529,542.672974}, {466.946289,550.755676},
{468.507751,560.724426}} |
| 952 decision maker is case 14 leftLessThanRight | 947 decision maker is case 14 leftLessThanRight |
| 953 */ | 948 */ |
| 954 static void skptcmevents_org23(skiatest::Reporter* reporter) { | 949 static void skptcmevents_org23(skiatest::Reporter* reporter, const char* filenam
e) { |
| 955 SkPath path; | 950 SkPath path; |
| 956 path.setFillType(SkPath::kEvenOdd_FillType); | 951 path.setFillType(SkPath::kEvenOdd_FillType); |
| 957 path.moveTo(465.503998f, 546); | 952 path.moveTo(465.503998f, 546); |
| 958 path.lineTo(347, 546); | 953 path.lineTo(347, 546); |
| 959 path.lineTo(347, 632); | 954 path.lineTo(347, 632); |
| 960 path.lineTo(469.104248f, 632); | 955 path.lineTo(469.104248f, 632); |
| 961 path.quadTo(470.79007f, 627.638672f, 471.833496f, 621.036255f); | 956 path.quadTo(470.79007f, 627.638672f, 471.833496f, 621.036255f); |
| 962 path.quadTo(474.902588f, 601.562866f, 470.591064f, 574.024353f); | 957 path.quadTo(474.902588f, 601.562866f, 470.591064f, 574.024353f); |
| 963 path.lineTo(468.507751f, 560.724426f); | 958 path.lineTo(468.507751f, 560.724426f); |
| 964 path.quadTo(467.275146f, 552.856262f, 465.84668f, 547.288391f); | 959 path.quadTo(467.275146f, 552.856262f, 465.84668f, 547.288391f); |
| 965 path.quadTo(465.670349f, 546.601501f, 465.503998f, 546); | 960 path.quadTo(465.670349f, 546.601501f, 465.503998f, 546); |
| 966 path.close(); | 961 path.close(); |
| 967 SkPath pathB; | 962 SkPath pathB; |
| 968 pathB.setFillType(SkPath::kInverseWinding_FillType); | 963 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 969 pathB.moveTo(363.052246f, 542.495361f); | 964 pathB.moveTo(363.052246f, 542.495361f); |
| 970 pathB.lineTo(463.779907f, 542.671143f); | 965 pathB.lineTo(463.779907f, 542.671143f); |
| 971 pathB.cubicTo(464.829529f, 542.672974f, 466.946289f, 550.755676f, 468.507751
f, 560.724426f); | 966 pathB.cubicTo(464.829529f, 542.672974f, 466.946289f, 550.755676f, 468.507751
f, 560.724426f); |
| 972 pathB.lineTo(470.591064f, 574.024353f); | 967 pathB.lineTo(470.591064f, 574.024353f); |
| 973 pathB.cubicTo(476.26178f, 610.226624f, 471.498932f, 639.557922f, 459.953003f
, 639.537781f); | 968 pathB.cubicTo(476.26178f, 610.226624f, 471.498932f, 639.557922f, 459.953003f
, 639.537781f); |
| 974 pathB.lineTo(368.727936f, 639.378601f); | 969 pathB.lineTo(368.727936f, 639.378601f); |
| 975 pathB.cubicTo(351.933868f, 639.349304f, 337.053741f, 631.244324f, 335.492249
f, 621.275574f); | 970 pathB.cubicTo(351.933868f, 639.349304f, 337.053741f, 631.244324f, 335.492249
f, 621.275574f); |
| 976 pathB.lineTo(325.968597f, 560.475708f); | 971 pathB.lineTo(325.968597f, 560.475708f); |
| 977 pathB.cubicTo(324.407104f, 550.506958f, 341.01001f, 542.456909f, 363.052246f
, 542.495361f); | 972 pathB.cubicTo(324.407104f, 550.506958f, 341.01001f, 542.456909f, 363.052246f
, 542.495361f); |
| 978 pathB.close(); | 973 pathB.close(); |
| 979 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 974 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 980 } | 975 } |
| 981 | 976 |
| 982 static void skpredbullskatearcade_es16(skiatest::Reporter* reporter) { | 977 static void skpredbullskatearcade_es16(skiatest::Reporter* reporter, const char*
filename) { |
| 983 SkPath path; | 978 SkPath path; |
| 984 path.setFillType(SkPath::kEvenOdd_FillType); | 979 path.setFillType(SkPath::kEvenOdd_FillType); |
| 985 path.moveTo(936.765625f, 458.965302f); | 980 path.moveTo(936.765625f, 458.965302f); |
| 986 path.cubicTo(937.028442f, 453.863251f, 933.145813f, 449.864502f, 928.093445f
, 450.033905f); | 981 path.cubicTo(937.028442f, 453.863251f, 933.145813f, 449.864502f, 928.093445f
, 450.033905f); |
| 987 path.lineTo(661.882263f, 458.958862f); | 982 path.lineTo(661.882263f, 458.958862f); |
| 988 path.lineTo(661.875366f, 458.959106f); | 983 path.lineTo(661.875366f, 458.959106f); |
| 989 path.cubicTo(656.828369f, 459.13205f, 652.525085f, 463.399719f, 652.258545f,
468.496124f); | 984 path.cubicTo(656.828369f, 459.13205f, 652.525085f, 463.399719f, 652.258545f,
468.496124f); |
| 990 path.lineTo(652.258179f, 468.503662f); | 985 path.lineTo(652.258179f, 468.503662f); |
| 991 path.lineTo(649.021729f, 531.322754f); | 986 path.lineTo(649.021729f, 531.322754f); |
| 992 path.cubicTo(648.75885f, 536.424805f, 652.641479f, 540.423523f, 657.693848f,
540.25415f); | 987 path.cubicTo(648.75885f, 536.424805f, 652.641479f, 540.423523f, 657.693848f,
540.25415f); |
| 993 path.lineTo(923.905029f, 531.329163f); | 988 path.lineTo(923.905029f, 531.329163f); |
| 994 path.cubicTo(928.955017f, 531.159851f, 933.262268f, 526.890442f, 933.528809f
, 521.791565f); | 989 path.cubicTo(928.955017f, 531.159851f, 933.262268f, 526.890442f, 933.528809f
, 521.791565f); |
| 995 path.lineTo(933.529175f, 521.784363f); | 990 path.lineTo(933.529175f, 521.784363f); |
| 996 path.lineTo(936.765625f, 458.965302f); | 991 path.lineTo(936.765625f, 458.965302f); |
| 997 path.close(); | 992 path.close(); |
| 998 SkPath pathB; | 993 SkPath pathB; |
| 999 pathB.setFillType(SkPath::kInverseWinding_FillType); | 994 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 1000 pathB.moveTo(661.882263f, 458.958862f); | 995 pathB.moveTo(661.882263f, 458.958862f); |
| 1001 pathB.lineTo(928.093445f, 450.033905f); | 996 pathB.lineTo(928.093445f, 450.033905f); |
| 1002 pathB.cubicTo(929.103882f, 450, 929.709961f, 454.108612f, 929.447144f, 459.2
10663f); | 997 pathB.cubicTo(929.103882f, 450, 929.709961f, 454.108612f, 929.447144f, 459.2
10663f); |
| 1003 pathB.lineTo(926.210693f, 522.029724f); | 998 pathB.lineTo(926.210693f, 522.029724f); |
| 1004 pathB.cubicTo(926.079224f, 524.58075f, 925.153442f, 526.676208f, 924.143066f
, 526.710083f); | 999 pathB.cubicTo(926.079224f, 524.58075f, 925.153442f, 526.676208f, 924.143066f
, 526.710083f); |
| 1005 pathB.lineTo(657.931885f, 535.635071f); | 1000 pathB.lineTo(657.931885f, 535.635071f); |
| 1006 pathB.cubicTo(652.879456f, 535.804443f, 648.890259f, 533.873779f, 649.021729
f, 531.322754f); | 1001 pathB.cubicTo(652.879456f, 535.804443f, 648.890259f, 533.873779f, 649.021729
f, 531.322754f); |
| 1007 pathB.lineTo(652.258179f, 468.503662f); | 1002 pathB.lineTo(652.258179f, 468.503662f); |
| 1008 pathB.cubicTo(652.520996f, 463.401611f, 656.829834f, 459.128235f, 661.882263
f, 458.958862f); | 1003 pathB.cubicTo(652.520996f, 463.401611f, 656.829834f, 459.128235f, 661.882263
f, 458.958862f); |
| 1009 pathB.close(); | 1004 pathB.close(); |
| 1010 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1005 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1011 } | 1006 } |
| 1012 | 1007 |
| 1013 static void skpfinanzasdigital_com9(skiatest::Reporter* reporter) { | 1008 static void skpfinanzasdigital_com9(skiatest::Reporter* reporter, const char* fi
lename) { |
| 1014 SkPath path; | 1009 SkPath path; |
| 1015 path.setFillType(SkPath::kEvenOdd_FillType); | 1010 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1016 path.moveTo(156, 126); | 1011 path.moveTo(156, 126); |
| 1017 path.quadTo(154.343552f, 126.000397f, 153.17157f, 127.17157f); | 1012 path.quadTo(154.343552f, 126.000397f, 153.17157f, 127.17157f); |
| 1018 path.quadTo(152.000397f, 128.343552f, 152, 130); | 1013 path.quadTo(152.000397f, 128.343552f, 152, 130); |
| 1019 path.lineTo(152, 174); | 1014 path.lineTo(152, 174); |
| 1020 path.lineTo(1114, 174); | 1015 path.lineTo(1114, 174); |
| 1021 path.lineTo(1114, 130); | 1016 path.lineTo(1114, 130); |
| 1022 path.quadTo(1113.99963f, 128.343552f, 1112.82837f, 127.17157f); | 1017 path.quadTo(1113.99963f, 128.343552f, 1112.82837f, 127.17157f); |
| 1023 path.quadTo(1111.65649f, 126.000397f, 1110, 126); | 1018 path.quadTo(1111.65649f, 126.000397f, 1110, 126); |
| 1024 path.lineTo(156, 126); | 1019 path.lineTo(156, 126); |
| 1025 path.close(); | 1020 path.close(); |
| 1026 SkPath pathB; | 1021 SkPath pathB; |
| 1027 pathB.setFillType(SkPath::kInverseWinding_FillType); | 1022 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 1028 pathB.moveTo(156, 126); | 1023 pathB.moveTo(156, 126); |
| 1029 pathB.lineTo(1110, 126); | 1024 pathB.lineTo(1110, 126); |
| 1030 pathB.cubicTo(1111.65686f, 126, 1113, 127.790863f, 1113, 130); | 1025 pathB.cubicTo(1111.65686f, 126, 1113, 127.790863f, 1113, 130); |
| 1031 pathB.lineTo(1113, 174); | 1026 pathB.lineTo(1113, 174); |
| 1032 pathB.lineTo(153, 174); | 1027 pathB.lineTo(153, 174); |
| 1033 pathB.lineTo(153, 130); | 1028 pathB.lineTo(153, 130); |
| 1034 pathB.cubicTo(153, 127.790863f, 154.34314f, 126, 156, 126); | 1029 pathB.cubicTo(153, 127.790863f, 154.34314f, 126, 156, 126); |
| 1035 pathB.close(); | 1030 pathB.close(); |
| 1036 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1031 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1037 } | 1032 } |
| 1038 #endif | |
| 1039 | 1033 |
| 1040 static void skppartainasdemo250_org56(skiatest::Reporter* reporter) { | 1034 static void skppartainasdemo250_org56(skiatest::Reporter* reporter, const char*
filename) { |
| 1041 SkPath path; | 1035 SkPath path; |
| 1042 path.setFillType(SkPath::kEvenOdd_FillType); | 1036 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1043 path.moveTo(182.000015f, 645); | 1037 path.moveTo(182.000015f, 645); |
| 1044 path.lineTo(182, 640); | 1038 path.lineTo(182, 640); |
| 1045 path.cubicTo(174.322327f, 640, 166.644669f, 637.071045f, 160.786804f, 631.21
3196f); | 1039 path.cubicTo(174.322327f, 640, 166.644669f, 637.071045f, 160.786804f, 631.21
3196f); |
| 1046 path.cubicTo(149.071075f, 619.497437f, 149.071075f, 600.502563f, 160.786804f
, 588.786804f); | 1040 path.cubicTo(149.071075f, 619.497437f, 149.071075f, 600.502563f, 160.786804f
, 588.786804f); |
| 1047 path.lineTo(157.251266f, 585.251221f); | 1041 path.lineTo(157.251266f, 585.251221f); |
| 1048 path.quadTo(147, 595.502502f, 147.000015f, 610); | 1042 path.quadTo(147, 595.502502f, 147.000015f, 610); |
| 1049 path.quadTo(147, 624.482605f, 157.230255f, 634.727722f); | 1043 path.quadTo(147, 624.482605f, 157.230255f, 634.727722f); |
| 1050 path.quadTo(157.251251f, 634.748779f, 157.251282f, 634.748779f); | 1044 path.quadTo(157.251251f, 634.748779f, 157.251282f, 634.748779f); |
| 1051 path.quadTo(157.282852f, 634.780334f, 157.272263f, 634.769775f); | 1045 path.quadTo(157.282852f, 634.780334f, 157.272263f, 634.769775f); |
| 1052 path.quadTo(167.517334f, 645, 182.000015f, 645); | 1046 path.quadTo(167.517334f, 645, 182.000015f, 645); |
| 1053 path.close(); | 1047 path.close(); |
| 1054 SkPath pathB; | 1048 SkPath pathB; |
| 1055 pathB.setFillType(SkPath::kWinding_FillType); | 1049 pathB.setFillType(SkPath::kWinding_FillType); |
| 1056 pathB.moveTo(182, 659.497498f); | 1050 pathB.moveTo(182, 659.497498f); |
| 1057 pathB.lineTo(206.748749f, 634.748718f); | 1051 pathB.lineTo(206.748749f, 634.748718f); |
| 1058 pathB.lineTo(182.000015f, 610); | 1052 pathB.lineTo(182.000015f, 610); |
| 1059 pathB.lineTo(132.502533f, 610); | 1053 pathB.lineTo(132.502533f, 610); |
| 1060 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1054 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1061 } | 1055 } |
| 1062 | 1056 |
| 1063 static void skpmlk_com326(skiatest::Reporter* reporter) { | 1057 static void skpmlk_com326(skiatest::Reporter* reporter, const char* filename) { |
| 1064 SkPath path; | 1058 SkPath path; |
| 1065 path.setFillType(SkPath::kEvenOdd_FillType); | 1059 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1066 path.moveTo(154, 670); | 1060 path.moveTo(154, 670); |
| 1067 path.cubicTo(151.238571f, 670, 149, 672.238586f, 149, 675); | 1061 path.cubicTo(151.238571f, 670, 149, 672.238586f, 149, 675); |
| 1068 path.lineTo(149, 710.001465f); | 1062 path.lineTo(149, 710.001465f); |
| 1069 path.cubicTo(149.000809f, 712.209961f, 150.791367f, 714, 153, 714); | 1063 path.cubicTo(149.000809f, 712.209961f, 150.791367f, 714, 153, 714); |
| 1070 path.lineTo(189, 714); | 1064 path.lineTo(189, 714); |
| 1071 path.cubicTo(191.209137f, 714, 193, 712.209167f, 193, 710); | 1065 path.cubicTo(191.209137f, 714, 193, 712.209167f, 193, 710); |
| 1072 path.lineTo(193, 675); | 1066 path.lineTo(193, 675); |
| 1073 path.cubicTo(193, 672.238586f, 190.761429f, 670, 188, 670); | 1067 path.cubicTo(193, 672.238586f, 190.761429f, 670, 188, 670); |
| 1074 path.lineTo(154, 670); | 1068 path.lineTo(154, 670); |
| 1075 path.close(); | 1069 path.close(); |
| 1076 SkPath pathB; | 1070 SkPath pathB; |
| 1077 pathB.setFillType(SkPath::kInverseWinding_FillType); | 1071 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 1078 pathB.moveTo(154, 671); | 1072 pathB.moveTo(154, 671); |
| 1079 pathB.lineTo(188, 671); | 1073 pathB.lineTo(188, 671); |
| 1080 pathB.cubicTo(190.761429f, 671, 193, 672.790833f, 193, 675); | 1074 pathB.cubicTo(190.761429f, 671, 193, 672.790833f, 193, 675); |
| 1081 pathB.lineTo(193, 710); | 1075 pathB.lineTo(193, 710); |
| 1082 pathB.cubicTo(193, 712.761414f, 190.761429f, 715, 188, 715); | 1076 pathB.cubicTo(193, 712.761414f, 190.761429f, 715, 188, 715); |
| 1083 pathB.lineTo(154, 715); | 1077 pathB.lineTo(154, 715); |
| 1084 pathB.cubicTo(151.238571f, 715, 149, 712.761414f, 149, 710); | 1078 pathB.cubicTo(151.238571f, 715, 149, 712.761414f, 149, 710); |
| 1085 pathB.lineTo(149, 675); | 1079 pathB.lineTo(149, 675); |
| 1086 pathB.cubicTo(149, 672.790833f, 151.238571f, 671, 154, 671); | 1080 pathB.cubicTo(149, 672.790833f, 151.238571f, 671, 154, 671); |
| 1087 pathB.close(); | 1081 pathB.close(); |
| 1088 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1082 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1089 } | 1083 } |
| 1090 | 1084 |
| 1091 static void skpcyclist_friends_gr52(skiatest::Reporter* reporter) { | 1085 static void skpcyclist_friends_gr52(skiatest::Reporter* reporter, const char* fi
lename) { |
| 1092 SkPath path; | 1086 SkPath path; |
| 1093 path.setFillType(SkPath::kEvenOdd_FillType); | 1087 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1094 path.moveTo(50, 182); | 1088 path.moveTo(50, 182); |
| 1095 path.lineTo(1215, 182); | 1089 path.lineTo(1215, 182); |
| 1096 path.lineTo(1215, 202); | 1090 path.lineTo(1215, 202); |
| 1097 path.quadTo(1214.99951f, 204.070572f, 1213.53552f, 205.535538f); | 1091 path.quadTo(1214.99951f, 204.070572f, 1213.53552f, 205.535538f); |
| 1098 path.quadTo(1212.07056f, 206.999496f, 1210, 207); | 1092 path.quadTo(1212.07056f, 206.999496f, 1210, 207); |
| 1099 path.lineTo(55, 207); | 1093 path.lineTo(55, 207); |
| 1100 path.quadTo(52.9294319f, 206.999496f, 51.4644661f, 205.535538f); | 1094 path.quadTo(52.9294319f, 206.999496f, 51.4644661f, 205.535538f); |
| 1101 path.quadTo(50.0004997f, 204.070572f, 50, 202); | 1095 path.quadTo(50.0004997f, 204.070572f, 50, 202); |
| 1102 path.lineTo(50, 182); | 1096 path.lineTo(50, 182); |
| 1103 path.close(); | 1097 path.close(); |
| 1104 SkPath pathB; | 1098 SkPath pathB; |
| 1105 pathB.setFillType(SkPath::kInverseWinding_FillType); | 1099 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 1106 pathB.moveTo(50, 183); | 1100 pathB.moveTo(50, 183); |
| 1107 pathB.lineTo(1215, 183); | 1101 pathB.lineTo(1215, 183); |
| 1108 pathB.lineTo(1215, 202); | 1102 pathB.lineTo(1215, 202); |
| 1109 pathB.cubicTo(1215, 204.761429f, 1212.76147f, 207, 1210, 207); | 1103 pathB.cubicTo(1215, 204.761429f, 1212.76147f, 207, 1210, 207); |
| 1110 pathB.lineTo(55, 207); | 1104 pathB.lineTo(55, 207); |
| 1111 pathB.cubicTo(52.238575f, 207, 50, 204.761429f, 50, 202); | 1105 pathB.cubicTo(52.238575f, 207, 50, 204.761429f, 50, 202); |
| 1112 pathB.lineTo(50, 183); | 1106 pathB.lineTo(50, 183); |
| 1113 pathB.close(); | 1107 pathB.close(); |
| 1114 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1108 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1115 } | 1109 } |
| 1116 | 1110 |
| 1117 /* cubic ends just above opp line */ | 1111 /* cubic ends just above opp line */ |
| 1118 static void skpwww_fj_p_com_22(skiatest::Reporter* reporter) { | 1112 static void skpwww_fj_p_com_22(skiatest::Reporter* reporter, const char* filenam
e) { |
| 1119 SkPath path; | 1113 SkPath path; |
| 1120 path.setFillType(SkPath::kEvenOdd_FillType); | 1114 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1121 path.moveTo(172, 201); | 1115 path.moveTo(172, 201); |
| 1122 path.lineTo(172, 202); | 1116 path.lineTo(172, 202); |
| 1123 path.lineTo(220, 202); | 1117 path.lineTo(220, 202); |
| 1124 path.cubicTo(221.65686f, 202, 223, 200.65686f, 223, 199); | 1118 path.cubicTo(221.65686f, 202, 223, 200.65686f, 223, 199); |
| 1125 path.cubicTo(223, 200.104568f, 221.65686f, 201, 220, 201); | 1119 path.cubicTo(223, 200.104568f, 221.65686f, 201, 220, 201); |
| 1126 path.lineTo(172, 201); | 1120 path.lineTo(172, 201); |
| 1127 path.close(); | 1121 path.close(); |
| 1128 SkPath pathB; | 1122 SkPath pathB; |
| 1129 pathB.setFillType(SkPath::kWinding_FillType); | 1123 pathB.setFillType(SkPath::kWinding_FillType); |
| 1130 pathB.moveTo(161, 202); | 1124 pathB.moveTo(161, 202); |
| 1131 pathB.lineTo(161, 199); | 1125 pathB.lineTo(161, 199); |
| 1132 pathB.lineTo(223, 199.000015f); | 1126 pathB.lineTo(223, 199.000015f); |
| 1133 pathB.lineTo(223, 202); | 1127 pathB.lineTo(223, 202); |
| 1134 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1128 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1135 } | 1129 } |
| 1136 | 1130 |
| 1137 #define TRY_SEPT_BROKEN_TESTS 0 | |
| 1138 #if TRY_SEPT_BROKEN_TESTS | |
| 1139 // pair of lines are not quite coincident, so sorting line/cubic fails (i think) | 1131 // pair of lines are not quite coincident, so sorting line/cubic fails (i think) |
| 1140 static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter) { | 1132 static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter, const char*
filename) { |
| 1141 SkPath path; | 1133 SkPath path; |
| 1142 path.setFillType(SkPath::kEvenOdd_FillType); | 1134 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1143 path.moveTo(806, 57); | 1135 path.moveTo(806, 57); |
| 1144 path.cubicTo(806, 55.3431473f, 807.34314f, 54, 809, 54); | 1136 path.cubicTo(806, 55.3431473f, 807.34314f, 54, 809, 54); |
| 1145 path.lineTo(930, 54); | 1137 path.lineTo(930, 54); |
| 1146 path.cubicTo(931.65686f, 54, 933, 55.3431473f, 933, 57); | 1138 path.cubicTo(931.65686f, 54, 933, 55.3431473f, 933, 57); |
| 1147 path.lineTo(933, 91); | 1139 path.lineTo(933, 91); |
| 1148 path.cubicTo(933, 92.6568527f, 931.65686f, 94, 930, 94); | 1140 path.cubicTo(933, 92.6568527f, 931.65686f, 94, 930, 94); |
| 1149 path.lineTo(809, 94); | 1141 path.lineTo(809, 94); |
| 1150 path.cubicTo(807.34314f, 94, 806, 92.6568527f, 806, 91); | 1142 path.cubicTo(807.34314f, 94, 806, 92.6568527f, 806, 91); |
| 1151 path.lineTo(806, 57); | 1143 path.lineTo(806, 57); |
| 1152 path.close(); | 1144 path.close(); |
| 1153 path.moveTo(808, 58); | 1145 path.moveTo(808, 58); |
| 1154 path.cubicTo(808, 56.8954315f, 808.895447f, 56, 810, 56); | 1146 path.cubicTo(808, 56.8954315f, 808.895447f, 56, 810, 56); |
| 1155 path.lineTo(929, 56); | 1147 path.lineTo(929, 56); |
| 1156 path.cubicTo(930.104553f, 56, 931, 56.8954315f, 931, 58); | 1148 path.cubicTo(930.104553f, 56, 931, 56.8954315f, 931, 58); |
| 1157 path.lineTo(931, 90); | 1149 path.lineTo(931, 90); |
| 1158 path.cubicTo(931, 91.1045685f, 930.104553f, 92, 929, 92); | 1150 path.cubicTo(931, 91.1045685f, 930.104553f, 92, 929, 92); |
| 1159 path.lineTo(810, 92); | 1151 path.lineTo(810, 92); |
| 1160 path.cubicTo(808.895447f, 92, 808, 91.1045685f, 808, 90); | 1152 path.cubicTo(808.895447f, 92, 808, 91.1045685f, 808, 90); |
| 1161 path.lineTo(808, 58); | 1153 path.lineTo(808, 58); |
| 1162 path.close(); | 1154 path.close(); |
| 1163 SkPath pathB; | 1155 SkPath pathB; |
| 1164 pathB.setFillType(SkPath::kWinding_FillType); | 1156 pathB.setFillType(SkPath::kWinding_FillType); |
| 1165 pathB.moveTo(806, 54); | 1157 pathB.moveTo(806, 54); |
| 1166 pathB.lineTo(808, 56); | 1158 pathB.lineTo(808, 56); |
| 1167 pathB.lineTo(935.02002f, 56.0200005f); | 1159 pathB.lineTo(935.02002f, 56.0200005f); |
| 1168 pathB.lineTo(933, 54); | 1160 pathB.lineTo(933, 54); |
| 1169 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1161 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1170 } | 1162 } |
| 1171 | 1163 |
| 1172 // pair of curves have nearly the same initial tangent but are sorting by | 1164 // pair of curves have nearly the same initial tangent but are sorting by |
| 1173 // that alone sorts them incorrectly. Need to detect that tangents are nearly | 1165 // that alone sorts them incorrectly. Need to detect that tangents are nearly |
| 1174 // identical and not reliable by themselves | 1166 // identical and not reliable by themselves |
| 1175 static void skppptv_com_62(skiatest::Reporter* reporter) { | 1167 static void skppptv_com_62(skiatest::Reporter* reporter, const char* filename) { |
| 1176 SkPath path; | 1168 SkPath path; |
| 1177 path.setFillType(SkPath::kEvenOdd_FillType); | 1169 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1178 path.moveTo(173, 5342); | 1170 path.moveTo(173, 5342); |
| 1179 path.quadTo(171.343536f, 5342.00049f, 170.17157f, 5343.17139f); | 1171 path.quadTo(171.343536f, 5342.00049f, 170.17157f, 5343.17139f); |
| 1180 path.quadTo(169.000397f, 5344.34375f, 169, 5346); | 1172 path.quadTo(169.000397f, 5344.34375f, 169, 5346); |
| 1181 path.lineTo(169, 5372); | 1173 path.lineTo(169, 5372); |
| 1182 path.lineTo(234, 5372); | 1174 path.lineTo(234, 5372); |
| 1183 path.lineTo(234, 5346); | 1175 path.lineTo(234, 5346); |
| 1184 path.quadTo(233.999603f, 5344.34375f, 232.82843f, 5343.17139f); | 1176 path.quadTo(233.999603f, 5344.34375f, 232.82843f, 5343.17139f); |
| 1185 path.quadTo(231.656464f, 5342.00049f, 230, 5342); | 1177 path.quadTo(231.656464f, 5342.00049f, 230, 5342); |
| 1186 path.lineTo(173, 5342); | 1178 path.lineTo(173, 5342); |
| 1187 path.close(); | 1179 path.close(); |
| 1188 SkPath pathB; | 1180 SkPath pathB; |
| 1189 pathB.setFillType(SkPath::kInverseWinding_FillType); | 1181 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 1190 pathB.moveTo(173, 5342); | 1182 pathB.moveTo(173, 5342); |
| 1191 pathB.lineTo(230, 5342); | 1183 pathB.lineTo(230, 5342); |
| 1192 pathB.cubicTo(231.65686f, 5342, 233, 5343.79102f, 233, 5346); | 1184 pathB.cubicTo(231.65686f, 5342, 233, 5343.79102f, 233, 5346); |
| 1193 pathB.lineTo(233, 5372); | 1185 pathB.lineTo(233, 5372); |
| 1194 pathB.lineTo(169, 5372); | 1186 pathB.lineTo(169, 5372); |
| 1195 pathB.lineTo(169, 5346); | 1187 pathB.lineTo(169, 5346); |
| 1196 pathB.cubicTo(169, 5343.79102f, 170.790863f, 5342, 173, 5342); | 1188 pathB.cubicTo(169, 5343.79102f, 170.790863f, 5342, 173, 5342); |
| 1197 pathB.close(); | 1189 pathB.close(); |
| 1198 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1190 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1199 } | 1191 } |
| 1200 | 1192 |
| 1201 // nearly identical to lavoixdunord -- to not-quite-coincident lines | 1193 // nearly identical to lavoixdunord -- to not-quite-coincident lines |
| 1202 static void skpwww_booking_com_68(skiatest::Reporter* reporter) { | 1194 static void skpwww_booking_com_68(skiatest::Reporter* reporter, const char* file
name) { |
| 1203 SkPath path; | 1195 SkPath path; |
| 1204 path.setFillType(SkPath::kEvenOdd_FillType); | 1196 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1205 path.moveTo(90, 187); | 1197 path.moveTo(90, 187); |
| 1206 path.cubicTo(90, 185.34314f, 91.3431473f, 184, 93, 184); | 1198 path.cubicTo(90, 185.34314f, 91.3431473f, 184, 93, 184); |
| 1207 path.lineTo(588, 184); | 1199 path.lineTo(588, 184); |
| 1208 path.cubicTo(589.65686f, 184, 591, 185.34314f, 591, 187); | 1200 path.cubicTo(589.65686f, 184, 591, 185.34314f, 591, 187); |
| 1209 path.lineTo(591, 218); | 1201 path.lineTo(591, 218); |
| 1210 path.cubicTo(591, 219.65686f, 589.65686f, 221, 588, 221); | 1202 path.cubicTo(591, 219.65686f, 589.65686f, 221, 588, 221); |
| 1211 path.lineTo(93, 221); | 1203 path.lineTo(93, 221); |
| 1212 path.cubicTo(91.3431473f, 221, 90, 219.65686f, 90, 218); | 1204 path.cubicTo(91.3431473f, 221, 90, 219.65686f, 90, 218); |
| 1213 path.lineTo(90, 187); | 1205 path.lineTo(90, 187); |
| 1214 path.close(); | 1206 path.close(); |
| 1215 path.moveTo(92, 188); | 1207 path.moveTo(92, 188); |
| 1216 path.cubicTo(92, 186.895432f, 92.8954315f, 186, 94, 186); | 1208 path.cubicTo(92, 186.895432f, 92.8954315f, 186, 94, 186); |
| 1217 path.lineTo(587, 186); | 1209 path.lineTo(587, 186); |
| 1218 path.cubicTo(588.104553f, 186, 589, 186.895432f, 589, 188); | 1210 path.cubicTo(588.104553f, 186, 589, 186.895432f, 589, 188); |
| 1219 path.lineTo(589, 217); | 1211 path.lineTo(589, 217); |
| 1220 path.cubicTo(589, 218.104568f, 588.104553f, 219, 587, 219); | 1212 path.cubicTo(589, 218.104568f, 588.104553f, 219, 587, 219); |
| 1221 path.lineTo(94, 219); | 1213 path.lineTo(94, 219); |
| 1222 path.cubicTo(92.8954315f, 219, 92, 218.104568f, 92, 217); | 1214 path.cubicTo(92.8954315f, 219, 92, 218.104568f, 92, 217); |
| 1223 path.lineTo(92, 188); | 1215 path.lineTo(92, 188); |
| 1224 path.close(); | 1216 path.close(); |
| 1225 SkPath pathB; | 1217 SkPath pathB; |
| 1226 pathB.setFillType(SkPath::kWinding_FillType); | 1218 pathB.setFillType(SkPath::kWinding_FillType); |
| 1227 pathB.moveTo(90, 184); | 1219 pathB.moveTo(90, 184); |
| 1228 pathB.lineTo(92, 186); | 1220 pathB.lineTo(92, 186); |
| 1229 pathB.lineTo(593.02002f, 186.020004f); | 1221 pathB.lineTo(593.02002f, 186.020004f); |
| 1230 pathB.lineTo(591, 184); | 1222 pathB.lineTo(591, 184); |
| 1231 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1223 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1232 } | 1224 } |
| 1233 | 1225 |
| 1234 // visually looks like lavoixdunord and www_booking_com | 1226 // visually looks like lavoixdunord and www_booking_com |
| 1235 static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter) { | 1227 static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter, const char*
filename) { |
| 1236 SkPath path; | 1228 SkPath path; |
| 1237 path.setFillType(SkPath::kEvenOdd_FillType); | 1229 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1238 path.moveTo(635, 1788); | 1230 path.moveTo(635, 1788); |
| 1239 path.cubicTo(635, 1786.34314f, 636.34314f, 1785, 638, 1785); | 1231 path.cubicTo(635, 1786.34314f, 636.34314f, 1785, 638, 1785); |
| 1240 path.lineTo(832, 1785); | 1232 path.lineTo(832, 1785); |
| 1241 path.cubicTo(833.65686f, 1785, 835, 1786.34314f, 835, 1788); | 1233 path.cubicTo(833.65686f, 1785, 835, 1786.34314f, 835, 1788); |
| 1242 path.lineTo(835, 1812); | 1234 path.lineTo(835, 1812); |
| 1243 path.cubicTo(835, 1813.65686f, 833.65686f, 1815, 832, 1815); | 1235 path.cubicTo(835, 1813.65686f, 833.65686f, 1815, 832, 1815); |
| 1244 path.lineTo(638, 1815); | 1236 path.lineTo(638, 1815); |
| 1245 path.cubicTo(636.34314f, 1815, 635, 1813.65686f, 635, 1812); | 1237 path.cubicTo(636.34314f, 1815, 635, 1813.65686f, 635, 1812); |
| 1246 path.lineTo(635, 1788); | 1238 path.lineTo(635, 1788); |
| 1247 path.close(); | 1239 path.close(); |
| 1248 path.moveTo(637, 1789); | 1240 path.moveTo(637, 1789); |
| 1249 path.cubicTo(637, 1787.89539f, 637.895447f, 1787, 639, 1787); | 1241 path.cubicTo(637, 1787.89539f, 637.895447f, 1787, 639, 1787); |
| 1250 path.lineTo(831, 1787); | 1242 path.lineTo(831, 1787); |
| 1251 path.cubicTo(832.104553f, 1787, 833, 1787.89539f, 833, 1789); | 1243 path.cubicTo(832.104553f, 1787, 833, 1787.89539f, 833, 1789); |
| 1252 path.lineTo(833, 1811); | 1244 path.lineTo(833, 1811); |
| 1253 path.cubicTo(833, 1812.10461f, 832.104553f, 1813, 831, 1813); | 1245 path.cubicTo(833, 1812.10461f, 832.104553f, 1813, 831, 1813); |
| 1254 path.lineTo(639, 1813); | 1246 path.lineTo(639, 1813); |
| 1255 path.cubicTo(637.895447f, 1813, 637, 1812.10461f, 637, 1811); | 1247 path.cubicTo(637.895447f, 1813, 637, 1812.10461f, 637, 1811); |
| 1256 path.lineTo(637, 1789); | 1248 path.lineTo(637, 1789); |
| 1257 path.close(); | 1249 path.close(); |
| 1258 SkPath pathB; | 1250 SkPath pathB; |
| 1259 pathB.setFillType(SkPath::kWinding_FillType); | 1251 pathB.setFillType(SkPath::kWinding_FillType); |
| 1260 pathB.moveTo(835, 1785); | 1252 pathB.moveTo(835, 1785); |
| 1261 pathB.lineTo(833, 1787); | 1253 pathB.lineTo(833, 1787); |
| 1262 pathB.lineTo(832.97998f, 1817.02002f); | 1254 pathB.lineTo(832.97998f, 1817.02002f); |
| 1263 pathB.lineTo(835, 1815); | 1255 pathB.lineTo(835, 1815); |
| 1264 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1256 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1265 } | 1257 } |
| 1266 #endif | |
| 1267 | 1258 |
| 1268 static void skpwww_joomla_org_23(skiatest::Reporter* reporter) { | 1259 static void skpwww_joomla_org_23(skiatest::Reporter* reporter, const char* filen
ame) { |
| 1269 SkPath path; | 1260 SkPath path; |
| 1270 path.setFillType(SkPath::kEvenOdd_FillType); | 1261 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1271 path.moveTo(320, 347); | 1262 path.moveTo(320, 347); |
| 1272 path.cubicTo(320, 344.238586f, 322.238586f, 342, 325, 342); | 1263 path.cubicTo(320, 344.238586f, 322.238586f, 342, 325, 342); |
| 1273 path.lineTo(416, 342); | 1264 path.lineTo(416, 342); |
| 1274 path.cubicTo(418.761414f, 342, 421, 344.238586f, 421, 347); | 1265 path.cubicTo(418.761414f, 342, 421, 344.238586f, 421, 347); |
| 1275 path.cubicTo(421, 344.790863f, 418.761414f, 343, 416, 343); | 1266 path.cubicTo(421, 344.790863f, 418.761414f, 343, 416, 343); |
| 1276 path.lineTo(325, 343); | 1267 path.lineTo(325, 343); |
| 1277 path.cubicTo(322.238586f, 343, 320, 344.790863f, 320, 347); | 1268 path.cubicTo(322.238586f, 343, 320, 344.790863f, 320, 347); |
| 1278 path.close(); | 1269 path.close(); |
| 1279 path.moveTo(320, 378); | 1270 path.moveTo(320, 378); |
| 1280 path.cubicTo(320, 380.761414f, 322.238586f, 383, 325, 383); | 1271 path.cubicTo(320, 380.761414f, 322.238586f, 383, 325, 383); |
| 1281 path.lineTo(416, 383); | 1272 path.lineTo(416, 383); |
| 1282 path.cubicTo(418.761414f, 383, 421, 380.761414f, 421, 378); | 1273 path.cubicTo(418.761414f, 383, 421, 380.761414f, 421, 378); |
| 1283 path.cubicTo(421, 380.209137f, 418.761414f, 382, 416, 382); | 1274 path.cubicTo(421, 380.209137f, 418.761414f, 382, 416, 382); |
| 1284 path.lineTo(325, 382); | 1275 path.lineTo(325, 382); |
| 1285 path.cubicTo(322.238586f, 382, 320, 380.209137f, 320, 378); | 1276 path.cubicTo(322.238586f, 382, 320, 380.209137f, 320, 378); |
| 1286 path.close(); | 1277 path.close(); |
| 1287 SkPath pathB; | 1278 SkPath pathB; |
| 1288 pathB.setFillType(SkPath::kWinding_FillType); | 1279 pathB.setFillType(SkPath::kWinding_FillType); |
| 1289 pathB.moveTo(320, 383); | 1280 pathB.moveTo(320, 383); |
| 1290 pathB.lineTo(320, 378); | 1281 pathB.lineTo(320, 378); |
| 1291 pathB.lineTo(421, 378.000031f); | 1282 pathB.lineTo(421, 378.000031f); |
| 1292 pathB.lineTo(421, 383); | 1283 pathB.lineTo(421, 383); |
| 1293 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1284 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1294 } | 1285 } |
| 1295 | 1286 |
| 1296 static void skpwww_macrumors_com_131(skiatest::Reporter* reporter) { | 1287 static void skpwww_macrumors_com_131(skiatest::Reporter* reporter, const char* f
ilename) { |
| 1297 SkPath path; | 1288 SkPath path; |
| 1298 path.setFillType(SkPath::kEvenOdd_FillType); | 1289 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1299 path.moveTo(136, 14089); | 1290 path.moveTo(136, 14089); |
| 1300 path.lineTo(136, 14056); | 1291 path.lineTo(136, 14056); |
| 1301 path.lineTo(778, 14056); | 1292 path.lineTo(778, 14056); |
| 1302 path.lineTo(778, 14089); | 1293 path.lineTo(778, 14089); |
| 1303 path.quadTo(777.999573f, 14090.6562f, 776.82843f, 14091.8281f); | 1294 path.quadTo(777.999573f, 14090.6562f, 776.82843f, 14091.8281f); |
| 1304 path.quadTo(775.656433f, 14093, 774, 14093); | 1295 path.quadTo(775.656433f, 14093, 774, 14093); |
| 1305 path.lineTo(140, 14093); | 1296 path.lineTo(140, 14093); |
| 1306 path.quadTo(138.343552f, 14093, 137.17157f, 14091.8281f); | 1297 path.quadTo(138.343552f, 14093, 137.17157f, 14091.8281f); |
| 1307 path.quadTo(136.000397f, 14090.6562f, 136, 14089); | 1298 path.quadTo(136.000397f, 14090.6562f, 136, 14089); |
| 1308 path.close(); | 1299 path.close(); |
| 1309 SkPath pathB; | 1300 SkPath pathB; |
| 1310 pathB.setFillType(SkPath::kInverseWinding_FillType); | 1301 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 1311 pathB.moveTo(136, 14057); | 1302 pathB.moveTo(136, 14057); |
| 1312 pathB.lineTo(778, 14057); | 1303 pathB.lineTo(778, 14057); |
| 1313 pathB.lineTo(778, 14089); | 1304 pathB.lineTo(778, 14089); |
| 1314 pathB.cubicTo(778, 14091.209f, 776.209167f, 14093, 774, 14093); | 1305 pathB.cubicTo(778, 14091.209f, 776.209167f, 14093, 774, 14093); |
| 1315 pathB.lineTo(140, 14093); | 1306 pathB.lineTo(140, 14093); |
| 1316 pathB.cubicTo(137.790863f, 14093, 136, 14091.209f, 136, 14089); | 1307 pathB.cubicTo(137.790863f, 14093, 136, 14091.209f, 136, 14089); |
| 1317 pathB.lineTo(136, 14057); | 1308 pathB.lineTo(136, 14057); |
| 1318 pathB.close(); | 1309 pathB.close(); |
| 1319 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1310 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1320 } | 1311 } |
| 1321 | 1312 |
| 1322 static void skpwww_leadpages_net_84(skiatest::Reporter* reporter) { | 1313 static void skpwww_leadpages_net_84(skiatest::Reporter* reporter, const char* fi
lename) { |
| 1323 SkPath path; | 1314 SkPath path; |
| 1324 path.setFillType(SkPath::kEvenOdd_FillType); | 1315 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1325 path.moveTo(377.1716f, 5910.17139f); | 1316 path.moveTo(377.1716f, 5910.17139f); |
| 1326 path.cubicTo(376.447723f, 5910.89551f, 376, 5911.89551f, 376, 5913); | 1317 path.cubicTo(376.447723f, 5910.89551f, 376, 5911.89551f, 376, 5913); |
| 1327 path.lineTo(376, 5972); | 1318 path.lineTo(376, 5972); |
| 1328 path.cubicTo(376, 5974.20898f, 377.790863f, 5976, 380, 5976); | 1319 path.cubicTo(376, 5974.20898f, 377.790863f, 5976, 380, 5976); |
| 1329 path.cubicTo(378.34314f, 5976, 377, 5974.20898f, 377, 5972); | 1320 path.cubicTo(378.34314f, 5976, 377, 5974.20898f, 377, 5972); |
| 1330 path.lineTo(377, 5913); | 1321 path.lineTo(377, 5913); |
| 1331 path.cubicTo(377, 5912.17139f, 377.335785f, 5911.42188f, 377.878693f, 5910.8
7891f); | 1322 path.cubicTo(377, 5912.17139f, 377.335785f, 5911.42188f, 377.878693f, 5910.8
7891f); |
| 1332 path.lineTo(377.1716f, 5910.17139f); | 1323 path.lineTo(377.1716f, 5910.17139f); |
| 1333 path.close(); | 1324 path.close(); |
| 1334 SkPath pathB; | 1325 SkPath pathB; |
| 1335 pathB.setFillType(SkPath::kWinding_FillType); | 1326 pathB.setFillType(SkPath::kWinding_FillType); |
| 1336 pathB.moveTo(376, 5909); | 1327 pathB.moveTo(376, 5909); |
| 1337 pathB.lineTo(378.481873f, 5909); | 1328 pathB.lineTo(378.481873f, 5909); |
| 1338 pathB.lineTo(379.999878f, 5976); | 1329 pathB.lineTo(379.999878f, 5976); |
| 1339 pathB.lineTo(376, 5976); | 1330 pathB.lineTo(376, 5976); |
| 1340 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1331 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1341 } | 1332 } |
| 1342 | 1333 |
| 1343 static void skpwww_briian_com_34(skiatest::Reporter* reporter) { | 1334 static void skpwww_briian_com_34(skiatest::Reporter* reporter, const char* filen
ame) { |
| 1344 SkPath path; | 1335 SkPath path; |
| 1345 path.setFillType(SkPath::kEvenOdd_FillType); | 1336 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1346 path.moveTo(843, 216); | 1337 path.moveTo(843, 216); |
| 1347 path.cubicTo(843, 213.238571f, 845.238586f, 211, 848, 211); | 1338 path.cubicTo(843, 213.238571f, 845.238586f, 211, 848, 211); |
| 1348 path.lineTo(1191, 211); | 1339 path.lineTo(1191, 211); |
| 1349 path.cubicTo(1193.76147f, 211, 1196, 213.238571f, 1196, 216); | 1340 path.cubicTo(1193.76147f, 211, 1196, 213.238571f, 1196, 216); |
| 1350 path.lineTo(1196, 779); | 1341 path.lineTo(1196, 779); |
| 1351 path.cubicTo(1196, 781.761414f, 1193.76147f, 784, 1191, 784); | 1342 path.cubicTo(1196, 781.761414f, 1193.76147f, 784, 1191, 784); |
| 1352 path.lineTo(848, 784); | 1343 path.lineTo(848, 784); |
| 1353 path.cubicTo(845.238586f, 784, 843, 781.761414f, 843, 779); | 1344 path.cubicTo(845.238586f, 784, 843, 781.761414f, 843, 779); |
| 1354 path.lineTo(843, 216); | 1345 path.lineTo(843, 216); |
| 1355 path.close(); | 1346 path.close(); |
| 1356 path.moveTo(844, 217); | 1347 path.moveTo(844, 217); |
| 1357 path.cubicTo(844, 214.238571f, 846.238586f, 212, 849, 212); | 1348 path.cubicTo(844, 214.238571f, 846.238586f, 212, 849, 212); |
| 1358 path.lineTo(1190, 212); | 1349 path.lineTo(1190, 212); |
| 1359 path.cubicTo(1192.76147f, 212, 1195, 214.238571f, 1195, 217); | 1350 path.cubicTo(1192.76147f, 212, 1195, 214.238571f, 1195, 217); |
| 1360 path.lineTo(1195, 778); | 1351 path.lineTo(1195, 778); |
| 1361 path.cubicTo(1195, 779.65686f, 1192.76147f, 781, 1190, 781); | 1352 path.cubicTo(1195, 779.65686f, 1192.76147f, 781, 1190, 781); |
| 1362 path.lineTo(849, 781); | 1353 path.lineTo(849, 781); |
| 1363 path.cubicTo(846.238586f, 781, 844, 779.65686f, 844, 778); | 1354 path.cubicTo(846.238586f, 781, 844, 779.65686f, 844, 778); |
| 1364 path.lineTo(844, 217); | 1355 path.lineTo(844, 217); |
| 1365 path.close(); | 1356 path.close(); |
| 1366 SkPath pathB; | 1357 SkPath pathB; |
| 1367 pathB.setFillType(SkPath::kWinding_FillType); | 1358 pathB.setFillType(SkPath::kWinding_FillType); |
| 1368 pathB.moveTo(843, 784); | 1359 pathB.moveTo(843, 784); |
| 1369 pathB.lineTo(843, 779); | 1360 pathB.lineTo(843, 779); |
| 1370 pathB.lineTo(1196, 779.000061f); | 1361 pathB.lineTo(1196, 779.000061f); |
| 1371 pathB.lineTo(1196, 784); | 1362 pathB.lineTo(1196, 784); |
| 1372 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1363 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1373 } | 1364 } |
| 1374 | 1365 |
| 1375 | 1366 static void skpwww_sciality_com_100(skiatest::Reporter* reporter, const char* fi
lename) { |
| 1376 static void skpwww_sciality_com_100(skiatest::Reporter* reporter) { | |
| 1377 SkPath path; | 1367 SkPath path; |
| 1378 path.setFillType(SkPath::kEvenOdd_FillType); | 1368 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1379 path.moveTo(162, 468); | 1369 path.moveTo(162, 468); |
| 1380 path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472); | 1370 path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472); |
| 1381 path.lineTo(158, 528); | 1371 path.lineTo(158, 528); |
| 1382 path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532); | 1372 path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532); |
| 1383 path.lineTo(275, 532); | 1373 path.lineTo(275, 532); |
| 1384 path.cubicTo(277.209137f, 532, 279, 530.209106f, 279, 528); | 1374 path.cubicTo(277.209137f, 532, 279, 530.209106f, 279, 528); |
| 1385 path.lineTo(279, 472); | 1375 path.lineTo(279, 472); |
| 1386 path.cubicTo(279, 469.790863f, 277.209137f, 468, 275, 468); | 1376 path.cubicTo(279, 469.790863f, 277.209137f, 468, 275, 468); |
| 1387 path.lineTo(162, 468); | 1377 path.lineTo(162, 468); |
| 1388 path.close(); | 1378 path.close(); |
| 1389 SkPath pathB; | 1379 SkPath pathB; |
| 1390 pathB.setFillType(SkPath::kWinding_FillType); | 1380 pathB.setFillType(SkPath::kWinding_FillType); |
| 1391 pathB.moveTo(275, 468); | 1381 pathB.moveTo(275, 468); |
| 1392 pathB.cubicTo(276.65686f, 468, 278, 469.34314f, 278, 471); | 1382 pathB.cubicTo(276.65686f, 468, 278, 469.34314f, 278, 471); |
| 1393 pathB.lineTo(278, 529); | 1383 pathB.lineTo(278, 529); |
| 1394 pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532); | 1384 pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532); |
| 1395 pathB.lineTo(161, 532); | 1385 pathB.lineTo(161, 532); |
| 1396 pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529); | 1386 pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529); |
| 1397 pathB.lineTo(158, 471); | 1387 pathB.lineTo(158, 471); |
| 1398 pathB.cubicTo(158, 469.34314f, 159.34314f, 468, 161, 468); | 1388 pathB.cubicTo(158, 469.34314f, 159.34314f, 468, 161, 468); |
| 1399 pathB.lineTo(275, 468); | 1389 pathB.lineTo(275, 468); |
| 1400 pathB.close(); | 1390 pathB.close(); |
| 1401 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1391 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1402 } | 1392 } |
| 1403 | 1393 |
| 1404 #if TRY_SEPT_BROKEN_TESTS | 1394 static void skpwww_sciality_com_101(skiatest::Reporter* reporter, const char* fi
lename) { |
| 1405 static void skpwww_sciality_com_101(skiatest::Reporter* reporter) { | |
| 1406 SkPath path; | 1395 SkPath path; |
| 1407 path.setFillType(SkPath::kEvenOdd_FillType); | 1396 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1408 path.moveTo(162, 468); | 1397 path.moveTo(162, 468); |
| 1409 path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472); | 1398 path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472); |
| 1410 path.lineTo(158, 528); | 1399 path.lineTo(158, 528); |
| 1411 path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532); | 1400 path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532); |
| 1412 path.lineTo(275.009186f, 532); | 1401 path.lineTo(275.009186f, 532); |
| 1413 path.cubicTo(276.661774f, 531.994995f, 278, 530.653748f, 278, 529); | 1402 path.cubicTo(276.661774f, 531.994995f, 278, 530.653748f, 278, 529); |
| 1414 path.lineTo(278, 471); | 1403 path.lineTo(278, 471); |
| 1415 path.cubicTo(278, 469.346375f, 276.662079f, 468.005249f, 275.009705f, 468); | 1404 path.cubicTo(278, 469.346375f, 276.662079f, 468.005249f, 275.009705f, 468); |
| 1416 path.lineTo(162, 468); | 1405 path.lineTo(162, 468); |
| 1417 path.close(); | 1406 path.close(); |
| 1418 SkPath pathB; | 1407 SkPath pathB; |
| 1419 pathB.setFillType(SkPath::kInverseWinding_FillType); | 1408 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 1420 pathB.moveTo(161, 469); | 1409 pathB.moveTo(161, 469); |
| 1421 pathB.lineTo(275, 469); | 1410 pathB.lineTo(275, 469); |
| 1422 pathB.cubicTo(276.65686f, 469, 278, 469.895416f, 278, 471); | 1411 pathB.cubicTo(276.65686f, 469, 278, 469.895416f, 278, 471); |
| 1423 pathB.lineTo(278, 529); | 1412 pathB.lineTo(278, 529); |
| 1424 pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532); | 1413 pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532); |
| 1425 pathB.lineTo(161, 532); | 1414 pathB.lineTo(161, 532); |
| 1426 pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529); | 1415 pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529); |
| 1427 pathB.lineTo(158, 471); | 1416 pathB.lineTo(158, 471); |
| 1428 pathB.cubicTo(158, 469.895416f, 159.34314f, 469, 161, 469); | 1417 pathB.cubicTo(158, 469.895416f, 159.34314f, 469, 161, 469); |
| 1429 pathB.close(); | 1418 pathB.close(); |
| 1430 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1419 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1431 } | 1420 } |
| 1432 #endif | |
| 1433 | 1421 |
| 1434 static void skpwww_meb_gov_tr_5(skiatest::Reporter* reporter) { | 1422 static void skpwww_meb_gov_tr_5(skiatest::Reporter* reporter, const char* filena
me) { |
| 1435 SkPath path; | 1423 SkPath path; |
| 1436 path.setFillType(SkPath::kEvenOdd_FillType); | 1424 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1437 path.moveTo(137.34314f, 145.34314f); | 1425 path.moveTo(137.34314f, 145.34314f); |
| 1438 path.quadTo(139.687088f, 143.000793f, 143, 143); | 1426 path.quadTo(139.687088f, 143.000793f, 143, 143); |
| 1439 path.lineTo(242, 143); | 1427 path.lineTo(242, 143); |
| 1440 path.quadTo(245.312912f, 143.000793f, 247.65686f, 145.34314f); | 1428 path.quadTo(245.312912f, 143.000793f, 247.65686f, 145.34314f); |
| 1441 path.quadTo(249.999207f, 147.687088f, 250, 151); | 1429 path.quadTo(249.999207f, 147.687088f, 250, 151); |
| 1442 path.lineTo(250, 177); | 1430 path.lineTo(250, 177); |
| 1443 path.lineTo(135, 177); | 1431 path.lineTo(135, 177); |
| 1444 path.lineTo(135, 151); | 1432 path.lineTo(135, 151); |
| 1445 path.quadTo(135.000793f, 147.687088f, 137.34314f, 145.34314f); | 1433 path.quadTo(135.000793f, 147.687088f, 137.34314f, 145.34314f); |
| 1446 path.close(); | 1434 path.close(); |
| 1447 SkPath pathB; | 1435 SkPath pathB; |
| 1448 pathB.setFillType(SkPath::kWinding_FillType); | 1436 pathB.setFillType(SkPath::kWinding_FillType); |
| 1449 pathB.moveTo(135, 143); | 1437 pathB.moveTo(135, 143); |
| 1450 pathB.lineTo(250, 143); | 1438 pathB.lineTo(250, 143); |
| 1451 pathB.lineTo(250, 177); | 1439 pathB.lineTo(250, 177); |
| 1452 pathB.lineTo(135, 177); | 1440 pathB.lineTo(135, 177); |
| 1453 pathB.close(); | 1441 pathB.close(); |
| 1454 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1442 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1455 } | 1443 } |
| 1456 | 1444 |
| 1457 #if TRY_SEPT_BROKEN_TESTS | 1445 static void skpwww_meb_gov_tr_6(skiatest::Reporter* reporter, const char* filena
me) { |
| 1458 static void skpwww_meb_gov_tr_6(skiatest::Reporter* reporter) { | |
| 1459 SkPath path; | 1446 SkPath path; |
| 1460 path.setFillType(SkPath::kEvenOdd_FillType); | 1447 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1461 path.moveTo(143, 143); | 1448 path.moveTo(143, 143); |
| 1462 path.quadTo(139.687088f, 143.000793f, 137.34314f, 145.34314f); | 1449 path.quadTo(139.687088f, 143.000793f, 137.34314f, 145.34314f); |
| 1463 path.quadTo(135.000793f, 147.687088f, 135, 151); | 1450 path.quadTo(135.000793f, 147.687088f, 135, 151); |
| 1464 path.lineTo(135, 177); | 1451 path.lineTo(135, 177); |
| 1465 path.lineTo(250, 177); | 1452 path.lineTo(250, 177); |
| 1466 path.lineTo(250, 151); | 1453 path.lineTo(250, 151); |
| 1467 path.quadTo(249.999207f, 147.687088f, 247.65686f, 145.34314f); | 1454 path.quadTo(249.999207f, 147.687088f, 247.65686f, 145.34314f); |
| 1468 path.quadTo(245.312912f, 143.000793f, 242, 143); | 1455 path.quadTo(245.312912f, 143.000793f, 242, 143); |
| 1469 path.lineTo(143, 143); | 1456 path.lineTo(143, 143); |
| 1470 path.close(); | 1457 path.close(); |
| 1471 SkPath pathB; | 1458 SkPath pathB; |
| 1472 pathB.setFillType(SkPath::kInverseWinding_FillType); | 1459 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 1473 pathB.moveTo(143, 143); | 1460 pathB.moveTo(143, 143); |
| 1474 pathB.lineTo(242, 143); | 1461 pathB.lineTo(242, 143); |
| 1475 pathB.cubicTo(245.865997f, 143, 249, 146.581726f, 249, 151); | 1462 pathB.cubicTo(245.865997f, 143, 249, 146.581726f, 249, 151); |
| 1476 pathB.lineTo(249, 177); | 1463 pathB.lineTo(249, 177); |
| 1477 pathB.lineTo(135, 177); | 1464 pathB.lineTo(135, 177); |
| 1478 pathB.lineTo(135, 151); | 1465 pathB.lineTo(135, 151); |
| 1479 pathB.cubicTo(135, 146.581726f, 138.581726f, 143, 143, 143); | 1466 pathB.cubicTo(135, 146.581726f, 138.581726f, 143, 143, 143); |
| 1480 pathB.close(); | 1467 pathB.close(); |
| 1481 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1468 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1482 } | 1469 } |
| 1483 #endif | |
| 1484 | 1470 |
| 1485 static void skpgithub_io_25(skiatest::Reporter* reporter) { | 1471 static void skpgithub_io_25(skiatest::Reporter* reporter, const char* filename)
{ |
| 1486 SkPath path; | 1472 SkPath path; |
| 1487 path.setFillType(SkPath::kEvenOdd_FillType); | 1473 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1488 path.moveTo(1001.87866f, 14.8786793f); | 1474 path.moveTo(1001.87866f, 14.8786793f); |
| 1489 path.quadTo(1002.75745f, 14.0001001f, 1004, 14); | 1475 path.quadTo(1002.75745f, 14.0001001f, 1004, 14); |
| 1490 path.lineTo(1105, 14); | 1476 path.lineTo(1105, 14); |
| 1491 path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f); | 1477 path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f); |
| 1492 path.quadTo(1107.99988f, 15.7574596f, 1108, 17); | 1478 path.quadTo(1107.99988f, 15.7574596f, 1108, 17); |
| 1493 path.lineTo(1108, 41); | 1479 path.lineTo(1108, 41); |
| 1494 path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f); | 1480 path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f); |
| 1495 path.quadTo(1106.24255f, 43.9999008f, 1105, 44); | 1481 path.quadTo(1106.24255f, 43.9999008f, 1105, 44); |
| 1496 path.lineTo(1004, 44); | 1482 path.lineTo(1004, 44); |
| 1497 path.quadTo(1002.75745f, 43.9999008f, 1001.87866f, 43.1213188f); | 1483 path.quadTo(1002.75745f, 43.9999008f, 1001.87866f, 43.1213188f); |
| 1498 path.quadTo(1001.00012f, 42.2425423f, 1001, 41); | 1484 path.quadTo(1001.00012f, 42.2425423f, 1001, 41); |
| 1499 path.lineTo(1001, 17); | 1485 path.lineTo(1001, 17); |
| 1500 path.quadTo(1001.00012f, 15.7574596f, 1001.87866f, 14.8786793f); | 1486 path.quadTo(1001.00012f, 15.7574596f, 1001.87866f, 14.8786793f); |
| 1501 path.close(); | 1487 path.close(); |
| 1502 SkPath pathB; | 1488 SkPath pathB; |
| 1503 pathB.setFillType(SkPath::kInverseWinding_FillType); | 1489 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 1504 pathB.moveTo(1005, 16); | 1490 pathB.moveTo(1005, 16); |
| 1505 pathB.lineTo(1104, 16); | 1491 pathB.lineTo(1104, 16); |
| 1506 pathB.cubicTo(1105.10461f, 16, 1106, 16.8954296f, 1106, 18); | 1492 pathB.cubicTo(1105.10461f, 16, 1106, 16.8954296f, 1106, 18); |
| 1507 pathB.lineTo(1106, 40); | 1493 pathB.lineTo(1106, 40); |
| 1508 pathB.cubicTo(1106, 41.1045685f, 1105.10461f, 42, 1104, 42); | 1494 pathB.cubicTo(1106, 41.1045685f, 1105.10461f, 42, 1104, 42); |
| 1509 pathB.lineTo(1005, 42); | 1495 pathB.lineTo(1005, 42); |
| 1510 pathB.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40); | 1496 pathB.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40); |
| 1511 pathB.lineTo(1003, 18); | 1497 pathB.lineTo(1003, 18); |
| 1512 pathB.cubicTo(1003, 16.8954296f, 1003.89545f, 16, 1005, 16); | 1498 pathB.cubicTo(1003, 16.8954296f, 1003.89545f, 16, 1005, 16); |
| 1513 pathB.close(); | 1499 pathB.close(); |
| 1514 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1500 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1515 } | 1501 } |
| 1516 | 1502 |
| 1517 static void skpgithub_io_26(skiatest::Reporter* reporter) { | 1503 static void skpgithub_io_26(skiatest::Reporter* reporter, const char* filename)
{ |
| 1518 SkPath path; | 1504 SkPath path; |
| 1519 path.setFillType(SkPath::kEvenOdd_FillType); | 1505 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1520 path.moveTo(1001.87866f, 14.8786793f); | 1506 path.moveTo(1001.87866f, 14.8786793f); |
| 1521 path.quadTo(1002.75745f, 14.0001001f, 1004, 14); | 1507 path.quadTo(1002.75745f, 14.0001001f, 1004, 14); |
| 1522 path.lineTo(1105, 14); | 1508 path.lineTo(1105, 14); |
| 1523 path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f); | 1509 path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f); |
| 1524 path.quadTo(1107.99988f, 15.7574596f, 1108, 17); | 1510 path.quadTo(1107.99988f, 15.7574596f, 1108, 17); |
| 1525 path.lineTo(1108, 41); | 1511 path.lineTo(1108, 41); |
| 1526 path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f); | 1512 path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f); |
| 1527 path.quadTo(1106.24255f, 43.9999008f, 1105, 44); | 1513 path.quadTo(1106.24255f, 43.9999008f, 1105, 44); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1540 path.lineTo(1005, 42); | 1526 path.lineTo(1005, 42); |
| 1541 path.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40); | 1527 path.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40); |
| 1542 path.lineTo(1003, 18); | 1528 path.lineTo(1003, 18); |
| 1543 path.close(); | 1529 path.close(); |
| 1544 SkPath pathB; | 1530 SkPath pathB; |
| 1545 pathB.setFillType(SkPath::kWinding_FillType); | 1531 pathB.setFillType(SkPath::kWinding_FillType); |
| 1546 pathB.moveTo(1108, 14); | 1532 pathB.moveTo(1108, 14); |
| 1547 pathB.lineTo(1106, 16); | 1533 pathB.lineTo(1106, 16); |
| 1548 pathB.lineTo(1105.97998f, 46.0200005f); | 1534 pathB.lineTo(1105.97998f, 46.0200005f); |
| 1549 pathB.lineTo(1108, 44); | 1535 pathB.lineTo(1108, 44); |
| 1550 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1536 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1551 } | 1537 } |
| 1552 | 1538 |
| 1553 static void skpskpicture14(skiatest::Reporter* reporter) { | 1539 static void skpskpicture14(skiatest::Reporter* reporter, const char* filename) { |
| 1554 SkPath path; | 1540 SkPath path; |
| 1555 path.setFillType(SkPath::kEvenOdd_FillType); | 1541 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1556 path.moveTo(0, 994); | 1542 path.moveTo(0, 994); |
| 1557 path.lineTo(0, 0); | 1543 path.lineTo(0, 0); |
| 1558 path.lineTo(512, 0); | 1544 path.lineTo(512, 0); |
| 1559 path.lineTo(512, 994); | 1545 path.lineTo(512, 994); |
| 1560 path.lineTo(0, 994); | 1546 path.lineTo(0, 994); |
| 1561 path.close(); | 1547 path.close(); |
| 1562 SkPath pathB; | 1548 SkPath pathB; |
| 1563 pathB.setFillType(SkPath::kWinding_FillType); | 1549 pathB.setFillType(SkPath::kWinding_FillType); |
| 1564 pathB.moveTo(-317, 168); | 1550 pathB.moveTo(-317, 168); |
| 1565 pathB.quadTo(-317, 166.757385f, -316.121338f, 165.878662f); | 1551 pathB.quadTo(-317, 166.757385f, -316.121338f, 165.878662f); |
| 1566 pathB.quadTo(-315.242645f, 165, -314, 165); | 1552 pathB.quadTo(-315.242645f, 165, -314, 165); |
| 1567 pathB.lineTo(320, 165); | 1553 pathB.lineTo(320, 165); |
| 1568 pathB.quadTo(321.242615f, 165, 322.121338f, 165.878662f); | 1554 pathB.quadTo(321.242615f, 165, 322.121338f, 165.878662f); |
| 1569 pathB.quadTo(323, 166.757385f, 323, 168); | 1555 pathB.quadTo(323, 166.757385f, 323, 168); |
| 1570 pathB.lineTo(323, 193); | 1556 pathB.lineTo(323, 193); |
| 1571 pathB.lineTo(-317, 193); | 1557 pathB.lineTo(-317, 193); |
| 1572 pathB.close(); | 1558 pathB.close(); |
| 1573 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1559 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1574 } | 1560 } |
| 1575 | 1561 |
| 1576 #if TRY_SEPT_BROKEN_TESTS | 1562 static void skpskpicture15(skiatest::Reporter* reporter, const char* filename) { |
| 1577 static void skpskpicture15(skiatest::Reporter* reporter) { | |
| 1578 SkPath path; | 1563 SkPath path; |
| 1579 path.setFillType(SkPath::kEvenOdd_FillType); | 1564 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1580 path.moveTo(0, 193); | 1565 path.moveTo(0, 193); |
| 1581 path.lineTo(323, 193); | 1566 path.lineTo(323, 193); |
| 1582 path.lineTo(323, 168); | 1567 path.lineTo(323, 168); |
| 1583 path.quadTo(323, 166.757385f, 322.121338f, 165.878662f); | 1568 path.quadTo(323, 166.757385f, 322.121338f, 165.878662f); |
| 1584 path.quadTo(321.242615f, 165, 320, 165); | 1569 path.quadTo(321.242615f, 165, 320, 165); |
| 1585 path.lineTo(0, 165); | 1570 path.lineTo(0, 165); |
| 1586 path.lineTo(0, 193); | 1571 path.lineTo(0, 193); |
| 1587 path.close(); | 1572 path.close(); |
| 1588 SkPath pathB; | 1573 SkPath pathB; |
| 1589 pathB.setFillType(SkPath::kInverseWinding_FillType); | 1574 pathB.setFillType(SkPath::kInverseWinding_FillType); |
| 1590 pathB.moveTo(-314, 165); | 1575 pathB.moveTo(-314, 165); |
| 1591 pathB.lineTo(320, 165); | 1576 pathB.lineTo(320, 165); |
| 1592 pathB.cubicTo(321.65686f, 165, 323, 166.34314f, 323, 168); | 1577 pathB.cubicTo(321.65686f, 165, 323, 166.34314f, 323, 168); |
| 1593 pathB.lineTo(323, 192); | 1578 pathB.lineTo(323, 192); |
| 1594 pathB.lineTo(-317, 192); | 1579 pathB.lineTo(-317, 192); |
| 1595 pathB.lineTo(-317, 168); | 1580 pathB.lineTo(-317, 168); |
| 1596 pathB.cubicTo(-317, 166.34314f, -315.65686f, 165, -314, 165); | 1581 pathB.cubicTo(-317, 166.34314f, -315.65686f, 165, -314, 165); |
| 1597 pathB.close(); | 1582 pathB.close(); |
| 1598 testPathOp(reporter, path, pathB, kIntersect_PathOp); | 1583 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1599 } | 1584 } |
| 1600 #endif | |
| 1601 | 1585 |
| 1602 static void (*firstTest)(skiatest::Reporter* ) = 0; | 1586 /* Three edges are partially coincident. Only one of the three knows about the o
ther two. |
| 1587 Subsequently, when the angle loop is created, it misses one of the edges. |
| 1588 After coincident edges are processed, probably need a check-and-correct that
makes sure the |
| 1589 coincidences are all self-consistent. |
| 1590 */ |
| 1591 static void skpelpais_com_18(skiatest::Reporter* reporter, const char* filename)
{ |
| 1592 SkPath path; |
| 1593 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1594 path.moveTo(183, 8507); |
| 1595 path.lineTo(552, 8506.99023f); |
| 1596 path.lineTo(552, 8508); |
| 1597 path.lineTo(183, 8508); |
| 1598 path.lineTo(183, 8507); |
| 1599 path.close(); |
| 1600 SkPath pathB; |
| 1601 pathB.setFillType(SkPath::kWinding_FillType); |
| 1602 pathB.moveTo(183, 8508); |
| 1603 pathB.lineTo(183, 8506.99023f); |
| 1604 pathB.lineTo(552, 8507); |
| 1605 pathB.lineTo(552, 8508); |
| 1606 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1607 } |
| 1608 |
| 1609 /* this generates a pair of lines that are essentially coincident; but the next
line at a right |
| 1610 angle is not treated as if it intersects at the same point. |
| 1611 There are several of options: |
| 1612 move the intersection of the right angle line to the coincident point (shou
ld 'near' do this? |
| 1613 construct another coincident pair from the right angle line to the coincide
nt point |
| 1614 treat the intersection as simple and not coincident |
| 1615 */ |
| 1616 static void skpnamecheap_com_405(skiatest::Reporter* reporter, const char* filen
ame) { |
| 1617 SkPath path; |
| 1618 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1619 path.moveTo(140, 1000); |
| 1620 path.lineTo(140, 842); |
| 1621 path.lineTo(141, 842); |
| 1622 path.lineTo(141.14502f, 1000); |
| 1623 path.lineTo(140, 1000); |
| 1624 path.close(); |
| 1625 SkPath pathB; |
| 1626 pathB.setFillType(SkPath::kWinding_FillType); |
| 1627 pathB.moveTo(140, 842); |
| 1628 pathB.lineTo(141.008835f, 837.9646f); |
| 1629 pathB.lineTo(141.235291f, 1109.05884f); |
| 1630 pathB.lineTo(140, 1114); |
| 1631 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1632 } |
| 1633 |
| 1634 // fails on angle insert -- haven't investigated yet |
| 1635 static void skpwww_alrakoba_net_62(skiatest::Reporter* reporter, const char* fil
ename) { |
| 1636 SkPath path; |
| 1637 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1638 path.moveTo(134.34314f, 9802.34277f); |
| 1639 path.quadTo(132, 9804.68652f, 132, 9808); |
| 1640 path.lineTo(132, 9822); |
| 1641 path.quadTo(132, 9825.31348f, 134.34314f, 9827.65723f); |
| 1642 path.quadTo(136.686295f, 9830, 140, 9830); |
| 1643 path.lineTo(140.028473f, 9830); |
| 1644 path.lineTo(139.877213f, 9828.90723f); |
| 1645 path.quadTo(137.692032f, 9828.5332f, 136.050247f, 9826.65723f); |
| 1646 path.quadTo(134, 9824.31348f, 134, 9821); |
| 1647 path.lineTo(134, 9809); |
| 1648 path.quadTo(134, 9806.10059f, 136.050247f, 9804.0498f); |
| 1649 path.lineTo(134.34314f, 9802.34277f); |
| 1650 path.close(); |
| 1651 SkPath pathB; |
| 1652 pathB.setFillType(SkPath::kWinding_FillType); |
| 1653 pathB.moveTo(132, 9800); |
| 1654 pathB.lineTo(135.962357f, 9800); |
| 1655 pathB.lineTo(140, 9830); |
| 1656 pathB.lineTo(132, 9830); |
| 1657 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1658 } |
| 1659 |
| 1660 /* asserts in alignSpanState looks like a coincident related bug */ |
| 1661 static void skpwww_cityads_ru_249(skiatest::Reporter* reporter, const char* file
name) { |
| 1662 SkPath path; |
| 1663 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1664 path.moveTo(817.464478f, 11.4644661f); |
| 1665 path.quadTo(818.928955f, 10, 821, 10); |
| 1666 path.lineTo(998, 10); |
| 1667 path.quadTo(999.082947f, 10, 1000, 10.4003992f); |
| 1668 path.lineTo(1000, 13.3527431f); |
| 1669 path.quadTo(999.917603f, 13.2607508f, 999.82843f, 13.1715727f); |
| 1670 path.quadTo(998.65686f, 12, 997, 12); |
| 1671 path.lineTo(822, 12); |
| 1672 path.quadTo(820.34314f, 12, 819.17157f, 13.1715727f); |
| 1673 path.quadTo(818, 14.3431454f, 818, 16); |
| 1674 path.lineTo(818, 28); |
| 1675 path.quadTo(818, 29.6568546f, 819.17157f, 30.8284264f); |
| 1676 path.quadTo(820.34314f, 32, 822, 32); |
| 1677 path.lineTo(997, 32); |
| 1678 path.quadTo(998.65686f, 32, 999.82843f, 30.8284264f); |
| 1679 path.quadTo(999.917603f, 30.7392426f, 1000, 30.6472569f); |
| 1680 path.lineTo(1000, 33.5996017f); |
| 1681 path.quadTo(999.082947f, 34, 998, 34); |
| 1682 path.lineTo(821, 34); |
| 1683 path.quadTo(818.928955f, 34, 817.464478f, 32.5355339f); |
| 1684 path.quadTo(816, 31.0710678f, 816, 29); |
| 1685 path.lineTo(816, 15); |
| 1686 path.quadTo(816, 12.9289322f, 817.464478f, 11.4644661f); |
| 1687 path.close(); |
| 1688 SkPath pathB; |
| 1689 pathB.setFillType(SkPath::kWinding_FillType); |
| 1690 pathB.moveTo(1003, 10); |
| 1691 pathB.lineTo(1000, 13); |
| 1692 pathB.lineTo(999.969971f, 37.0299988f); |
| 1693 pathB.lineTo(1003, 34); |
| 1694 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1695 } |
| 1696 |
| 1697 // fails on angle insert |
| 1698 static void skpwww_dealnews_com_315(skiatest::Reporter* reporter, const char* fi
lename) { |
| 1699 SkPath path; |
| 1700 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1701 path.moveTo(966.464478f, 4261.46436f); |
| 1702 path.quadTo(965, 4262.92871f, 965, 4265); |
| 1703 path.lineTo(965, 4276); |
| 1704 path.quadTo(965, 4278.07129f, 966.464478f, 4279.53564f); |
| 1705 path.quadTo(967.928955f, 4281, 970, 4281); |
| 1706 path.lineTo(970.020325f, 4281); |
| 1707 path.lineTo(969.887512f, 4279.81641f); |
| 1708 path.quadTo(968.928284f, 4279.48145f, 968.17157f, 4278.53564f); |
| 1709 path.quadTo(967, 4277.07129f, 967, 4275); |
| 1710 path.lineTo(967, 4266); |
| 1711 path.quadTo(967, 4264.44287f, 968.035217f, 4263.31396f); |
| 1712 path.lineTo(968, 4263); |
| 1713 path.lineTo(966.464478f, 4261.46436f); |
| 1714 path.close(); |
| 1715 SkPath pathB; |
| 1716 pathB.setFillType(SkPath::kWinding_FillType); |
| 1717 pathB.moveTo(965, 4260); |
| 1718 pathB.lineTo(967.716675f, 4260); |
| 1719 pathB.lineTo(970, 4281); |
| 1720 pathB.lineTo(965, 4281); |
| 1721 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1722 } |
| 1723 |
| 1724 // fails in intersections insert |
| 1725 static void skpwww_inmotionhosting_com_9(skiatest::Reporter* reporter, const cha
r* filename) { |
| 1726 SkPath path; |
| 1727 path.setFillType(SkPath::kEvenOdd_FillType); |
| 1728 path.moveTo(991.633911f, 1839); |
| 1729 path.lineTo(964.265015f, 1839); |
| 1730 path.lineTo(963.734985f, 1893.73242f); |
| 1731 path.lineTo(991.3703f, 1894); |
| 1732 path.lineTo(1018.23492f, 1894); |
| 1733 path.lineTo(1018.76501f, 1839.2627f); |
| 1734 path.lineTo(991.638184f, 1839); |
| 1735 path.lineTo(991.633911f, 1839); |
| 1736 path.close(); |
| 1737 SkPath pathB; |
| 1738 pathB.setFillType(SkPath::kWinding_FillType); |
| 1739 pathB.moveTo(964.267578f, 1838.73499f); |
| 1740 pathB.lineTo(1019.26501f, 1839.26758f); |
| 1741 pathB.lineTo(1018.73242f, 1894.26501f); |
| 1742 pathB.lineTo(963.734985f, 1893.73242f); |
| 1743 pathB.close(); |
| 1744 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
| 1745 } |
| 1746 |
| 1747 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0; |
| 1603 | 1748 |
| 1604 static struct TestDesc tests[] = { | 1749 static struct TestDesc tests[] = { |
| 1750 TEST(skpnamecheap_com_405), |
| 1751 TEST(skpelpais_com_18), |
| 1752 TEST(skpwww_cityads_ru_249), |
| 1753 TEST(skpwww_alrakoba_net_62), |
| 1754 TEST(skpwww_dealnews_com_315), |
| 1755 TEST(skpwww_inmotionhosting_com_9), |
| 1605 TEST(skpskpicture14), | 1756 TEST(skpskpicture14), |
| 1606 #if TRY_SEPT_BROKEN_TESTS | |
| 1607 TEST(skpskpicture15), | 1757 TEST(skpskpicture15), |
| 1608 TEST(skpwww_meb_gov_tr_6), | 1758 TEST(skpwww_meb_gov_tr_6), |
| 1609 TEST(skpwww_sciality_com_101), | 1759 TEST(skpwww_sciality_com_101), |
| 1610 TEST(skpwww_booking_com_68), // similar to lavoixdunord | 1760 TEST(skpwww_booking_com_68), // similar to lavoixdunord |
| 1611 TEST(skpwww_despegar_com_mx_272), // similar to lavoixdunord | 1761 TEST(skpwww_despegar_com_mx_272), // similar to lavoixdunord |
| 1612 TEST(skpwww_lavoixdunord_fr_11), // not quite coincident, sorting line/cubi
c fails | 1762 TEST(skpwww_lavoixdunord_fr_11), // not quite coincident, sorting line/cubi
c fails |
| 1613 TEST(skppptv_com_62), // cubic have nearly identical tangents, sort incorre
ctly | 1763 TEST(skppptv_com_62), // cubic have nearly identical tangents, sort incorre
ctly |
| 1614 #endif | |
| 1615 #if TRY_BROKEN_TESTS | |
| 1616 TEST(skppchappy_com_au102), | 1764 TEST(skppchappy_com_au102), |
| 1617 TEST(skpsciality_com161), | 1765 TEST(skpsciality_com161), |
| 1618 TEST(skpi_gino_com16), | 1766 TEST(skpi_gino_com16), |
| 1619 TEST(skpnaoxrane_ru23), // see test for failure evaluation | 1767 TEST(skpnaoxrane_ru23), // see test for failure evaluation |
| 1620 TEST(skptcmevents_org23), // see test for (partial) failure evaluation | 1768 TEST(skptcmevents_org23), // see test for (partial) failure evaluation |
| 1621 TEST(skpredbullskatearcade_es16), // cubic have nearly identical tangents,
sort incorrectly | 1769 TEST(skpredbullskatearcade_es16), // cubic have nearly identical tangents,
sort incorrectly |
| 1622 TEST(skpfinanzasdigital_com9), // cubic/quad tangents too close to sort | 1770 TEST(skpfinanzasdigital_com9), // cubic/quad tangents too close to sort |
| 1623 #endif | |
| 1624 TEST(skpgithub_io_26), | 1771 TEST(skpgithub_io_26), |
| 1625 TEST(skpgithub_io_25), | 1772 TEST(skpgithub_io_25), |
| 1626 TEST(skpwww_meb_gov_tr_5), | 1773 TEST(skpwww_meb_gov_tr_5), |
| 1627 TEST(skpwww_sciality_com_100), | 1774 TEST(skpwww_sciality_com_100), |
| 1628 TEST(skpwww_joomla_org_23), | 1775 TEST(skpwww_joomla_org_23), |
| 1629 TEST(skpwww_macrumors_com_131), | 1776 TEST(skpwww_macrumors_com_131), |
| 1630 TEST(skpwww_briian_com_34), | 1777 TEST(skpwww_briian_com_34), |
| 1631 TEST(skpwww_leadpages_net_84), | 1778 TEST(skpwww_leadpages_net_84), |
| 1632 TEST(skpwww_fj_p_com_22), | 1779 TEST(skpwww_fj_p_com_22), |
| 1633 TEST(skppartainasdemo250_org56), | 1780 TEST(skppartainasdemo250_org56), |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1649 TEST(skpilkoora_com37), | 1796 TEST(skpilkoora_com37), |
| 1650 TEST(skpmm4everfriends_com43), | 1797 TEST(skpmm4everfriends_com43), |
| 1651 TEST(skpflite_com41), | 1798 TEST(skpflite_com41), |
| 1652 TEST(skpcheeseandburger_com225), | 1799 TEST(skpcheeseandburger_com225), |
| 1653 TEST(skpeverytechpro_blogspot_com100), | 1800 TEST(skpeverytechpro_blogspot_com100), |
| 1654 }; | 1801 }; |
| 1655 | 1802 |
| 1656 static const size_t testCount = SK_ARRAY_COUNT(tests); | 1803 static const size_t testCount = SK_ARRAY_COUNT(tests); |
| 1657 | 1804 |
| 1658 static bool runReverse = false; | 1805 static bool runReverse = false; |
| 1659 static void (*stopTest)(skiatest::Reporter* ) = 0; | 1806 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; |
| 1660 | 1807 |
| 1661 DEF_TEST(PathOpsSkp, reporter) { | 1808 DEF_TEST(PathOpsSkp, reporter) { |
| 1662 #if DEBUG_SHOW_TEST_NAME | 1809 #if DEBUG_SHOW_TEST_NAME |
| 1663 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); | 1810 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); |
| 1664 #endif | 1811 #endif |
| 1665 RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse); | 1812 RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse); |
| 1666 } | 1813 } |
| OLD | NEW |