From a1dde7eff9a0d44e057afb556d6eba697482c573 Mon Sep 17 00:00:00 2001 From: Manel Clos Date: Tue, 25 Sep 2012 10:51:49 +0200 Subject: [PATCH] Query tolerance test --- tests/python_tests/query_tolerance_test.py | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tests/python_tests/query_tolerance_test.py diff --git a/tests/python_tests/query_tolerance_test.py b/tests/python_tests/query_tolerance_test.py new file mode 100644 index 000000000..160efb05f --- /dev/null +++ b/tests/python_tests/query_tolerance_test.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python + +from nose.tools import * +from utilities import execution_path + +import os, 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_query_tolerance(): + srs = '+init=epsg:4326' + lyr = mapnik.Layer('test') + lyr.datasource = mapnik.Shapefile(file='../data/shp/arrows.shp') + lyr.srs = srs + _width = 256 + _map = mapnik.Map(_width,_width, srs) + _map.layers.append(lyr) + + # zoom determines tolerance + _map.zoom_all() + _map_env = _map.envelope() + tol = (_map_env.maxx - _map_env.minx) / _width * 3 + # 0.046875 for arrows.shp and zoom_all + assert tol == 0.046875 + + # check point really exists + x, y = 2.0, 4.0 + features = _map.query_point(0,x,y).features + assert len(features) == 1 + + # check inside tolerance limit + x = 2.0 + tol * 0.9 + features = _map.query_point(0,x,y).features + assert len(features) == 1 + + # check outside tolerance limit + x = 2.0 + tol * 1.1 + features = _map.query_point(0,x,y).features + assert len(features) == 0 +