92 const Real eps = std::numeric_limits<Real>::epsilon();
101 typedef std::tuple<Real, bool, bool> TestTuple;
102 std::vector<TestTuple> tests =
104 std::make_tuple(0.5,
true,
true),
105 std::make_tuple(0.5 - eps,
false,
true),
106 std::make_tuple(0.5 + eps,
false,
true),
107 std::make_tuple(1.0,
false,
false)
110 for (
unsigned int dir = 0; dir < 3; ++dir)
119 min(
Point(mins[0], mins[1], mins[2])),
120 max(
Point(maxs[0], maxs[1], maxs[2]));
125 for (
const auto & t : tests)
128 Point cmin = min, cmax = max;
129 cmin(dir) = cmax(dir) = std::get<0>(t);
133 CPPUNIT_ASSERT(initial.intersects(comparison) == std::get<1>(t));
134 CPPUNIT_ASSERT(comparison.intersects(initial) == std::get<1>(t));
137 CPPUNIT_ASSERT(initial.intersects(comparison,
TOLERANCE) == std::get<2>(t));
138 CPPUNIT_ASSERT(comparison.intersects(initial,
TOLERANCE) == std::get<2>(t));
144 std::rotate(mins.rbegin(), mins.rbegin()+1, mins.rend());
145 std::rotate(maxs.rbegin(), maxs.rbegin()+1, maxs.rend());