use crate::prelude::MaximumTracker;
use crate::probe::tapered_end::ConeProperties;
use crate::probe::tapered_end_to_edge::{
solve_steep_cone_y_zero_case_line_in_xz_plane, tapered_end_to_edge_collision,
};
use crate::probe::xy_distance_to_line_squared;
use vector_traits::approx::ulps_eq;
use vector_traits::glam::{DVec2, DVec3};
fn compare_results(
a: Option<f64>,
b: Option<f64>,
center: DVec2,
p0: DVec3,
p1: DVec3,
cone: ConeProperties<DVec3>,
) {
match (a, b) {
(Some(cz), Some(max)) => {
assert!(
ulps_eq!(cz, max, max_ulps = 1),
"center:{:}, p0:{:}, p1:{:}, cr:{} ch:{} cz:{:?} != {:?}",
center,
p0,
p1,
cone.radius,
cone.height,
cz,
max,
);
}
(Some(_), None) | (None, Some(_)) => {
unreachable!(
"center:{:}, p0:{:}, p1:{:}, cr:{}, ch:{}, cz:{:?} mt:{:?}",
center, p0, p1, cone.radius, cone.height, a, b
);
}
(None, None) => {
}
}
}
fn do_cone_test(
test_data: &[(Option<f64>, (f64, f64))],
p0: DVec3,
p1: DVec3,
cone: ConeProperties<DVec3>,
) {
for (cz, center) in test_data {
let center = DVec2::new(center.0, center.1);
let mut mt = MaximumTracker::default();
let edge = crate::debug_access::xy_distance_to_line_squared(center, p0, p1);
tapered_end_to_edge_collision(edge, cone, 0, &mut mt);
compare_results(*cz, mt.get_max().map(|x| x.z_value), center, p0, p1, cone)
}
}
fn do_cone_zero_test(
test_data: &[(Option<f64>, f64)],
p0: DVec3,
p1: DVec3,
cone: ConeProperties<DVec3>,
) {
for (cz, offset) in test_data {
let offset = DVec3::new(*offset, 0.0, 0.0);
let center = DVec2::new(0.0, 0.0);
let mut mt = MaximumTracker::default();
let edge = xy_distance_to_line_squared(center, p0 + offset, p1 + offset);
let line_vec = p1 - p0;
solve_steep_cone_y_zero_case_line_in_xz_plane(
edge,
cone,
line_vec[2] / line_vec[0], 0,
&mut mt,
);
compare_results(*cz, mt.get_max().map(|x| x.z_value), center, p0, p1, cone)
}
}
#[test]
fn test_steep_edge_cone_1() {
#[rustfmt::skip]
let test_data: [(Option<f64>, (f64, f64)); 368] = [
(None, (-1.3013, -0.4794263157894737)), (None, (-1.3013, -0.3424473684210527)),
(None, (-1.3013, -0.20546842105263163)), (None, (-1.3013, -0.06848947368421054)),
(None, (-1.3013, 0.06848947368421054)), (None, (-1.3013, 0.2054684210526314)),
(None, (-1.3013, 0.3424473684210525)), (None, (-1.3013, 0.4794263157894736)),
(None, (-0.9011631578947368, -1.0273421052631577)), (Some(-0.9539285264207222), (-0.9011631578947368, -0.8903631578947369)),
(Some(-0.8417235742800597), (-0.9011631578947368, -0.7533842105263158)), (Some(-0.7565913813987205), (-0.9011631578947368, -0.6164052631578947)),
(Some(-0.6927963229772386), (-0.9011631578947368, -0.4794263157894737)), (Some(-0.647077913638392), (-0.9011631578947368, -0.3424473684210527)), (Some(-0.6175032621473706), (-0.9011631578947368, -0.20546842105263163)),
(Some(-0.602968568476625), (-0.9011631578947368, -0.06848947368421054)), (Some(-0.602968568476625), (-0.9011631578947368, 0.06848947368421054)), (Some(-0.6175032621473706), (-0.9011631578947368, 0.2054684210526314)),
(Some(-0.647077913638392), (-0.9011631578947368, 0.3424473684210525)), (Some(-0.6927963229772386), (-0.9011631578947368, 0.4794263157894736)), (Some(-0.7565913813987203), (-0.9011631578947368, 0.6164052631578945)),
(Some(-0.8417235742800597), (-0.9011631578947368, 0.7533842105263155)), (Some(-0.9539285264207219), (-0.9011631578947368, 0.8903631578947366)), (None, (-0.9011631578947368, 1.0273421052631577)),
(None, (-0.5010263157894737, -1.3013)), (Some(-0.9227906489555326), (-0.5010263157894737, -1.1643210526315788)), (Some(-0.7044284255377715), (-0.5010263157894737, -1.0273421052631577)),
(Some(-0.5537916843154593), (-0.5010263157894737, -0.8903631578947369)), (Some(-0.4415867321747966), (-0.5010263157894737, -0.7533842105263158)), (Some(-0.3564545392934574), (-0.5010263157894737, -0.6164052631578947)),
(Some(-0.29265948087197546), (-0.5010263157894737, -0.4794263157894737)), (Some(-0.24694107153312883), (-0.5010263157894737, -0.3424473684210527)), (Some(-0.2173664200421077), (-0.5010263157894737, -0.20546842105263163)),
(Some(-0.20283172637136193), (-0.5010263157894737, -0.06848947368421054)), (Some(-0.20283172637136193), (-0.5010263157894737, 0.06848947368421054)), (Some(-0.2173664200421077), (-0.5010263157894737, 0.2054684210526314)),
(Some(-0.24694107153312883), (-0.5010263157894737, 0.3424473684210525)), (Some(-0.29265948087197546), (-0.5010263157894737, 0.4794263157894736)), (Some(-0.35645453929345716), (-0.5010263157894737, 0.6164052631578945)),
(Some(-0.4415867321747966), (-0.5010263157894737, 0.7533842105263155)), (Some(-0.553791684315459), (-0.5010263157894737, 0.8903631578947366)), (Some(-0.7044284255377715), (-0.5010263157894737, 1.0273421052631577)),
(Some(-0.9227906489555326), (-0.5010263157894737, 1.1643210526315788)), (None, (-0.5010263157894737, 1.3013)), (None, (-0.10088947368421053, -1.3013)),
(Some(-0.5226538068502695), (-0.10088947368421053, -1.1643210526315788)), (Some(-0.3042915834325082), (-0.10088947368421053, -1.0273421052631577)), (Some(-0.15365484221019599), (-0.10088947368421053, -0.8903631578947369)),
(Some(-0.04144989006953348), (-0.10088947368421053, -0.7533842105263158)), (Some(0.04368230281180563), (-0.10088947368421053, -0.6164052631578947)), (Some(0.10747736123328755), (-0.10088947368421053, -0.4794263157894737)),
(Some(0.15319577057213407), (-0.10088947368421053, -0.3424473684210527)), (Some(0.1827704220631554), (-0.10088947368421053, -0.20546842105263163)), (Some(0.1973051157339012), (-0.10088947368421053, -0.06848947368421054)),
(Some(0.1973051157339012), (-0.10088947368421053, 0.06848947368421054)), (Some(0.1827704220631554), (-0.10088947368421053, 0.2054684210526314)), (Some(0.1531957705721343), (-0.10088947368421053, 0.3424473684210525)),
(Some(0.10747736123328755), (-0.10088947368421053, 0.4794263157894736)), (Some(0.04368230281180607), (-0.10088947368421053, 0.6164052631578945)), (Some(-0.04144989006953348), (-0.10088947368421053, 0.7533842105263155)),
(Some(-0.15365484221019587), (-0.10088947368421053, 0.8903631578947366)), (Some(-0.3042915834325082), (-0.10088947368421053, 1.0273421052631577)), (Some(-0.5226538068502695), (-0.10088947368421053, 1.1643210526315788)),
(None, (-0.10088947368421053, 1.3013)), (None, (0.2992473684210526, -1.3013)), (Some(-0.12251696474500617), (0.2992473684210526, -1.1643210526315788)),
(Some(0.09584525867275473), (0.2992473684210526, -1.0273421052631577)), (Some(0.24648199989506692), (0.2992473684210526, -0.8903631578947369)), (Some(0.3586869520357292), (0.2992473684210526, -0.7533842105263158)),
(Some(0.44381914491706875), (0.2992473684210526, -0.6164052631578947)), (Some(0.5076142033385507), (0.2992473684210526, -0.4794263157894737)), (Some(0.5533326126773972), (0.2992473684210526, -0.3424473684210527)),
(Some(0.5829072641684185), (0.2992473684210526, -0.20546842105263163)), (Some(0.5974419578391643), (0.2992473684210526, -0.06848947368421054)), (Some(0.5974419578391643), (0.2992473684210526, 0.06848947368421054)),
(Some(0.5829072641684185), (0.2992473684210526, 0.2054684210526314)), (Some(0.5533326126773974), (0.2992473684210526, 0.3424473684210525)), (Some(0.5076142033385509), (0.2992473684210526, 0.4794263157894736)),
(Some(0.4438191449170692), (0.2992473684210526, 0.6164052631578945)), (Some(0.35868695203572987), (0.2992473684210526, 0.7533842105263155)), (Some(0.24648199989506736), (0.2992473684210526, 0.8903631578947366)),
(Some(0.09584525867275473), (0.2992473684210526, 1.0273421052631577)), (Some(-0.12251696474500617), (0.2992473684210526, 1.1643210526315788)), (None, (0.2992473684210526, 1.3013)),
(None, (0.6993842105263157, -1.3013)), (Some(0.2776198773602565), (0.6993842105263157, -1.1643210526315788)), (Some(0.49598210077801763), (0.6993842105263157, -1.0273421052631577)),
(Some(0.6466188420003303), (0.6993842105263157, -0.8903631578947369)), (Some(0.7588237941409925), (0.6993842105263157, -0.7533842105263158)), (Some(0.8439559870223321), (0.6993842105263157, -0.6164052631578947)),
(Some(0.907751045443814), (0.6993842105263157, -0.4794263157894737)), (Some(0.9534694547826603), (0.6993842105263157, -0.3424473684210527)), (Some(0.9830441062736817), (0.6993842105263157, -0.20546842105263163)),
(Some(0.9975787999444274), (0.6993842105263157, -0.06848947368421054)), (Some(0.9975787999444274), (0.6993842105263157, 0.06848947368421054)), (Some(0.9830441062736817), (0.6993842105263157, 0.2054684210526314)),
(Some(0.9534694547826603), (0.6993842105263157, 0.3424473684210525)), (Some(0.907751045443814), (0.6993842105263157, 0.4794263157894736)), (Some(0.8439559870223321), (0.6993842105263157, 0.6164052631578945)),
(Some(0.758823794140993), (0.6993842105263157, 0.7533842105263155)), (Some(0.6466188420003305), (0.6993842105263157, 0.8903631578947366)), (Some(0.49598210077801763), (0.6993842105263157, 1.0273421052631577)),
(Some(0.2776198773602565), (0.6993842105263157, 1.1643210526315788)), (None, (0.6993842105263157, 1.3013)), (None, (1.0995210526315788, -1.3013)),
(Some(0.6777567194655194), (1.0995210526315788, -1.1643210526315788)), (Some(0.8961189428832812), (1.0995210526315788, -1.0273421052631577)), (Some(1.0467556841055932), (1.0995210526315788, -0.8903631578947369)),
(Some(1.1589606362462552), (1.0995210526315788, -0.7533842105263158)), (Some(1.2440928291275952), (1.0995210526315788, -0.6164052631578947)), (Some(1.3078878875490765), (1.0995210526315788, -0.4794263157894737)),
(Some(1.3536062968879232), (1.0995210526315788, -0.3424473684210527)), (Some(1.383180948378945), (1.0995210526315788, -0.20546842105263163)), (Some(1.3977156420496906), (1.0995210526315788, -0.06848947368421054)),
(Some(1.3977156420496906), (1.0995210526315788, 0.06848947368421054)), (Some(1.383180948378945), (1.0995210526315788, 0.2054684210526314)), (Some(1.3536062968879232), (1.0995210526315788, 0.3424473684210525)),
(Some(1.3078878875490765), (1.0995210526315788, 0.4794263157894736)), (Some(1.2440928291275952), (1.0995210526315788, 0.6164052631578945)), (Some(1.1589606362462557), (1.0995210526315788, 0.7533842105263155)),
(Some(1.0467556841055932), (1.0995210526315788, 0.8903631578947366)), (Some(0.8961189428832812), (1.0995210526315788, 1.0273421052631577)), (Some(0.6777567194655194), (1.0995210526315788, 1.1643210526315788)),
(None, (1.0995210526315788, 1.3013)), (None, (1.499657894736842, -1.3013)), (Some(1.0778935615707828), (1.499657894736842, -1.1643210526315788)),
(Some(1.2962557849885443), (1.499657894736842, -1.0273421052631577)), (Some(1.4468925262108563), (1.499657894736842, -0.8903631578947369)), (Some(1.5590974783515192), (1.499657894736842, -0.7533842105263158)),
(Some(1.6442296712328583), (1.499657894736842, -0.6164052631578947)), (Some(1.7080247296543396), (1.499657894736842, -0.4794263157894737)), (Some(1.7537431389931868), (1.499657894736842, -0.3424473684210527)),
(Some(1.7833177904842081), (1.499657894736842, -0.20546842105263163)), (Some(1.7978524841549532), (1.499657894736842, -0.06848947368421054)), (Some(1.7978524841549532), (1.499657894736842, 0.06848947368421054)),
(Some(1.7833177904842081), (1.499657894736842, 0.2054684210526314)), (Some(1.7537431389931868), (1.499657894736842, 0.3424473684210525)), (Some(1.7080247296543396), (1.499657894736842, 0.4794263157894736)),
(Some(1.6442296712328583), (1.499657894736842, 0.6164052631578945)), (Some(1.5590974783515192), (1.499657894736842, 0.7533842105263155)), (Some(1.4468925262108572), (1.499657894736842, 0.8903631578947366)),
(Some(1.2962557849885443), (1.499657894736842, 1.0273421052631577)), (Some(1.0778935615707828), (1.499657894736842, 1.1643210526315788)), (None, (1.499657894736842, 1.3013)),
(None, (1.899794736842105, -1.3013)), (Some(1.4780304036760468), (1.899794736842105, -1.1643210526315788)), (Some(1.6963926270938074), (1.899794736842105, -1.0273421052631577)),
(Some(1.8470293683161199), (1.899794736842105, -0.8903631578947369)), (Some(1.9592343204567828), (1.899794736842105, -0.7533842105263158)), (Some(2.0443665133381215), (1.899794736842105, -0.6164052631578947)),
(Some(2.108161571759603), (1.899794736842105, -0.4794263157894737)), (Some(2.1538799810984504), (1.899794736842105, -0.3424473684210527)), (Some(2.1834546325894713), (1.899794736842105, -0.20546842105263163)),
(Some(2.197989326260217), (1.899794736842105, -0.06848947368421054)), (Some(2.197989326260217), (1.899794736842105, 0.06848947368421054)), (Some(2.1834546325894713), (1.899794736842105, 0.2054684210526314)),
(Some(2.1538799810984504), (1.899794736842105, 0.3424473684210525)), (Some(2.108161571759603), (1.899794736842105, 0.4794263157894736)), (Some(2.0443665133381215), (1.899794736842105, 0.6164052631578945)),
(Some(1.9592343204567828), (1.899794736842105, 0.7533842105263155)), (Some(1.8470293683161199), (1.899794736842105, 0.8903631578947366)), (Some(1.6963926270938074), (1.899794736842105, 1.0273421052631577)),
(Some(1.4780304036760468), (1.899794736842105, 1.1643210526315788)), (None, (1.899794736842105, 1.3013)), (None, (2.299931578947368, -1.3013)),
(Some(1.8781672457813103), (2.299931578947368, -1.1643210526315788)), (Some(2.0965294691990715), (2.299931578947368, -1.0273421052631577)), (Some(2.2471662104213834), (2.299931578947368, -0.8903631578947369)),
(Some(2.359371162562046), (2.299931578947368, -0.7533842105263158)), (Some(2.4445033554433846), (2.299931578947368, -0.6164052631578947)), (Some(2.508298413864867), (2.299931578947368, -0.4794263157894737)),
(Some(2.5540168232037135), (2.299931578947368, -0.3424473684210527)), (Some(2.5835914746947344), (2.299931578947368, -0.20546842105263163)), (Some(2.598126168365481), (2.299931578947368, -0.06848947368421054)),
(Some(2.598126168365481), (2.299931578947368, 0.06848947368421054)), (Some(2.5835914746947344), (2.299931578947368, 0.2054684210526314)), (Some(2.5540168232037135), (2.299931578947368, 0.3424473684210525)),
(Some(2.508298413864867), (2.299931578947368, 0.4794263157894736)), (Some(2.4445033554433846), (2.299931578947368, 0.6164052631578945)), (Some(2.359371162562046), (2.299931578947368, 0.7533842105263155)),
(Some(2.2471662104213834), (2.299931578947368, 0.8903631578947366)), (Some(2.0965294691990715), (2.299931578947368, 1.0273421052631577)), (Some(1.8781672457813103), (2.299931578947368, 1.1643210526315788)),
(None, (2.299931578947368, 1.3013)), (None, (2.7000684210526313, -1.3013)), (Some(2.278304087886572), (2.7000684210526313, -1.1643210526315788)),
(Some(2.4966663113043337), (2.7000684210526313, -1.0273421052631577)), (Some(2.647303052526645), (2.7000684210526313, -0.8903631578947369)), (Some(2.7595080046673086), (2.7000684210526313, -0.7533842105263158)),
(Some(2.8446401975486473), (2.7000684210526313, -0.6164052631578947)), (Some(2.9084352559701285), (2.7000684210526313, -0.4794263157894737)), (Some(2.9541536653089757), (2.7000684210526313, -0.3424473684210527)),
(Some(2.983728316799997), (2.7000684210526313, -0.20546842105263163)), (Some(2.9982630104707435), (2.7000684210526313, -0.06848947368421054)), (Some(2.9982630104707435), (2.7000684210526313, 0.06848947368421054)),
(Some(2.983728316799997), (2.7000684210526313, 0.2054684210526314)), (Some(2.9541536653089757), (2.7000684210526313, 0.3424473684210525)), (Some(2.9084352559701285), (2.7000684210526313, 0.4794263157894736)),
(Some(2.8446401975486473), (2.7000684210526313, 0.6164052631578945)), (Some(2.7595080046673086), (2.7000684210526313, 0.7533842105263155)), (Some(2.647303052526645), (2.7000684210526313, 0.8903631578947366)),
(Some(2.4966663113043337), (2.7000684210526313, 1.0273421052631577)), (Some(2.278304087886572), (2.7000684210526313, 1.1643210526315788)), (None, (2.7000684210526313, 1.3013)),
(None, (3.100205263157894, -1.3013)), (Some(2.6784409299918357), (3.100205263157894, -1.1643210526315788)), (Some(2.8968031534095964), (3.100205263157894, -1.0273421052631577)),
(Some(3.047439894631909), (3.100205263157894, -0.8903631578947369)), (Some(3.1596448467725704), (3.100205263157894, -0.7533842105263158)), (Some(3.2447770396539113), (3.100205263157894, -0.6164052631578947)),
(Some(3.308572098075391), (3.100205263157894, -0.4794263157894737)), (Some(3.3542905074142393), (3.100205263157894, -0.3424473684210527)), (Some(3.3838651589052606), (3.100205263157894, -0.20546842105263163)),
(Some(3.3983998525760066), (3.100205263157894, -0.06848947368421054)), (Some(3.3983998525760066), (3.100205263157894, 0.06848947368421054)), (Some(3.3838651589052606), (3.100205263157894, 0.2054684210526314)),
(Some(3.3542905074142393), (3.100205263157894, 0.3424473684210525)), (Some(3.308572098075391), (3.100205263157894, 0.4794263157894736)), (Some(3.2447770396539113), (3.100205263157894, 0.6164052631578945)),
(Some(3.1596448467725713), (3.100205263157894, 0.7533842105263155)), (Some(3.047439894631909), (3.100205263157894, 0.8903631578947366)), (Some(2.8968031534095964), (3.100205263157894, 1.0273421052631577)),
(Some(2.6784409299918357), (3.100205263157894, 1.1643210526315788)), (None, (3.100205263157894, 1.3013)), (None, (3.5003421052631576, -1.3013)),
(Some(3.0785777720970984), (3.5003421052631576, -1.1643210526315788)), (Some(3.29693999551486), (3.5003421052631576, -1.0273421052631577)), (Some(3.4475767367371706), (3.5003421052631576, -0.8903631578947369)),
(Some(3.559781688877833), (3.5003421052631576, -0.7533842105263158)), (Some(3.644913881759173), (3.5003421052631576, -0.6164052631578947)), (Some(3.708708940180654), (3.5003421052631576, -0.4794263157894737)),
(Some(3.754427349519502), (3.5003421052631576, -0.3424473684210527)), (Some(3.7840020010105233), (3.5003421052631576, -0.20546842105263163)), (Some(3.7985366946812693), (3.5003421052631576, -0.06848947368421054)),
(Some(3.7985366946812693), (3.5003421052631576, 0.06848947368421054)), (Some(3.7840020010105233), (3.5003421052631576, 0.2054684210526314)), (Some(3.754427349519502), (3.5003421052631576, 0.3424473684210525)),
(Some(3.708708940180654), (3.5003421052631576, 0.4794263157894736)), (Some(3.644913881759173), (3.5003421052631576, 0.6164052631578945)), (Some(3.559781688877834), (3.5003421052631576, 0.7533842105263155)),
(Some(3.4475767367371706), (3.5003421052631576, 0.8903631578947366)), (Some(3.29693999551486), (3.5003421052631576, 1.0273421052631577)), (Some(3.0785777720970984), (3.5003421052631576, 1.1643210526315788)),
(None, (3.5003421052631576, 1.3013)), (None, (3.900478947368421, -1.3013)), (Some(3.47871461420236), (3.900478947368421, -1.1643210526315788)),
(Some(3.6970768376201217), (3.900478947368421, -1.0273421052631577)), (Some(3.847713578842435), (3.900478947368421, -0.8903631578947369)), (Some(3.9599185309830975), (3.900478947368421, -0.7533842105263158)),
(Some(4.0303718782672835), (3.900478947368421, -0.6164052631578947)), (Some(4.077309010982594), (3.900478947368421, -0.4794263157894737)), (Some(4.114142428895496), (3.900478947368421, -0.3424473684210527)),
(Some(4.139573582656441), (3.900478947368421, -0.20546842105263163)), (Some(4.152575306382672), (3.900478947368421, -0.06848947368421054)), (Some(4.152575306382672), (3.900478947368421, 0.06848947368421054)),
(Some(4.139573582656441), (3.900478947368421, 0.2054684210526314)), (Some(4.114142428895496), (3.900478947368421, 0.3424473684210525)), (Some(4.077309010982594), (3.900478947368421, 0.4794263157894736)),
(Some(4.0303718782672835), (3.900478947368421, 0.6164052631578945)), (Some(3.9599185309830984), (3.900478947368421, 0.7533842105263155)), (Some(3.847713578842436), (3.900478947368421, 0.8903631578947366)),
(Some(3.6970768376201217), (3.900478947368421, 1.0273421052631577)), (Some(3.47871461420236), (3.900478947368421, 1.1643210526315788)), (None, (3.900478947368421, 1.3013)),
(None, (4.300615789473683, -1.3013)), (Some(3.8788514563076193), (4.300615789473683, -1.1643210526315788)), (Some(4.043994356686442), (4.300615789473683, -1.0273421052631577)),
(Some(4.129074209891781), (4.300615789473683, -0.8903631578947369)), (Some(4.209252453678085), (4.300615789473683, -0.7533842105263158)), (Some(4.282883105440345), (4.300615789473683, -0.6164052631578947)),
(Some(4.347744982984503), (4.300615789473683, -0.4794263157894737)), (Some(4.400982819702858), (4.300615789473683, -0.3424473684210527)), (Some(4.439275855994555), (4.300615789473683, -0.20546842105263163)),
(Some(4.459438664571364), (4.300615789473683, -0.06848947368421054)), (Some(4.459438664571364), (4.300615789473683, 0.06848947368421054)), (Some(4.439275855994555), (4.300615789473683, 0.2054684210526314)),
(Some(4.400982819702858), (4.300615789473683, 0.3424473684210525)), (Some(4.347744982984503), (4.300615789473683, 0.4794263157894736)), (Some(4.282883105440345), (4.300615789473683, 0.6164052631578945)),
(Some(4.209252453678085), (4.300615789473683, 0.7533842105263155)), (Some(4.129074209891781), (4.300615789473683, 0.8903631578947366)), (Some(4.043994356686442), (4.300615789473683, 1.0273421052631577)),
(Some(3.8788514563076193), (4.300615789473683, 1.1643210526315788)), (None, (4.300615789473683, 1.3013)), (None, (4.700752631578947, -1.3013)),
(Some(4.075260311341672), (4.700752631578947, -1.1643210526315788)), (Some(4.176894037624616), (4.700752631578947, -1.0273421052631577)), (Some(4.277457013648211), (4.700752631578947, -0.8903631578947369)),
(Some(4.376430984361261), (4.700752631578947, -0.7533842105263158)), (Some(4.472920048082438), (4.700752631578947, -0.6164052631578947)), (Some(4.565266469578867), (4.700752631578947, -0.4794263157894737)),
(Some(4.650174018200943), (4.700752631578947, -0.3424473684210527)), (Some(4.720772134411381), (4.700752631578947, -0.20546842105263163)), (Some(4.763857685683132), (4.700752631578947, -0.06848947368421054)),
(Some(4.763857685683132), (4.700752631578947, 0.06848947368421054)), (Some(4.720772134411382), (4.700752631578947, 0.2054684210526314)), (Some(4.650174018200943), (4.700752631578947, 0.3424473684210525)),
(Some(4.565266469578867), (4.700752631578947, 0.4794263157894736)), (Some(4.472920048082438), (4.700752631578947, 0.6164052631578945)), (Some(4.376430984361261), (4.700752631578947, 0.7533842105263155)),
(Some(4.277457013648211), (4.700752631578947, 0.8903631578947366)), (Some(4.176894037624616), (4.700752631578947, 1.0273421052631577)), (Some(4.075260311341672), (4.700752631578947, 1.1643210526315788)),
(None, (4.700752631578947, 1.3013)), (None, (5.1008894736842105, -1.3013)), (Some(4.1010123380863295), (5.1008894736842105, -1.1643210526315788)),
(Some(4.205935298737556), (5.1008894736842105, -1.0273421052631577)), (Some(4.3107223406933395), (5.1008894736842105, -0.8903631578947369)), (Some(4.415300383309709), (5.1008894736842105, -0.7533842105263158)),
(Some(4.519532935357139), (5.1008894736842105, -0.6164052631578947)), (Some(4.6231332238502185), (5.1008894736842105, -0.4794263157894737)), (Some(4.72538473816122), (5.1008894736842105, -0.3424473684210527)),
(Some(4.823921820164215), (5.1008894736842105, -0.20546842105263163)), (Some(4.906199588998588), (5.1008894736842105, -0.06848947368421054)), (Some(4.906199588998588), (5.1008894736842105, 0.06848947368421054)),
(Some(4.823921820164215), (5.1008894736842105, 0.2054684210526314)), (Some(4.72538473816122), (5.1008894736842105, 0.3424473684210525)), (Some(4.6231332238502185), (5.1008894736842105, 0.4794263157894736)),
(Some(4.519532935357139), (5.1008894736842105, 0.6164052631578945)), (Some(4.415300383309709), (5.1008894736842105, 0.7533842105263155)), (Some(4.3107223406933395), (5.1008894736842105, 0.8903631578947366)),
(Some(4.205935298737556), (5.1008894736842105, 1.0273421052631577)), (Some(4.1010123380863295), (5.1008894736842105, 1.1643210526315788)), (None, (5.1008894736842105, 1.3013)),
(None, (5.501026315789474, -1.3013)), (Some(4.024965216000636), (5.501026315789474, -1.1643210526315788)), (Some(4.120765808486333), (5.501026315789474, -1.0273421052631577)),
(Some(4.214113427169704), (5.501026315789474, -0.8903631578947369)), (Some(4.304020362730739), (5.501026315789474, -0.7533842105263158)), (Some(4.388965946986417), (5.501026315789474, -0.6164052631578947)),
(Some(4.466574671860055), (5.501026315789474, -0.4794263157894737)), (Some(4.5331728844952766), (5.501026315789474, -0.3424473684210527)), (Some(4.583445634820661), (5.501026315789474, -0.20546842105263163)),
(Some(4.6110108859624575), (5.501026315789474, -0.06848947368421054)), (Some(4.6110108859624575), (5.501026315789474, 0.06848947368421054)), (Some(4.583445634820661), (5.501026315789474, 0.2054684210526314)),
(Some(4.5331728844952766), (5.501026315789474, 0.3424473684210525)), (Some(4.466574671860055), (5.501026315789474, 0.4794263157894736)), (Some(4.388965946986418), (5.501026315789474, 0.6164052631578945)),
(Some(4.304020362730739), (5.501026315789474, 0.7533842105263155)), (Some(4.214113427169704), (5.501026315789474, 0.8903631578947366)), (Some(4.120765808486333), (5.501026315789474, 1.0273421052631577)),
(Some(4.024965216000636), (5.501026315789474, 1.1643210526315788)), (None, (5.501026315789474, 1.3013)), (None, (5.901163157894736, -1.0273421052631577)),
(Some(4.025520442321546), (5.901163157894736, -0.8903631578947369)), (Some(4.096462309324232), (5.901163157894736, -0.7533842105263158)), (Some(4.16014565731881), (5.901163157894736, -0.6164052631578947)),
(Some(4.214802391955085), (5.901163157894736, -0.4794263157894737)), (Some(4.258433914779871), (5.901163157894736, -0.3424473684210527)), (Some(4.289007565350932), (5.901163157894736, -0.20546842105263163)),
(Some(4.304798422169541), (5.901163157894736, -0.06848947368421054)), (Some(4.304798422169541), (5.901163157894736, 0.06848947368421054)), (Some(4.289007565350932), (5.901163157894736, 0.2054684210526314)),
(Some(4.258433914779871), (5.901163157894736, 0.3424473684210525)), (Some(4.214802391955085), (5.901163157894736, 0.4794263157894736)), (Some(4.16014565731881), (5.901163157894736, 0.6164052631578945)),
(Some(4.096462309324232), (5.901163157894736, 0.7533842105263155)), (Some(4.025520442321546), (5.901163157894736, 0.8903631578947366)), (None, (5.901163157894736, 1.0273421052631577)),
(None, (6.3012999999999995, -0.4794263157894737)), (None, (6.3012999999999995, -0.3424473684210527)), (None, (6.3012999999999995, -0.20546842105263163)),
(None, (6.3012999999999995, -0.06848947368421054)), (None, (6.3012999999999995, 0.06848947368421054)), (None, (6.3012999999999995, 0.2054684210526314)),
(None, (6.3012999999999995, 0.3424473684210525)), (None, (6.3012999999999995, 0.4794263157894736)),
];
let p0 = DVec3::new(0.0, 0.0, 0.0);
let p1 = DVec3::new(5.0, 0.0, 5.0);
do_cone_test(&test_data, p0, p1, ConeProperties::new(1.3, 1.0));
}
#[test]
fn test_steep_cone_1() {
#[rustfmt::skip]
let test_data: [(Option<f64>, (f64, f64)); 368] = [
(None, (-1.3013, -0.4794263157894737)), (None, (-1.3013, -0.3424473684210527)), (None, (-1.3013, -0.20546842105263163)),
(None, (-1.3013, -0.06848947368421054)), (None, (-1.3013, 0.06848947368421054)), (None, (-1.3013, 0.2054684210526314)),
(None, (-1.3013, 0.3424473684210525)), (None, (-1.3013, 0.4794263157894736)), (None, (-0.9011631578947368, -1.0273421052631577)),
(Some(-0.9744795576784545), (-0.9011631578947368, -0.8903631578947369)), (Some(-0.9035376906757686), (-0.9011631578947368, -0.7533842105263158)), (Some(-0.8398543426811903), (-0.9011631578947368, -0.6164052631578947)),
(Some(-0.7851976080449157), (-0.9011631578947368, -0.4794263157894737)), (Some(-0.74156608522013), (-0.9011631578947368, -0.3424473684210527)), (Some(-0.7109924346490689), (-0.9011631578947368, -0.20546842105263163)),
(Some(-0.69520157783046), (-0.9011631578947368, -0.06848947368421054)), (Some(-0.69520157783046), (-0.9011631578947368, 0.06848947368421054)), (Some(-0.7109924346490689), (-0.9011631578947368, 0.2054684210526314)),
(Some(-0.74156608522013), (-0.9011631578947368, 0.3424473684210525)), (Some(-0.7851976080449157), (-0.9011631578947368, 0.4794263157894736)), (Some(-0.8398543426811901), (-0.9011631578947368, 0.6164052631578945)),
(Some(-0.9035376906757684), (-0.9011631578947368, 0.7533842105263155)), (Some(-0.9744795576784545), (-0.9011631578947368, 0.8903631578947366)), (None, (-0.9011631578947368, 1.0273421052631577)),
(None, (-0.5010263157894737, -1.3013)), (Some(-0.969116259582213), (-0.5010263157894737, -1.1643210526315788)), (Some(-0.8754266524389478), (-0.5010263157894737, -1.0273421052631577)),
(Some(-0.7854245022891934), (-0.5010263157894737, -0.8903631578947369)), (Some(-0.6959796372692607), (-0.5010263157894737, -0.7533842105263158)), (Some(-0.6110340530135822), (-0.5010263157894737, -0.6164052631578947)),
(Some(-0.5334253281399449), (-0.5010263157894737, -0.4794263157894737)), (Some(-0.4668271155047231), (-0.5010263157894737, -0.3424473684210527)), (Some(-0.4165543651793382), (-0.5010263157894737, -0.20546842105263163)),
(Some(-0.3889891140375424), (-0.5010263157894737, -0.06848947368421054)), (Some(-0.3889891140375424), (-0.5010263157894737, 0.06848947368421054)), (Some(-0.41655436517933814), (-0.5010263157894737, 0.2054684210526314)),
(Some(-0.46682711550472306), (-0.5010263157894737, 0.3424473684210525)), (Some(-0.5334253281399449), (-0.5010263157894737, 0.4794263157894736)), (Some(-0.611034053013582), (-0.5010263157894737, 0.6164052631578945)),
(Some(-0.6959796372692606), (-0.5010263157894737, 0.7533842105263155)), (Some(-0.7854245022891932), (-0.5010263157894737, 0.8903631578947366)), (Some(-0.8754266524389478), (-0.5010263157894737, 1.0273421052631577)),
(Some(-0.969116259582213), (-0.5010263157894737, 1.1643210526315788)), (None, (-0.5010263157894737, 1.3013)), (None, (-0.10088947368421053, -1.3013)),
(Some(-0.8090615227401078), (-0.10088947368421053, -1.1643210526315788)), (Some(-0.7153719155968425), (-0.10088947368421053, -1.0273421052631577)), (Some(-0.6253697654470881), (-0.10088947368421053, -0.8903631578947369)),
(Some(-0.5353676152973337), (-0.10088947368421053, -0.7533842105263158)), (Some(-0.44536546514757913), (-0.10088947368421053, -0.6164052631578947)), (Some(-0.3553633149978248), (-0.10088947368421053, -0.4794263157894737)),
(Some(-0.26536116484807043), (-0.10088947368421053, -0.3424473684210527)), (Some(-0.1753590146983159), (-0.10088947368421053, -0.20546842105263163)), (Some(-0.0938004110014121), (-0.10088947368421053, -0.06848947368421054)),
(Some(-0.0938004110014121), (-0.10088947368421053, 0.06848947368421054)), (Some(-0.17535901469831577), (-0.10088947368421053, 0.2054684210526314)), (Some(-0.26536116484807026), (-0.10088947368421053, 0.3424473684210525)),
(Some(-0.3553633149978248), (-0.10088947368421053, 0.4794263157894736)), (Some(-0.445365465147579), (-0.10088947368421053, 0.6164052631578945)), (Some(-0.5353676152973335), (-0.10088947368421053, 0.7533842105263155)),
(Some(-0.625369765447088), (-0.10088947368421053, 0.8903631578947366)), (Some(-0.7153719155968425), (-0.10088947368421053, 1.0273421052631577)), (Some(-0.8090615227401078), (-0.10088947368421053, 1.1643210526315788)),
(None, (-0.10088947368421053, 1.3013)), (None, (0.2992473684210526, -1.3013)), (Some(-0.6490067858980024), (0.2992473684210526, -1.1643210526315788)),
(Some(-0.5553171787547373), (0.2992473684210526, -1.0273421052631577)), (Some(-0.46531502860498286), (0.2992473684210526, -0.8903631578947369)), (Some(-0.3753128784552284), (0.2992473684210526, -0.7533842105263158)),
(Some(-0.2853107283054739), (0.2992473684210526, -0.6164052631578947)), (Some(-0.1953085781557196), (0.2992473684210526, -0.4794263157894737)), (Some(-0.10530642800596515), (0.2992473684210526, -0.3424473684210527)),
(Some(-0.015304277856210663), (0.2992473684210526, -0.20546842105263163)), (Some(0.0746978722935438), (0.2992473684210526, -0.06848947368421054)), (Some(0.0746978722935438), (0.2992473684210526, 0.06848947368421054)),
(Some(-0.015304277856210524), (0.2992473684210526, 0.2054684210526314)), (Some(-0.10530642800596499), (0.2992473684210526, 0.3424473684210525)), (Some(-0.1953085781557195), (0.2992473684210526, 0.4794263157894736)),
(Some(-0.28531072830547377), (0.2992473684210526, 0.6164052631578945)), (Some(-0.3753128784552282), (0.2992473684210526, 0.7533842105263155)), (Some(-0.46531502860498275), (0.2992473684210526, 0.8903631578947366)),
(Some(-0.5553171787547373), (0.2992473684210526, 1.0273421052631577)), (Some(-0.6490067858980024), (0.2992473684210526, 1.1643210526315788)), (None, (0.2992473684210526, 1.3013)),
(None, (0.6993842105263157, -1.3013)), (Some(-0.4889520490558974), (0.6993842105263157, -1.1643210526315788)), (Some(-0.39526244191263205), (0.6993842105263157, -1.0273421052631577)),
(Some(-0.30526029176287756), (0.6993842105263157, -0.8903631578947369)), (Some(-0.21525814161312312), (0.6993842105263157, -0.7533842105263158)), (Some(-0.12525599146336858), (0.6993842105263157, -0.6164052631578947)),
(Some(-0.03525384131361431), (0.6993842105263157, -0.4794263157894737)), (Some(0.054748308836140125), (0.6993842105263157, -0.3424473684210527)), (Some(0.14475045898589464), (0.6993842105263157, -0.20546842105263163)),
(Some(0.23475260913564908), (0.6993842105263157, -0.06848947368421054)), (Some(0.23475260913564908), (0.6993842105263157, 0.06848947368421054)), (Some(0.14475045898589478), (0.6993842105263157, 0.2054684210526314)),
(Some(0.05474830883614029), (0.6993842105263157, 0.3424473684210525)), (Some(-0.035253841313614254), (0.6993842105263157, 0.4794263157894736)), (Some(-0.12525599146336852), (0.6993842105263157, 0.6164052631578945)),
(Some(-0.21525814161312296), (0.6993842105263157, 0.7533842105263155)), (Some(-0.3052602917628775), (0.6993842105263157, 0.8903631578947366)), (Some(-0.39526244191263205), (0.6993842105263157, 1.0273421052631577)),
(Some(-0.4889520490558974), (0.6993842105263157, 1.1643210526315788)), (None, (0.6993842105263157, 1.3013)), (None, (1.0995210526315788, -1.3013)),
(Some(-0.32889731221379204), (1.0995210526315788, -1.1643210526315788)), (Some(-0.2352077050705268), (1.0995210526315788, -1.0273421052631577)), (Some(-0.14520555492077225), (1.0995210526315788, -0.8903631578947369)),
(Some(-0.05520340477101793), (1.0995210526315788, -0.7533842105263158)), (Some(0.03479874537873673), (1.0995210526315788, -0.6164052631578947)), (Some(0.12480089552849088), (1.0995210526315788, -0.4794263157894737)),
(Some(0.21480304567824543), (1.0995210526315788, -0.3424473684210527)), (Some(0.3048051958279999), (1.0995210526315788, -0.20546842105263163)), (Some(0.39480734597775435), (1.0995210526315788, -0.06848947368421054)),
(Some(0.39480734597775435), (1.0995210526315788, 0.06848947368421054)), (Some(0.30480519582800003), (1.0995210526315788, 0.2054684210526314)), (Some(0.21480304567824554), (1.0995210526315788, 0.3424473684210525)),
(Some(0.124800895528491), (1.0995210526315788, 0.4794263157894736)), (Some(0.03479874537873673), (1.0995210526315788, 0.6164052631578945)), (Some(-0.055203404771017706), (1.0995210526315788, 0.7533842105263155)),
(Some(-0.14520555492077225), (1.0995210526315788, 0.8903631578947366)), (Some(-0.2352077050705268), (1.0995210526315788, 1.0273421052631577)), (Some(-0.32889731221379204), (1.0995210526315788, 1.1643210526315788)),
(None, (1.0995210526315788, 1.3013)), (None, (1.499657894736842, -1.3013)), (Some(-0.1688425753716869), (1.499657894736842, -1.1643210526315788)),
(Some(-0.07515296822842155), (1.499657894736842, -1.0273421052631577)), (Some(0.014849181921332888), (1.499657894736842, -0.8903631578947369)), (Some(0.10485133207108732), (1.499657894736842, -0.7533842105263158)),
(Some(0.19485348222084187), (1.499657894736842, -0.6164052631578947)), (Some(0.28485563237059613), (1.499657894736842, -0.4794263157894737)), (Some(0.37485778252035057), (1.499657894736842, -0.3424473684210527)),
(Some(0.46485993267010506), (1.499657894736842, -0.20546842105263163)), (Some(0.5548620828198596), (1.499657894736842, -0.06848947368421054)), (Some(0.5548620828198596), (1.499657894736842, 0.06848947368421054)),
(Some(0.46485993267010517), (1.499657894736842, 0.2054684210526314)), (Some(0.3748577825203507), (1.499657894736842, 0.3424473684210525)), (Some(0.28485563237059625), (1.499657894736842, 0.4794263157894736)),
(Some(0.19485348222084187), (1.499657894736842, 0.6164052631578945)), (Some(0.10485133207108754), (1.499657894736842, 0.7533842105263155)), (Some(0.014849181921332999), (1.499657894736842, 0.8903631578947366)),
(Some(-0.07515296822842155), (1.499657894736842, 1.0273421052631577)), (Some(-0.1688425753716869), (1.499657894736842, 1.1643210526315788)), (None, (1.499657894736842, 1.3013)),
(None, (1.899794736842105, -1.3013)), (Some(-0.008787838529581538), (1.899794736842105, -1.1643210526315788)), (Some(0.0849017686136837), (1.899794736842105, -1.0273421052631577)),
(Some(0.17490391876343825), (1.899794736842105, -0.8903631578947369)), (Some(0.2649060689131927), (1.899794736842105, -0.7533842105263158)), (Some(0.35490821906294723), (1.899794736842105, -0.6164052631578947)),
(Some(0.4449103692127015), (1.899794736842105, -0.4794263157894737)), (Some(0.534912519362456), (1.899794736842105, -0.3424473684210527)), (Some(0.6249146695122104), (1.899794736842105, -0.20546842105263163)),
(Some(0.714916819661965), (1.899794736842105, -0.06848947368421054)), (Some(0.714916819661965), (1.899794736842105, 0.06848947368421054)), (Some(0.6249146695122105), (1.899794736842105, 0.2054684210526314)),
(Some(0.5349125193624562), (1.899794736842105, 0.3424473684210525)), (Some(0.4449103692127016), (1.899794736842105, 0.4794263157894736)), (Some(0.35490821906294734), (1.899794736842105, 0.6164052631578945)),
(Some(0.2649060689131928), (1.899794736842105, 0.7533842105263155)), (Some(0.17490391876343836), (1.899794736842105, 0.8903631578947366)), (Some(0.0849017686136837), (1.899794736842105, 1.0273421052631577)),
(Some(-0.008787838529581538), (1.899794736842105, 1.1643210526315788)), (None, (1.899794736842105, 1.3013)), (None, (2.299931578947368, -1.3013)),
(Some(0.15126689831252382), (2.299931578947368, -1.1643210526315788)), (Some(0.24495650545578895), (2.299931578947368, -1.0273421052631577)), (Some(0.3349586556055435), (2.299931578947368, -0.8903631578947369)),
(Some(0.42496080575529804), (2.299931578947368, -0.7533842105263158)), (Some(0.5149629559050525), (2.299931578947368, -0.6164052631578947)), (Some(0.6049651060548067), (2.299931578947368, -0.4794263157894737)),
(Some(0.6949672562045612), (2.299931578947368, -0.3424473684210527)), (Some(0.7849694063543157), (2.299931578947368, -0.20546842105263163)), (Some(0.8749715565040702), (2.299931578947368, -0.06848947368421054)),
(Some(0.8749715565040702), (2.299931578947368, 0.06848947368421054)), (Some(0.7849694063543158), (2.299931578947368, 0.2054684210526314)), (Some(0.6949672562045615), (2.299931578947368, 0.3424473684210525)),
(Some(0.6049651060548067), (2.299931578947368, 0.4794263157894736)), (Some(0.5149629559050526), (2.299931578947368, 0.6164052631578945)), (Some(0.42496080575529804), (2.299931578947368, 0.7533842105263155)),
(Some(0.3349586556055436), (2.299931578947368, 0.8903631578947366)), (Some(0.24495650545578895), (2.299931578947368, 1.0273421052631577)), (Some(0.15126689831252382), (2.299931578947368, 1.1643210526315788)),
(None, (2.299931578947368, 1.3013)), (None, (2.7000684210526313, -1.3013)), (Some(0.31132163515462885), (2.7000684210526313, -1.1643210526315788)),
(Some(0.4050112422978942), (2.7000684210526313, -1.0273421052631577)), (Some(0.49501339244764875), (2.7000684210526313, -0.8903631578947369)), (Some(0.5850155425974033), (2.7000684210526313, -0.7533842105263158)),
(Some(0.6750176927471577), (2.7000684210526313, -0.6164052631578947)), (Some(0.7650198428969119), (2.7000684210526313, -0.4794263157894737)), (Some(0.8550219930466665), (2.7000684210526313, -0.3424473684210527)),
(Some(0.9450241431964208), (2.7000684210526313, -0.20546842105263163)), (Some(1.0350262933461754), (2.7000684210526313, -0.06848947368421054)), (Some(1.0350262933461754), (2.7000684210526313, 0.06848947368421054)),
(Some(0.945024143196421), (2.7000684210526313, 0.2054684210526314)), (Some(0.8550219930466667), (2.7000684210526313, 0.3424473684210525)), (Some(0.7650198428969119), (2.7000684210526313, 0.4794263157894736)),
(Some(0.6750176927471578), (2.7000684210526313, 0.6164052631578945)), (Some(0.5850155425974033), (2.7000684210526313, 0.7533842105263155)), (Some(0.49501339244764886), (2.7000684210526313, 0.8903631578947366)),
(Some(0.4050112422978942), (2.7000684210526313, 1.0273421052631577)), (Some(0.31132163515462885), (2.7000684210526313, 1.1643210526315788)), (None, (2.7000684210526313, 1.3013)),
(None, (3.100205263157894, -1.3013)), (Some(0.4713763719967341), (3.100205263157894, -1.1643210526315788)), (Some(0.5650659791399995), (3.100205263157894, -1.0273421052631577)),
(Some(0.6550681292897538), (3.100205263157894, -0.8903631578947369)), (Some(0.7450702794395081), (3.100205263157894, -0.7533842105263158)), (Some(0.8350724295892628), (3.100205263157894, -0.6164052631578947)),
(Some(0.9250745797390172), (3.100205263157894, -0.4794263157894737)), (Some(1.0150767298887715), (3.100205263157894, -0.3424473684210527)), (Some(1.1050788800385258), (3.100205263157894, -0.20546842105263163)),
(Some(1.1950810301882804), (3.100205263157894, -0.06848947368421054)), (Some(1.1950810301882804), (3.100205263157894, 0.06848947368421054)), (Some(1.105078880038526), (3.100205263157894, 0.2054684210526314)),
(Some(1.0150767298887717), (3.100205263157894, 0.3424473684210525)), (Some(0.925074579739017), (3.100205263157894, 0.4794263157894736)), (Some(0.8350724295892629), (3.100205263157894, 0.6164052631578945)),
(Some(0.7450702794395083), (3.100205263157894, 0.7533842105263155)), (Some(0.6550681292897539), (3.100205263157894, 0.8903631578947366)), (Some(0.5650659791399995), (3.100205263157894, 1.0273421052631577)),
(Some(0.4713763719967341), (3.100205263157894, 1.1643210526315788)), (None, (3.100205263157894, 1.3013)), (None, (3.5003421052631576, -1.3013)),
(Some(0.6314311088388394), (3.5003421052631576, -1.1643210526315788)), (Some(0.7251207159821047), (3.5003421052631576, -1.0273421052631577)), (Some(0.8151228661318592), (3.5003421052631576, -0.8903631578947369)),
(Some(0.9051250162816138), (3.5003421052631576, -0.7533842105263158)), (Some(0.9951271664313682), (3.5003421052631576, -0.6164052631578947)), (Some(1.0851293165811224), (3.5003421052631576, -0.4794263157894737)),
(Some(1.175131466730877), (3.5003421052631576, -0.3424473684210527)), (Some(1.2651336168806313), (3.5003421052631576, -0.20546842105263163)), (Some(1.3551357670303859), (3.5003421052631576, -0.06848947368421054)),
(Some(1.3551357670303859), (3.5003421052631576, 0.06848947368421054)), (Some(1.2651336168806315), (3.5003421052631576, 0.2054684210526314)), (Some(1.1751314667308772), (3.5003421052631576, 0.3424473684210525)),
(Some(1.0851293165811224), (3.5003421052631576, 0.4794263157894736)), (Some(0.9951271664313683), (3.5003421052631576, 0.6164052631578945)), (Some(0.9051250162816138), (3.5003421052631576, 0.7533842105263155)),
(Some(0.8151228661318594), (3.5003421052631576, 0.8903631578947366)), (Some(0.7251207159821047), (3.5003421052631576, 1.0273421052631577)), (Some(0.6314311088388394), (3.5003421052631576, 1.1643210526315788)),
(None, (3.5003421052631576, 1.3013)), (None, (3.900478947368421, -1.3013)), (Some(0.7914858456809449), (3.900478947368421, -1.1643210526315788)),
(Some(0.8851754528242104), (3.900478947368421, -1.0273421052631577)), (Some(0.9751776029739647), (3.900478947368421, -0.8903631578947369)), (Some(1.065179753123719), (3.900478947368421, -0.7533842105263158)),
(Some(1.1551819032734736), (3.900478947368421, -0.6164052631578947)), (Some(1.2451840534232281), (3.900478947368421, -0.4794263157894737)), (Some(1.3351862035729825), (3.900478947368421, -0.3424473684210527)),
(Some(1.4251883537227368), (3.900478947368421, -0.20546842105263163)), (Some(1.5151905038724913), (3.900478947368421, -0.06848947368421054)), (Some(1.5151905038724913), (3.900478947368421, 0.06848947368421054)),
(Some(1.425188353722737), (3.900478947368421, 0.2054684210526314)), (Some(1.3351862035729827), (3.900478947368421, 0.3424473684210525)), (Some(1.245184053423228), (3.900478947368421, 0.4794263157894736)),
(Some(1.1551819032734738), (3.900478947368421, 0.6164052631578945)), (Some(1.0651797531237193), (3.900478947368421, 0.7533842105263155)), (Some(0.9751776029739648), (3.900478947368421, 0.8903631578947366)),
(Some(0.8851754528242104), (3.900478947368421, 1.0273421052631577)), (Some(0.7914858456809449), (3.900478947368421, 1.1643210526315788)), (None, (3.900478947368421, 1.3013)),
(None, (4.300615789473683, -1.3013)), (Some(0.9515405825230496), (4.300615789473683, -1.1643210526315788)), (Some(1.0452301896663152), (4.300615789473683, -1.0273421052631577)),
(Some(1.1352323398160695), (4.300615789473683, -0.8903631578947369)), (Some(1.2252344899658238), (4.300615789473683, -0.7533842105263158)), (Some(1.3152366401155784), (4.300615789473683, -0.6164052631578947)),
(Some(1.405238790265333), (4.300615789473683, -0.4794263157894737)), (Some(1.4952409404150873), (4.300615789473683, -0.3424473684210527)), (Some(1.5852430905648416), (4.300615789473683, -0.20546842105263163)),
(Some(1.6752452407145961), (4.300615789473683, -0.06848947368421054)), (Some(1.6752452407145961), (4.300615789473683, 0.06848947368421054)), (Some(1.5852430905648418), (4.300615789473683, 0.2054684210526314)),
(Some(1.4952409404150875), (4.300615789473683, 0.3424473684210525)), (Some(1.4052387902653327), (4.300615789473683, 0.4794263157894736)), (Some(1.3152366401155786), (4.300615789473683, 0.6164052631578945)),
(Some(1.225234489965824), (4.300615789473683, 0.7533842105263155)), (Some(1.1352323398160697), (4.300615789473683, 0.8903631578947366)), (Some(1.0452301896663152), (4.300615789473683, 1.0273421052631577)),
(Some(0.9515405825230496), (4.300615789473683, 1.1643210526315788)), (None, (4.300615789473683, 1.3013)), (None, (4.700752631578947, -1.3013)),
(Some(1.075260311341672), (4.700752631578947, -1.1643210526315788)), (Some(1.1768940376246162), (4.700752631578947, -1.0273421052631577)), (Some(1.2774570136482106), (4.700752631578947, -0.8903631578947369)),
(Some(1.376430984361261), (4.700752631578947, -0.7533842105263158)), (Some(1.472920048082438), (4.700752631578947, -0.6164052631578947)), (Some(1.5652935271074382), (4.700752631578947, -0.4794263157894737)),
(Some(1.6552956772571927), (4.700752631578947, -0.3424473684210527)), (Some(1.745297827406947), (4.700752631578947, -0.20546842105263163)), (Some(1.8352999775567016), (4.700752631578947, -0.06848947368421054)),
(Some(1.8352999775567016), (4.700752631578947, 0.06848947368421054)), (Some(1.7452978274069473), (4.700752631578947, 0.2054684210526314)), (Some(1.655295677257193), (4.700752631578947, 0.3424473684210525)),
(Some(1.5652935271074382), (4.700752631578947, 0.4794263157894736)), (Some(1.4729200480824383), (4.700752631578947, 0.6164052631578945)), (Some(1.376430984361261), (4.700752631578947, 0.7533842105263155)),
(Some(1.277457013648211), (4.700752631578947, 0.8903631578947366)), (Some(1.1768940376246162), (4.700752631578947, 1.0273421052631577)), (Some(1.075260311341672), (4.700752631578947, 1.1643210526315788)),
(None, (4.700752631578947, 1.3013)), (None, (5.1008894736842105, -1.3013)), (Some(1.101012338086329), (5.1008894736842105, -1.1643210526315788)),
(Some(1.205935298737556), (5.1008894736842105, -1.0273421052631577)), (Some(1.310722340693339), (5.1008894736842105, -0.8903631578947369)), (Some(1.4153003833097089), (5.1008894736842105, -0.7533842105263158)),
(Some(1.5195329353571392), (5.1008894736842105, -0.6164052631578947)), (Some(1.6231332238502183), (5.1008894736842105, -0.4794263157894737)), (Some(1.7253847381612197), (5.1008894736842105, -0.3424473684210527)),
(Some(1.8239218201642147), (5.1008894736842105, -0.20546842105263163)), (Some(1.9061995889985879), (5.1008894736842105, -0.06848947368421054)), (Some(1.9061995889985879), (5.1008894736842105, 0.06848947368421054)),
(Some(1.823921820164215), (5.1008894736842105, 0.2054684210526314)), (Some(1.72538473816122), (5.1008894736842105, 0.3424473684210525)), (Some(1.6231332238502183), (5.1008894736842105, 0.4794263157894736)),
(Some(1.5195329353571396), (5.1008894736842105, 0.6164052631578945)), (Some(1.415300383309709), (5.1008894736842105, 0.7533842105263155)), (Some(1.3107223406933393), (5.1008894736842105, 0.8903631578947366)),
(Some(1.205935298737556), (5.1008894736842105, 1.0273421052631577)), (Some(1.101012338086329), (5.1008894736842105, 1.1643210526315788)), (None, (5.1008894736842105, 1.3013)),
(None, (5.501026315789474, -1.3013)), (Some(1.0249652160006355), (5.501026315789474, -1.1643210526315788)), (Some(1.1207658084863323), (5.501026315789474, -1.0273421052631577)),
(Some(1.214113427169704), (5.501026315789474, -0.8903631578947369)), (Some(1.3040203627307392), (5.501026315789474, -0.7533842105263158)), (Some(1.3889659469864175), (5.501026315789474, -0.6164052631578947)),
(Some(1.4665746718600547), (5.501026315789474, -0.4794263157894737)), (Some(1.5331728844952766), (5.501026315789474, -0.3424473684210527)), (Some(1.5834456348206614), (5.501026315789474, -0.20546842105263163)),
(Some(1.6110108859624572), (5.501026315789474, -0.06848947368421054)), (Some(1.6110108859624572), (5.501026315789474, 0.06848947368421054)), (Some(1.5834456348206616), (5.501026315789474, 0.2054684210526314)),
(Some(1.5331728844952768), (5.501026315789474, 0.3424473684210525)), (Some(1.4665746718600547), (5.501026315789474, 0.4794263157894736)), (Some(1.3889659469864177), (5.501026315789474, 0.6164052631578945)),
(Some(1.3040203627307392), (5.501026315789474, 0.7533842105263155)), (Some(1.2141134271697043), (5.501026315789474, 0.8903631578947366)), (Some(1.1207658084863323), (5.501026315789474, 1.0273421052631577)),
(Some(1.0249652160006355), (5.501026315789474, 1.1643210526315788)), (None, (5.501026315789474, 1.3013)), (None, (5.901163157894736, -1.0273421052631577)),
(Some(1.0255204423215458), (5.901163157894736, -0.8903631578947369)), (Some(1.0964623093242318), (5.901163157894736, -0.7533842105263158)), (Some(1.1601456573188103), (5.901163157894736, -0.6164052631578947)),
(Some(1.214802391955085), (5.901163157894736, -0.4794263157894737)), (Some(1.2584339147798707), (5.901163157894736, -0.3424473684210527)), (Some(1.2890075653509316), (5.901163157894736, -0.20546842105263163)),
(Some(1.3047984221695406), (5.901163157894736, -0.06848947368421054)), (Some(1.3047984221695406), (5.901163157894736, 0.06848947368421054)), (Some(1.2890075653509316), (5.901163157894736, 0.2054684210526314)),
(Some(1.2584339147798707), (5.901163157894736, 0.3424473684210525)), (Some(1.214802391955085), (5.901163157894736, 0.4794263157894736)), (Some(1.1601456573188105), (5.901163157894736, 0.6164052631578945)),
(Some(1.096462309324232), (5.901163157894736, 0.7533842105263155)), (Some(1.0255204423215458), (5.901163157894736, 0.8903631578947366)), (None, (5.901163157894736, 1.0273421052631577)),
(None, (6.3012999999999995, -0.4794263157894737)), (None, (6.3012999999999995, -0.3424473684210527)), (None, (6.3012999999999995, -0.20546842105263163)),
(None, (6.3012999999999995, -0.06848947368421054)), (None, (6.3012999999999995, 0.06848947368421054)), (None, (6.3012999999999995, 0.2054684210526314)),
(None, (6.3012999999999995, 0.3424473684210525)), (None, (6.3012999999999995, 0.4794263157894736)),
];
let p0 = DVec3::new(0.0, 0.0, 0.0);
let p1 = DVec3::new(5.0, 0.0, 2.0);
do_cone_test(&test_data, p0, p1, ConeProperties::new(1.3, 1.0));
}
#[test]
fn test_steep_cone_zero_1() {
#[rustfmt::skip]
let test_data: [(Option<f64>, f64); 500] = [
(None, -4.18606797749979), (None, -4.16929014993466),
(None, -4.152512322369531), (None, -4.135734494804402),
(None, -4.118956667239273), (None, -4.102178839674143),
(None, -4.085401012109013), (None, -4.068623184543884),
(None, -4.051845356978754), (None, -4.035067529413626),
(None, -4.018289701848496), (None, -4.001511874283366),
(None, -3.984734046718237), (None, -3.9679562191531077),
(None, -3.951178391587978), (None, -3.9344005640228485),
(None, -3.9176227364577194), (None, -3.90084490889259),
(None, -3.8840670813274603), (None, -3.867289253762331),
(None, -3.8505114261972015), (None, -3.8337335986320724),
(None, -3.816955771066943), (None, -3.8001779435018133),
(None, -3.783400115936684), (None, -3.7666222883715545),
(None, -3.749844460806425), (None, -3.733066633241296),
(None, -3.7162888056761663), (None, -3.6995109781110367),
(None, -3.6827331505459076), (None, -3.665955322980778),
(None, -3.649177495415649), (None, -3.6323996678505193),
(None, -3.6156218402853897), (None, -3.59884401272026),
(None, -3.582066185155131), (None, -3.5652883575900014),
(None, -3.5485105300248723), (None, -3.5317327024597427),
(None, -3.514954874894613), (None, -3.498177047329484),
(None, -3.4813992197643544), (None, -3.4646213921992253),
(None, -3.4478435646340957), (None, -3.431065737068966),
(None, -3.4142879095038365), (None, -3.3975100819387074),
(None, -3.380732254373578), (None, -3.3639544268084487),
(None, -3.347176599243319), (None, -3.3303987716781895),
(None, -3.3136209441130604), (Some(1.0048567437724143), -3.296843116547931),
(Some(1.0306687861803052), -3.2800652889828017), (Some(1.0564808285881968), -3.263287461417672),
(Some(1.0822928709960886), -3.2465096338525425), (Some(1.1081049134039802), -3.229731806287413),
(Some(1.1339169558118711), -3.212953978722284), (Some(1.159728998219763), -3.1961761511571543),
(Some(1.1855410406276539), -3.179398323592025), (Some(1.2113530830355455), -3.1626204960268955),
(Some(1.237165125443437), -3.145842668461766), (Some(1.2629771678513289), -3.1290648408966364),
(Some(1.2887892102592198), -3.1122870133315073), (Some(1.3146012526671107), -3.095509185766378),
(Some(1.3404132950750023), -3.0787313582012485), (Some(1.366225337482894), -3.061953530636119),
(Some(1.3920373798907857), -3.0451757030709894), (Some(1.4178494222986766), -3.0283978755058603),
(Some(1.4436614647065684), -3.0116200479407307), (Some(1.4694735071144593), -2.9948422203756015),
(Some(1.495285549522351), -2.978064392810472), (Some(1.5210975919302425), -2.9612865652453424),
(Some(1.5469096343381343), -2.944508737680213), (Some(1.5727216767460253), -2.9277309101150837),
(Some(1.5985337191539162), -2.9109530825499546), (Some(1.6243457615618078), -2.894175254984825),
(Some(1.6501578039696996), -2.8773974274196954), (Some(1.6759698463775912), -2.860619599854566),
(Some(1.701781888785482), -2.8438417722894367), (Some(1.727593931193374), -2.827063944724307),
(Some(1.7534059736012648), -2.810286117159178), (Some(1.7792180160091564), -2.7935082895940484),
(Some(1.805030058417048), -2.776730462028919), (Some(1.8308421008249398), -2.7599526344637892),
(Some(1.8566541432328307), -2.74317480689866), (Some(1.8824661856407217), -2.726396979333531),
(Some(1.9082782280486132), -2.7096191517684014), (Some(1.934090270456505), -2.692841324203272),
(Some(1.9599023128643966), -2.6760634966381422), (Some(1.9857143552722882), -2.6592856690730127),
(Some(2.0115263976801794), -2.6425078415078835), (Some(2.03733844008807), -2.6257300139427544),
(Some(2.0631504824959617), -2.608952186377625), (Some(2.0889625249038537), -2.5921743588124952),
(Some(2.1147745673117453), -2.5753965312473657), (Some(2.1405866097196364), -2.5586187036822365),
(Some(2.166398652127528), -2.541840876117107), (Some(2.1922106945354187), -2.525063048551978),
(Some(2.2180227369433103), -2.5082852209868483), (Some(2.243834779351202), -2.4915073934217187),
(Some(2.2696468217590935), -2.474729565856589), (Some(2.2954588641669846), -2.45795173829146),
(Some(2.321270906574876), -2.441173910726331), (Some(2.3470829489827674), -2.4243960831612013),
(Some(2.372894991390659), -2.4076182555960717), (Some(2.3987070337985505), -2.390840428030942),
(Some(2.4245190762064417), -2.374062600465813), (Some(2.4503311186143333), -2.3572847729006834),
(Some(2.4761431610222244), -2.3405069453355543), (Some(2.501955203430116), -2.3237291177704247),
(Some(2.5277672458380076), -2.306951290205295), (Some(2.553579288245899), -2.2901734626401655),
(Some(2.5793913306537903), -2.2733956350750364), (Some(2.605203373061681), -2.2566178075099073),
(Some(2.631015415469573), -2.2398399799447777), (Some(2.6568274578774647), -2.223062152379648),
(Some(2.6826395002853562), -2.2062843248145185), (Some(2.708451542693247), -2.1895064972493894),
(Some(2.7342635851011385), -2.17272866968426), (Some(2.7600756275090306), -2.1559508421191302),
(Some(2.7858876699169213), -2.139173014554001), (Some(2.811699712324813), -2.1223951869888715),
(Some(2.837511754732704), -2.1056173594237424), (Some(2.8633237971405956), -2.088839531858613),
(Some(2.889135839548487), -2.0720617042934832), (Some(2.9149478819563783), -2.055283876728354),
(Some(2.94075992436427), -2.0385060491632245), (Some(2.9665719667721615), -2.021728221598095),
(Some(2.9923840091800527), -2.004950394032966), (Some(2.9763451329356725), -1.9881725664678362),
(Some(2.9427894778054133), -1.9713947389027067), (Some(2.909233822675155), -1.9546169113375775),
(Some(2.875678167544896), -1.937839083772448), (Some(2.8421225124146376), -1.9210612562073188),
(Some(2.8085668572843785), -1.9042834286421892), (Some(2.7750112021541193), -1.8875056010770597),
(Some(2.741455547023861), -1.8707277735119305), (Some(2.707899891893602), -1.853949945946801),
(Some(2.6743442367633428), -1.8371721183816714), (Some(2.6407885816330845), -1.8203942908165422),
(Some(2.6072329265028253), -1.8036164632514127), (Some(2.573677271372566), -1.786838635686283),
(Some(2.540121616242308), -1.770060808121154), (Some(2.5065659611120488), -1.7532829805560244),
(Some(2.4730103059817896), -1.7365051529908948), (Some(2.4394546508515313), -1.7197273254257657),
(Some(2.405898995721272), -1.702949497860636), (Some(2.372343340591014), -1.686171670295507),
(Some(2.3387876854607548), -1.6693938427303774), (Some(2.3052320303304956), -1.6526160151652478),
(Some(2.2716763752002374), -1.6358381876001187), (Some(2.238120720069978), -1.619060360034989),
(Some(2.204565064939719), -1.6022825324698595), (Some(2.1710094098094608), -1.5855047049047304),
(Some(2.1374537546792016), -1.5687268773396008), (Some(2.1038980995489425), -1.5519490497744712),
(Some(2.070342444418684), -1.535171222209342), (Some(2.036786789288425), -1.5183933946442125),
(Some(2.003231134158167), -1.5016155670790834), (Some(1.9696754790279076), -1.4848377395139538),
(Some(1.9361198238976485), -1.4680599119488242), (Some(1.9025641687673902), -1.451282084383695),
(Some(1.869008513637131), -1.4345042568185655), (Some(1.835452858506872), -1.417726429253436),
(Some(1.8018972033766136), -1.4009486016883068), (Some(1.7683415482463545), -1.3841707741231772),
(Some(1.7347858931160953), -1.3673929465580477), (Some(1.701230237985837), -1.3506151189929185),
(Some(1.667674582855578), -1.333837291427789), (Some(1.6341189277253187), -1.3170594638626594),
(Some(1.6005632725950605), -1.3002816362975302), (Some(1.5670076174648013), -1.2835038087324007),
(Some(1.533451962334543), -1.2667259811672715), (Some(1.499896307204284), -1.249948153602142),
(Some(1.4663406520740248), -1.2331703260370124), (Some(1.4327849969437665), -1.2163924984718832),
(Some(1.3992293418135073), -1.1996146709067537), (Some(1.3656736866832482), -1.182836843341624),
(Some(1.33211803155299), -1.166059015776495), (Some(1.2985623764227308), -1.1492811882113654),
(Some(1.2650067212924716), -1.1325033606462358), (Some(1.2314510661622133), -1.1157255330811067),
(Some(1.1978954110319542), -1.098947705515977), (Some(1.164339755901695), -1.0821698779508475),
(Some(1.1307841007714368), -1.0653920503857184), (Some(1.0972284456411776), -1.0486142228205888),
(Some(1.0636727905109193), -1.0318363952554597), (Some(1.0301171353806602), -1.01505856769033),
(Some(0.996561480250401), -0.9982807401252005), (Some(0.9630058251201428), -0.9815029125600714),
(Some(0.9294501699898836), -0.9647250849949418), (Some(0.8958945148596245), -0.9479472574298122),
(Some(0.8623388597293662), -0.9311694298646831), (Some(0.828783204599107), -0.9143916022995535),
(Some(0.7952275494688479), -0.8976137747344239), (Some(0.7616718943385896), -0.8808359471692948),
(Some(0.7281162392083305), -0.8640581196041652), (Some(0.6945605840780722), -0.8472802920390361),
(Some(0.661004928947813), -0.8305024644739065), (Some(0.6274492738175539), -0.8137246369087769),
(Some(0.5938936186872956), -0.7969468093436478), (Some(0.5603379635570365), -0.7801689817785182),
(Some(0.5267823084267773), -0.7633911542133887), (Some(0.49322665329651905), -0.7466133266482595),
(Some(0.4596709981662599), -0.72983549908313), (Some(0.42611534303600074), -0.7130576715180004),
(Some(0.39255968790574247), -0.6962798439528712), (Some(0.3590040327754833), -0.6795020163877417),
(Some(0.32544837764522416), -0.6627241888226121), (Some(0.2918927225149659), -0.645946361257483),
(Some(0.25833706738470674), -0.6291685336923534), (Some(0.22478141225444848), -0.6123907061272242),
(Some(0.19122575712418932), -0.5956128785620947), (Some(0.15767010199393017), -0.5788350509969651),
(Some(0.1241144468636719), -0.562057223431836), (Some(0.09055879173341275), -0.5452793958667064),
(Some(0.05700313660315359), -0.5285015683015768), (Some(0.023447481472895326), -0.5117237407364477),
(Some(-0.010108173657363828), -0.4949459131713181), (Some(-0.04366382878762298), -0.4781680856061885),
(Some(-0.07721948391788125), -0.4613902580410594), (Some(-0.1107751390481404), -0.4446124304759298),
(Some(-0.14433079417839956), -0.4278346029108002), (Some(-0.17788644930865782), -0.4110567753456711),
(Some(-0.21144210443891698), -0.3942789477805415), (Some(-0.24499775956917524), -0.3775011202154124),
(Some(-0.2785534146994344), -0.3607232926502828), (Some(-0.31210906982969355), -0.3439454650851532),
(Some(-0.3456647249599518), -0.3271676375200241), (Some(-0.379220380090211), -0.3103898099548945),
(Some(-0.4127760352204701), -0.29361198238976494), (Some(-0.4463316903507284), -0.2768341548246358),
(Some(-0.47988734548098755), -0.2600563272595062), (Some(-0.5134430006112467), -0.24327849969437665),
(Some(-0.546998655741505), -0.22650067212924752), (Some(-0.5805543108717641), -0.20972284456411794),
(Some(-0.6141099660020224), -0.1929450169989888), (Some(-0.6476656211322815), -0.17616718943385923),
(Some(-0.6812212762625407), -0.15938936186872965), (Some(-0.7147769313927999), -0.14261153430360007),
(Some(-0.748332586523059), -0.1258337067384705), (Some(-0.7818882416533164), -0.10905587917334181),
(Some(-0.8154438967835755), -0.09227805160821223), (Some(-0.8489995519138347), -0.07550022404308265),
(Some(-0.8825552070440938), -0.058722396477953076), (Some(-0.916110862174353), -0.0419445689128235),
(Some(-0.9496665173046104), -0.02516674134769481), (Some(-0.9832221724348695), -0.008388913782565233),
(Some(-1.0129060212039451), 0.008388913782564345), (Some(-1.0387180636118367), 0.02516674134769392),
(Some(-1.0645301060197285), 0.0419445689128235), (Some(-1.0903421484276201), 0.058722396477953076),
(Some(-1.1161541908355104), 0.07550022404308177), (Some(-1.141966233243402), 0.09227805160821134),
(Some(-1.1677782756512938), 0.10905587917334092), (Some(-1.1935903180591854), 0.1258337067384705),
(Some(-1.219402360467077), 0.14261153430360007), (Some(-1.2452144028749674), 0.15938936186872876),
(Some(-1.271026445282859), 0.17616718943385834), (Some(-1.2968384876907506), 0.19294501699898792),
(Some(-1.3226505300986422), 0.2097228445641175), (Some(-1.348462572506534), 0.22650067212924707),
(Some(-1.3742746149144256), 0.24327849969437665), (Some(-1.4000866573223159), 0.26005632725950534),
(Some(-1.4258986997302074), 0.2768341548246349), (Some(-1.4517107421380993), 0.2936119823897645),
(Some(-1.4775227845459908), 0.31038980995489407), (Some(-1.5033348269538824), 0.32716763752002365),
(Some(-1.5291468693617727), 0.34394546508515234), (Some(-1.5549589117696643), 0.3607232926502819),
(Some(-1.580770954177556), 0.3775011202154115), (Some(-1.606582996585448), 0.39427894778054107),
(Some(-1.6323950389933395), 0.41105677534567064), (Some(-1.658207081401231), 0.4278346029108002),
(Some(-1.6840191238091213), 0.4446124304759289), (Some(-1.709831166217013), 0.4613902580410585),
(Some(-1.7356432086249045), 0.47816808560618806), (Some(-1.7614552510327963), 0.49494591317131764),
(Some(-1.787267293440688), 0.5117237407364472), (Some(-1.8130793358485797), 0.5285015683015768),
(Some(-1.83889137825647), 0.5452793958667055), (Some(-1.8647034206643616), 0.5620572234318351),
(Some(-1.8905154630722532), 0.5788350509969646), (Some(-1.9163275054801447), 0.5956128785620942),
(Some(-1.9421395478880366), 0.6123907061272238), (Some(-1.9679515902959268), 0.6291685336923525),
(Some(-1.9937636327038186), 0.6459463612574821), (Some(-2.01957567511171), 0.6627241888226116),
(Some(-2.045387717519602), 0.6795020163877412), (Some(-2.0711997599274934), 0.6962798439528708),
(Some(-2.097011802335385), 0.7130576715180004), (Some(-2.1228238447432757), 0.7298354990831291),
(Some(-2.1486358871511673), 0.7466133266482586), (Some(-2.174447929559059), 0.7633911542133882),
(Some(-2.2002599719669504), 0.7801689817785178), (Some(-2.226072014374842), 0.7969468093436474),
(Some(-2.2518840567827323), 0.8137246369087761), (Some(-2.277696099190624), 0.8305024644739056),
(Some(-2.303508141598516), 0.8472802920390352), (Some(-2.3293201840064075), 0.8640581196041648),
(Some(-2.355132226414299), 0.8808359471692944), (Some(-2.3809442688221907), 0.8976137747344239),
(Some(-2.406756311230081), 0.9143916022995526), (Some(-2.4325683536379725), 0.9311694298646822),
(Some(-2.458380396045864), 0.9479472574298118), (Some(-2.4841924384537557), 0.9647250849949414),
(Some(-2.5100044808616477), 0.9815029125600709), (Some(-2.5358165232695375), 0.9982807401251996),
(Some(-2.561628565677429), 1.0150585676903292), (Some(-2.587440608085321), 1.0318363952554588),
(Some(-2.6132526504932128), 1.0486142228205884), (Some(-2.6390646929011043), 1.065392050385718),
(Some(-2.664876735308996), 1.0821698779508475), (Some(-2.690688777716886), 1.0989477055159762),
(Some(-2.716500820124778), 1.1157255330811058), (Some(-2.7423128625326694), 1.1325033606462354),
(Some(-2.768124904940561), 1.149281188211365), (Some(-2.793936947348453), 1.1660590157764945),
(Some(-2.8197489897563432), 1.1828368433416232), (Some(-2.845561032164235), 1.1996146709067528),
(Some(-2.8713730745721264), 1.2163924984718824), (Some(-2.897185116980018), 1.233170326037012),
(Some(-2.9229971593879096), 1.2499481536021415), (Some(-2.948809201795801), 1.266725981167271),
(Some(-2.974621244203692), 1.2835038087323998), (None, 1.3002816362975294),
(None, 1.317059463862659), (None, 1.3338372914277885),
(None, 1.350615118992918), (None, 1.3673929465580477),
(None, 1.3841707741231764), (None, 1.400948601688306),
(None, 1.4177264292534355), (None, 1.434504256818565),
(None, 1.4512820843836947), (None, 1.4680599119488233),
(None, 1.484837739513953), (None, 1.5016155670790825),
(None, 1.518393394644212), (None, 1.5351712222093417),
(None, 1.5519490497744712), (None, 1.5687268773396),
(None, 1.5855047049047295), (None, 1.602282532469859),
(None, 1.6190603600349887), (None, 1.6358381876001182),
(None, 1.652616015165247), (None, 1.6693938427303765),
(None, 1.686171670295506), (None, 1.7029494978606357),
(None, 1.7197273254257652), (None, 1.7365051529908948),
(None, 1.7532829805560235), (None, 1.770060808121153),
(None, 1.7868386356862827), (None, 1.8036164632514122),
(None, 1.8203942908165418), (None, 1.8371721183816705),
(None, 1.8539499459468), (None, 1.8707277735119296),
(None, 1.8875056010770592), (None, 1.9042834286421888),
(None, 1.9210612562073184), (None, 1.937839083772447),
(None, 1.9546169113375766), (None, 1.9713947389027062),
(None, 1.9881725664678358), (None, 2.0049503940329654),
(None, 2.021728221598095), (None, 2.0385060491632236),
(None, 2.055283876728353), (None, 2.072061704293483),
(None, 2.0888395318586124), (None, 2.105617359423742),
(None, 2.1223951869888706), (None, 2.139173014554),
(None, 2.15595084211913), (None, 2.1727286696842594),
(None, 2.189506497249389), (None, 2.2062843248145185),
(None, 2.223062152379647), (None, 2.239839979944777),
(None, 2.2566178075099064), (None, 2.273395635075036),
(None, 2.2901734626401655), (None, 2.306951290205294),
(None, 2.323729117770424), (None, 2.3405069453355534),
(None, 2.357284772900683), (None, 2.3740626004658125),
(None, 2.390840428030942), (None, 2.407618255596071),
(None, 2.4243960831612004), (None, 2.44117391072633),
(None, 2.4579517382914595), (None, 2.474729565856589),
(None, 2.491507393421718), (None, 2.5082852209868474),
(None, 2.525063048551977), (None, 2.5418408761171065),
(None, 2.558618703682236), (None, 2.5753965312473657),
(None, 2.5921743588124944), (None, 2.608952186377624),
(None, 2.6257300139427535), (None, 2.642507841507883),
(None, 2.6592856690730127), (None, 2.6760634966381422),
(None, 2.692841324203271), (None, 2.7096191517684005),
(None, 2.72639697933353), (None, 2.7431748068986597),
(None, 2.7599526344637892), (None, 2.776730462028918),
(None, 2.7935082895940475), (None, 2.810286117159177),
(None, 2.8270639447243067), (None, 2.8438417722894362),
(None, 2.860619599854566), (None, 2.8773974274196945),
(None, 2.894175254984824), (None, 2.9109530825499537),
(None, 2.9277309101150832), (None, 2.944508737680213),
(None, 2.9612865652453415), (None, 2.978064392810471),
(None, 2.9948422203756007), (None, 3.0116200479407302),
(None, 3.02839787550586), (None, 3.0451757030709894),
(None, 3.061953530636118), (None, 3.0787313582012477),
(None, 3.0955091857663772), (None, 3.112287013331507),
(None, 3.1290648408966364), (None, 3.145842668461765),
(None, 3.1626204960268947), (None, 3.1793983235920242),
(None, 3.196176151157154), (None, 3.2129539787222834),
(None, 3.229731806287413), (None, 3.2465096338525417),
(None, 3.2632874614176712), (None, 3.280065288982801),
(None, 3.2968431165479304), (None, 3.31362094411306),
(None, 3.3303987716781895), (None, 3.3471765992433182),
(None, 3.363954426808448), (None, 3.3807322543735774),
(None, 3.397510081938707), (None, 3.4142879095038365),
(None, 3.4310657370689652), (None, 3.447843564634095),
(None, 3.4646213921992244), (None, 3.481399219764354),
(None, 3.4981770473294835), (None, 3.514954874894613),
(None, 3.531732702459742), (None, 3.5485105300248714),
(None, 3.565288357590001), (None, 3.5820661851551305),
(None, 3.59884401272026), (None, 3.615621840285389),
(None, 3.6323996678505184), (None, 3.649177495415648),
(None, 3.6659553229807775), (None, 3.682733150545907),
(None, 3.6995109781110367), (None, 3.7162888056761654),
(None, 3.733066633241295), (None, 3.7498444608064245),
(None, 3.766622288371554), (None, 3.7834001159366837),
(None, 3.8001779435018124), (None, 3.816955771066943),
(None, 3.8337335986320715), (None, 3.8505114261972),
(None, 3.8672892537623307), (None, 3.8840670813274594),
(None, 3.90084490889259), (None, 3.9176227364577185),
(None, 3.934400564022849), (None, 3.9511783915879777),
(None, 3.9679562191531064), (None, 3.984734046718237),
(None, 4.0015118742833655), (None, 4.018289701848496),
(None, 4.035067529413625), (None, 4.051845356978753),
(None, 4.068623184543884), (None, 4.0854010121090125),
(None, 4.102178839674143), (None, 4.118956667239272),
(None, 4.1357344948044), (None, 4.152512322369531),
(None, 4.1692901499346595), (None, 4.18606797749979),
];
let p0 = DVec3::new(0.0, 0.0, -1.0);
let p1 = DVec3::new(2.0, 0.0, 3.0);
do_cone_zero_test(&test_data, p0, p1, ConeProperties::new(1.3, 2.0));
}
#[test]
fn test_steep_cone_zero_2() {
#[rustfmt::skip]
let test_data: [(Option<f64>, f64); 500] = [
(None, -5.23606797749979), (None, -5.215081733100993),
(None, -5.194095488702196), (None, -5.1731092443034),
(None, -5.152122999904603), (None, -5.131136755505806),
(None, -5.110150511107009), (None, -5.089164266708212),
(None, -5.068178022309416), (None, -5.047191777910619),
(None, -5.026205533511822), (None, -5.005219289113025),
(Some(1.0157669552857715), -4.9842330447142285), (Some(1.0367531996845676), -4.963246800315432),
(Some(1.0577394440833645), -4.9422605559166355), (Some(1.0787256884821614), -4.921274311517839),
(Some(1.0997119328809584), -4.900288067119042), (Some(1.1206981772797553), -4.879301822720245),
(Some(1.1416844216785513), -4.858315578321449), (Some(1.1626706660773483), -4.837329333922652),
(Some(1.1836569104761452), -4.816343089523855), (Some(1.2046431548749421), -4.795356845125058),
(Some(1.225629399273739), -4.774370600726261), (Some(1.246615643672536), -4.753384356327464),
(Some(1.267601888071332), -4.732398111928668), (Some(1.288588132470129), -4.711411867529871),
(Some(1.3095743768689259), -4.690425623131074), (Some(1.3305606212677228), -4.669439378732277),
(Some(1.3515468656665188), -4.648453134333481), (Some(1.3725331100653158), -4.627466889934684),
(Some(1.3935193544641127), -4.606480645535887), (Some(1.4145055988629096), -4.58549440113709),
(Some(1.4354918432617065), -4.5645081567382935), (Some(1.4564780876605035), -4.5435219123394965),
(Some(1.4774643320592995), -4.5225356679407005), (Some(1.4984505764580964), -4.501549423541904),
(Some(1.5194368208568934), -4.480563179143107), (Some(1.5404230652556903), -4.45957693474431),
(Some(1.5614093096544872), -4.438590690345513), (Some(1.5823955540532832), -4.417604445946717),
(Some(1.6033817984520802), -4.39661820154792), (Some(1.624368042850877), -4.375631957149123),
(Some(1.645354287249674), -4.354645712750326), (Some(1.666340531648471), -4.333659468351529),
(Some(1.687326776047267), -4.312673223952733), (Some(1.708313020446064), -4.291686979553936),
(Some(1.7292992648448609), -4.270700735155139), (Some(1.7502855092436578), -4.249714490756342),
(Some(1.7712717536424538), -4.228728246357546), (Some(1.7922579980412507), -4.207742001958749),
(Some(1.8132442424400477), -4.186755757559952), (Some(1.8342304868388446), -4.165769513161155),
(Some(1.8552167312376415), -4.1447832687623585), (Some(1.8762029756364385), -4.1237970243635615),
(Some(1.8971892200352354), -4.102810779964765), (Some(1.9181754644340314), -4.081824535565969),
(Some(1.9391617088328283), -4.060838291167172), (Some(1.9601479532316253), -4.039852046768375),
(Some(1.9811341976304222), -4.018865802369578), (Some(2.0021204420292187), -3.9978795579707813),
(Some(2.023106686428015), -3.976893313571985), (Some(2.044092930826812), -3.955907069173188),
(Some(2.065079175225609), -3.934920824774391), (Some(2.086065419624406), -3.913934580375594),
(Some(2.1070516640232024), -3.8929483359767976), (Some(2.128037908421999), -3.871962091578001),
(Some(2.149024152820796), -3.850975847179204), (Some(2.1700103972195928), -3.8299896027804072),
(Some(2.1909966416183897), -3.8090033583816103), (Some(2.211982886017186), -3.788017113982814),
(Some(2.2329691304159827), -3.7670308695840173), (Some(2.2539553748147796), -3.7460446251852204),
(Some(2.2749416192135765), -3.7250583807864235), (Some(2.2959278636123734), -3.7040721363876266),
(Some(2.31691410801117), -3.68308589198883), (Some(2.3379003524099664), -3.6620996475900336),
(Some(2.3588865968087633), -3.6411134031912367), (Some(2.3798728412075603), -3.6201271587924397),
(Some(2.400859085606357), -3.599140914393643), (Some(2.4218453300051537), -3.5781546699948463),
(Some(2.4428315744039506), -3.5571684255960494), (Some(2.463817818802747), -3.536182181197253),
(Some(2.484804063201544), -3.515195936798456), (Some(2.505790307600341), -3.494209692399659),
(Some(2.5267765519991374), -3.4732234480008626), (Some(2.5477627963979343), -3.4522372036020657),
(Some(2.568749040796731), -3.431250959203269), (Some(2.5897352851955278), -3.4102647148044722),
(Some(2.6107215295943247), -3.3892784704056753), (Some(2.631707773993121), -3.368292226006879),
(Some(2.652694018391918), -3.347305981608082), (Some(2.6736802627907146), -3.3263197372092854),
(Some(2.6946665071895115), -3.3053334928104885), (Some(2.7156527515883084), -3.2843472484116916),
(Some(2.7366389959871054), -3.2633610040128946), (Some(2.757625240385902), -3.242374759614098),
(Some(2.7786114847846983), -3.2213885152153017), (Some(2.7995977291834953), -3.2004022708165047),
(Some(2.820583973582292), -3.179416026417708), (Some(2.8415702179810887), -3.1584297820189113),
(Some(2.8625564623798856), -3.1374435376201144), (Some(2.8835427067786825), -3.1164572932213175),
(Some(2.904528951177479), -3.095471048822521), (Some(2.925515195576276), -3.074484804423724),
(Some(2.9465014399750724), -3.0534985600249276), (Some(2.9674876843738693), -3.0325123156261307),
(Some(2.9884739287726663), -3.0115260712273337), (Some(2.9810796536570745), -2.9905398268285373),
(Some(2.9391071648594806), -2.9695535824297403), (Some(2.8971346760618877), -2.948567338030944),
(Some(2.855162187264294), -2.927581093632147), (Some(2.8131896984667), -2.90659484923335),
(Some(2.771217209669107), -2.8856086048345535), (Some(2.729244720871513), -2.8646223604357566),
(Some(2.68727223207392), -2.84363611603696), (Some(2.6452997432763263), -2.822649871638163),
(Some(2.6033272544787325), -2.8016636272393662), (Some(2.5613547656811395), -2.7806773828405698),
(Some(2.5193822768835457), -2.759691138441773), (Some(2.477409788085952), -2.738704894042976),
(Some(2.435437299288359), -2.7177186496441794), (Some(2.393464810490765), -2.6967324052453825),
(Some(2.351492321693172), -2.675746160846586), (Some(2.309519832895578), -2.654759916447789),
(Some(2.2675473440979843), -2.633773672048992), (Some(2.2255748553003913), -2.6127874276501957),
(Some(2.1836023665027975), -2.5918011832513987), (Some(2.1416298777052045), -2.5708149388526023),
(Some(2.0996573889076107), -2.5498286944538053), (Some(2.057684900110017), -2.5288424500550084),
(Some(2.015712411312424), -2.507856205656212), (Some(1.97373992251483), -2.486869961257415),
(Some(1.931767433717237), -2.4658837168586185), (Some(1.8897949449196432), -2.4448974724598216),
(Some(1.8478224561220493), -2.4239112280610247), (Some(1.8058499673244564), -2.402924983662228),
(Some(1.7638774785268625), -2.3819387392634312), (Some(1.7219049897292695), -2.3609524948646348),
(Some(1.6799325009316757), -2.339966250465838), (Some(1.6379600121340818), -2.318980006067041),
(Some(1.5959875233364889), -2.2979937616682444), (Some(1.554015034538895), -2.2770075172694475),
(Some(1.5120425457413011), -2.2560212728706506), (Some(1.4700700569437082), -2.235035028471854),
(Some(1.4280975681461143), -2.214048784073057), (Some(1.3861250793485214), -2.1930625396742607),
(Some(1.3441525905509275), -2.1720762952754638), (Some(1.3021801017533337), -2.151090050876667),
(Some(1.2602076129557407), -2.1301038064778703), (Some(1.2182351241581468), -2.1091175620790734),
(Some(1.1762626353605539), -2.088131317680277), (Some(1.13429014656296), -2.06714507328148),
(Some(1.0923176577653662), -2.046158828882683), (Some(1.0503451689677732), -2.0251725844838866),
(Some(1.0083726801701793), -2.0041863400850897), (Some(0.9664001913725864), -1.9832000956862932),
(Some(0.9244277025749925), -1.9622138512874963), (Some(0.8824552137773987), -1.9412276068886993),
(Some(0.8404827249798057), -1.9202413624899028), (Some(0.7985102361822118), -1.899255118091106),
(Some(0.756537747384618), -1.878268873692309), (Some(0.714565258587025), -1.8572826292935125),
(Some(0.6725927697894312), -1.8362963848947156), (Some(0.6306202809918382), -1.815310140495919),
(Some(0.5886477921942443), -1.7943238960971222), (Some(0.5466753033966505), -1.7733376516983252),
(Some(0.5047028145990575), -1.7523514072995288), (Some(0.46273032580146367), -1.7313651629007318),
(Some(0.4207578370038707), -1.7103789185019354), (Some(0.37878534820627685), -1.6893926741031384),
(Some(0.336812859408683), -1.6684064297043415), (Some(0.29484037061109003), -1.647420185305545),
(Some(0.2528678818134962), -1.626433940906748), (Some(0.2108953930159032), -1.6054476965079516),
(Some(0.16892290421830936), -1.5844614521091547), (Some(0.1269504154207155), -1.5634752077103578),
(Some(0.08497792662312253), -1.5424889633115613), (Some(0.04300543782552868), -1.5215027189127643),
(Some(0.0010329490279357145), -1.5005164745139679), (Some(-0.04093953976965814), -1.479530230115171),
(Some(-0.082912028567252), -1.458543985716374), (Some(-0.12488451736484496), -1.4375577413175775),
(Some(-0.16685700616243881), -1.4165714969187806), (Some(-0.20882949496003267), -1.3955852525199837),
(Some(-0.25080198375762564), -1.3745990081211872), (Some(-0.2927744725552195), -1.3536127637223903),
(Some(-0.33474696135281246), -1.3326265193235938), (Some(-0.3767194501504063), -1.3116402749247968),
(Some(-0.41869193894800016), -1.290654030526), (Some(-0.46066442774559313), -1.2696677861272034),
(Some(-0.502636916543187), -1.2486815417284065), (Some(-0.5446094053407808), -1.2276952973296096),
(Some(-0.5865818941383729), -1.2067090529308135), (Some(-0.6285543829359668), -1.1857228085320166),
(Some(-0.6705268717335606), -1.1647365641332197), (Some(-0.7124993605311545), -1.1437503197344228),
(Some(-0.7544718493287483), -1.1227640753356258), (Some(-0.7964443381263422), -1.101777830936829),
(Some(-0.8384168269239343), -1.0807915865380329), (Some(-0.8803893157215281), -1.059805342139236),
(Some(-0.922361804519122), -1.038819097740439), (Some(-0.9643342933167158), -1.017832853341642),
(Some(-1.0031533910571548), -0.9968466089428452), (Some(-1.0241396354559509), -0.9758603645440491),
(Some(-1.0451258798547478), -0.9548741201452522), (Some(-1.0661121242535447), -0.9338878757464553),
(Some(-1.0870983686523417), -0.9129016313476583), (Some(-1.1080846130511386), -0.8919153869488614),
(Some(-1.1290708574499346), -0.8709291425500654), (Some(-1.1500571018487316), -0.8499428981512684),
(Some(-1.1710433462475285), -0.8289566537524715), (Some(-1.1920295906463254), -0.8079704093536746),
(Some(-1.2130158350451223), -0.7869841649548777), (Some(-1.2340020794439184), -0.7659979205560816),
(Some(-1.2549883238427153), -0.7450116761572847), (Some(-1.2759745682415122), -0.7240254317584878),
(Some(-1.2969608126403092), -0.7030391873596908), (Some(-1.317947057039106), -0.6820529429608939),
(Some(-1.3389333014379021), -0.6610666985620979), (Some(-1.359919545836699), -0.640080454163301),
(Some(-1.380905790235496), -0.619094209764504), (Some(-1.401892034634293), -0.5981079653657071),
(Some(-1.4228782790330898), -0.5771217209669102), (Some(-1.4438645234318859), -0.5561354765681141),
(Some(-1.4648507678306828), -0.5351492321693172), (Some(-1.4858370122294797), -0.5141629877705203),
(Some(-1.5068232566282767), -0.49317674337172335), (Some(-1.5278095010270736), -0.4721904989729264),
(Some(-1.5487957454258696), -0.4512042545741304), (Some(-1.5697819898246665), -0.43021801017533345),
(Some(-1.5907682342234635), -0.4092317657765365), (Some(-1.6117544786222604), -0.3882455213777396),
(Some(-1.6327407230210573), -0.3672592769789427), (Some(-1.6537269674198534), -0.34627303258014663),
(Some(-1.6747132118186503), -0.3252867881813497), (Some(-1.6956994562174472), -0.3043005437825528),
(Some(-1.7166857006162441), -0.28331429938375585), (Some(-1.737671945015041), -0.2623280549849589),
(Some(-1.758658189413838), -0.241341810586162), (Some(-1.779644433812634), -0.22035556618736596),
(Some(-1.800630678211431), -0.19936932178856903), (Some(-1.821616922610228), -0.1783830773897721),
(Some(-1.8426031670090248), -0.15739683299097518), (Some(-1.8635894114078217), -0.13641058859217825),
(Some(-1.8845756558066178), -0.11542434419338221), (Some(-1.9055619002054147), -0.09443809979458528),
(Some(-1.9265481446042116), -0.07345185539578836), (Some(-1.9475343890030086), -0.05246561099699143),
(Some(-1.9685206334018055), -0.0314793665981945), (Some(-1.9895068778006015), -0.010493122199398464),
(Some(-2.0104931221993985), 0.010493122199398464), (Some(-2.0314793665981954), 0.03147936659819539),
(Some(-2.0524656109969923), 0.05246561099699232), (Some(-2.0734518553957892), 0.07345185539578925),
(Some(-2.0944380997945853), 0.09443809979458528), (Some(-2.115424344193382), 0.11542434419338221),
(Some(-2.136410588592179), 0.13641058859217914), (Some(-2.157396832990976), 0.15739683299097607),
(Some(-2.178383077389773), 0.178383077389773), (Some(-2.199369321788569), 0.19936932178856903),
(Some(-2.220355566187366), 0.22035556618736596), (Some(-2.241341810586163), 0.24134181058616289),
(Some(-2.26232805498496), 0.2623280549849598), (Some(-2.2833142993837567), 0.28331429938375674),
(Some(-2.304300543782553), 0.3043005437825528), (Some(-2.3252867881813497), 0.3252867881813497),
(Some(-2.3462730325801466), 0.34627303258014663), (Some(-2.3672592769789436), 0.36725927697894356),
(Some(-2.3882455213777405), 0.3882455213777405), (Some(-2.4092317657765365), 0.4092317657765365),
(Some(-2.4302180101753335), 0.43021801017533345), (Some(-2.4512042545741304), 0.4512042545741304),
(Some(-2.4721904989729273), 0.4721904989729273), (Some(-2.4931767433717242), 0.49317674337172424),
(Some(-2.5141629877705203), 0.5141629877705203), (Some(-2.535149232169317), 0.5351492321693172),
(Some(-2.556135476568114), 0.5561354765681141), (Some(-2.577121720966911), 0.5771217209669111),
(Some(-2.598107965365708), 0.598107965365708), (Some(-2.619094209764505), 0.6190942097645049),
(Some(-2.640080454163301), 0.640080454163301), (Some(-2.661066698562098), 0.6610666985620979),
(Some(-2.682052942960895), 0.6820529429608948), (Some(-2.7030391873596917), 0.7030391873596917),
(Some(-2.7240254317584887), 0.7240254317584887), (Some(-2.7450116761572847), 0.7450116761572847),
(Some(-2.7659979205560816), 0.7659979205560816), (Some(-2.7869841649548786), 0.7869841649548786),
(Some(-2.8079704093536755), 0.8079704093536755), (Some(-2.8289566537524724), 0.8289566537524724),
(Some(-2.8499428981512684), 0.8499428981512684), (Some(-2.8709291425500654), 0.8709291425500654),
(Some(-2.8919153869488623), 0.8919153869488623), (Some(-2.9129016313476592), 0.9129016313476592),
(Some(-2.933887875746456), 0.9338878757464562), (Some(-2.954874120145252), 0.9548741201452522),
(Some(-2.975860364544049), 0.9758603645440491), (Some(-2.996846608942846), 0.996846608942846),
(None, 1.017832853341643), (None, 1.03881909774044),
(None, 1.059805342139236), (None, 1.0807915865380329),
(None, 1.1017778309368298), (None, 1.1227640753356267),
(None, 1.1437503197344236), (None, 1.1647365641332197),
(None, 1.1857228085320166), (None, 1.2067090529308135),
(None, 1.2276952973296105), (None, 1.2486815417284074),
(None, 1.2696677861272034), (None, 1.2906540305260004),
(None, 1.3116402749247973), (None, 1.3326265193235942),
(None, 1.3536127637223911), (None, 1.3745990081211872),
(None, 1.395585252519984), (None, 1.416571496918781),
(None, 1.437557741317578), (None, 1.458543985716375),
(None, 1.4795302301151718), (None, 1.5005164745139679),
(None, 1.5215027189127648), (None, 1.5424889633115617),
(None, 1.5634752077103586), (None, 1.5844614521091556),
(None, 1.6054476965079516), (None, 1.6264339409067485),
(None, 1.6474201853055455), (None, 1.6684064297043424),
(None, 1.6893926741031393), (None, 1.7103789185019354),
(None, 1.7313651629007323), (None, 1.7523514072995292),
(None, 1.7733376516983261), (None, 1.794323896097123),
(None, 1.815310140495919), (None, 1.836296384894716),
(None, 1.857282629293513), (None, 1.8782688736923099),
(None, 1.8992551180911068), (None, 1.9202413624899028),
(None, 1.9412276068886998), (None, 1.9622138512874967),
(None, 1.9832000956862936), (None, 2.0041863400850906),
(None, 2.0251725844838866), (None, 2.0461588288826835),
(None, 2.0671450732814804), (None, 2.0881313176802774),
(None, 2.1091175620790743), (None, 2.1301038064778703),
(None, 2.1510900508766673), (None, 2.172076295275464),
(None, 2.193062539674261), (None, 2.214048784073058),
(None, 2.235035028471854), (None, 2.256021272870651),
(None, 2.277007517269448), (None, 2.297993761668245),
(None, 2.318980006067042), (None, 2.339966250465838),
(None, 2.3609524948646348), (None, 2.3819387392634317),
(None, 2.4029249836622286), (None, 2.4239112280610255),
(None, 2.4448974724598225), (None, 2.4658837168586185),
(None, 2.4868699612574154), (None, 2.5078562056562124),
(None, 2.5288424500550093), (None, 2.549828694453806),
(None, 2.5708149388526023), (None, 2.591801183251399),
(None, 2.612787427650196), (None, 2.633773672048993),
(None, 2.65475991644779), (None, 2.675746160846586),
(None, 2.696732405245383), (None, 2.71771864964418),
(None, 2.738704894042977), (None, 2.7596911384417737),
(None, 2.7806773828405706), (None, 2.8016636272393676),
(None, 2.8226498716381627), (None, 2.8436361160369596),
(None, 2.8646223604357566), (None, 2.8856086048345535),
(None, 2.9065948492333504), (None, 2.9275810936321474),
(None, 2.9485673380309443), (None, 2.969553582429741),
(None, 2.990539826828538), (None, 3.011526071227335),
(None, 3.032512315626132), (None, 3.053498560024927),
(None, 3.074484804423724), (None, 3.095471048822521),
(None, 3.116457293221318), (None, 3.137443537620115),
(None, 3.158429782018912), (None, 3.1794160264177087),
(None, 3.2004022708165056), (None, 3.2213885152153026),
(None, 3.2423747596140995), (None, 3.2633610040128946),
(None, 3.2843472484116916), (None, 3.3053334928104885),
(None, 3.3263197372092854), (None, 3.3473059816080823),
(None, 3.3682922260068793), (None, 3.389278470405676),
(None, 3.410264714804473), (None, 3.43125095920327),
(None, 3.452237203602067), (None, 3.473223448000862),
(None, 3.494209692399659), (None, 3.515195936798456),
(None, 3.536182181197253), (None, 3.55716842559605),
(None, 3.5781546699948468), (None, 3.5991409143936437),
(None, 3.6201271587924406), (None, 3.6411134031912376),
(None, 3.6620996475900345), (None, 3.6830858919888296),
(None, 3.7040721363876266), (None, 3.7250583807864235),
(None, 3.7460446251852204), (None, 3.7670308695840173),
(None, 3.7880171139828143), (None, 3.809003358381611),
(None, 3.829989602780408), (None, 3.850975847179205),
(None, 3.871962091578002), (None, 3.892948335976799),
(None, 3.913934580375594), (None, 3.934920824774391),
(None, 3.955907069173188), (None, 3.976893313571985),
(None, 3.9978795579707818), (None, 4.018865802369579),
(None, 4.039852046768376), (None, 4.0608382911671725),
(None, 4.0818245355659695), (None, 4.102810779964766),
(None, 4.1237970243635615), (None, 4.1447832687623585),
(None, 4.165769513161155), (None, 4.186755757559952),
(None, 4.207742001958749), (None, 4.228728246357546),
(None, 4.249714490756343), (None, 4.27070073515514),
(None, 4.291686979553937), (None, 4.312673223952734),
(None, 4.333659468351529), (None, 4.354645712750326),
(None, 4.375631957149123), (None, 4.39661820154792),
(None, 4.417604445946717), (None, 4.438590690345514),
(None, 4.459576934744311), (None, 4.4805631791431075),
(None, 4.5015494235419045), (None, 4.522535667940701),
(None, 4.5435219123394965), (None, 4.5645081567382935),
(None, 4.58549440113709), (None, 4.606480645535887),
(None, 4.627466889934684), (None, 4.648453134333481),
(None, 4.669439378732278), (None, 4.690425623131075),
(None, 4.711411867529872), (None, 4.732398111928669),
(None, 4.753384356327466), (None, 4.774370600726261),
(None, 4.795356845125058), (None, 4.816343089523855),
(None, 4.837329333922652), (None, 4.858315578321449),
(None, 4.879301822720246), (None, 4.9002880671190425),
(None, 4.9212743115178395), (None, 4.942260555916636),
(None, 4.963246800315433), (None, 4.9842330447142285),
(None, 5.005219289113025), (None, 5.026205533511822),
(None, 5.047191777910619), (None, 5.068178022309416),
(None, 5.089164266708213), (None, 5.11015051110701),
(None, 5.131136755505807), (None, 5.152122999904604),
(None, 5.173109244303401), (None, 5.194095488702196),
(None, 5.215081733100993), (None, 5.23606797749979),
];
let p0 = DVec3::new(1.0, 0.0, -1.0);
let p1 = DVec3::new(3.0, 0.0, 3.0);
do_cone_zero_test(&test_data, p0, p1, ConeProperties::new(2.0, 2.0));
}
#[test]
fn a_cone_vertical_test() {
#[rustfmt::skip]
let test_data: [(Option<f64>, (f64, f64)); 332] = [
(None, (-1.3013, -0.4794263157894737)), (None, (-1.3013, -0.3424473684210527)),
(None, (-1.3013, -0.20546842105263163)), (None, (-1.3013, -0.06848947368421054)),
(None, (-1.3013, 0.06848947368421054)), (None, (-1.3013, 0.2054684210526314)),
(None, (-1.3013, 0.3424473684210525)), (None, (-1.3013, 0.4794263157894736)),
(None, (-1.1643210526315788, -0.7533842105263158)), (None, (-1.1643210526315788, -0.6164052631578947)),
(Some(3.031412574359943), (-1.1643210526315788, -0.4794263157894737)), (Some(3.0664334109570515), (-1.1643210526315788, -0.3424473684210527)),
(Some(3.0905295169403315), (-1.1643210526315788, -0.20546842105263163)), (Some(3.102820223563562), (-1.1643210526315788, -0.06848947368421054)),
(Some(3.102820223563562), (-1.1643210526315788, 0.06848947368421054)), (Some(3.0905295169403315), (-1.1643210526315788, 0.2054684210526314)),
(Some(3.0664334109570515), (-1.1643210526315788, 0.3424473684210525)), (Some(3.031412574359943), (-1.1643210526315788, 0.4794263157894736)),
(None, (-1.1643210526315788, 0.6164052631578945)), (None, (-1.1643210526315788, 0.7533842105263155)),
(None, (-1.0273421052631577, -0.8903631578947369)), (Some(3.0200170361591576), (-1.0273421052631577, -0.7533842105263158)),
(Some(3.0784027084094507), (-1.0273421052631577, -0.6164052631578947)), (Some(3.127921141968206), (-1.0273421052631577, -0.4794263157894737)),
(Some(3.166989490045119), (-1.0273421052631577, -0.3424473684210527)), (Some(3.194086547404256), (-1.0273421052631577, -0.20546842105263163)),
(Some(3.207982648697301), (-1.0273421052631577, -0.06848947368421054)), (Some(3.207982648697301), (-1.0273421052631577, 0.06848947368421054)),
(Some(3.194086547404256), (-1.0273421052631577, 0.2054684210526314)), (Some(3.166989490045119), (-1.0273421052631577, 0.3424473684210525)),
(Some(3.127921141968206), (-1.0273421052631577, 0.4794263157894736)), (Some(3.0784027084094507), (-1.0273421052631577, 0.6164052631578945)),
(Some(3.0200170361591576), (-1.0273421052631577, 0.7533842105263155)), (None, (-1.0273421052631577, 0.8903631578947366)),
(None, (-0.8903631578947369, -1.0273421052631577)), (Some(3.031412574359943), (-0.8903631578947369, -0.8903631578947369)),
(Some(3.102820223563562), (-0.8903631578947369, -0.7533842105263158)), (Some(3.166989490045119), (-0.8903631578947369, -0.6164052631578947)),
(Some(3.222126953510861), (-0.8903631578947369, -0.4794263157894737)), (Some(3.266193859712563), (-0.8903631578947369, -0.3424473684210527)),
(Some(3.2971049616741865), (-0.8903631578947369, -0.20546842105263163)), (Some(3.3130819360412787), (-0.8903631578947369, -0.06848947368421054)),
(Some(3.3130819360412787), (-0.8903631578947369, 0.06848947368421054)), (Some(3.2971049616741865), (-0.8903631578947369, 0.2054684210526314)),
(Some(3.266193859712563), (-0.8903631578947369, 0.3424473684210525)), (Some(3.2221269535108616), (-0.8903631578947369, 0.4794263157894736)),
(Some(3.166989490045119), (-0.8903631578947369, 0.6164052631578945)), (Some(3.102820223563562), (-0.8903631578947369, 0.7533842105263155)),
(Some(3.031412574359943), (-0.8903631578947369, 0.8903631578947366)), (None, (-0.8903631578947369, 1.0273421052631577)),
(None, (-0.7533842105263158, -1.1643210526315788)), (Some(3.0200170361591576), (-0.7533842105263158, -1.0273421052631577)),
(Some(3.102820223563562), (-0.7533842105263158, -0.8903631578947369)), (Some(3.1804260244584133), (-0.7533842105263158, -0.7533842105263158)),
(Some(3.2512166803181346), (-0.7533842105263158, -0.6164052631578947)), (Some(3.3130819360412787), (-0.7533842105263158, -0.4794263157894737)),
(Some(3.363414262127991), (-0.7533842105263158, -0.3424473684210527)), (Some(3.399307578671454), (-0.7533842105263158, -0.20546842105263163)),
(Some(3.418083874831345), (-0.7533842105263158, -0.06848947368421054)), (Some(3.418083874831345), (-0.7533842105263158, 0.06848947368421054)),
(Some(3.399307578671454), (-0.7533842105263158, 0.2054684210526314)), (Some(3.3634142621279914), (-0.7533842105263158, 0.3424473684210525)),
(Some(3.3130819360412787), (-0.7533842105263158, 0.4794263157894736)), (Some(3.2512166803181346), (-0.7533842105263158, 0.6164052631578945)),
(Some(3.1804260244584133), (-0.7533842105263158, 0.7533842105263155)), (Some(3.102820223563562), (-0.7533842105263158, 0.8903631578947366)),
(Some(3.0200170361591576), (-0.7533842105263158, 1.0273421052631577)), (None, (-0.7533842105263158, 1.1643210526315788)),
(None, (-0.6164052631578947, -1.1643210526315788)), (Some(3.0784027084094507), (-0.6164052631578947, -1.0273421052631577)),
(Some(3.166989490045119), (-0.6164052631578947, -0.8903631578947369)), (Some(3.2512166803181346), (-0.6164052631578947, -0.7533842105263158)),
(Some(3.3294394745568834), (-0.6164052631578947, -0.6164052631578947)), (Some(3.399307578671454), (-0.6164052631578947, -0.4794263157894737)),
(Some(3.4575828541511586), (-0.6164052631578947, -0.3424473684210527)), (Some(3.5001936940270713), (-0.6164052631578947, -0.20546842105263163)),
(Some(3.522924182985497), (-0.6164052631578947, -0.06848947368421054)), (Some(3.522924182985497), (-0.6164052631578947, 0.06848947368421054)),
(Some(3.5001936940270717), (-0.6164052631578947, 0.2054684210526314)), (Some(3.4575828541511586), (-0.6164052631578947, 0.3424473684210525)),
(Some(3.399307578671454), (-0.6164052631578947, 0.4794263157894736)), (Some(3.329439474556884), (-0.6164052631578947, 0.6164052631578945)),
(Some(3.2512166803181346), (-0.6164052631578947, 0.7533842105263155)), (Some(3.166989490045119), (-0.6164052631578947, 0.8903631578947366)),
(Some(3.0784027084094507), (-0.6164052631578947, 1.0273421052631577)), (None, (-0.6164052631578947, 1.1643210526315788)),
(None, (-0.4794263157894737, -1.3013)), (Some(3.031412574359943), (-0.4794263157894737, -1.1643210526315788)),
(Some(3.127921141968206), (-0.4794263157894737, -1.0273421052631577)), (Some(3.222126953510861), (-0.4794263157894737, -0.8903631578947369)),
(Some(3.3130819360412787), (-0.4794263157894737, -0.7533842105263158)), (Some(3.399307578671454), (-0.4794263157894737, -0.6164052631578947)),
(Some(3.478452924655354), (-0.4794263157894737, -0.4794263157894737)), (Some(3.5467932846152803), (-0.4794263157894737, -0.3424473684210527)),
(Some(3.598769006370012), (-0.4794263157894737, -0.20546842105263163)), (Some(3.627466374753824), (-0.4794263157894737, -0.06848947368421054)),
(Some(3.627466374753824), (-0.4794263157894737, 0.06848947368421054)), (Some(3.598769006370012), (-0.4794263157894737, 0.2054684210526314)),
(Some(3.5467932846152808), (-0.4794263157894737, 0.3424473684210525)), (Some(3.478452924655354), (-0.4794263157894737, 0.4794263157894736)),
(Some(3.399307578671454), (-0.4794263157894737, 0.6164052631578945)), (Some(3.313081936041279), (-0.4794263157894737, 0.7533842105263155)),
(Some(3.2221269535108616), (-0.4794263157894737, 0.8903631578947366)), (Some(3.127921141968206), (-0.4794263157894737, 1.0273421052631577)),
(Some(3.031412574359943), (-0.4794263157894737, 1.1643210526315788)), (None, (-0.4794263157894737, 1.3013)),
(None, (-0.3424473684210527, -1.3013)), (Some(3.0664334109570515), (-0.3424473684210527, -1.1643210526315788)),
(Some(3.166989490045119), (-0.3424473684210527, -1.0273421052631577)), (Some(3.266193859712563), (-0.3424473684210527, -0.8903631578947369)),
(Some(3.363414262127991), (-0.3424473684210527, -0.7533842105263158)), (Some(3.4575828541511586), (-0.3424473684210527, -0.6164052631578947)),
(Some(3.5467932846152803), (-0.3424473684210527, -0.4794263157894737)), (Some(3.627466374753824), (-0.3424473684210527, -0.3424473684210527)),
(Some(3.69280090280315), (-0.3424473684210527, -0.20546842105263163)), (Some(3.7313621824680854), (-0.3424473684210527, -0.06848947368421054)),
(Some(3.7313621824680854), (-0.3424473684210527, 0.06848947368421054)), (Some(3.69280090280315), (-0.3424473684210527, 0.2054684210526314)),
(Some(3.627466374753824), (-0.3424473684210527, 0.3424473684210525)), (Some(3.5467932846152808), (-0.3424473684210527, 0.4794263157894736)),
(Some(3.4575828541511586), (-0.3424473684210527, 0.6164052631578945)), (Some(3.3634142621279914), (-0.3424473684210527, 0.7533842105263155)),
(Some(3.2661938597125633), (-0.3424473684210527, 0.8903631578947366)), (Some(3.166989490045119), (-0.3424473684210527, 1.0273421052631577)),
(Some(3.0664334109570515), (-0.3424473684210527, 1.1643210526315788)), (None, (-0.3424473684210527, 1.3013)),
(None, (-0.20546842105263163, -1.3013)), (Some(3.0905295169403315), (-0.20546842105263163, -1.1643210526315788)),
(Some(3.194086547404256), (-0.20546842105263163, -1.0273421052631577)), (Some(3.2971049616741865), (-0.20546842105263163, -0.8903631578947369)),
(Some(3.399307578671454), (-0.20546842105263163, -0.7533842105263158)), (Some(3.5001936940270713), (-0.20546842105263163, -0.6164052631578947)),
(Some(3.598769006370012), (-0.20546842105263163, -0.4794263157894737)), (Some(3.69280090280315), (-0.20546842105263163, -0.3424473684210527)),
(Some(3.7764798248522946), (-0.20546842105263163, -0.20546842105263163)), (Some(3.8333978980090238), (-0.20546842105263163, -0.06848947368421054)),
(Some(3.8333978980090238), (-0.20546842105263163, 0.06848947368421054)), (Some(3.7764798248522946), (-0.20546842105263163, 0.2054684210526314)),
(Some(3.6928009028031505), (-0.20546842105263163, 0.3424473684210525)), (Some(3.598769006370012), (-0.20546842105263163, 0.4794263157894736)),
(Some(3.5001936940270717), (-0.20546842105263163, 0.6164052631578945)), (Some(3.399307578671454), (-0.20546842105263163, 0.7533842105263155)),
(Some(3.2971049616741865), (-0.20546842105263163, 0.8903631578947366)), (Some(3.194086547404256), (-0.20546842105263163, 1.0273421052631577)),
(Some(3.0905295169403315), (-0.20546842105263163, 1.1643210526315788)), (None, (-0.20546842105263163, 1.3013)),
(None, (-0.06848947368421054, -1.3013)), (Some(3.102820223563562), (-0.06848947368421054, -1.1643210526315788)),
(Some(3.207982648697301), (-0.06848947368421054, -1.0273421052631577)), (Some(3.3130819360412787), (-0.06848947368421054, -0.8903631578947369)),
(Some(3.418083874831345), (-0.06848947368421054, -0.7533842105263158)), (Some(3.522924182985497), (-0.06848947368421054, -0.6164052631578947)),
(Some(3.627466374753824), (-0.06848947368421054, -0.4794263157894737)), (Some(3.7313621824680854), (-0.06848947368421054, -0.3424473684210527)),
(Some(3.8333978980090238), (-0.06848947368421054, -0.20546842105263163)), (Some(3.9254932749507647), (-0.06848947368421054, -0.06848947368421054)),
(Some(3.9254932749507647), (-0.06848947368421054, 0.06848947368421054)), (Some(3.8333978980090238), (-0.06848947368421054, 0.2054684210526314)),
(Some(3.7313621824680854), (-0.06848947368421054, 0.3424473684210525)), (Some(3.6274663747538245), (-0.06848947368421054, 0.4794263157894736)),
(Some(3.5229241829854976), (-0.06848947368421054, 0.6164052631578945)), (Some(3.4180838748313453), (-0.06848947368421054, 0.7533842105263155)),
(Some(3.313081936041279), (-0.06848947368421054, 0.8903631578947366)), (Some(3.207982648697301), (-0.06848947368421054, 1.0273421052631577)),
(Some(3.102820223563562), (-0.06848947368421054, 1.1643210526315788)), (None, (-0.06848947368421054, 1.3013)),
(None, (0.06848947368421054, -1.3013)), (Some(3.102820223563562), (0.06848947368421054, -1.1643210526315788)),
(Some(3.207982648697301), (0.06848947368421054, -1.0273421052631577)), (Some(3.3130819360412787), (0.06848947368421054, -0.8903631578947369)),
(Some(3.418083874831345), (0.06848947368421054, -0.7533842105263158)), (Some(3.522924182985497), (0.06848947368421054, -0.6164052631578947)),
(Some(3.627466374753824), (0.06848947368421054, -0.4794263157894737)), (Some(3.7313621824680854), (0.06848947368421054, -0.3424473684210527)),
(Some(3.8333978980090238), (0.06848947368421054, -0.20546842105263163)), (Some(3.9254932749507647), (0.06848947368421054, -0.06848947368421054)),
(Some(3.9254932749507647), (0.06848947368421054, 0.06848947368421054)), (Some(3.8333978980090238), (0.06848947368421054, 0.2054684210526314)),
(Some(3.7313621824680854), (0.06848947368421054, 0.3424473684210525)), (Some(3.6274663747538245), (0.06848947368421054, 0.4794263157894736)),
(Some(3.5229241829854976), (0.06848947368421054, 0.6164052631578945)), (Some(3.4180838748313453), (0.06848947368421054, 0.7533842105263155)),
(Some(3.313081936041279), (0.06848947368421054, 0.8903631578947366)), (Some(3.207982648697301), (0.06848947368421054, 1.0273421052631577)),
(Some(3.102820223563562), (0.06848947368421054, 1.1643210526315788)), (None, (0.06848947368421054, 1.3013)),
(None, (0.2054684210526314, -1.3013)), (Some(3.0905295169403315), (0.2054684210526314, -1.1643210526315788)),
(Some(3.194086547404256), (0.2054684210526314, -1.0273421052631577)), (Some(3.2971049616741865), (0.2054684210526314, -0.8903631578947369)),
(Some(3.399307578671454), (0.2054684210526314, -0.7533842105263158)), (Some(3.5001936940270717), (0.2054684210526314, -0.6164052631578947)),
(Some(3.598769006370012), (0.2054684210526314, -0.4794263157894737)), (Some(3.69280090280315), (0.2054684210526314, -0.3424473684210527)),
(Some(3.7764798248522946), (0.2054684210526314, -0.20546842105263163)), (Some(3.8333978980090238), (0.2054684210526314, -0.06848947368421054)),
(Some(3.8333978980090238), (0.2054684210526314, 0.06848947368421054)), (Some(3.7764798248522946), (0.2054684210526314, 0.2054684210526314)),
(Some(3.6928009028031505), (0.2054684210526314, 0.3424473684210525)), (Some(3.598769006370012), (0.2054684210526314, 0.4794263157894736)),
(Some(3.5001936940270717), (0.2054684210526314, 0.6164052631578945)), (Some(3.399307578671454), (0.2054684210526314, 0.7533842105263155)),
(Some(3.2971049616741865), (0.2054684210526314, 0.8903631578947366)), (Some(3.194086547404256), (0.2054684210526314, 1.0273421052631577)),
(Some(3.0905295169403315), (0.2054684210526314, 1.1643210526315788)), (None, (0.2054684210526314, 1.3013)),
(None, (0.3424473684210525, -1.3013)), (Some(3.0664334109570515), (0.3424473684210525, -1.1643210526315788)),
(Some(3.166989490045119), (0.3424473684210525, -1.0273421052631577)), (Some(3.266193859712563), (0.3424473684210525, -0.8903631578947369)),
(Some(3.3634142621279914), (0.3424473684210525, -0.7533842105263158)), (Some(3.4575828541511586), (0.3424473684210525, -0.6164052631578947)),
(Some(3.5467932846152808), (0.3424473684210525, -0.4794263157894737)), (Some(3.627466374753824), (0.3424473684210525, -0.3424473684210527)),
(Some(3.6928009028031505), (0.3424473684210525, -0.20546842105263163)), (Some(3.7313621824680854), (0.3424473684210525, -0.06848947368421054)),
(Some(3.7313621824680854), (0.3424473684210525, 0.06848947368421054)), (Some(3.6928009028031505), (0.3424473684210525, 0.2054684210526314)),
(Some(3.6274663747538245), (0.3424473684210525, 0.3424473684210525)), (Some(3.5467932846152808), (0.3424473684210525, 0.4794263157894736)),
(Some(3.457582854151159), (0.3424473684210525, 0.6164052631578945)), (Some(3.3634142621279914), (0.3424473684210525, 0.7533842105263155)),
(Some(3.2661938597125633), (0.3424473684210525, 0.8903631578947366)), (Some(3.166989490045119), (0.3424473684210525, 1.0273421052631577)),
(Some(3.0664334109570515), (0.3424473684210525, 1.1643210526315788)), (None, (0.3424473684210525, 1.3013)),
(None, (0.4794263157894736, -1.3013)), (Some(3.031412574359943), (0.4794263157894736, -1.1643210526315788)),
(Some(3.127921141968206), (0.4794263157894736, -1.0273421052631577)), (Some(3.2221269535108616), (0.4794263157894736, -0.8903631578947369)),
(Some(3.3130819360412787), (0.4794263157894736, -0.7533842105263158)), (Some(3.399307578671454), (0.4794263157894736, -0.6164052631578947)),
(Some(3.478452924655354), (0.4794263157894736, -0.4794263157894737)), (Some(3.5467932846152808), (0.4794263157894736, -0.3424473684210527)),
(Some(3.598769006370012), (0.4794263157894736, -0.20546842105263163)), (Some(3.6274663747538245), (0.4794263157894736, -0.06848947368421054)),
(Some(3.6274663747538245), (0.4794263157894736, 0.06848947368421054)), (Some(3.598769006370012), (0.4794263157894736, 0.2054684210526314)),
(Some(3.5467932846152808), (0.4794263157894736, 0.3424473684210525)), (Some(3.478452924655354), (0.4794263157894736, 0.4794263157894736)),
(Some(3.399307578671454), (0.4794263157894736, 0.6164052631578945)), (Some(3.313081936041279), (0.4794263157894736, 0.7533842105263155)),
(Some(3.2221269535108616), (0.4794263157894736, 0.8903631578947366)), (Some(3.127921141968206), (0.4794263157894736, 1.0273421052631577)),
(Some(3.031412574359943), (0.4794263157894736, 1.1643210526315788)), (None, (0.4794263157894736, 1.3013)),
(None, (0.6164052631578945, -1.1643210526315788)), (Some(3.0784027084094507), (0.6164052631578945, -1.0273421052631577)),
(Some(3.166989490045119), (0.6164052631578945, -0.8903631578947369)), (Some(3.2512166803181346), (0.6164052631578945, -0.7533842105263158)),
(Some(3.329439474556884), (0.6164052631578945, -0.6164052631578947)), (Some(3.399307578671454), (0.6164052631578945, -0.4794263157894737)),
(Some(3.4575828541511586), (0.6164052631578945, -0.3424473684210527)), (Some(3.5001936940270717), (0.6164052631578945, -0.20546842105263163)),
(Some(3.5229241829854976), (0.6164052631578945, -0.06848947368421054)), (Some(3.5229241829854976), (0.6164052631578945, 0.06848947368421054)),
(Some(3.5001936940270717), (0.6164052631578945, 0.2054684210526314)), (Some(3.457582854151159), (0.6164052631578945, 0.3424473684210525)),
(Some(3.399307578671454), (0.6164052631578945, 0.4794263157894736)), (Some(3.329439474556884), (0.6164052631578945, 0.6164052631578945)),
(Some(3.2512166803181346), (0.6164052631578945, 0.7533842105263155)), (Some(3.166989490045119), (0.6164052631578945, 0.8903631578947366)),
(Some(3.0784027084094507), (0.6164052631578945, 1.0273421052631577)), (None, (0.6164052631578945, 1.1643210526315788)),
(None, (0.7533842105263155, -1.1643210526315788)), (Some(3.0200170361591576), (0.7533842105263155, -1.0273421052631577)),
(Some(3.102820223563562), (0.7533842105263155, -0.8903631578947369)), (Some(3.1804260244584133), (0.7533842105263155, -0.7533842105263158)),
(Some(3.2512166803181346), (0.7533842105263155, -0.6164052631578947)), (Some(3.313081936041279), (0.7533842105263155, -0.4794263157894737)),
(Some(3.3634142621279914), (0.7533842105263155, -0.3424473684210527)), (Some(3.399307578671454), (0.7533842105263155, -0.20546842105263163)),
(Some(3.4180838748313453), (0.7533842105263155, -0.06848947368421054)), (Some(3.4180838748313453), (0.7533842105263155, 0.06848947368421054)),
(Some(3.399307578671454), (0.7533842105263155, 0.2054684210526314)), (Some(3.3634142621279914), (0.7533842105263155, 0.3424473684210525)),
(Some(3.313081936041279), (0.7533842105263155, 0.4794263157894736)), (Some(3.2512166803181346), (0.7533842105263155, 0.6164052631578945)),
(Some(3.1804260244584133), (0.7533842105263155, 0.7533842105263155)), (Some(3.102820223563562), (0.7533842105263155, 0.8903631578947366)),
(Some(3.0200170361591576), (0.7533842105263155, 1.0273421052631577)), (None, (0.7533842105263155, 1.1643210526315788)),
(None, (0.8903631578947366, -1.0273421052631577)), (Some(3.031412574359943), (0.8903631578947366, -0.8903631578947369)),
(Some(3.102820223563562), (0.8903631578947366, -0.7533842105263158)), (Some(3.166989490045119), (0.8903631578947366, -0.6164052631578947)),
(Some(3.2221269535108616), (0.8903631578947366, -0.4794263157894737)), (Some(3.2661938597125633), (0.8903631578947366, -0.3424473684210527)),
(Some(3.2971049616741865), (0.8903631578947366, -0.20546842105263163)), (Some(3.313081936041279), (0.8903631578947366, -0.06848947368421054)),
(Some(3.313081936041279), (0.8903631578947366, 0.06848947368421054)), (Some(3.2971049616741865), (0.8903631578947366, 0.2054684210526314)),
(Some(3.2661938597125633), (0.8903631578947366, 0.3424473684210525)), (Some(3.2221269535108616), (0.8903631578947366, 0.4794263157894736)),
(Some(3.166989490045119), (0.8903631578947366, 0.6164052631578945)), (Some(3.102820223563562), (0.8903631578947366, 0.7533842105263155)),
(Some(3.031412574359943), (0.8903631578947366, 0.8903631578947366)), (None, (0.8903631578947366, 1.0273421052631577)),
(None, (1.0273421052631577, -0.8903631578947369)), (Some(3.0200170361591576), (1.0273421052631577, -0.7533842105263158)),
(Some(3.0784027084094507), (1.0273421052631577, -0.6164052631578947)), (Some(3.127921141968206), (1.0273421052631577, -0.4794263157894737)),
(Some(3.166989490045119), (1.0273421052631577, -0.3424473684210527)), (Some(3.194086547404256), (1.0273421052631577, -0.20546842105263163)),
(Some(3.207982648697301), (1.0273421052631577, -0.06848947368421054)), (Some(3.207982648697301), (1.0273421052631577, 0.06848947368421054)),
(Some(3.194086547404256), (1.0273421052631577, 0.2054684210526314)), (Some(3.166989490045119), (1.0273421052631577, 0.3424473684210525)),
(Some(3.127921141968206), (1.0273421052631577, 0.4794263157894736)), (Some(3.0784027084094507), (1.0273421052631577, 0.6164052631578945)),
(Some(3.0200170361591576), (1.0273421052631577, 0.7533842105263155)), (None, (1.0273421052631577, 0.8903631578947366)),
(None, (1.1643210526315788, -0.7533842105263158)), (None, (1.1643210526315788, -0.6164052631578947)),
(Some(3.031412574359943), (1.1643210526315788, -0.4794263157894737)), (Some(3.0664334109570515), (1.1643210526315788, -0.3424473684210527)),
(Some(3.0905295169403315), (1.1643210526315788, -0.20546842105263163)), (Some(3.102820223563562), (1.1643210526315788, -0.06848947368421054)),
(Some(3.102820223563562), (1.1643210526315788, 0.06848947368421054)), (Some(3.0905295169403315), (1.1643210526315788, 0.2054684210526314)),
(Some(3.0664334109570515), (1.1643210526315788, 0.3424473684210525)), (Some(3.031412574359943), (1.1643210526315788, 0.4794263157894736)),
(None, (1.1643210526315788, 0.6164052631578945)), (None, (1.1643210526315788, 0.7533842105263155)),
(None, (1.3013, -0.4794263157894737)), (None, (1.3013, -0.3424473684210527)),
(None, (1.3013, -0.20546842105263163)), (None, (1.3013, -0.06848947368421054)),
(None, (1.3013, 0.06848947368421054)), (None, (1.3013, 0.2054684210526314)),
(None, (1.3013, 0.3424473684210525)), (None, (1.3013, 0.4794263157894736)),
];
let p0 = DVec3::new(0.0, 0.0, 4.0);
let p1 = DVec3::new(0.0, 0.0, 2.0);
let cone = ConeProperties::new(1.3, 1.0);
do_cone_test(&test_data, p0, p1, cone);
}
#[test]
fn a_cone_flat_line_test_1() {
#[rustfmt::skip]
let test_data: [(Option<f64>, (f64, f64)); 364] = [
(None, (-1.3013, -0.4794263157894737)), (None, (-1.3013, -0.3424473684210527)),
(None, (-1.3013, -0.20546842105263163)), (None, (-1.3013, -0.06848947368421054)),
(None, (-1.3013, 0.06848947368421054)), (None, (-1.3013, 0.2054684210526314)),
(None, (-1.3013, 0.3424473684210525)), (None, (-1.3013, 0.4794263157894736)),
(None, (-0.9537947368421051, -1.0273421052631577)), (None, (-0.9537947368421051, -0.8903631578947369)),
(Some(0.06504052908836022), (-0.9537947368421051, -0.7533842105263158)), (Some(0.12643021418084377), (-0.9537947368421051, -0.6164052631578947)),
(Some(0.1788397614015097), (-0.9537947368421051, -0.4794263157894737)), (Some(0.2204558302928682), (-0.9537947368421051, -0.3424473684210527)),
(Some(0.24948078245531724), (-0.9537947368421051, -0.20546842105263163)), (Some(0.2644226161758142), (-0.9537947368421051, -0.06848947368421054)),
(Some(0.2644226161758142), (-0.9537947368421051, 0.06848947368421054)), (Some(0.24948078245531724), (-0.9537947368421051, 0.2054684210526314)),
(Some(0.2204558302928682), (-0.9537947368421051, 0.3424473684210525)), (Some(0.17883976140150992), (-0.9537947368421051, 0.4794263157894736)),
(Some(0.12643021418084377), (-0.9537947368421051, 0.6164052631578945)), (Some(0.06504052908836044), (-0.9537947368421051, 0.7533842105263155)),
(None, (-0.9537947368421051, 0.8903631578947366)), (None, (-0.9537947368421051, 1.0273421052631577)),
(None, (-0.6062894736842105, -1.1643210526315788)), (Some(0.08238193377010727), (-0.6062894736842105, -1.0273421052631577)),
(Some(0.17139402771899914), (-0.6062894736842105, -0.8903631578947369)), (Some(0.25611976270487813), (-0.6062894736842105, -0.7533842105263158)),
(Some(0.3349189779530616), (-0.6062894736842105, -0.6164052631578947)), (Some(0.405430632603728), (-0.6062894736842105, -0.4794263157894737)),
(Some(0.464371670171139), (-0.6062894736842105, -0.3424473684210527)), (Some(0.5075696078685268), (-0.6062894736842105, -0.20546842105263163)),
(Some(0.5306571798945816), (-0.6062894736842105, -0.06848947368421054)), (Some(0.5306571798945816), (-0.6062894736842105, 0.06848947368421054)),
(Some(0.5075696078685268), (-0.6062894736842105, 0.2054684210526314)), (Some(0.4643716701711391), (-0.6062894736842105, 0.3424473684210525)),
(Some(0.405430632603728), (-0.6062894736842105, 0.4794263157894736)), (Some(0.3349189779530617), (-0.6062894736842105, 0.6164052631578945)),
(Some(0.25611976270487835), (-0.6062894736842105, 0.7533842105263155)), (Some(0.17139402771899936), (-0.6062894736842105, 0.8903631578947366)),
(Some(0.08238193377010727), (-0.6062894736842105, 1.0273421052631577)), (None, (-0.6062894736842105, 1.1643210526315788)),
(None, (-0.25878421052631584, -1.3013)), (Some(0.08251282800227855), (-0.25878421052631584, -1.1643210526315788)),
(Some(0.1850505265365331), (-0.25878421052631584, -1.0273421052631577)), (Some(0.2867626018451941), (-0.25878421052631584, -0.8903631578947369)),
(Some(0.38723778162721123), (-0.25878421052631584, -0.7533842105263158)), (Some(0.4857505520529024), (-0.25878421052631584, -0.6164052631578947)),
(Some(0.5809147324554376), (-0.25878421052631584, -0.4794263157894737)), (Some(0.6698221137899305), (-0.25878421052631584, -0.3424473684210527)),
(Some(0.7458201032307021), (-0.25878421052631584, -0.20546842105263163)), (Some(0.7940815413533755), (-0.25878421052631584, -0.06848947368421054)),
(Some(0.7940815413533755), (-0.25878421052631584, 0.06848947368421054)), (Some(0.7458201032307022), (-0.25878421052631584, 0.2054684210526314)),
(Some(0.6698221137899307), (-0.25878421052631584, 0.3424473684210525)), (Some(0.5809147324554376), (-0.25878421052631584, 0.4794263157894736)),
(Some(0.48575055205290263), (-0.25878421052631584, 0.6164052631578945)), (Some(0.38723778162721145), (-0.25878421052631584, 0.7533842105263155)),
(Some(0.2867626018451943), (-0.25878421052631584, 0.8903631578947366)), (Some(0.1850505265365331), (-0.25878421052631584, 1.0273421052631577)),
(Some(0.08251282800227855), (-0.25878421052631584, 1.1643210526315788)), (None, (-0.25878421052631584, 1.3013)),
(None, (0.08872105263157892, -1.3013)), (Some(0.1043684210528536), (0.08872105263157892, -1.1643210526315788)),
(Some(0.20973684210548516), (0.08872105263157892, -1.0273421052631577)), (Some(0.3151052631581166), (0.08872105263157892, -0.8903631578947369)),
(Some(0.42047368421074816), (0.08872105263157892, -0.7533842105263158)), (Some(0.5258421052633798), (0.08872105263157892, -0.6164052631578947)),
(Some(0.6312105263160113), (0.08872105263157892, -0.4794263157894737)), (Some(0.7365789473686428), (0.08872105263157892, -0.3424473684210527)),
(Some(0.8419473684212744), (0.08872105263157892, -0.20546842105263163)), (Some(0.947315789473906), (0.08872105263157892, -0.06848947368421054)),
(Some(0.947315789473906), (0.08872105263157892, 0.06848947368421054)), (Some(0.8419473684212746), (0.08872105263157892, 0.2054684210526314)),
(Some(0.736578947368643), (0.08872105263157892, 0.3424473684210525)), (Some(0.6312105263160114), (0.08872105263157892, 0.4794263157894736)),
(Some(0.5258421052633799), (0.08872105263157892, 0.6164052631578945)), (Some(0.4204736842107484), (0.08872105263157892, 0.7533842105263155)),
(Some(0.3151052631581168), (0.08872105263157892, 0.8903631578947366)), (Some(0.20973684210548516), (0.08872105263157892, 1.0273421052631577)),
(Some(0.1043684210528536), (0.08872105263157892, 1.1643210526315788)), (None, (0.08872105263157892, 1.3013)),
(None, (0.4362263157894737, -1.3013)), (Some(0.10436842105372224), (0.4362263157894737, -1.1643210526315788)),
(Some(0.2097368421063538), (0.4362263157894737, -1.0273421052631577)), (Some(0.31510526315898524), (0.4362263157894737, -0.8903631578947369)),
(Some(0.4204736842116168), (0.4362263157894737, -0.7533842105263158)), (Some(0.5258421052642485), (0.4362263157894737, -0.6164052631578947)),
(Some(0.6312105263168799), (0.4362263157894737, -0.4794263157894737)), (Some(0.7365789473695115), (0.4362263157894737, -0.3424473684210527)),
(Some(0.841947368422143), (0.4362263157894737, -0.20546842105263163)), (Some(0.9473157894747747), (0.4362263157894737, -0.06848947368421054)),
(Some(0.9473157894747747), (0.4362263157894737, 0.06848947368421054)), (Some(0.8419473684221432), (0.4362263157894737, 0.2054684210526314)),
(Some(0.7365789473695117), (0.4362263157894737, 0.3424473684210525)), (Some(0.63121052631688), (0.4362263157894737, 0.4794263157894736)),
(Some(0.5258421052642486), (0.4362263157894737, 0.6164052631578945)), (Some(0.420473684211617), (0.4362263157894737, 0.7533842105263155)),
(Some(0.31510526315898546), (0.4362263157894737, 0.8903631578947366)), (Some(0.2097368421063538), (0.4362263157894737, 1.0273421052631577)),
(Some(0.10436842105372224), (0.4362263157894737, 1.1643210526315788)), (None, (0.4362263157894737, 1.3013)),
(None, (0.7837315789473682, -1.3013)), (Some(0.1043684210545911), (0.7837315789473682, -1.1643210526315788)),
(Some(0.20973684210722265), (0.7837315789473682, -1.0273421052631577)), (Some(0.3151052631598541), (0.7837315789473682, -0.8903631578947369)),
(Some(0.42047368421248565), (0.7837315789473682, -0.7533842105263158)), (Some(0.5258421052651173), (0.7837315789473682, -0.6164052631578947)),
(Some(0.6312105263177488), (0.7837315789473682, -0.4794263157894737)), (Some(0.7365789473703803), (0.7837315789473682, -0.3424473684210527)),
(Some(0.8419473684230119), (0.7837315789473682, -0.20546842105263163)), (Some(0.9473157894756435), (0.7837315789473682, -0.06848947368421054)),
(Some(0.9473157894756435), (0.7837315789473682, 0.06848947368421054)), (Some(0.8419473684230121), (0.7837315789473682, 0.2054684210526314)),
(Some(0.7365789473703805), (0.7837315789473682, 0.3424473684210525)), (Some(0.6312105263177489), (0.7837315789473682, 0.4794263157894736)),
(Some(0.5258421052651174), (0.7837315789473682, 0.6164052631578945)), (Some(0.4204736842124859), (0.7837315789473682, 0.7533842105263155)),
(Some(0.3151052631598543), (0.7837315789473682, 0.8903631578947366)), (Some(0.20973684210722265), (0.7837315789473682, 1.0273421052631577)),
(Some(0.1043684210545911), (0.7837315789473682, 1.1643210526315788)), (None, (0.7837315789473682, 1.3013)),
(None, (1.1312368421052632, -1.3013)), (Some(0.10436842105545996), (1.1312368421052632, -1.1643210526315788)),
(Some(0.20973684210809151), (1.1312368421052632, -1.0273421052631577)), (Some(0.31510526316072296), (1.1312368421052632, -0.8903631578947369)),
(Some(0.4204736842133545), (1.1312368421052632, -0.7533842105263158)), (Some(0.5258421052659862), (1.1312368421052632, -0.6164052631578947)),
(Some(0.6312105263186176), (1.1312368421052632, -0.4794263157894737)), (Some(0.7365789473712492), (1.1312368421052632, -0.3424473684210527)),
(Some(0.8419473684238807), (1.1312368421052632, -0.20546842105263163)), (Some(0.9473157894765124), (1.1312368421052632, -0.06848947368421054)),
(Some(0.9473157894765124), (1.1312368421052632, 0.06848947368421054)), (Some(0.841947368423881), (1.1312368421052632, 0.2054684210526314)),
(Some(0.7365789473712494), (1.1312368421052632, 0.3424473684210525)), (Some(0.6312105263186177), (1.1312368421052632, 0.4794263157894736)),
(Some(0.5258421052659863), (1.1312368421052632, 0.6164052631578945)), (Some(0.42047368421335474), (1.1312368421052632, 0.7533842105263155)),
(Some(0.3151052631607232), (1.1312368421052632, 0.8903631578947366)), (Some(0.20973684210809151), (1.1312368421052632, 1.0273421052631577)),
(Some(0.10436842105545996), (1.1312368421052632, 1.1643210526315788)), (None, (1.1312368421052632, 1.3013)),
(None, (1.4787421052631577, -1.3013)), (Some(0.1043684210563286), (1.4787421052631577, -1.1643210526315788)),
(Some(0.20973684210896015), (1.4787421052631577, -1.0273421052631577)), (Some(0.3151052631615916), (1.4787421052631577, -0.8903631578947369)),
(Some(0.42047368421422315), (1.4787421052631577, -0.7533842105263158)), (Some(0.5258421052668548), (1.4787421052631577, -0.6164052631578947)),
(Some(0.6312105263194863), (1.4787421052631577, -0.4794263157894737)), (Some(0.7365789473721178), (1.4787421052631577, -0.3424473684210527)),
(Some(0.8419473684247494), (1.4787421052631577, -0.20546842105263163)), (Some(0.947315789477381), (1.4787421052631577, -0.06848947368421054)),
(Some(0.947315789477381), (1.4787421052631577, 0.06848947368421054)), (Some(0.8419473684247496), (1.4787421052631577, 0.2054684210526314)),
(Some(0.736578947372118), (1.4787421052631577, 0.3424473684210525)), (Some(0.6312105263194864), (1.4787421052631577, 0.4794263157894736)),
(Some(0.5258421052668549), (1.4787421052631577, 0.6164052631578945)), (Some(0.4204736842142234), (1.4787421052631577, 0.7533842105263155)),
(Some(0.3151052631615918), (1.4787421052631577, 0.8903631578947366)), (Some(0.20973684210896015), (1.4787421052631577, 1.0273421052631577)),
(Some(0.1043684210563286), (1.4787421052631577, 1.1643210526315788)), (None, (1.4787421052631577, 1.3013)),
(None, (1.8262473684210523, -1.3013)), (Some(0.10436842105719746), (1.8262473684210523, -1.1643210526315788)),
(Some(0.209736842109829), (1.8262473684210523, -1.0273421052631577)), (Some(0.31510526316246046), (1.8262473684210523, -0.8903631578947369)),
(Some(0.420473684215092), (1.8262473684210523, -0.7533842105263158)), (Some(0.5258421052677237), (1.8262473684210523, -0.6164052631578947)),
(Some(0.6312105263203551), (1.8262473684210523, -0.4794263157894737)), (Some(0.7365789473729867), (1.8262473684210523, -0.3424473684210527)),
(Some(0.8419473684256182), (1.8262473684210523, -0.20546842105263163)), (Some(0.9473157894782499), (1.8262473684210523, -0.06848947368421054)),
(Some(0.9473157894782499), (1.8262473684210523, 0.06848947368421054)), (Some(0.8419473684256185), (1.8262473684210523, 0.2054684210526314)),
(Some(0.7365789473729869), (1.8262473684210523, 0.3424473684210525)), (Some(0.6312105263203552), (1.8262473684210523, 0.4794263157894736)),
(Some(0.5258421052677238), (1.8262473684210523, 0.6164052631578945)), (Some(0.42047368421509224), (1.8262473684210523, 0.7533842105263155)),
(Some(0.3151052631624607), (1.8262473684210523, 0.8903631578947366)), (Some(0.209736842109829), (1.8262473684210523, 1.0273421052631577)),
(Some(0.10436842105719746), (1.8262473684210523, 1.1643210526315788)), (None, (1.8262473684210523, 1.3013)),
(None, (2.1737526315789473, -1.3013)), (Some(0.1043684210580661), (2.1737526315789473, -1.1643210526315788)),
(Some(0.20973684211069765), (2.1737526315789473, -1.0273421052631577)), (Some(0.3151052631633291), (2.1737526315789473, -0.8903631578947369)),
(Some(0.42047368421596065), (2.1737526315789473, -0.7533842105263158)), (Some(0.5258421052685923), (2.1737526315789473, -0.6164052631578947)),
(Some(0.6312105263212238), (2.1737526315789473, -0.4794263157894737)), (Some(0.7365789473738553), (2.1737526315789473, -0.3424473684210527)),
(Some(0.8419473684264869), (2.1737526315789473, -0.20546842105263163)), (Some(0.9473157894791185), (2.1737526315789473, -0.06848947368421054)),
(Some(0.9473157894791185), (2.1737526315789473, 0.06848947368421054)), (Some(0.8419473684264871), (2.1737526315789473, 0.2054684210526314)),
(Some(0.7365789473738555), (2.1737526315789473, 0.3424473684210525)), (Some(0.6312105263212239), (2.1737526315789473, 0.4794263157894736)),
(Some(0.5258421052685924), (2.1737526315789473, 0.6164052631578945)), (Some(0.4204736842159609), (2.1737526315789473, 0.7533842105263155)),
(Some(0.3151052631633293), (2.1737526315789473, 0.8903631578947366)), (Some(0.20973684211069765), (2.1737526315789473, 1.0273421052631577)),
(Some(0.1043684210580661), (2.1737526315789473, 1.1643210526315788)), (None, (2.1737526315789473, 1.3013)),
(None, (2.521257894736842, -1.3013)), (Some(0.10436842105893496), (2.521257894736842, -1.1643210526315788)),
(Some(0.2097368421115665), (2.521257894736842, -1.0273421052631577)), (Some(0.31510526316419796), (2.521257894736842, -0.8903631578947369)),
(Some(0.4204736842168295), (2.521257894736842, -0.7533842105263158)), (Some(0.5258421052694612), (2.521257894736842, -0.6164052631578947)),
(Some(0.6312105263220926), (2.521257894736842, -0.4794263157894737)), (Some(0.7365789473747242), (2.521257894736842, -0.3424473684210527)),
(Some(0.8419473684273557), (2.521257894736842, -0.20546842105263163)), (Some(0.9473157894799874), (2.521257894736842, -0.06848947368421054)),
(Some(0.9473157894799874), (2.521257894736842, 0.06848947368421054)), (Some(0.841947368427356), (2.521257894736842, 0.2054684210526314)),
(Some(0.7365789473747244), (2.521257894736842, 0.3424473684210525)), (Some(0.6312105263220927), (2.521257894736842, 0.4794263157894736)),
(Some(0.5258421052694613), (2.521257894736842, 0.6164052631578945)), (Some(0.42047368421682974), (2.521257894736842, 0.7533842105263155)),
(Some(0.3151052631641982), (2.521257894736842, 0.8903631578947366)), (Some(0.2097368421115665), (2.521257894736842, 1.0273421052631577)),
(Some(0.10436842105893496), (2.521257894736842, 1.1643210526315788)), (None, (2.521257894736842, 1.3013)),
(None, (2.8687631578947363, -1.3013)), (Some(0.1043684210598036), (2.8687631578947363, -1.1643210526315788)),
(Some(0.20973684211243515), (2.8687631578947363, -1.0273421052631577)), (Some(0.3151052631650666), (2.8687631578947363, -0.8903631578947369)),
(Some(0.42047368421769815), (2.8687631578947363, -0.7533842105263158)), (Some(0.5258421052703298), (2.8687631578947363, -0.6164052631578947)),
(Some(0.6312105263229613), (2.8687631578947363, -0.4794263157894737)), (Some(0.7365789473755928), (2.8687631578947363, -0.3424473684210527)),
(Some(0.8419473684282244), (2.8687631578947363, -0.20546842105263163)), (Some(0.947315789480856), (2.8687631578947363, -0.06848947368421054)),
(Some(0.947315789480856), (2.8687631578947363, 0.06848947368421054)), (Some(0.8419473684282246), (2.8687631578947363, 0.2054684210526314)),
(Some(0.736578947375593), (2.8687631578947363, 0.3424473684210525)), (Some(0.6312105263229614), (2.8687631578947363, 0.4794263157894736)),
(Some(0.5258421052703299), (2.8687631578947363, 0.6164052631578945)), (Some(0.4204736842176984), (2.8687631578947363, 0.7533842105263155)),
(Some(0.3151052631650668), (2.8687631578947363, 0.8903631578947366)), (Some(0.20973684211243515), (2.8687631578947363, 1.0273421052631577)),
(Some(0.1043684210598036), (2.8687631578947363, 1.1643210526315788)), (None, (2.8687631578947363, 1.3013)),
(None, (3.216268421052631, -1.3013)), (Some(0.10436842106067246), (3.216268421052631, -1.1643210526315788)),
(Some(0.209736842113304), (3.216268421052631, -1.0273421052631577)), (Some(0.31510526316593546), (3.216268421052631, -0.8903631578947369)),
(Some(0.420473684218567), (3.216268421052631, -0.7533842105263158)), (Some(0.5258421052711987), (3.216268421052631, -0.6164052631578947)),
(Some(0.6312105263238301), (3.216268421052631, -0.4794263157894737)), (Some(0.7365789473764617), (3.216268421052631, -0.3424473684210527)),
(Some(0.8419473684290932), (3.216268421052631, -0.20546842105263163)), (Some(0.9473157894817249), (3.216268421052631, -0.06848947368421054)),
(Some(0.9473157894817249), (3.216268421052631, 0.06848947368421054)), (Some(0.8419473684290935), (3.216268421052631, 0.2054684210526314)),
(Some(0.7365789473764619), (3.216268421052631, 0.3424473684210525)), (Some(0.6312105263238302), (3.216268421052631, 0.4794263157894736)),
(Some(0.5258421052711988), (3.216268421052631, 0.6164052631578945)), (Some(0.42047368421856723), (3.216268421052631, 0.7533842105263155)),
(Some(0.3151052631659357), (3.216268421052631, 0.8903631578947366)), (Some(0.209736842113304), (3.216268421052631, 1.0273421052631577)),
(Some(0.10436842106067246), (3.216268421052631, 1.1643210526315788)), (None, (3.216268421052631, 1.3013)),
(None, (3.5637736842105263, -1.3013)), (Some(0.10436842106154132), (3.5637736842105263, -1.1643210526315788)),
(Some(0.20973684211417287), (3.5637736842105263, -1.0273421052631577)), (Some(0.3151052631668043), (3.5637736842105263, -0.8903631578947369)),
(Some(0.4204736842194359), (3.5637736842105263, -0.7533842105263158)), (Some(0.5258421052720675), (3.5637736842105263, -0.6164052631578947)),
(Some(0.631210526324699), (3.5637736842105263, -0.4794263157894737)), (Some(0.7365789473773305), (3.5637736842105263, -0.3424473684210527)),
(Some(0.8419473684299621), (3.5637736842105263, -0.20546842105263163)), (Some(0.9473157894825938), (3.5637736842105263, -0.06848947368421054)),
(Some(0.9473157894825938), (3.5637736842105263, 0.06848947368421054)), (Some(0.8419473684299623), (3.5637736842105263, 0.2054684210526314)),
(Some(0.7365789473773308), (3.5637736842105263, 0.3424473684210525)), (Some(0.6312105263246991), (3.5637736842105263, 0.4794263157894736)),
(Some(0.5258421052720677), (3.5637736842105263, 0.6164052631578945)), (Some(0.4204736842194361), (3.5637736842105263, 0.7533842105263155)),
(Some(0.31510526316680454), (3.5637736842105263, 0.8903631578947366)), (Some(0.20973684211417287), (3.5637736842105263, 1.0273421052631577)),
(Some(0.10436842106154132), (3.5637736842105263, 1.1643210526315788)), (None, (3.5637736842105263, 1.3013)),
(None, (3.911278947368421, -1.3013)), (Some(0.10436842106240996), (3.911278947368421, -1.1643210526315788)),
(Some(0.2097368421150415), (3.911278947368421, -1.0273421052631577)), (Some(0.31510526316767296), (3.911278947368421, -0.8903631578947369)),
(Some(0.4204736842203045), (3.911278947368421, -0.7533842105263158)), (Some(0.5258421052729362), (3.911278947368421, -0.6164052631578947)),
(Some(0.6312105263255676), (3.911278947368421, -0.4794263157894737)), (Some(0.7365789473781992), (3.911278947368421, -0.3424473684210527)),
(Some(0.8419473684308307), (3.911278947368421, -0.20546842105263163)), (Some(0.9473157894834624), (3.911278947368421, -0.06848947368421054)),
(Some(0.9473157894834624), (3.911278947368421, 0.06848947368421054)), (Some(0.841947368430831), (3.911278947368421, 0.2054684210526314)),
(Some(0.7365789473781994), (3.911278947368421, 0.3424473684210525)), (Some(0.6312105263255677), (3.911278947368421, 0.4794263157894736)),
(Some(0.5258421052729363), (3.911278947368421, 0.6164052631578945)), (Some(0.42047368422030473), (3.911278947368421, 0.7533842105263155)),
(Some(0.3151052631676732), (3.911278947368421, 0.8903631578947366)), (Some(0.2097368421150415), (3.911278947368421, 1.0273421052631577)),
(Some(0.10436842106240996), (3.911278947368421, 1.1643210526315788)), (None, (3.911278947368421, 1.3013)),
(None, (4.258784210526315, -1.3013)), (Some(0.08251282801227877), (4.258784210526315, -1.1643210526315788)),
(Some(0.1850505265465333), (4.258784210526315, -1.0273421052631577)), (Some(0.2867626018551943), (4.258784210526315, -0.8903631578947369)),
(Some(0.38723778163721145), (4.258784210526315, -0.7533842105263158)), (Some(0.48575055206290274), (4.258784210526315, -0.6164052631578947)),
(Some(0.5809147324654379), (4.258784210526315, -0.4794263157894737)), (Some(0.669822113799931), (4.258784210526315, -0.3424473684210527)),
(Some(0.7458201032407027), (4.258784210526315, -0.20546842105263163)), (Some(0.7940815413633762), (4.258784210526315, -0.06848947368421054)),
(Some(0.7940815413633762), (4.258784210526315, 0.06848947368421054)), (Some(0.7458201032407028), (4.258784210526315, 0.2054684210526314)),
(Some(0.6698221137999312), (4.258784210526315, 0.3424473684210525)), (Some(0.580914732465438), (4.258784210526315, 0.4794263157894736)),
(Some(0.48575055206290285), (4.258784210526315, 0.6164052631578945)), (Some(0.3872377816372117), (4.258784210526315, 0.7533842105263155)),
(Some(0.28676260185519453), (4.258784210526315, 0.8903631578947366)), (Some(0.1850505265465333), (4.258784210526315, 1.0273421052631577)),
(Some(0.08251282801227877), (4.258784210526315, 1.1643210526315788)), (None, (4.258784210526315, 1.3013)),
(None, (4.60628947368421, -1.1643210526315788)), (Some(0.0823819337801075), (4.60628947368421, -1.0273421052631577)),
(Some(0.17139402772899937), (4.60628947368421, -0.8903631578947369)), (Some(0.25611976271487824), (4.60628947368421, -0.7533842105263158)),
(Some(0.3349189779630617), (4.60628947368421, -0.6164052631578947)), (Some(0.40543063261372814), (4.60628947368421, -0.4794263157894737)),
(Some(0.4643716701811391), (4.60628947368421, -0.3424473684210527)), (Some(0.5075696078785269), (4.60628947368421, -0.20546842105263163)),
(Some(0.5306571799045817), (4.60628947368421, -0.06848947368421054)), (Some(0.5306571799045817), (4.60628947368421, 0.06848947368421054)),
(Some(0.507569607878527), (4.60628947368421, 0.2054684210526314)), (Some(0.4643716701811391), (4.60628947368421, 0.3424473684210525)),
(Some(0.40543063261372814), (4.60628947368421, 0.4794263157894736)), (Some(0.3349189779630618), (4.60628947368421, 0.6164052631578945)),
(Some(0.25611976271487846), (4.60628947368421, 0.7533842105263155)), (Some(0.17139402772899948), (4.60628947368421, 0.8903631578947366)),
(Some(0.0823819337801075), (4.60628947368421, 1.0273421052631577)), (None, (4.60628947368421, 1.1643210526315788)),
(None, (4.953794736842104, -1.0273421052631577)), (None, (4.953794736842104, -0.8903631578947369)),
(Some(0.065040529098361), (4.953794736842104, -0.7533842105263158)), (Some(0.12643021419084444), (4.953794736842104, -0.6164052631578947)),
(Some(0.17883976141151037), (4.953794736842104, -0.4794263157894737)), (Some(0.22045583030286908), (4.953794736842104, -0.3424473684210527)),
(Some(0.24948078246531813), (4.953794736842104, -0.20546842105263163)), (Some(0.2644226161858151), (4.953794736842104, -0.06848947368421054)),
(Some(0.2644226161858151), (4.953794736842104, 0.06848947368421054)), (Some(0.24948078246531813), (4.953794736842104, 0.2054684210526314)),
(Some(0.22045583030286908), (4.953794736842104, 0.3424473684210525)), (Some(0.1788397614115106), (4.953794736842104, 0.4794263157894736)),
(Some(0.12643021419084466), (4.953794736842104, 0.6164052631578945)), (Some(0.06504052909836111), (4.953794736842104, 0.7533842105263155)),
(None, (4.953794736842104, 0.8903631578947366)), (None, (4.953794736842104, 1.0273421052631577)),
(None, (5.3012999999999995, -0.4794263157894737)), (None, (5.3012999999999995, -0.3424473684210527)),
(None, (5.3012999999999995, -0.20546842105263163)), (None, (5.3012999999999995, -0.06848947368421054)),
(None, (5.3012999999999995, 0.06848947368421054)), (None, (5.3012999999999995, 0.2054684210526314)),
(None, (5.3012999999999995, 0.3424473684210525)), (None, (5.3012999999999995, 0.4794263157894736)),
];
let p0 = DVec3::new(4.0, 0.0, 1.00000000001);
let p1 = DVec3::new(0.0, 0.0, 1.0);
let cone = ConeProperties::new(1.3, 1.0);
do_cone_test(&test_data, p0, p1, cone);
}
#[test]
fn a_cone_flat_line_test_2() {
#[rustfmt::skip]
let test_data: [(Option<f64>, (f64, f64)); 364] = [
(None, (-1.3013, -0.4794263157894737)), (None, (-1.3013, -0.3424473684210527)),
(None, (-1.3013, -0.20546842105263163)), (None, (-1.3013, -0.06848947368421054)),
(None, (-1.3013, 0.06848947368421054)), (None, (-1.3013, 0.2054684210526314)),
(None, (-1.3013, 0.3424473684210525)), (None, (-1.3013, 0.4794263157894736)),
(None, (-0.9537947368421051, -1.0273421052631577)), (None, (-0.9537947368421051, -0.8903631578947369)),
(Some(0.06504052909836044), (-0.9537947368421051, -0.7533842105263158)), (Some(0.12643021419084388), (-0.9537947368421051, -0.6164052631578947)),
(Some(0.17883976141150992), (-0.9537947368421051, -0.4794263157894737)), (Some(0.22045583030286842), (-0.9537947368421051, -0.3424473684210527)),
(Some(0.24948078246531746), (-0.9537947368421051, -0.20546842105263163)), (Some(0.2644226161858144), (-0.9537947368421051, -0.06848947368421054)),
(Some(0.2644226161858144), (-0.9537947368421051, 0.06848947368421054)), (Some(0.24948078246531746), (-0.9537947368421051, 0.2054684210526314)),
(Some(0.22045583030286842), (-0.9537947368421051, 0.3424473684210525)), (Some(0.17883976141151003), (-0.9537947368421051, 0.4794263157894736)),
(Some(0.12643021419084388), (-0.9537947368421051, 0.6164052631578945)), (Some(0.06504052909836067), (-0.9537947368421051, 0.7533842105263155)),
(None, (-0.9537947368421051, 0.8903631578947366)), (None, (-0.9537947368421051, 1.0273421052631577)),
(None, (-0.6062894736842105, -1.1643210526315788)), (Some(0.0823819337801075), (-0.6062894736842105, -1.0273421052631577)),
(Some(0.17139402772899937), (-0.6062894736842105, -0.8903631578947369)), (Some(0.25611976271487824), (-0.6062894736842105, -0.7533842105263158)),
(Some(0.3349189779630617), (-0.6062894736842105, -0.6164052631578947)), (Some(0.40543063261372814), (-0.6062894736842105, -0.4794263157894737)),
(Some(0.4643716701811391), (-0.6062894736842105, -0.3424473684210527)), (Some(0.5075696078785269), (-0.6062894736842105, -0.20546842105263163)),
(Some(0.5306571799045817), (-0.6062894736842105, -0.06848947368421054)), (Some(0.5306571799045817), (-0.6062894736842105, 0.06848947368421054)),
(Some(0.507569607878527), (-0.6062894736842105, 0.2054684210526314)), (Some(0.4643716701811391), (-0.6062894736842105, 0.3424473684210525)),
(Some(0.40543063261372814), (-0.6062894736842105, 0.4794263157894736)), (Some(0.3349189779630618), (-0.6062894736842105, 0.6164052631578945)),
(Some(0.25611976271487846), (-0.6062894736842105, 0.7533842105263155)), (Some(0.17139402772899948), (-0.6062894736842105, 0.8903631578947366)),
(Some(0.0823819337801075), (-0.6062894736842105, 1.0273421052631577)), (None, (-0.6062894736842105, 1.1643210526315788)),
(None, (-0.25878421052631584, -1.3013)), (Some(0.08251282801227855), (-0.25878421052631584, -1.1643210526315788)),
(Some(0.1850505265465331), (-0.25878421052631584, -1.0273421052631577)), (Some(0.2867626018551941), (-0.25878421052631584, -0.8903631578947369)),
(Some(0.38723778163721123), (-0.25878421052631584, -0.7533842105263158)), (Some(0.4857505520629024), (-0.25878421052631584, -0.6164052631578947)),
(Some(0.5809147324654376), (-0.25878421052631584, -0.4794263157894737)), (Some(0.6698221137999305), (-0.25878421052631584, -0.3424473684210527)),
(Some(0.7458201032407021), (-0.25878421052631584, -0.20546842105263163)), (Some(0.7940815413633755), (-0.25878421052631584, -0.06848947368421054)),
(Some(0.7940815413633755), (-0.25878421052631584, 0.06848947368421054)), (Some(0.7458201032407022), (-0.25878421052631584, 0.2054684210526314)),
(Some(0.6698221137999307), (-0.25878421052631584, 0.3424473684210525)), (Some(0.5809147324654376), (-0.25878421052631584, 0.4794263157894736)),
(Some(0.48575055206290263), (-0.25878421052631584, 0.6164052631578945)), (Some(0.38723778163721145), (-0.25878421052631584, 0.7533842105263155)),
(Some(0.2867626018551943), (-0.25878421052631584, 0.8903631578947366)), (Some(0.1850505265465331), (-0.25878421052631584, 1.0273421052631577)),
(Some(0.08251282801227855), (-0.25878421052631584, 1.1643210526315788)), (None, (-0.25878421052631584, 1.3013)),
(None, (0.08872105263157892, -1.3013)), (Some(0.10436842106240996), (0.08872105263157892, -1.1643210526315788)),
(Some(0.2097368421150415), (0.08872105263157892, -1.0273421052631577)), (Some(0.31510526316767296), (0.08872105263157892, -0.8903631578947369)),
(Some(0.4204736842203045), (0.08872105263157892, -0.7533842105263158)), (Some(0.5258421052729362), (0.08872105263157892, -0.6164052631578947)),
(Some(0.6312105263255676), (0.08872105263157892, -0.4794263157894737)), (Some(0.7365789473781992), (0.08872105263157892, -0.3424473684210527)),
(Some(0.8419473684308307), (0.08872105263157892, -0.20546842105263163)), (Some(0.9473157894834624), (0.08872105263157892, -0.06848947368421054)),
(Some(0.9473157894834624), (0.08872105263157892, 0.06848947368421054)), (Some(0.841947368430831), (0.08872105263157892, 0.2054684210526314)),
(Some(0.7365789473781994), (0.08872105263157892, 0.3424473684210525)), (Some(0.6312105263255677), (0.08872105263157892, 0.4794263157894736)),
(Some(0.5258421052729363), (0.08872105263157892, 0.6164052631578945)), (Some(0.42047368422030473), (0.08872105263157892, 0.7533842105263155)),
(Some(0.3151052631676732), (0.08872105263157892, 0.8903631578947366)), (Some(0.2097368421150415), (0.08872105263157892, 1.0273421052631577)),
(Some(0.10436842106240996), (0.08872105263157892, 1.1643210526315788)), (None, (0.08872105263157892, 1.3013)),
(None, (0.4362263157894737, -1.3013)), (Some(0.10436842106154132), (0.4362263157894737, -1.1643210526315788)),
(Some(0.20973684211417287), (0.4362263157894737, -1.0273421052631577)), (Some(0.3151052631668043), (0.4362263157894737, -0.8903631578947369)),
(Some(0.4204736842194359), (0.4362263157894737, -0.7533842105263158)), (Some(0.5258421052720675), (0.4362263157894737, -0.6164052631578947)),
(Some(0.631210526324699), (0.4362263157894737, -0.4794263157894737)), (Some(0.7365789473773305), (0.4362263157894737, -0.3424473684210527)),
(Some(0.8419473684299621), (0.4362263157894737, -0.20546842105263163)), (Some(0.9473157894825938), (0.4362263157894737, -0.06848947368421054)),
(Some(0.9473157894825938), (0.4362263157894737, 0.06848947368421054)), (Some(0.8419473684299623), (0.4362263157894737, 0.2054684210526314)),
(Some(0.7365789473773308), (0.4362263157894737, 0.3424473684210525)), (Some(0.6312105263246991), (0.4362263157894737, 0.4794263157894736)),
(Some(0.5258421052720677), (0.4362263157894737, 0.6164052631578945)), (Some(0.4204736842194361), (0.4362263157894737, 0.7533842105263155)),
(Some(0.31510526316680454), (0.4362263157894737, 0.8903631578947366)), (Some(0.20973684211417287), (0.4362263157894737, 1.0273421052631577)),
(Some(0.10436842106154132), (0.4362263157894737, 1.1643210526315788)), (None, (0.4362263157894737, 1.3013)),
(None, (0.7837315789473682, -1.3013)), (Some(0.10436842106067246), (0.7837315789473682, -1.1643210526315788)),
(Some(0.209736842113304), (0.7837315789473682, -1.0273421052631577)), (Some(0.31510526316593546), (0.7837315789473682, -0.8903631578947369)),
(Some(0.420473684218567), (0.7837315789473682, -0.7533842105263158)), (Some(0.5258421052711987), (0.7837315789473682, -0.6164052631578947)),
(Some(0.6312105263238301), (0.7837315789473682, -0.4794263157894737)), (Some(0.7365789473764617), (0.7837315789473682, -0.3424473684210527)),
(Some(0.8419473684290932), (0.7837315789473682, -0.20546842105263163)), (Some(0.9473157894817249), (0.7837315789473682, -0.06848947368421054)),
(Some(0.9473157894817249), (0.7837315789473682, 0.06848947368421054)), (Some(0.8419473684290935), (0.7837315789473682, 0.2054684210526314)),
(Some(0.7365789473764619), (0.7837315789473682, 0.3424473684210525)), (Some(0.6312105263238302), (0.7837315789473682, 0.4794263157894736)),
(Some(0.5258421052711988), (0.7837315789473682, 0.6164052631578945)), (Some(0.42047368421856723), (0.7837315789473682, 0.7533842105263155)),
(Some(0.3151052631659357), (0.7837315789473682, 0.8903631578947366)), (Some(0.209736842113304), (0.7837315789473682, 1.0273421052631577)),
(Some(0.10436842106067246), (0.7837315789473682, 1.1643210526315788)), (None, (0.7837315789473682, 1.3013)),
(None, (1.1312368421052632, -1.3013)), (Some(0.1043684210598036), (1.1312368421052632, -1.1643210526315788)),
(Some(0.20973684211243515), (1.1312368421052632, -1.0273421052631577)), (Some(0.3151052631650666), (1.1312368421052632, -0.8903631578947369)),
(Some(0.42047368421769815), (1.1312368421052632, -0.7533842105263158)), (Some(0.5258421052703298), (1.1312368421052632, -0.6164052631578947)),
(Some(0.6312105263229613), (1.1312368421052632, -0.4794263157894737)), (Some(0.7365789473755928), (1.1312368421052632, -0.3424473684210527)),
(Some(0.8419473684282244), (1.1312368421052632, -0.20546842105263163)), (Some(0.947315789480856), (1.1312368421052632, -0.06848947368421054)),
(Some(0.947315789480856), (1.1312368421052632, 0.06848947368421054)), (Some(0.8419473684282246), (1.1312368421052632, 0.2054684210526314)),
(Some(0.736578947375593), (1.1312368421052632, 0.3424473684210525)), (Some(0.6312105263229614), (1.1312368421052632, 0.4794263157894736)),
(Some(0.5258421052703299), (1.1312368421052632, 0.6164052631578945)), (Some(0.4204736842176984), (1.1312368421052632, 0.7533842105263155)),
(Some(0.3151052631650668), (1.1312368421052632, 0.8903631578947366)), (Some(0.20973684211243515), (1.1312368421052632, 1.0273421052631577)),
(Some(0.1043684210598036), (1.1312368421052632, 1.1643210526315788)), (None, (1.1312368421052632, 1.3013)),
(None, (1.4787421052631577, -1.3013)), (Some(0.10436842105893496), (1.4787421052631577, -1.1643210526315788)),
(Some(0.2097368421115665), (1.4787421052631577, -1.0273421052631577)), (Some(0.31510526316419796), (1.4787421052631577, -0.8903631578947369)),
(Some(0.4204736842168295), (1.4787421052631577, -0.7533842105263158)), (Some(0.5258421052694612), (1.4787421052631577, -0.6164052631578947)),
(Some(0.6312105263220926), (1.4787421052631577, -0.4794263157894737)), (Some(0.7365789473747242), (1.4787421052631577, -0.3424473684210527)),
(Some(0.8419473684273557), (1.4787421052631577, -0.20546842105263163)), (Some(0.9473157894799874), (1.4787421052631577, -0.06848947368421054)),
(Some(0.9473157894799874), (1.4787421052631577, 0.06848947368421054)), (Some(0.841947368427356), (1.4787421052631577, 0.2054684210526314)),
(Some(0.7365789473747244), (1.4787421052631577, 0.3424473684210525)), (Some(0.6312105263220927), (1.4787421052631577, 0.4794263157894736)),
(Some(0.5258421052694613), (1.4787421052631577, 0.6164052631578945)), (Some(0.42047368421682974), (1.4787421052631577, 0.7533842105263155)),
(Some(0.3151052631641982), (1.4787421052631577, 0.8903631578947366)), (Some(0.2097368421115665), (1.4787421052631577, 1.0273421052631577)),
(Some(0.10436842105893496), (1.4787421052631577, 1.1643210526315788)), (None, (1.4787421052631577, 1.3013)),
(None, (1.8262473684210523, -1.3013)), (Some(0.1043684210580661), (1.8262473684210523, -1.1643210526315788)),
(Some(0.20973684211069765), (1.8262473684210523, -1.0273421052631577)), (Some(0.3151052631633291), (1.8262473684210523, -0.8903631578947369)),
(Some(0.42047368421596065), (1.8262473684210523, -0.7533842105263158)), (Some(0.5258421052685923), (1.8262473684210523, -0.6164052631578947)),
(Some(0.6312105263212238), (1.8262473684210523, -0.4794263157894737)), (Some(0.7365789473738553), (1.8262473684210523, -0.3424473684210527)),
(Some(0.8419473684264869), (1.8262473684210523, -0.20546842105263163)), (Some(0.9473157894791185), (1.8262473684210523, -0.06848947368421054)),
(Some(0.9473157894791185), (1.8262473684210523, 0.06848947368421054)), (Some(0.8419473684264871), (1.8262473684210523, 0.2054684210526314)),
(Some(0.7365789473738555), (1.8262473684210523, 0.3424473684210525)), (Some(0.6312105263212239), (1.8262473684210523, 0.4794263157894736)),
(Some(0.5258421052685924), (1.8262473684210523, 0.6164052631578945)), (Some(0.4204736842159609), (1.8262473684210523, 0.7533842105263155)),
(Some(0.3151052631633293), (1.8262473684210523, 0.8903631578947366)), (Some(0.20973684211069765), (1.8262473684210523, 1.0273421052631577)),
(Some(0.1043684210580661), (1.8262473684210523, 1.1643210526315788)), (None, (1.8262473684210523, 1.3013)),
(None, (2.1737526315789473, -1.3013)), (Some(0.10436842105719746), (2.1737526315789473, -1.1643210526315788)),
(Some(0.209736842109829), (2.1737526315789473, -1.0273421052631577)), (Some(0.31510526316246046), (2.1737526315789473, -0.8903631578947369)),
(Some(0.420473684215092), (2.1737526315789473, -0.7533842105263158)), (Some(0.5258421052677237), (2.1737526315789473, -0.6164052631578947)),
(Some(0.6312105263203551), (2.1737526315789473, -0.4794263157894737)), (Some(0.7365789473729867), (2.1737526315789473, -0.3424473684210527)),
(Some(0.8419473684256182), (2.1737526315789473, -0.20546842105263163)), (Some(0.9473157894782499), (2.1737526315789473, -0.06848947368421054)),
(Some(0.9473157894782499), (2.1737526315789473, 0.06848947368421054)), (Some(0.8419473684256185), (2.1737526315789473, 0.2054684210526314)),
(Some(0.7365789473729869), (2.1737526315789473, 0.3424473684210525)), (Some(0.6312105263203552), (2.1737526315789473, 0.4794263157894736)),
(Some(0.5258421052677238), (2.1737526315789473, 0.6164052631578945)), (Some(0.42047368421509224), (2.1737526315789473, 0.7533842105263155)),
(Some(0.3151052631624607), (2.1737526315789473, 0.8903631578947366)), (Some(0.209736842109829), (2.1737526315789473, 1.0273421052631577)),
(Some(0.10436842105719746), (2.1737526315789473, 1.1643210526315788)), (None, (2.1737526315789473, 1.3013)),
(None, (2.521257894736842, -1.3013)), (Some(0.1043684210563286), (2.521257894736842, -1.1643210526315788)),
(Some(0.20973684210896015), (2.521257894736842, -1.0273421052631577)), (Some(0.3151052631615916), (2.521257894736842, -0.8903631578947369)),
(Some(0.42047368421422315), (2.521257894736842, -0.7533842105263158)), (Some(0.5258421052668548), (2.521257894736842, -0.6164052631578947)),
(Some(0.6312105263194863), (2.521257894736842, -0.4794263157894737)), (Some(0.7365789473721178), (2.521257894736842, -0.3424473684210527)),
(Some(0.8419473684247494), (2.521257894736842, -0.20546842105263163)), (Some(0.947315789477381), (2.521257894736842, -0.06848947368421054)),
(Some(0.947315789477381), (2.521257894736842, 0.06848947368421054)), (Some(0.8419473684247496), (2.521257894736842, 0.2054684210526314)),
(Some(0.736578947372118), (2.521257894736842, 0.3424473684210525)), (Some(0.6312105263194864), (2.521257894736842, 0.4794263157894736)),
(Some(0.5258421052668549), (2.521257894736842, 0.6164052631578945)), (Some(0.4204736842142234), (2.521257894736842, 0.7533842105263155)),
(Some(0.3151052631615918), (2.521257894736842, 0.8903631578947366)), (Some(0.20973684210896015), (2.521257894736842, 1.0273421052631577)),
(Some(0.1043684210563286), (2.521257894736842, 1.1643210526315788)), (None, (2.521257894736842, 1.3013)),
(None, (2.8687631578947363, -1.3013)), (Some(0.10436842105545996), (2.8687631578947363, -1.1643210526315788)),
(Some(0.20973684210809151), (2.8687631578947363, -1.0273421052631577)), (Some(0.31510526316072296), (2.8687631578947363, -0.8903631578947369)),
(Some(0.4204736842133545), (2.8687631578947363, -0.7533842105263158)), (Some(0.5258421052659862), (2.8687631578947363, -0.6164052631578947)),
(Some(0.6312105263186176), (2.8687631578947363, -0.4794263157894737)), (Some(0.7365789473712492), (2.8687631578947363, -0.3424473684210527)),
(Some(0.8419473684238807), (2.8687631578947363, -0.20546842105263163)), (Some(0.9473157894765124), (2.8687631578947363, -0.06848947368421054)),
(Some(0.9473157894765124), (2.8687631578947363, 0.06848947368421054)), (Some(0.841947368423881), (2.8687631578947363, 0.2054684210526314)),
(Some(0.7365789473712494), (2.8687631578947363, 0.3424473684210525)), (Some(0.6312105263186177), (2.8687631578947363, 0.4794263157894736)),
(Some(0.5258421052659863), (2.8687631578947363, 0.6164052631578945)), (Some(0.42047368421335474), (2.8687631578947363, 0.7533842105263155)),
(Some(0.3151052631607232), (2.8687631578947363, 0.8903631578947366)), (Some(0.20973684210809151), (2.8687631578947363, 1.0273421052631577)),
(Some(0.10436842105545996), (2.8687631578947363, 1.1643210526315788)), (None, (2.8687631578947363, 1.3013)),
(None, (3.216268421052631, -1.3013)), (Some(0.1043684210545911), (3.216268421052631, -1.1643210526315788)),
(Some(0.20973684210722265), (3.216268421052631, -1.0273421052631577)), (Some(0.3151052631598541), (3.216268421052631, -0.8903631578947369)),
(Some(0.42047368421248565), (3.216268421052631, -0.7533842105263158)), (Some(0.5258421052651173), (3.216268421052631, -0.6164052631578947)),
(Some(0.6312105263177488), (3.216268421052631, -0.4794263157894737)), (Some(0.7365789473703803), (3.216268421052631, -0.3424473684210527)),
(Some(0.8419473684230119), (3.216268421052631, -0.20546842105263163)), (Some(0.9473157894756435), (3.216268421052631, -0.06848947368421054)),
(Some(0.9473157894756435), (3.216268421052631, 0.06848947368421054)), (Some(0.8419473684230121), (3.216268421052631, 0.2054684210526314)),
(Some(0.7365789473703805), (3.216268421052631, 0.3424473684210525)), (Some(0.6312105263177489), (3.216268421052631, 0.4794263157894736)),
(Some(0.5258421052651174), (3.216268421052631, 0.6164052631578945)), (Some(0.4204736842124859), (3.216268421052631, 0.7533842105263155)),
(Some(0.3151052631598543), (3.216268421052631, 0.8903631578947366)), (Some(0.20973684210722265), (3.216268421052631, 1.0273421052631577)),
(Some(0.1043684210545911), (3.216268421052631, 1.1643210526315788)), (None, (3.216268421052631, 1.3013)),
(None, (3.5637736842105263, -1.3013)), (Some(0.10436842105372224), (3.5637736842105263, -1.1643210526315788)),
(Some(0.2097368421063538), (3.5637736842105263, -1.0273421052631577)), (Some(0.31510526315898524), (3.5637736842105263, -0.8903631578947369)),
(Some(0.4204736842116168), (3.5637736842105263, -0.7533842105263158)), (Some(0.5258421052642485), (3.5637736842105263, -0.6164052631578947)),
(Some(0.6312105263168799), (3.5637736842105263, -0.4794263157894737)), (Some(0.7365789473695115), (3.5637736842105263, -0.3424473684210527)),
(Some(0.841947368422143), (3.5637736842105263, -0.20546842105263163)), (Some(0.9473157894747747), (3.5637736842105263, -0.06848947368421054)),
(Some(0.9473157894747747), (3.5637736842105263, 0.06848947368421054)), (Some(0.8419473684221432), (3.5637736842105263, 0.2054684210526314)),
(Some(0.7365789473695117), (3.5637736842105263, 0.3424473684210525)), (Some(0.63121052631688), (3.5637736842105263, 0.4794263157894736)),
(Some(0.5258421052642486), (3.5637736842105263, 0.6164052631578945)), (Some(0.420473684211617), (3.5637736842105263, 0.7533842105263155)),
(Some(0.31510526315898546), (3.5637736842105263, 0.8903631578947366)), (Some(0.2097368421063538), (3.5637736842105263, 1.0273421052631577)),
(Some(0.10436842105372224), (3.5637736842105263, 1.1643210526315788)), (None, (3.5637736842105263, 1.3013)),
(None, (3.911278947368421, -1.3013)), (Some(0.1043684210528536), (3.911278947368421, -1.1643210526315788)),
(Some(0.20973684210548516), (3.911278947368421, -1.0273421052631577)), (Some(0.3151052631581166), (3.911278947368421, -0.8903631578947369)),
(Some(0.42047368421074816), (3.911278947368421, -0.7533842105263158)), (Some(0.5258421052633798), (3.911278947368421, -0.6164052631578947)),
(Some(0.6312105263160113), (3.911278947368421, -0.4794263157894737)), (Some(0.7365789473686428), (3.911278947368421, -0.3424473684210527)),
(Some(0.8419473684212744), (3.911278947368421, -0.20546842105263163)), (Some(0.947315789473906), (3.911278947368421, -0.06848947368421054)),
(Some(0.947315789473906), (3.911278947368421, 0.06848947368421054)), (Some(0.8419473684212746), (3.911278947368421, 0.2054684210526314)),
(Some(0.736578947368643), (3.911278947368421, 0.3424473684210525)), (Some(0.6312105263160114), (3.911278947368421, 0.4794263157894736)),
(Some(0.5258421052633799), (3.911278947368421, 0.6164052631578945)), (Some(0.4204736842107484), (3.911278947368421, 0.7533842105263155)),
(Some(0.3151052631581168), (3.911278947368421, 0.8903631578947366)), (Some(0.20973684210548516), (3.911278947368421, 1.0273421052631577)),
(Some(0.1043684210528536), (3.911278947368421, 1.1643210526315788)), (None, (3.911278947368421, 1.3013)),
(None, (4.258784210526315, -1.3013)), (Some(0.08251282800227877), (4.258784210526315, -1.1643210526315788)),
(Some(0.1850505265365333), (4.258784210526315, -1.0273421052631577)), (Some(0.2867626018451943), (4.258784210526315, -0.8903631578947369)),
(Some(0.38723778162721145), (4.258784210526315, -0.7533842105263158)), (Some(0.48575055205290274), (4.258784210526315, -0.6164052631578947)),
(Some(0.5809147324554379), (4.258784210526315, -0.4794263157894737)), (Some(0.669822113789931), (4.258784210526315, -0.3424473684210527)),
(Some(0.7458201032307027), (4.258784210526315, -0.20546842105263163)), (Some(0.7940815413533762), (4.258784210526315, -0.06848947368421054)),
(Some(0.7940815413533762), (4.258784210526315, 0.06848947368421054)), (Some(0.7458201032307028), (4.258784210526315, 0.2054684210526314)),
(Some(0.6698221137899312), (4.258784210526315, 0.3424473684210525)), (Some(0.580914732455438), (4.258784210526315, 0.4794263157894736)),
(Some(0.48575055205290285), (4.258784210526315, 0.6164052631578945)), (Some(0.3872377816272117), (4.258784210526315, 0.7533842105263155)),
(Some(0.28676260184519453), (4.258784210526315, 0.8903631578947366)), (Some(0.1850505265365333), (4.258784210526315, 1.0273421052631577)),
(Some(0.08251282800227877), (4.258784210526315, 1.1643210526315788)), (None, (4.258784210526315, 1.3013)),
(None, (4.60628947368421, -1.1643210526315788)), (Some(0.0823819337701075), (4.60628947368421, -1.0273421052631577)),
(Some(0.17139402771899936), (4.60628947368421, -0.8903631578947369)), (Some(0.25611976270487824), (4.60628947368421, -0.7533842105263158)),
(Some(0.3349189779530617), (4.60628947368421, -0.6164052631578947)), (Some(0.40543063260372814), (4.60628947368421, -0.4794263157894737)),
(Some(0.4643716701711391), (4.60628947368421, -0.3424473684210527)), (Some(0.5075696078685269), (4.60628947368421, -0.20546842105263163)),
(Some(0.5306571798945817), (4.60628947368421, -0.06848947368421054)), (Some(0.5306571798945817), (4.60628947368421, 0.06848947368421054)),
(Some(0.507569607868527), (4.60628947368421, 0.2054684210526314)), (Some(0.4643716701711391), (4.60628947368421, 0.3424473684210525)),
(Some(0.40543063260372814), (4.60628947368421, 0.4794263157894736)), (Some(0.3349189779530618), (4.60628947368421, 0.6164052631578945)),
(Some(0.25611976270487846), (4.60628947368421, 0.7533842105263155)), (Some(0.17139402771899948), (4.60628947368421, 0.8903631578947366)),
(Some(0.0823819337701075), (4.60628947368421, 1.0273421052631577)), (None, (4.60628947368421, 1.1643210526315788)),
(None, (4.953794736842104, -1.0273421052631577)), (None, (4.953794736842104, -0.8903631578947369)),
(Some(0.065040529088361), (4.953794736842104, -0.7533842105263158)), (Some(0.12643021418084444), (4.953794736842104, -0.6164052631578947)),
(Some(0.17883976140151037), (4.953794736842104, -0.4794263157894737)), (Some(0.22045583029286908), (4.953794736842104, -0.3424473684210527)),
(Some(0.24948078245531813), (4.953794736842104, -0.20546842105263163)), (Some(0.2644226161758151), (4.953794736842104, -0.06848947368421054)),
(Some(0.2644226161758151), (4.953794736842104, 0.06848947368421054)), (Some(0.24948078245531813), (4.953794736842104, 0.2054684210526314)),
(Some(0.22045583029286908), (4.953794736842104, 0.3424473684210525)), (Some(0.1788397614015106), (4.953794736842104, 0.4794263157894736)),
(Some(0.12643021418084466), (4.953794736842104, 0.6164052631578945)), (Some(0.06504052908836111), (4.953794736842104, 0.7533842105263155)),
(None, (4.953794736842104, 0.8903631578947366)), (None, (4.953794736842104, 1.0273421052631577)),
(None, (5.3012999999999995, -0.4794263157894737)), (None, (5.3012999999999995, -0.3424473684210527)),
(None, (5.3012999999999995, -0.20546842105263163)), (None, (5.3012999999999995, -0.06848947368421054)),
(None, (5.3012999999999995, 0.06848947368421054)), (None, (5.3012999999999995, 0.2054684210526314)),
(None, (5.3012999999999995, 0.3424473684210525)), (None, (5.3012999999999995, 0.4794263157894736)),
];
let p0 = DVec3::new(4.0, 0.0, 1.0);
let p1 = DVec3::new(0.0, 0.0, 1.00000000001);
let cone = ConeProperties::new(1.3, 1.0);
do_cone_test(&test_data, p0, p1, cone);
}