Directory: | ./ |
---|---|
File: | test/accelerated_gjk.cpp |
Date: | 2025-04-01 09:23:31 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 163 | 163 | 100.0% |
Branches: | 643 | 1284 | 50.1% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | /* | ||
2 | * Software License Agreement (BSD License) | ||
3 | * | ||
4 | * Copyright (c) 2022, INRIA | ||
5 | * All rights reserved. | ||
6 | * | ||
7 | * Redistribution and use in source and binary forms, with or without | ||
8 | * modification, are permitted provided that the following conditions | ||
9 | * are met: | ||
10 | * | ||
11 | * * Redistributions of source code must retain the above copyright | ||
12 | * notice, this list of conditions and the following disclaimer. | ||
13 | * * Redistributions in binary form must reproduce the above | ||
14 | * copyright notice, this list of conditions and the following | ||
15 | * disclaimer in the documentation and/or other materials provided | ||
16 | * with the distribution. | ||
17 | * * Neither the name of Willow Garage, Inc. nor the names of its | ||
18 | * contributors may be used to endorse or promote products derived | ||
19 | * from this software without specific prior written permission. | ||
20 | * | ||
21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
22 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
23 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | ||
24 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
25 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
26 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | ||
27 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
28 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||
29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN | ||
31 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
32 | * POSSIBILITY OF SUCH DAMAGE. | ||
33 | */ | ||
34 | |||
35 | /** \author Louis Montaut */ | ||
36 | |||
37 | #define BOOST_TEST_MODULE COAL_NESTEROV_GJK | ||
38 | #include <boost/test/included/unit_test.hpp> | ||
39 | |||
40 | #include <Eigen/Geometry> | ||
41 | #include "coal/narrowphase/narrowphase.h" | ||
42 | #include "coal/shape/geometric_shapes.h" | ||
43 | #include "coal/internal/tools.h" | ||
44 | |||
45 | #include "utility.h" | ||
46 | |||
47 | using coal::Box; | ||
48 | using coal::Capsule; | ||
49 | using coal::constructPolytopeFromEllipsoid; | ||
50 | using coal::Convex; | ||
51 | using coal::Ellipsoid; | ||
52 | using coal::GJKSolver; | ||
53 | using coal::GJKVariant; | ||
54 | using coal::Scalar; | ||
55 | using coal::ShapeBase; | ||
56 | using coal::SolverScalar; | ||
57 | using coal::support_func_guess_t; | ||
58 | using coal::Transform3s; | ||
59 | using coal::Triangle; | ||
60 | using coal::Vec3ps; | ||
61 | using coal::Vec3s; | ||
62 | using coal::details::GJK; | ||
63 | using coal::details::MinkowskiDiff; | ||
64 | using coal::details::SupportOptions; | ||
65 | using std::size_t; | ||
66 | |||
67 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(set_gjk_variant) { |
68 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | GJKSolver solver; |
69 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | GJK gjk(128, Scalar(1e-6)); |
70 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | MinkowskiDiff shape; |
71 | |||
72 | // Checking defaults | ||
73 |
6/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
|
2 | BOOST_CHECK(solver.gjk.gjk_variant == GJKVariant::DefaultGJK); |
74 |
6/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
|
2 | BOOST_CHECK(gjk.gjk_variant == GJKVariant::DefaultGJK); |
75 |
6/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
|
2 | BOOST_CHECK(shape.normalize_support_direction == false); |
76 | |||
77 | // Checking set | ||
78 | 2 | solver.gjk.gjk_variant = GJKVariant::NesterovAcceleration; | |
79 | 2 | gjk.gjk_variant = GJKVariant::NesterovAcceleration; | |
80 | |||
81 |
6/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
|
2 | BOOST_CHECK(solver.gjk.gjk_variant == GJKVariant::NesterovAcceleration); |
82 |
6/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
|
2 | BOOST_CHECK(gjk.gjk_variant == GJKVariant::NesterovAcceleration); |
83 | |||
84 | 2 | solver.gjk.gjk_variant = GJKVariant::PolyakAcceleration; | |
85 | 2 | gjk.gjk_variant = GJKVariant::PolyakAcceleration; | |
86 | |||
87 |
6/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
|
2 | BOOST_CHECK(solver.gjk.gjk_variant == GJKVariant::PolyakAcceleration); |
88 |
6/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
|
2 | BOOST_CHECK(gjk.gjk_variant == GJKVariant::PolyakAcceleration); |
89 | 2 | } | |
90 | |||
91 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(need_nesterov_normalize_support_direction) { |
92 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid = Ellipsoid(1, 1, 1); |
93 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Box box = Box(1, 1, 1); |
94 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Convex<Triangle> cvx; |
95 | |||
96 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | MinkowskiDiff mink_diff1; |
97 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | mink_diff1.set<SupportOptions::NoSweptSphere>(&ellipsoid, &ellipsoid); |
98 |
6/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
|
2 | BOOST_CHECK(mink_diff1.normalize_support_direction == false); |
99 | |||
100 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | MinkowskiDiff mink_diff2; |
101 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | mink_diff2.set<SupportOptions::NoSweptSphere>(&ellipsoid, &box); |
102 |
6/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
|
2 | BOOST_CHECK(mink_diff2.normalize_support_direction == false); |
103 | |||
104 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | MinkowskiDiff mink_diff3; |
105 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | mink_diff3.set<SupportOptions::NoSweptSphere>(&cvx, &cvx); |
106 |
6/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
|
2 | BOOST_CHECK(mink_diff3.normalize_support_direction == true); |
107 | 2 | } | |
108 | |||
109 | 31 | void test_accelerated_gjk(const ShapeBase& shape0, const ShapeBase& shape1) { | |
110 | // Solvers | ||
111 | 31 | unsigned int max_iterations = 128; | |
112 | 31 | Scalar tolerance = Scalar(1e-6); | |
113 |
1/2✓ Branch 1 taken 31 times.
✗ Branch 2 not taken.
|
31 | GJK gjk(max_iterations, tolerance); |
114 |
1/2✓ Branch 1 taken 31 times.
✗ Branch 2 not taken.
|
31 | GJK gjk_nesterov(max_iterations, tolerance); |
115 | 31 | gjk_nesterov.gjk_variant = GJKVariant::NesterovAcceleration; | |
116 |
1/2✓ Branch 1 taken 31 times.
✗ Branch 2 not taken.
|
31 | GJK gjk_polyak(max_iterations, tolerance); |
117 | 31 | gjk_polyak.gjk_variant = GJKVariant::PolyakAcceleration; | |
118 | |||
119 | // Minkowski difference | ||
120 |
1/2✓ Branch 1 taken 31 times.
✗ Branch 2 not taken.
|
31 | MinkowskiDiff mink_diff; |
121 | |||
122 | // Generate random transforms | ||
123 | 31 | size_t n = 1000; | |
124 | 31 | Scalar extents[] = {-3., -3., 0, 3., 3., 3.}; | |
125 | 31 | std::vector<Transform3s> transforms; | |
126 |
1/2✓ Branch 1 taken 31 times.
✗ Branch 2 not taken.
|
31 | generateRandomTransforms(extents, transforms, n); |
127 |
1/2✓ Branch 1 taken 31 times.
✗ Branch 2 not taken.
|
31 | Transform3s identity = Transform3s::Identity(); |
128 | |||
129 | // Same init for both solvers | ||
130 |
1/2✓ Branch 1 taken 31 times.
✗ Branch 2 not taken.
|
31 | Vec3s init_guess = Vec3s(1, 0, 0); |
131 |
1/2✓ Branch 1 taken 31 times.
✗ Branch 2 not taken.
|
31 | support_func_guess_t init_support_guess; |
132 |
1/2✓ Branch 1 taken 31 times.
✗ Branch 2 not taken.
|
31 | init_support_guess.setZero(); |
133 | |||
134 |
2/2✓ Branch 0 taken 31000 times.
✓ Branch 1 taken 31 times.
|
31031 | for (size_t i = 0; i < n; ++i) { |
135 | // No need to take into account swept-sphere radius in supports computation | ||
136 | // when using GJK/EPA; after they have converged, these algos will correctly | ||
137 | // handle the swept-sphere radius of the shapes. | ||
138 |
1/2✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
|
31000 | mink_diff.set<SupportOptions::NoSweptSphere>(&shape0, &shape1, identity, |
139 | 31000 | transforms[i]); | |
140 | |||
141 | // Evaluate both solvers twice, make sure they give the same solution | ||
142 | 62000 | GJK::Status res_gjk_1 = gjk.evaluate( | |
143 |
2/4✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 31000 times.
✗ Branch 5 not taken.
|
31000 | mink_diff, init_guess.cast<SolverScalar>(), init_support_guess); |
144 |
1/2✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
|
31000 | Vec3ps ray_gjk = gjk.ray; |
145 | 31000 | GJK::Status res_gjk_2 = gjk.evaluate( | |
146 |
2/4✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 31000 times.
✗ Branch 5 not taken.
|
31000 | mink_diff, init_guess.cast<SolverScalar>(), init_support_guess); |
147 |
6/12✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 31000 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 31000 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 31000 times.
|
31000 | BOOST_CHECK(res_gjk_1 == res_gjk_2); |
148 |
16/32✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 10 taken 31000 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 31000 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 31000 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 31000 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 31000 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 31000 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 31000 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 31000 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 31000 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 31000 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 31000 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 31000 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 31000 times.
✗ Branch 47 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 31000 times.
|
31000 | EIGEN_VECTOR_IS_APPROX(ray_gjk, gjk.ray, SolverScalar(1e-8)); |
149 | |||
150 | // -------------- | ||
151 | // -- Nesterov -- | ||
152 | // -------------- | ||
153 | 62000 | GJK::Status res_nesterov_gjk_1 = gjk_nesterov.evaluate( | |
154 |
2/4✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 31000 times.
✗ Branch 5 not taken.
|
31000 | mink_diff, init_guess.cast<SolverScalar>(), init_support_guess); |
155 |
1/2✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
|
31000 | Vec3ps ray_nesterov = gjk_nesterov.ray; |
156 | 31000 | GJK::Status res_nesterov_gjk_2 = gjk_nesterov.evaluate( | |
157 |
2/4✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 31000 times.
✗ Branch 5 not taken.
|
31000 | mink_diff, init_guess.cast<SolverScalar>(), init_support_guess); |
158 |
6/12✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 31000 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 31000 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 31000 times.
|
31000 | BOOST_CHECK(res_nesterov_gjk_1 == res_nesterov_gjk_2); |
159 |
16/32✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 10 taken 31000 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 31000 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 31000 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 31000 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 31000 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 31000 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 31000 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 31000 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 31000 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 31000 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 31000 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 31000 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 31000 times.
✗ Branch 47 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 31000 times.
|
31000 | EIGEN_VECTOR_IS_APPROX(ray_nesterov, gjk_nesterov.ray, SolverScalar(1e-8)); |
160 | |||
161 | // Make sure GJK and Nesterov accelerated GJK find the same distance between | ||
162 | // the shapes | ||
163 |
6/12✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 31000 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 31000 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 31000 times.
|
31000 | BOOST_CHECK(res_nesterov_gjk_1 == res_gjk_1); |
164 |
7/14✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 31000 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 16 taken 31000 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 31000 times.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 31000 times.
|
31000 | BOOST_CHECK_SMALL(fabs(ray_gjk.norm() - ray_nesterov.norm()), |
165 | SolverScalar(1e-4)); | ||
166 | |||
167 | // Make sure GJK and Nesterov accelerated GJK converges in a reasonable | ||
168 | // amount of iterations | ||
169 |
6/12✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 31000 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 31000 times.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 31000 times.
|
31000 | BOOST_CHECK(gjk.getNumIterations() < max_iterations); |
170 |
6/12✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 31000 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 31000 times.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 31000 times.
|
31000 | BOOST_CHECK(gjk_nesterov.getNumIterations() < max_iterations); |
171 | |||
172 | // ------------ | ||
173 | // -- Polyak -- | ||
174 | // ------------ | ||
175 | 62000 | GJK::Status res_polyak_gjk_1 = gjk_polyak.evaluate( | |
176 |
2/4✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 31000 times.
✗ Branch 5 not taken.
|
31000 | mink_diff, init_guess.cast<SolverScalar>(), init_support_guess); |
177 |
1/2✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
|
31000 | Vec3ps ray_polyak = gjk_polyak.ray; |
178 | 31000 | GJK::Status res_polyak_gjk_2 = gjk_polyak.evaluate( | |
179 |
2/4✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 31000 times.
✗ Branch 5 not taken.
|
31000 | mink_diff, init_guess.cast<SolverScalar>(), init_support_guess); |
180 |
6/12✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 31000 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 31000 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 31000 times.
|
31000 | BOOST_CHECK(res_polyak_gjk_1 == res_polyak_gjk_2); |
181 |
16/32✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 10 taken 31000 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 31000 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 31000 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 31000 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 31000 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 31000 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 31000 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 31000 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 31000 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 31000 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 31000 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 31000 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 31000 times.
✗ Branch 47 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 31000 times.
|
31000 | EIGEN_VECTOR_IS_APPROX(ray_polyak, gjk_polyak.ray, SolverScalar(1e-8)); |
182 | |||
183 | // Make sure GJK and Polyak accelerated GJK find the same distance between | ||
184 | // the shapes | ||
185 |
6/12✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 31000 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 31000 times.
✗ Branch 18 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 31000 times.
|
31000 | BOOST_CHECK(res_polyak_gjk_1 == res_gjk_1); |
186 |
7/14✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 31000 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 16 taken 31000 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 31000 times.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 31000 times.
|
31000 | BOOST_CHECK_SMALL(fabs(ray_gjk.norm() - ray_polyak.norm()), |
187 | SolverScalar(1e-4)); | ||
188 | |||
189 | // Make sure GJK and Polyak accelerated GJK converges in a reasonable | ||
190 | // amount of iterations | ||
191 |
6/12✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 31000 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 31000 times.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 31000 times.
|
31000 | BOOST_CHECK(gjk.getNumIterations() < max_iterations); |
192 |
6/12✓ Branch 1 taken 31000 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 31000 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 31000 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 31000 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 31000 times.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 31000 times.
|
31000 | BOOST_CHECK(gjk_polyak.getNumIterations() < max_iterations); |
193 | } | ||
194 | 31 | } | |
195 | |||
196 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(ellipsoid_ellipsoid) { |
197 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid0 = Ellipsoid(Scalar(0.3), Scalar(0.4), Scalar(0.5)); |
198 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid1 = Ellipsoid(Scalar(1.5), Scalar(1.4), Scalar(1.3)); |
199 | |||
200 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid0, ellipsoid1); |
201 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid0, ellipsoid1); |
202 | 2 | } | |
203 | |||
204 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(ellipsoid_capsule) { |
205 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid0 = Ellipsoid(Scalar(0.5), Scalar(0.4), Scalar(0.3)); |
206 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid1 = Ellipsoid(Scalar(1.5), Scalar(1.4), Scalar(1.3)); |
207 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Capsule capsule0 = Capsule(Scalar(0.1), Scalar(0.3)); |
208 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Capsule capsule1 = Capsule(Scalar(1.1), Scalar(1.3)); |
209 | |||
210 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid0, capsule0); |
211 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid0, capsule1); |
212 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid1, capsule0); |
213 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid1, capsule1); |
214 | 2 | } | |
215 | |||
216 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(ellipsoid_box) { |
217 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid0 = Ellipsoid(Scalar(0.5), Scalar(0.4), Scalar(0.3)); |
218 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid1 = Ellipsoid(Scalar(1.5), Scalar(1.4), Scalar(1.3)); |
219 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Box box0 = Box(Scalar(0.1), Scalar(0.2), Scalar(0.3)); |
220 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Box box1 = Box(Scalar(1.1), Scalar(1.2), Scalar(1.3)); |
221 | |||
222 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid0, box0); |
223 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid0, box1); |
224 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid1, box0); |
225 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid1, box1); |
226 | 2 | } | |
227 | |||
228 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(ellipsoid_mesh) { |
229 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid0 = Ellipsoid(Scalar(0.5), Scalar(0.4), Scalar(0.3)); |
230 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid1 = Ellipsoid(Scalar(1.5), Scalar(1.4), Scalar(1.3)); |
231 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Convex<Triangle> cvx0 = constructPolytopeFromEllipsoid(ellipsoid0); |
232 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Convex<Triangle> cvx1 = constructPolytopeFromEllipsoid(ellipsoid1); |
233 | |||
234 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid0, cvx0); |
235 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid0, cvx1); |
236 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid1, cvx0); |
237 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(ellipsoid1, cvx1); |
238 | 2 | } | |
239 | |||
240 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(capsule_mesh) { |
241 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid0 = Ellipsoid(Scalar(0.5), Scalar(0.4), Scalar(0.3)); |
242 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid1 = Ellipsoid(Scalar(1.5), Scalar(1.4), Scalar(1.3)); |
243 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Convex<Triangle> cvx0 = constructPolytopeFromEllipsoid(ellipsoid0); |
244 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Convex<Triangle> cvx1 = constructPolytopeFromEllipsoid(ellipsoid1); |
245 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Capsule capsule0 = Capsule(Scalar(0.1), Scalar(0.3)); |
246 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Capsule capsule1 = Capsule(Scalar(1.1), Scalar(1.3)); |
247 | |||
248 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(capsule0, cvx0); |
249 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(capsule0, cvx1); |
250 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(capsule1, cvx0); |
251 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(capsule1, cvx1); |
252 | 2 | } | |
253 | |||
254 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(capsule_capsule) { |
255 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Capsule capsule0 = Capsule(Scalar(0.1), Scalar(0.3)); |
256 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Capsule capsule1 = Capsule(Scalar(1.1), Scalar(1.3)); |
257 | |||
258 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(capsule0, capsule0); |
259 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(capsule1, capsule1); |
260 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(capsule0, capsule1); |
261 | 2 | } | |
262 | |||
263 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(box_box) { |
264 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Box box0 = Box(Scalar(0.1), Scalar(0.2), Scalar(0.3)); |
265 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Box box1 = Box(Scalar(1.1), Scalar(1.2), Scalar(1.3)); |
266 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(box0, box0); |
267 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(box0, box1); |
268 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(box1, box1); |
269 | 2 | } | |
270 | |||
271 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(box_mesh) { |
272 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Box box0 = Box(Scalar(0.1), Scalar(0.2), Scalar(0.3)); |
273 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Box box1 = Box(Scalar(1.1), Scalar(1.2), Scalar(1.3)); |
274 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid0 = Ellipsoid(Scalar(0.5), Scalar(0.4), Scalar(0.3)); |
275 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid1 = Ellipsoid(Scalar(1.5), Scalar(1.4), Scalar(1.3)); |
276 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Convex<Triangle> cvx0 = constructPolytopeFromEllipsoid(ellipsoid0); |
277 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Convex<Triangle> cvx1 = constructPolytopeFromEllipsoid(ellipsoid1); |
278 | |||
279 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(box0, cvx0); |
280 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(box0, cvx1); |
281 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(box1, cvx0); |
282 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(box1, cvx1); |
283 | 2 | } | |
284 | |||
285 |
33/66✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
|
4 | BOOST_AUTO_TEST_CASE(mesh_mesh) { |
286 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid0 = Ellipsoid(Scalar(0.5), Scalar(0.4), Scalar(0.3)); |
287 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Ellipsoid ellipsoid1 = Ellipsoid(Scalar(1.5), Scalar(1.4), Scalar(1.3)); |
288 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Convex<Triangle> cvx0 = constructPolytopeFromEllipsoid(ellipsoid0); |
289 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Convex<Triangle> cvx1 = constructPolytopeFromEllipsoid(ellipsoid1); |
290 | |||
291 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(cvx0, cvx0); |
292 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(cvx0, cvx1); |
293 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | test_accelerated_gjk(cvx1, cvx1); |
294 | 2 | } | |
295 |