// Boost.Geometry (aka GGL, Generic Geometry Library) test file // // Copyright Barend Gehrels 2010, Geodan, Amsterdam, the Netherlands // 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 #include #include #include #include template void test_geometry(std::string const& wkt, std::string const& expected) { namespace bg = boost::geometry; Box box; bg::read_wkt(wkt, box); typedef bg::box_range range_type; range_type range(box); { std::ostringstream out; for (typename boost::range_iterator::type it = boost::begin(range); it != boost::end(range); ++it) { out << " " << boost::geometry::get<0>(*it) << boost::geometry::get<1>(*it); } BOOST_CHECK_EQUAL(out.str(), expected); } { // Check forward/backward behaviour typename boost::range_iterator::type it = boost::begin(range); it++; it--; // Not verified further, same as segment } } template void test_all() { test_geometry >("polygon((1 1,2 2))", " 11 12 22 21 11"); test_geometry >("polygon((3 3,5 5))", " 33 35 55 53 33"); } int test_main(int, char* []) { test_all(); return 0; }