/*
 * 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 "PathOpsTestCommon.h"

extern const QuadPts quadraticLines[];
extern const QuadPts quadraticPoints[];
extern const QuadPts quadraticModEpsilonLines[];
extern const QuadPts quadraticTests[][2];

extern const size_t quadraticLines_count;
extern const size_t quadraticPoints_count;
extern const size_t quadraticModEpsilonLines_count;
extern const size_t quadraticTests_count;
