The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Geo::ShapeFile::TestHelpers;
use strict;
use warnings;


sub get_data {
    return (
        _get_data(),
        _get_empty_point_data(),
    );
}

sub get_empty_data {
    return _get_empty_point_data();
}

sub get_empty_dbf {
    return 'empty_dbf';
}


sub _get_data {
    my %data = (
        anno  => {
            object     => undef,
            shape_type => 'Polygon',
            records    => 201,
            shapes     => 201,
            nulls      => 0,
            x_min      => 471276.28125,
            x_max      => 492683.5361785888671875,
            y_min      => 4751595.5,
            y_max      => 4765390.412581588141620159149169921875,
            m_min      => undef,
            m_max      => undef,
            z_min      => undef,
            z_max      => undef,
            #dbf_labels => 'HEIGHT LEVEL NAME_ NAME_ID OFFSETX OFFSETY SYMBOL TEXT X Y _deleted',
            dbf_labels => 'NAME_ NAME_ID X Y OFFSETX OFFSETY HEIGHT SYMBOL LEVEL TEXT _deleted',
        },
        brklinz  => {
            object     => undef,
            shape_type => 'PolyLineZ',
            records    => 122,
            shapes     => 122,
            nulls      => 0,
            x_min      => 6294338.25999999977648258209228515625,
            x_max      => 6296321.860000000335276126861572265625,
            y_min      => 1978444.01000000000931322574615478515625,
            y_max      => 1979694.44999999995343387126922607421875,
            m_min      => undef,
            m_max      => undef,
            z_min      => undef,
            z_max      => undef,
            dbf_labels => 'ID _deleted',
        },
        cities  => {
            object     => undef,
            shape_type => 'Point',
            records    => 36,
            shapes     => 36,
            nulls      => 0,
            x_min      => -115.2942352294921875,
            x_max      => -88.2643585205078125,
            y_min      => 16.6302967071533203125,
            y_max      => 32.620204925537109375,
            m_min      => undef,
            m_max      => undef,
            z_min      => undef,
            z_max      => undef,
            dbf_labels => 'NAME CAPITAL STATE_NAME POPULATION _deleted',
        },
        drainage  => {
            object     => undef,
            shape_type => 'PolyLine',
            records    => 6,
            shapes     => 6,
            nulls      => 0,
            x_min      => -115.04149627685546875,
            x_max      => -90.65814208984375,
            y_min      => 15.4399242401123046875,
            y_max      => 32.72083282470703125,
            m_min      => undef,
            m_max      => undef,
            z_min      => -16125672399481724123986011618587258386906538603886358185620065373269736146054676480,
            z_max      => undef,
            dbf_labels => 'SYSTEM _deleted',
        },
        lakes  => {
            object     => undef,
            shape_type => 'Polygon',
            records    => 3,
            shapes     => 3,
            nulls      => 0,
            x_min      => -103.42584228515625,
            x_max      => -96.3589019775390625,
            y_min      => 18.092777252197265625,
            y_max      => 20.339996337890625,
            m_min      => undef,
            m_max      => undef,
            z_min      => -16125672399481724123986011618587258386906538603886358185620065373269736146054676480,
            z_max      => undef,
            dbf_labels => 'AREA NAME _deleted',
        },
        masspntz  => {
            object     => undef,
            shape_type => 'PointZ',
            records    => 815,
            shapes     => 815,
            nulls      => 0,
            x_min      => 6294340.120000000111758708953857421875,
            x_max      => 6296321.91999999992549419403076171875,
            y_min      => 1978439.78000000002793967723846435546875,
            y_max      => 1979689.88999999989755451679229736328125,
            m_min      => undef,
            m_max      => undef,
            z_min      => undef,
            z_max      => undef,
            dbf_labels => 'ID _deleted',
        },
        multipnt  => {
            object     => undef,
            shape_type => 'MultiPoint',
            records    => 1,
            shapes     => 1,
            nulls      => 0,
            x_min      => 483575.5,
            x_max      => 483575.5,
            y_min      => 4753046,
            y_max      => 4753046,
            m_min      => undef,
            m_max      => undef,
            z_min      => undef,
            z_max      => undef,
            dbf_labels => 'AREA PERIMETER EAS_ EAS_ID ATLAS_P ATLAS_S EDLOW EDMED EDHIGH HHNUMBER AVGHHINC EDUC POTENT ELAT ELON DIS58 DIS130 DIS208 DIS425 MKTSHR58 MKTSHR130 MKTSHR208 MKTSHR425 LIFESTYLES CUMMKTSHR PENTRA OPPT PRFEDEA AA _deleted',
        },
        pline  => {
            object     => undef,
            shape_type => 'PolyLine',
            records    => 460,
            shapes     => 460,
            nulls      => 0,
            x_min      => 1296367.5,
            x_max      => 1302699,
            y_min      => 228199.390625,
            y_max      => 237185.03125,
            m_min      => undef,
            m_max      => undef,
            z_min      => undef,
            z_max      => undef,
            dbf_labels => 'FNODE_ TNODE_ LPOLY_ RPOLY_ LENGTH PLINE_ PLINE_ID UID GISO_TYPE_ SYMBOL LOCK__ID PHASE__ID OBJECT__ID TYPE SYM_NBR PHASE CKT_NM VOLTAGE CMPN _deleted',
        },
        polygon  => {
            object     => undef,
            shape_type => 'Polygon',
            records    => 474,
            shapes     => 474,
            nulls      => 0,
            x_min      => 471127.1875,
            x_max      => 489292.3125,
            y_min      => 4751545,
            y_max      => 4765610.5,
            m_min      => undef,
            m_max      => undef,
            z_min      => undef,
            z_max      => undef,
            dbf_labels => 'AREA PERIMETER EAS_ EAS_ID ATLAS_P ATLAS_S EDLOW EDMED EDHIGH HHNUMBER AVGHHINC EDUC POTENT ELAT ELON DIS58 DIS130 DIS208 DIS425 MKTSHR58 MKTSHR130 MKTSHR208 MKTSHR425 LIFESTYLES CUMMKTSHR PENTRA OPPT PRFEDEA AA _deleted',
        },
        rivers  => {
            object     => undef,
            shape_type => 'PolyLine',
            records    => 30,
            shapes     => 30,
            nulls      => 0,
            x_min      => -115.04149627685546875,
            x_max      => -90.65814208984375,
            y_min      => 15.4399242401123046875,
            y_max      => 32.72083282470703125,
            m_min      => undef,
            m_max      => undef,
            z_min      => -16125672399481724123986011618587258386906538603886358185620065373269736146054676480,
            z_max      => undef,
            dbf_labels => 'NAME SYSTEM _deleted',
        },
        roads  => {
            object     => undef,
            shape_type => 'PolyLine',
            records    => 105,
            shapes     => 105,
            nulls      => 0,
            x_min      => -117.03643035888671875,
            x_max      => -86.843597412109375,
            y_min      => 14.5713672637939453125,
            y_max      => 32.6636810302734375,
            m_min      => undef,
            m_max      => undef,
            z_min      => undef,
            z_max      => undef,
            dbf_labels => 'LENGTH TYPE ADMN_CLASS TOLL_RD RTE_NUM1 RTE_NUM2 ROUTE _deleted',
        },
        roads_rt  => {
            object     => undef,
            shape_type => 'PolyLine',
            records    => 28,
            shapes     => 28,
            nulls      => 0,
            x_min      => -117.03643035888671875,
            x_max      => -86.843597412109375,
            y_min      => 14.5713672637939453125,
            y_max      => 32.6636810302734375,
            m_min      => undef,
            m_max      => undef,
            z_min      => undef,
            z_max      => undef,
            dbf_labels => 'ROUTE _deleted',
        },
        states  => {
            object     => undef,
            shape_type => 'Polygon',
            records    => 32,
            shapes     => 32,
            nulls      => 0,
            x_min      => -117.12237548828125,
            x_max      => -86.7350006103515625,
            y_min      => 14.5505466461181640625,
            y_max      => 32.7208099365234375,
            m_min      => undef,
            m_max      => undef,
            z_min      => 768132343507160766108099947708147205392141761325948192154576281445969786822266109612978357005202339868627839948143029980413485838758710421858995973573516602505672081229247161886287459759546354037365234956463577676596117504,
            z_max      => undef,
            dbf_labels => 'AREA CODE NAME _deleted',
        },
    );
    
    return %data;
}

sub _get_empty_point_data {
    my %empty_point_data = (
        empty_points  => {
            object     => undef,
            shape_type => 'Point',
            records    => 0,
            shapes     => 0,
            nulls      => 0,
            x_min      => undef,
            x_max      => undef,
            y_min      => undef,
            y_max      => undef,
            m_min      => undef,
            m_max      => undef,
            z_min      => undef,
            z_max      => undef,
            dbf_labels => 'NAME CAPITAL STATE_NAME POPULATION _deleted',
        },
    );

    return %empty_point_data;
}

1;