mirror of
https://github.com/boostorg/geometry.git
synced 2025-05-11 13:34:10 +00:00
[test] Update tests to be in line with the change in behavior of read_wkt() for open Rings.
This commit is contained in:
parent
2278e697d0
commit
743d4fadd4
@ -280,7 +280,7 @@ void test_open_rings()
|
|||||||
test::apply(from_wkt<OG>("POLYGON((0 0,0 0,0 0))"), false);
|
test::apply(from_wkt<OG>("POLYGON((0 0,0 0,0 0))"), false);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 0))"), false);
|
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 0))"), false);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,0 0))"), false);
|
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,0 0))"), false);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 1,0 0))"),
|
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 1,0 0,0 0))"),
|
||||||
AllowDuplicates);
|
AllowDuplicates);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 0,1 1))"),
|
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 0,1 1))"),
|
||||||
AllowDuplicates);
|
AllowDuplicates);
|
||||||
@ -426,7 +426,7 @@ void test_open_polygons()
|
|||||||
test::apply(from_wkt<OG>("POLYGON((0 0,0 0,0 0))"), false);
|
test::apply(from_wkt<OG>("POLYGON((0 0,0 0,0 0))"), false);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 0))"), false);
|
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 0))"), false);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,0 0))"), false);
|
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,0 0))"), false);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 1,0 0))"), AllowDuplicates);
|
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 1,0 0,0 0))"), AllowDuplicates);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 0,1 1))"), AllowDuplicates);
|
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 0,1 1))"), AllowDuplicates);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 0,1 1,0 0))"),
|
test::apply(from_wkt<OG>("POLYGON((0 0,1 0,1 0,1 1,0 0))"),
|
||||||
AllowDuplicates);
|
AllowDuplicates);
|
||||||
@ -438,7 +438,7 @@ void test_open_polygons()
|
|||||||
false);
|
false);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,10 0,10 10,0 10),(1 1,2 1,1 1))"),
|
test::apply(from_wkt<OG>("POLYGON((0 0,10 0,10 10,0 10),(1 1,2 1,1 1))"),
|
||||||
false);
|
false);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,10 0,10 10,0 10),(1 1,2 2,2 1,1 1))"),
|
test::apply(from_wkt<OG>("POLYGON((0 0,10 0,10 10,0 10),(1 1,2 2,2 1,1 1,1 1))"),
|
||||||
AllowDuplicates);
|
AllowDuplicates);
|
||||||
test::apply(from_wkt<OG>("POLYGON((0 0,10 0,10 10,0 10),(1 1,2 2,2 2,2 1))"),
|
test::apply(from_wkt<OG>("POLYGON((0 0,10 0,10 10,0 10),(1 1,2 2,2 2,2 1))"),
|
||||||
AllowDuplicates);
|
AllowDuplicates);
|
||||||
|
@ -86,11 +86,11 @@ int test_main(int, char* [])
|
|||||||
|
|
||||||
// test open geometries
|
// test open geometries
|
||||||
test_num_points<open_ring>("POLYGON((0 0,1 1,0 1))", 3u, 4u);
|
test_num_points<open_ring>("POLYGON((0 0,1 1,0 1))", 3u, 4u);
|
||||||
test_num_points<open_ring>("POLYGON((0 0,1 1,0 1,0 0))", 4u, 5u);
|
test_num_points<open_ring>("POLYGON((0 0,1 1,0 1,0 0))", 3u, 4u);
|
||||||
test_num_points<open_polygon>("POLYGON((0 0,10 10,0 10))", 3u, 4u);
|
test_num_points<open_polygon>("POLYGON((0 0,10 10,0 10))", 3u, 4u);
|
||||||
test_num_points<open_polygon>("POLYGON((0 0,10 10,0 10,0 0))", 4u, 5u);
|
test_num_points<open_polygon>("POLYGON((0 0,10 10,0 10,0 0))", 3u, 4u);
|
||||||
test_num_points<open_multi_polygon>("MULTIPOLYGON(((0 0,0 10,10 10,10 0)),((0 10,1 10,1 9)))", 7u, 9u);
|
test_num_points<open_multi_polygon>("MULTIPOLYGON(((0 0,0 10,10 10,10 0)),((0 10,1 10,1 9)))", 7u, 9u);
|
||||||
test_num_points<open_multi_polygon>("MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((0 10,1 10,1 9,0 10)))", 9u, 11u);
|
test_num_points<open_multi_polygon>("MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((0 10,1 10,1 9,0 10)))", 7u, 9u);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -88,10 +88,6 @@ void test_ordered_ring(std::string const& wkt_point,
|
|||||||
{
|
{
|
||||||
std::reverse(boost::begin(ring), boost::end(ring));
|
std::reverse(boost::begin(ring), boost::end(ring));
|
||||||
}
|
}
|
||||||
if (! Closed)
|
|
||||||
{
|
|
||||||
ring.resize(ring.size() - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
bg::read_wkt(wkt_point, point);
|
bg::read_wkt(wkt_point, point);
|
||||||
|
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||||
|
|
||||||
|
// This file was modified by Oracle on 2014.
|
||||||
|
// Modifications copyright (c) 2014 Oracle and/or its affiliates.
|
||||||
|
|
||||||
|
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||||
|
|
||||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||||
|
|
||||||
@ -42,8 +47,8 @@ void check_wkt(G const& geometry, std::string const& expected)
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename G>
|
template <typename G>
|
||||||
void test_wkt(std::string const& wkt, std::size_t n, double len = 0,
|
void test_wkt(std::string const& wkt, std::string const& expected,
|
||||||
double ar = 0, double peri = 0)
|
std::size_t n, double len = 0, double ar = 0, double peri = 0)
|
||||||
{
|
{
|
||||||
G geometry;
|
G geometry;
|
||||||
|
|
||||||
@ -67,8 +72,15 @@ void test_wkt(std::string const& wkt, std::size_t n, double len = 0,
|
|||||||
BOOST_CHECK_CLOSE(double(bg::perimeter(geometry)), peri, 0.0001);
|
BOOST_CHECK_CLOSE(double(bg::perimeter(geometry)), peri, 0.0001);
|
||||||
}
|
}
|
||||||
|
|
||||||
check_wkt(geometry, wkt);
|
check_wkt(geometry, expected);
|
||||||
check_wkt(boost::variant<G>(geometry), wkt);
|
check_wkt(boost::variant<G>(geometry), expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename G>
|
||||||
|
void test_wkt(std::string const& wkt,
|
||||||
|
std::size_t n, double len = 0, double ar = 0, double peri = 0)
|
||||||
|
{
|
||||||
|
test_wkt<G>(wkt, wkt, n, len, ar, peri);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename G>
|
template <typename G>
|
||||||
@ -135,6 +147,44 @@ void test_wkt_output_iterator(std::string const& wkt)
|
|||||||
|
|
||||||
|
|
||||||
#ifndef GEOMETRY_TEST_MULTI
|
#ifndef GEOMETRY_TEST_MULTI
|
||||||
|
template <typename T>
|
||||||
|
void test_order_closure()
|
||||||
|
{
|
||||||
|
using namespace boost::geometry;
|
||||||
|
typedef bg::model::point<T, 2, bg::cs::cartesian> Pt;
|
||||||
|
typedef bg::model::polygon<Pt, true, true> PCWC;
|
||||||
|
typedef bg::model::polygon<Pt, true, false> PCWO;
|
||||||
|
typedef bg::model::polygon<Pt, false, true> PCCWC;
|
||||||
|
typedef bg::model::polygon<Pt, false, false> PCCWO;
|
||||||
|
|
||||||
|
{
|
||||||
|
std::string wkt_cwc = "POLYGON((0 0,0 2,2 2,2 0,0 0))";
|
||||||
|
std::string wkt_cwo = "POLYGON((0 0,0 2,2 2,2 0))";
|
||||||
|
std::string wkt_ccwc = "POLYGON((0 0,2 0,2 2,0 2,0 0))";
|
||||||
|
std::string wkt_ccwo = "POLYGON((0 0,2 0,2 2,0 2))";
|
||||||
|
|
||||||
|
test_wkt<PCWC>(wkt_cwc, 5, 0, 4, 8);
|
||||||
|
test_wkt<PCWO>(wkt_cwc, 4, 0, 4, 8);
|
||||||
|
test_wkt<PCWO>(wkt_cwo, wkt_cwc, 4, 0, 4, 8);
|
||||||
|
test_wkt<PCCWC>(wkt_ccwc, 5, 0, 4, 8);
|
||||||
|
test_wkt<PCCWO>(wkt_ccwc, 4, 0, 4, 8);
|
||||||
|
test_wkt<PCCWO>(wkt_ccwo, wkt_ccwc, 4, 0, 4, 8);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
std::string wkt_cwc = "POLYGON((0 0,0 3,3 3,3 0,0 0),(1 1,2 1,2 2,1 2,1 1))";
|
||||||
|
std::string wkt_cwo = "POLYGON((0 0,0 3,3 3,3 0),(1 1,2 1,2 2,1 2))";
|
||||||
|
std::string wkt_ccwc = "POLYGON((0 0,3 0,3 3,0 3,0 0),(1 1,1 2,2 2,2 1,1 1))";
|
||||||
|
std::string wkt_ccwo = "POLYGON((0 0,3 0,3 3,0 3),(1 1,1 2,2 2,2 1,1 1))";
|
||||||
|
|
||||||
|
test_wkt<PCWC>(wkt_cwc, 10, 0, 8, 16);
|
||||||
|
test_wkt<PCWO>(wkt_cwc, 8, 0, 8, 16);
|
||||||
|
test_wkt<PCWO>(wkt_cwo, wkt_cwc, 8, 0, 8, 16);
|
||||||
|
test_wkt<PCCWC>(wkt_ccwc, 10, 0, 8, 16);
|
||||||
|
test_wkt<PCCWO>(wkt_ccwc, 8, 0, 8, 16);
|
||||||
|
test_wkt<PCCWO>(wkt_ccwo, wkt_ccwc, 8, 0, 8, 16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void test_all()
|
void test_all()
|
||||||
{
|
{
|
||||||
@ -201,10 +251,11 @@ void test_all()
|
|||||||
// Deprecated:
|
// Deprecated:
|
||||||
// test_wkt_output_iterator<bg::model::linestring<P> >("LINESTRING(1 1,2 2,3 3)");
|
// test_wkt_output_iterator<bg::model::linestring<P> >("LINESTRING(1 1,2 2,3 3)");
|
||||||
// test_wkt_output_iterator<bg::model::ring<P> >("POLYGON((1 1,2 2,3 3))");
|
// test_wkt_output_iterator<bg::model::ring<P> >("POLYGON((1 1,2 2,3 3))");
|
||||||
|
|
||||||
|
test_order_closure<T>();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
int test_main(int, char* [])
|
int test_main(int, char* [])
|
||||||
{
|
{
|
||||||
test_all<double>();
|
test_all<double>();
|
||||||
|
@ -217,6 +217,16 @@ struct test_point_iterator_of_geometry
|
|||||||
bg::points_end(point_range))
|
bg::points_end(point_range))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ( !equals::apply(begin, end,
|
||||||
|
bg::points_begin(point_range),
|
||||||
|
bg::points_end(point_range) ) )
|
||||||
|
{
|
||||||
|
equals::apply(begin, end,
|
||||||
|
bg::points_begin(point_range),
|
||||||
|
bg::points_end(point_range) );
|
||||||
|
int a = 10;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef BOOST_GEOMETRY_TEST_DEBUG
|
#ifdef BOOST_GEOMETRY_TEST_DEBUG
|
||||||
std::cout << header << " geometry: " << bg::wkt(geometry) << std::endl;
|
std::cout << header << " geometry: " << bg::wkt(geometry) << std::endl;
|
||||||
print_point_range(std::cout, begin, end, "point range: ");
|
print_point_range(std::cout, begin, end, "point range: ");
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||||
|
|
||||||
|
// This file was modified by Oracle on 2014.
|
||||||
|
// Modifications copyright (c) 2014 Oracle and/or its affiliates.
|
||||||
|
|
||||||
|
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||||
|
|
||||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||||
|
|
||||||
@ -45,6 +50,33 @@ void test_all();
|
|||||||
#define GEOMETRY_TEST_MULTI
|
#define GEOMETRY_TEST_MULTI
|
||||||
#include "io/wkt/wkt.cpp"
|
#include "io/wkt/wkt.cpp"
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void test_order_closure()
|
||||||
|
{
|
||||||
|
using namespace boost::geometry;
|
||||||
|
typedef bg::model::point<T, 2, bg::cs::cartesian> Pt;
|
||||||
|
typedef bg::model::polygon<Pt, true, true> PCWC;
|
||||||
|
typedef bg::model::polygon<Pt, true, false> PCWO;
|
||||||
|
typedef bg::model::polygon<Pt, false, true> PCCWC;
|
||||||
|
typedef bg::model::polygon<Pt, false, false> PCCWO;
|
||||||
|
typedef bg::model::multi_polygon<PCWC> MPCWC;
|
||||||
|
typedef bg::model::multi_polygon<PCWO> MPCWO;
|
||||||
|
typedef bg::model::multi_polygon<PCCWC> MPCCWC;
|
||||||
|
typedef bg::model::multi_polygon<PCCWO> MPCCWO;
|
||||||
|
|
||||||
|
std::string wkt_cwc = "MULTIPOLYGON(((0 0,0 2,2 2,2 0,0 0)),((0 0,0 -3,-3 -3,-3 0,0 0),(-1 -1,-2 -1,-2 -2,-1 -2,-1 -1)))";
|
||||||
|
std::string wkt_cwo = "MULTIPOLYGON(((0 0,0 2,2 2,2 0)),((0 0,0 -3,-3 -3,-3 0),(-1 -1,-2 -1,-2 -2,-1 -2)))";
|
||||||
|
std::string wkt_ccwc = "MULTIPOLYGON(((0 0,2 0,2 2,0 2,0 0)),((0 0,-3 0,-3 -3,0 -3,0 0),(-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))";
|
||||||
|
std::string wkt_ccwo = "MULTIPOLYGON(((0 0,2 0,2 2,0 2)),((0 0,-3 0,-3 -3,0 -3),(-1 -1,-1 -2,-2 -2,-2 -1)))";
|
||||||
|
|
||||||
|
test_wkt<MPCWC>(wkt_cwc, wkt_cwc, 15, 0, 12, 24);
|
||||||
|
test_wkt<MPCWO>(wkt_cwc, wkt_cwc, 12, 0, 12, 24);
|
||||||
|
test_wkt<MPCWO>(wkt_cwo, wkt_cwc, 12, 0, 12, 24);
|
||||||
|
test_wkt<MPCCWC>(wkt_ccwc, wkt_ccwc, 15, 0, 12, 24);
|
||||||
|
test_wkt<MPCCWO>(wkt_ccwc, wkt_ccwc, 12, 0, 12, 24);
|
||||||
|
test_wkt<MPCCWO>(wkt_ccwo, wkt_ccwc, 12, 0, 12, 24);
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void test_all()
|
void test_all()
|
||||||
{
|
{
|
||||||
@ -79,6 +111,8 @@ void test_all()
|
|||||||
test_wrong_wkt<bg::model::multi_point<P> >(
|
test_wrong_wkt<bg::model::multi_point<P> >(
|
||||||
"MULTIPOINT(16 17), (18 19)",
|
"MULTIPOINT(16 17), (18 19)",
|
||||||
"too much tokens at ',' in 'multipoint(16 17), (18 19)'");
|
"too much tokens at ',' in 'multipoint(16 17), (18 19)'");
|
||||||
|
|
||||||
|
test_order_closure<T>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user