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

📄 envelopetest.cpp

📁 在Linux下做的QuadTree的程序
💻 CPP
字号:
// $Id: EnvelopeTest.cpp 1842 2006-09-07 15:28:03Z strk $// // Test Suite for geos::geom::Envelope class.// TUT#include <tut.h>// GEOS#include <geos/geom/Envelope.h>#include <geos/geom/Coordinate.h>namespace tut{    //    // Test Group    //    // dummy data, not used    struct test_envelope_data {};    typedef test_group<test_envelope_data> group;    typedef group::object object;    group test_envelope_group("geos::geom::Envelope");    //    // Test Cases    //    // 1 - Test of default constructor    template<>    template<>    void object::test<1>()    {                 geos::geom::Envelope empty;        ensure( empty.isNull() );        ensure_equals( empty.getWidth(), 0 );        ensure_equals( empty.getHeight(), 0 );    }    // 2 - Test of overriden constructor    template<>    template<>    void object::test<2>()    {        geos::geom::Envelope box(0, 100, 0, 100);        ensure( !box.isNull() );        ensure_equals( box.getMinX(), 0 );        ensure_equals( box.getMaxX(), 100 );        ensure_equals( box.getMinY(), 0 );        ensure_equals( box.getMaxY(), 100 );        ensure_equals( box.getMinX(), box.getMinY() );        ensure_equals( box.getMaxX(), box.getMaxY() );        ensure_equals( box.getWidth(), box.getHeight() );    }    // 3 - Test of copy constructor    template<>    template<>    void object::test<3>()    {        geos::geom::Envelope box(0, 100, 0, 100);        ensure( !box.isNull() );        ensure_equals( box.getWidth(), box.getHeight() );        geos::geom::Envelope copied(box);        ensure( !copied.isNull() );        ensure( copied == box );        ensure_equals( copied.getWidth(), copied.getHeight() );    }    // 4 - Test of setToNull()    template<>    template<>    void object::test<4>()    {        geos::geom::Envelope e(100, 200, 100, 200);        ensure( !e.isNull() );        e.setToNull();        ensure( e.isNull() );    }    // 5 - Test of equals()    template<>    template<>    void object::test<5>()    {        geos::geom::Envelope empty;        geos::geom::Envelope zero(0, 0, 0, 0);        geos::geom::Envelope zero2(0, 0, 0, 0);        geos::geom::Envelope box(0, 100, 0, 100);        ensure( empty.isNull() );        ensure( !zero.isNull() );        ensure( !zero2.isNull() );        ensure( !box.isNull() );        ensure( !empty.equals( &zero ) );        ensure( !zero.equals( &empty ) );        ensure( zero.equals( &zero2 ) );        ensure( zero2.equals( &zero ) );        ensure( !box.equals( &empty ) );        ensure( !box.equals( &zero ) );    }    // 6 - Test of contains()    template<>    template<>    void object::test<6>()    {        geos::geom::Envelope empty;        geos::geom::Envelope small(-1, 1, -1, 1);        geos::geom::Envelope big(-5, 5, -5, 5);        ensure( empty.isNull() );        ensure( !small.isNull() );        ensure( !big.isNull() );        // Test empty envelope by reference        ensure( "empty envelope is not empty!", !empty.contains( small ) );        ensure( "empty envelope is not empty!", !small.contains( empty ) );        // Test empty envelope by pointer        ensure( "empty envelope is not empty!", !empty.contains( &small ) );        ensure( "empty envelope is not empty!", !small.contains( &empty ) );        // Test non-empty envelope by reference        ensure( !small.contains( big ) );        ensure( big.contains( small ) );        // Test raw point        ensure( small.contains( 0, 0 ) );        ensure( small.contains( -1, -1 ) );        ensure( !small.contains( 5, 5 ) );        // Test coordinate        geos::geom::Coordinate origin(0, 0, 0);        ensure_equals( origin.x, 0 );        ensure_equals( origin.y, 0 );        ensure_equals( origin.z, 0 );        ensure( small.contains( origin ) );    }    // Test of intersects()    template<>    template<>    void object::test<7>()    {        geos::geom::Envelope empty;        geos::geom::Envelope with_origin(-100, 100, -100, 100);        geos::geom::Envelope moved(50, 150, 50, 150);        ensure( empty.isNull() );        ensure( !with_origin.isNull() );        ensure( !moved.isNull() );        // Test empty envelope by reference        ensure( "empty envelope seems not empty!", !empty.intersects( with_origin ) );        ensure( "empty envelope seems not empty!", !with_origin.intersects( empty ) );        // Test empty envelope by pointer        ensure( "empty envelope seems not empty!", !empty.intersects( &with_origin ) );        ensure( "empty envelope seems not empty!", !with_origin.intersects( &empty ) );        // Test non-empty envelope by reference        ensure( with_origin.intersects( moved ) );        ensure( moved.intersects( with_origin ) );        // Test intersection with raw point        ensure( with_origin.intersects( 0, 0 ) );        ensure( with_origin.intersects( -100, 100 ) );        ensure( !with_origin.intersects( -200, 200 ) );        // Test intersection with coordinate        geos::geom::Coordinate origin(0, 0, 0);        ensure_equals( origin.x, 0 );        ensure_equals( origin.y, 0 );        ensure_equals( origin.z, 0 );        ensure( with_origin.intersects( origin ) );    }    // Test of expand()    template<>    template<>    void object::test<8>()    {        geos::geom::Envelope empty;        geos::geom::Envelope box(-5, 5, -5, 5); // Includes (0,0) point        const geos::geom::Envelope exemplar(-5, 5, -5, 5);        ensure( empty.isNull() );        ensure( !box.isNull() );        ensure( !exemplar.isNull() );        // Expand box envelope to include null envelope        box.expandToInclude(&empty);        ensure( box == exemplar ); // no change expected        // Expand null envelope to include box envelope        empty.expandToInclude(&box);        ensure( empty == exemplar );    }    // Second test of expand()    template<>    template<>    void object::test<9>()    {        geos::geom::Envelope empty;        geos::geom::Envelope box(100, 101, 100, 101); // Does not include (0,0) point        const geos::geom::Envelope exemplar(100, 101, 100, 101);        // Expand box envelope to include null envelope        box.expandToInclude(&empty);        ensure( box == exemplar ); // no change expected        // Expand empty envelope to include bigger envelope        empty.expandToInclude(&box);        ensure( empty == exemplar );    }} // namespace tut

⌨️ 快捷键说明

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