From 54dc9dd0f34a30e5a3b693af5ff02277c7f45147 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Fri, 13 Feb 2015 00:05:34 -0800 Subject: [PATCH] add shapeindex tests - refs #2703 --- tests/data/shp/3d_point_empty.dbf | Bin 0 -> 65 bytes tests/data/shp/3d_point_empty.prj | 1 + tests/data/shp/3d_point_empty.shp | Bin 0 -> 100 bytes tests/data/shp/3d_point_empty.shx | Bin 0 -> 100 bytes tests/python_tests/shapeindex_test.py | 51 ++++++++++++++++++++++++++ 5 files changed, 52 insertions(+) create mode 100644 tests/data/shp/3d_point_empty.dbf create mode 100644 tests/data/shp/3d_point_empty.prj create mode 100644 tests/data/shp/3d_point_empty.shp create mode 100644 tests/data/shp/3d_point_empty.shx create mode 100644 tests/python_tests/shapeindex_test.py diff --git a/tests/data/shp/3d_point_empty.dbf b/tests/data/shp/3d_point_empty.dbf new file mode 100644 index 0000000000000000000000000000000000000000..45d754f7b5cad2919c244b42d920376410fe6666 GIT binary patch literal 65 mcmZRMXP06C0!IcB5QPfD85sP7ed9e{z`}kYQW#YQ11|u8hXZ*4 literal 0 HcmV?d00001 diff --git a/tests/data/shp/3d_point_empty.prj b/tests/data/shp/3d_point_empty.prj new file mode 100644 index 000000000..6e3eaed5b --- /dev/null +++ b/tests/data/shp/3d_point_empty.prj @@ -0,0 +1 @@ +PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/tests/data/shp/3d_point_empty.shp b/tests/data/shp/3d_point_empty.shp new file mode 100644 index 0000000000000000000000000000000000000000..92815c2ece77fedf8ac258bf4f3fa1503999d56a GIT binary patch literal 100 YcmZQzQ0HR64vbzfGca&tmm^6O0A^nSS^xk5 literal 0 HcmV?d00001 diff --git a/tests/data/shp/3d_point_empty.shx b/tests/data/shp/3d_point_empty.shx new file mode 100644 index 0000000000000000000000000000000000000000..92815c2ece77fedf8ac258bf4f3fa1503999d56a GIT binary patch literal 100 YcmZQzQ0HR64vbzfGca&tmm^6O0A^nSS^xk5 literal 0 HcmV?d00001 diff --git a/tests/python_tests/shapeindex_test.py b/tests/python_tests/shapeindex_test.py new file mode 100644 index 000000000..4de19a593 --- /dev/null +++ b/tests/python_tests/shapeindex_test.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python + +from nose.tools import eq_ +from utilities import execution_path, run_all +from subprocess import Popen, PIPE +import shutil +import os +import fnmatch +import mapnik + +def setup(): + # All of the paths used are relative, if we run the tests + # from another directory we need to chdir() + os.chdir(execution_path('.')) + +def test_shapeindex(): + # first copy shapefiles to tmp directory + source_dir = '../data/shp/' + working_dir = '/tmp/mapnik-shp-tmp/' + if os.path.exists(working_dir): + shutil.rmtree(working_dir) + shutil.copytree(source_dir,working_dir) + matches = [] + for root, dirnames, filenames in os.walk('%s' % source_dir): + for filename in fnmatch.filter(filenames, '*.shp'): + matches.append(os.path.join(root, filename)) + for shp in matches: + source_file = os.path.join(source_dir,os.path.relpath(shp,source_dir)) + dest_file = os.path.join(working_dir,os.path.relpath(shp,source_dir)) + ds = mapnik.Shapefile(file=source_file) + count = 0; + fs = ds.featureset() + try: + while (fs.next()): + count = count+1 + except StopIteration: + pass + stdin, stderr = Popen('shapeindex %s' % dest_file, shell=True, stdout=PIPE, stderr=PIPE).communicate() + ds2 = mapnik.Shapefile(file=dest_file) + count2 = 0; + fs = ds.featureset() + try: + while (fs.next()): + count2 = count2+1 + except StopIteration: + pass + eq_(count,count2) + +if __name__ == "__main__": + setup() + exit(run_all(eval(x) for x in dir() if x.startswith("test_")))