// Boost.Geometry (aka GGL, Generic Geometry Library)
// Unit Test
-// Copyright (c) 2014-2015, Oracle and/or its affiliates.
+// Copyright (c) 2014-2017, Oracle and/or its affiliates.
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
+// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
// Licensed under the Boost Software License version 1.0.
// http://www.boost.org/users/license.html
//----------------------------------------------------------------------------
-template <typename Geometry>
+template <typename CSTag, typename Geometry>
void test_simple(Geometry const& geometry, bool expected_result,
bool check_validity = true)
{
#endif
bool simple = bg::is_simple(geometry);
+
BOOST_ASSERT( ! check_validity || bg::is_valid(geometry) );
BOOST_CHECK_MESSAGE( simple == expected_result,
"Expected: " << expected_result
<< " detected: " << simple
<< " wkt: " << bg::wkt(geometry) );
+ typedef typename bg::strategy::intersection::services::default_strategy
+ <
+ CSTag
+ >::type strategy_type;
+
+ bool simple_s = bg::is_simple(geometry, strategy_type());
+
+ BOOST_CHECK_EQUAL(simple, simple_s);
+
#ifdef BOOST_GEOMETRY_TEST_DEBUG
std::cout << "Geometry: ";
pretty_print_geometry<Geometry>::apply(std::cout, geometry);
}
+template <typename Geometry>
+void test_simple(Geometry const& geometry,
+ bool expected_result,
+ bool check_validity = true)
+{
+ typedef typename bg::cs_tag<Geometry>::type cs_tag;
+ test_simple<cs_tag>(geometry, expected_result, check_validity);
+}
+
+template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
+void test_simple(boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)> const& variant_geometry,
+ bool expected_result,
+ bool check_validity = true)
+{
+ typedef typename bg::cs_tag<T0>::type cs_tag;
+ test_simple<cs_tag>(variant_geometry, expected_result, check_validity);
+}
+
+
+
//----------------------------------------------------------------------------