diff --git a/extensions/test/generic_robust_predicates/Jamfile b/extensions/test/generic_robust_predicates/Jamfile index 47d8e0ec595..0595681dce7 100644 --- a/extensions/test/generic_robust_predicates/Jamfile +++ b/extensions/test/generic_robust_predicates/Jamfile @@ -7,5 +7,6 @@ test-suite boost-geometry-extensions-generic_robust_predicates : [ run approximate.cpp ] + [ run side3d.cpp : : : off ] ; diff --git a/extensions/test/generic_robust_predicates/side3d.cpp b/extensions/test/generic_robust_predicates/side3d.cpp new file mode 100644 index 00000000000..4b9ac945d75 --- /dev/null +++ b/extensions/test/generic_robust_predicates/side3d.cpp @@ -0,0 +1,76 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// Unit Test + +// Copyright (c) 2020 Tinko Bartels, Berlin, Germany. + +// Contributed and/or modified by Tinko Bartels, +// as part of Google Summer of Code 2020 program. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#include + +#include + +#include +#include + +template +void test_all() +{ + using bg::detail::generic_robust_predicates::orient3d; + using bg::detail::generic_robust_predicates::stage_a_semi_static; + using bg::detail::generic_robust_predicates::stage_a_almost_static; + using bg::detail::generic_robust_predicates::stage_a_static; + using ct = CalculationType; + using semi_static = stage_a_semi_static; + BOOST_CHECK_EQUAL(1, + semi_static::apply(1, 0, 0, + 0, 1, 0, + 1, 1, 0, + 0, 0, 1)); + BOOST_CHECK_EQUAL(-1, + semi_static::apply(1, 0, 0, + 0, 1, 0, + 1, 1, 0, + 0, 0, -1)); + BOOST_CHECK_EQUAL(0, + semi_static::apply(1, 0, 0, + 0, 1, 0, + 1, 1, 0, + 0, 0, 0)); + stage_a_static stat(10, 10, 10, + 10, 10, 10, + 10, 10, 10, + 10, 10, 10, + 0, 0, 0, + 0, 0, 0, + 0, 0, 0, + 0, 0, 0); + BOOST_CHECK_EQUAL(1, stat.apply(1, 0, 0, + 0, 1, 0, + 1, 1, 0, + 0, 0, 1)); + + stage_a_static pessimistic(1e40, 1e40, 1e40, + 1e40, 1e40, 1e40, + 1e40, 1e40, 1e40, + 1e40, 1e40, 1e40, + 0, 0, 0, + 0, 0, 0, + 0, 0, 0, + 0, 0, 0); + BOOST_CHECK_EQUAL(bg::detail::generic_robust_predicates::sign_uncertain, + pessimistic.apply(1, 0, 0, + 0, 1, 0, + 1, 1, 0, + 0, 0, 1)); +} + +int test_main(int, char* []) +{ + test_all(); + return 0; +}