/*
 * Copyright 2012 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
#include "tests/PathOpsTestCommon.h"

namespace PathOpsCubicIntersectionTestData {

extern const CubicPts pointDegenerates[];
extern const CubicPts notPointDegenerates[];
extern const CubicPts tests[][2];
extern CubicPts hexTests[][2];

extern const CubicPts lines[];
extern const CubicPts notLines[];
extern const CubicPts modEpsilonLines[];
extern const CubicPts lessEpsilonLines[];
extern const CubicPts negEpsilonLines[];

extern const size_t pointDegenerates_count;
extern const size_t notPointDegenerates_count;
extern const size_t tests_count;
extern const size_t hexTests_count;
extern const size_t lines_count;
extern const size_t notLines_count;
extern const size_t modEpsilonLines_count;
extern const size_t lessEpsilonLines_count;
extern const size_t negEpsilonLines_count;

}  // namespace PathOpsCubicIntersectionTestData
