blob: 9ec585a73048974e54870c94b18b1a0daa0a5194 [file] [log] [blame]
caryclark@google.com639df892012-01-10 21:46:10 +00001/*
caryclark@google.comb45a1b42012-05-18 20:50:33 +00002 * Copyright 2012 Google Inc.
caryclark@google.com639df892012-01-10 21:46:10 +00003 *
caryclark@google.comb45a1b42012-05-18 20:50:33 +00004 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
caryclark@google.com639df892012-01-10 21:46:10 +00006 */
7
8#include "QuadraticIntersection_TestData.h"
9
caryclark@google.com27accef2012-01-25 18:57:23 +000010const Quadratic quadraticLines[] = {
11 {{0, 0}, {0, 0}, {1, 0}},
12 {{0, 0}, {1, 0}, {0, 0}},
13 {{1, 0}, {0, 0}, {0, 0}},
14 {{1, 0}, {2, 0}, {3, 0}},
15 {{0, 0}, {0, 0}, {0, 1}},
16 {{0, 0}, {0, 1}, {0, 0}},
17 {{0, 1}, {0, 0}, {0, 0}},
18 {{0, 1}, {0, 2}, {0, 3}},
19 {{0, 0}, {0, 0}, {1, 1}},
20 {{0, 0}, {1, 1}, {0, 0}},
21 {{1, 1}, {0, 0}, {0, 0}},
22 {{1, 1}, {2, 2}, {3, 3}},
23 {{1, 1}, {3, 3}, {3, 3}},
24 {{1, 1}, {1, 1}, {2, 2}},
25 {{1, 1}, {2, 2}, {1, 1}},
26 {{1, 1}, {1, 1}, {3, 3}},
27 {{1, 1}, {2, 2}, {4, 4}}, // no coincident
28 {{1, 1}, {3, 3}, {4, 4}},
29 {{1, 1}, {3, 3}, {2, 2}},
30 {{1, 1}, {4, 4}, {2, 2}},
31 {{1, 1}, {4, 4}, {3, 3}},
32 {{2, 2}, {1, 1}, {3, 3}},
33 {{2, 2}, {1, 1}, {4, 4}},
34 {{2, 2}, {3, 3}, {1, 1}},
35 {{2, 2}, {3, 3}, {4, 4}},
36 {{2, 2}, {4, 4}, {1, 1}},
37 {{2, 2}, {4, 4}, {3, 3}},
38};
39
40const size_t quadraticLines_count = sizeof(quadraticLines) / sizeof(quadraticLines[0]);
41
42static const double F = PointEpsilon * 3;
43static const double H = PointEpsilon * 4;
44static const double J = PointEpsilon * 5;
45static const double K = PointEpsilon * 8; // INVESTIGATE: why are larger multiples necessary?
46
47const Quadratic quadraticModEpsilonLines[] = {
48 {{0, F}, {0, 0}, {1, 0}},
49 {{0, 0}, {1, 0}, {0, F}},
50 {{1, 0}, {0, F}, {0, 0}},
51 {{1, H}, {2, 0}, {3, 0}},
52 {{F, 0}, {0, 0}, {0, 1}},
53 {{0, 0}, {0, 1}, {F, 0}},
54 {{0, 1}, {F, 0}, {0, 0}},
55 {{H, 1}, {0, 2}, {0, 3}},
56 {{0, F}, {0, 0}, {1, 1}},
57 {{0, 0}, {1, 1}, {F, 0}},
58 {{1, 1}, {F, 0}, {0, 0}},
59 {{1, 1+J}, {2, 2}, {3, 3}},
60 {{1, 1}, {3, 3}, {3+F, 3}},
61 {{1, 1}, {1+F, 1}, {2, 2}},
62 {{1, 1}, {2, 2}, {1, 1+F}},
63 {{1, 1}, {1, 1+F}, {3, 3}},
64 {{1+H, 1}, {2, 2}, {4, 4}}, // no coincident
65 {{1, 1+K}, {3, 3}, {4, 4}},
66 {{1, 1}, {3+F, 3}, {2, 2}},
67 {{1, 1}, {4, 4+F}, {2, 2}},
68 {{1, 1}, {4, 4}, {3+F, 3}},
69 {{2, 2}, {1, 1}, {3, 3+F}},
70 {{2+F, 2}, {1, 1}, {4, 4}},
71 {{2, 2+F}, {3, 3}, {1, 1}},
72 {{2, 2}, {3+F, 3}, {4, 4}},
73 {{2, 2}, {4, 4+F}, {1, 1}},
74 {{2, 2}, {4, 4}, {3+F, 3}},
75};
76
77const size_t quadraticModEpsilonLines_count = sizeof(quadraticModEpsilonLines) / sizeof(quadraticModEpsilonLines[0]);
78
79const Quadratic quadraticTests[][2] = {
80 { // one intersection
81 {{0, 0},
82 {0, 1},
83 {1, 1}},
84 {{0, 1},
85 {0, 0},
86 {1, 0}}
87 },
88 { // four intersections
89 {{1, 0},
90 {2, 6},
91 {3, 0}},
92 {{0, 1},
93 {6, 2},
94 {0, 3}}
95 }
96};
97
98const size_t quadraticTests_count = sizeof(quadraticTests) / sizeof(quadraticTests[0]);