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