/*
 * 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 "DataTypes.h"
#include "DataTypes_Test.h"

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

extern void convert_testx();

extern const Cubic lines[];
extern const Cubic notLines[];
extern const Cubic modEpsilonLines[];
extern const Cubic lessEpsilonLines[];
extern const Cubic 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;
