⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isrectangletest.cpp

📁 在Linux下做的QuadTree的程序
💻 CPP
字号:
// $Id: isRectangleTest.cpp 1820 2006-09-06 16:54:23Z mloskot $// // Test Suite for Geometry::isRectangle() function// TUT#include <tut.h>// STL#include <string>// GEOS#include <geos/geom/GeometryFactory.h>#include <geos/geom/Geometry.h>#include <geos/geom/Polygon.h>#include <geos/io/WKTReader.h>namespace tut{    //    // Test Group    //    struct test_isrectangle_data    {        geos::geom::GeometryFactory factory;        geos::io::WKTReader reader;        test_isrectangle_data()            : reader(&factory)        {}    };    typedef test_group<test_isrectangle_data> group;    typedef group::object object;    group test_isrectangle_group("geos::geom::Geometry::isRectangle");    //    // Test Cases    //    // 1 - Test of valid rectangle    template<>    template<>    void object::test<1>()    {        const std::string wkt("POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))");        geos::geom::Geometry* g = reader.read(wkt);                geos::geom::Polygon* poly = dynamic_cast<geos::geom::Polygon*>(g);        ensure( "Geometry is not a Polygon: " + wkt, poly != 0 );        ensure( poly->isRectangle() );        delete g;    }    // 2 - Test of another valid rectangle    template<>    template<>    void object::test<2>()    {        const std::string wkt("POLYGON ((0 0, 0 200, 100 200, 100 0, 0 0))");        geos::geom::Geometry* g = reader.read(wkt);                geos::geom::Polygon* poly = dynamic_cast<geos::geom::Polygon*>(g);        ensure( "Geometry is not a Polygon: " + wkt, poly != 0 );        ensure( poly->isRectangle() );        delete g;    }    // 3 - Test of rectangle with hole    template<>    template<>    void object::test<3>()    {        const std::string wkt("POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0), \                              (10 10, 10 90, 90 90, 90 10, 10 10) ))");        geos::geom::Geometry* g = reader.read(wkt);                geos::geom::Polygon* poly = dynamic_cast<geos::geom::Polygon*>(g);        ensure( "Geometry is not a Polygon: " + wkt, poly != 0 );        ensure( !poly->isRectangle() );        delete g;    }    // 4 - Test of non-rectilinear rectangle    template<>    template<>    void object::test<4>()    {        const std::string wkt("POLYGON ((0 0, 0 100, 99 100, 100 0, 0 0))");        geos::geom::Geometry* g = reader.read(wkt);                geos::geom::Polygon* poly = dynamic_cast<geos::geom::Polygon*>(g);        ensure( "Geometry is not a Polygon: " + wkt, poly != 0 );        ensure( !poly->isRectangle() );        delete g;    }    // 5 - Test of rectangle with too many points    template<>    template<>    void object::test<5>()    {        const std::string wkt("POLYGON ((0 0, 0 100, 100 50, 100 100, 100 0, 0 0))");        geos::geom::Geometry* g = reader.read(wkt);                geos::geom::Polygon* poly = dynamic_cast<geos::geom::Polygon*>(g);        ensure( "Geometry is not a Polygon: " + wkt, poly != 0 );        ensure( !poly->isRectangle() );        delete g;    }    // 6 - Test of rectangle with too few points    template<>    template<>    void object::test<6>()    {        const std::string wkt("POLYGON ((0 0, 0 100, 100 0, 0 0))");        geos::geom::Geometry* g = reader.read(wkt);                geos::geom::Polygon* poly = dynamic_cast<geos::geom::Polygon*>(g);        ensure( "Geometry is not a Polygon: " + wkt, poly != 0 );        ensure( !poly->isRectangle() );        delete g;    }    // 7 - Test of rectangle with points in wrong order    template<>    template<>    void object::test<7>()    {        const std::string wkt("POLYGON ((0 0, 0 100, 100 0, 100 100, 0 0))");        geos::geom::Geometry* g = reader.read(wkt);                geos::geom::Polygon* poly = dynamic_cast<geos::geom::Polygon*>(g);        ensure( "Geometry is not a Polygon: " + wkt, poly != 0 );        ensure( !poly->isRectangle() );        delete g;    }} // namespace tut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -