19e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com/* 29e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com * Copyright 2012 Google Inc. 39e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com * 49e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com * Use of this source code is governed by a BSD-style license that can be 59e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com * found in the LICENSE file. 69e49fb63d355446b91d20ff78ad78b297e89a50dcaryclark@google.com */ 727accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com#include "CubicIntersection_TestData.h" 827accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com#include "Intersection_Tests.h" 927accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com 1027accef223a27fba437f5e825d99edbae20a045bcaryclark@google.comvoid cubecode_test(int test); 11beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.comvoid parseSVG(); 1227accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com 13fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com#define TEST_QUADS_FIRST 0 1478e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 1527accef223a27fba437f5e825d99edbae20a045bcaryclark@google.comvoid Intersection_Tests() { 1624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com int testsRun = 0; 17ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com#if 0 18ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com CubicIntersection_OneOffTest(); 19ebf95ba28db75212a1313edc947ed68decc30273caryclark@google.com CubicIntersection_SelfTest(); 201304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com QuadraticIntersection_IntersectionFinder(); 211304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com QuadraticIntersection_OneOffTest(); 22f9502d7dfad5b361a3cdaa42eb75b593c95f79d8caryclark@google.com CubicIntersection_IntersectionFinder(); 231304bb25aa3b0baa61fc2e2900fabcef88801b59caryclark@google.com CubicUtilities_Test(); 24c83c70e911a38aea03db4af8dd9841d0d77bd129caryclark@google.com#endif 2547d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com SimplifyNew_Test(); 2647d73daa7a971e7eee5822def7922f7d43b2dc47caryclark@google.com CubicsToQuadratics_OneOffTest(); 2773ca6243b31e225e9fd5b75a96cbc82d62557de6caryclark@google.com CubicIntersection_OneOffTest(); 285e0500fb5f17fe14db42fc3e0aad08e6b41ccc5fcaryclark@google.com// CubicIntersection_OneOffTests(); 29beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com #if 0 30beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com parseSVG(); 31beda389e646d6be3cfef853584a78ca8ba39d0fccaryclark@google.com #endif 3245a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com// QuadraticIntersection_PointFinder(); 33aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com ShapeOps4x4CubicsThreaded_Test(testsRun); 34aa35831d1d0e4c798a63fe772430adc4f3a038cdcaryclark@google.com CubicToQuadratics_Test(); 3585ec74ca543b13739db1ad55dedd7bdfae4ab1a6caryclark@google.com QuadraticIntersection_Test(); 369f60291c5375457f8adf228dbe6e8ff1186b13e1caryclark@google.com QuarticRoot_Test(); 379f60291c5375457f8adf228dbe6e8ff1186b13e1caryclark@google.com CubicIntersection_RandTest(); 38d68bc309bbc3f0f4c3107cf4fa60ce1ff4847b75caryclark@google.com CubicsToQuadratics_RandTest(); 398f9f468b0555e95b8fc3cf4e6ee1f1fbf5492a1bcaryclark@google.com Simplify4x4RectsThreaded_Test(testsRun); 4024bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com Simplify4x4QuadraticsThreaded_Test(testsRun); 4103f970652e07c6832cae41fa374cb68ca80d472ccaryclark@google.com QuadLineIntersectThreaded_Test(testsRun); 4224bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com SimplifyNondegenerate4x4TrianglesThreaded_Test(testsRun); 4324bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com SimplifyDegenerate4x4TrianglesThreaded_Test(testsRun); 4424bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com Simplify4x4QuadralateralsThreaded_Test(testsRun); 45e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com ShapeOps4x4RectsThreaded_Test(testsRun); 4624bec79d6f3d71ff97b50db72461a3892bd4f6b5caryclark@google.com SkDebugf("%s total testsRun=%d\n", __FUNCTION__, testsRun); 47e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com LineQuadraticIntersection_Test(); 48e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com MiniSimplify_Test(); 49e7bd5f4041701cbab87f6e779eb18fbb9fe74216caryclark@google.com SimplifyAngle_Test(); 5032546db1494a6c6433a7919844133a6ff5b5c7b2caryclark@google.com QuadraticBezierClip_Test(); 511577e8f9c5bc8436cc71d3438c6d0b9f02c38338caryclark@google.com SimplifyFindNext_Test(); 52b45a1b46ee25e9b19800b028bb1ca925212ac7b4caryclark@google.com SimplifyFindTop_Test(); 53b45a1b46ee25e9b19800b028bb1ca925212ac7b4caryclark@google.com QuadraticReduceOrder_Test(); 54fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com SimplifyAddIntersectingTs_Test(); 55d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com 5627accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com cubecode_test(1); 5727accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com convert_testx(); 5827accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com // tests are in dependency / complexity order 5927accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com Inline_Tests(); 6027accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com ConvexHull_Test(); 6127accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com ConvexHull_X_Test(); 6227accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com 6327accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com LineParameter_Test(); 6427accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com LineIntersection_Test(); 6527accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com LineCubicIntersection_Test(); 6627accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com 67a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com SimplifyQuadraticPaths_Test(); 68a5764233aa6b207c4169fff7fccae567a160a0fdcaryclark@google.com 694917f17bf6bd8bff7f4b03717dcb02561cf227c9caryclark@google.com SimplifyPolygonPaths_Test(); 702e7f4c810dc717383df42d27bdba862514ab6d51caryclark@google.com SimplifyRectangularPaths_Test(); 714917f17bf6bd8bff7f4b03717dcb02561cf227c9caryclark@google.com SimplifyQuadralateralPaths_Test(); 7278e17130f396d8b2157116c2504e357192f87ed1caryclark@google.com 7345a8fc6a8b00451f807783f2a6ec640e9bcc7256caryclark@google.com // ActiveEdge_Test(); 74d88e0894d0156f4d427b812fec69bfba3eec7a8dcaryclark@google.com 7527accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com QuadraticCoincidence_Test(); 7627accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com QuadraticIntersection_Test(); 7727accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com 7827accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com CubicParameterization_Test(); 7927accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com CubicCoincidence_Test(); 8027accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com CubicReduceOrder_Test(); 8127accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com CubicBezierClip_Test(); 8227accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com CubicIntersection_Test(); 83c682590538a27d73489bc91c098e000fdfb07ccfcaryclark@google.com 8427accef223a27fba437f5e825d99edbae20a045bcaryclark@google.com} 85