From 8d79008e9e9da830327fc29fef93c009b3d4244d Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Wed, 25 Sep 2013 14:02:52 -0700 Subject: [PATCH] move over other colortable test to visual tests --- .../images/support/tif_colortable.png | Bin 26701 -> 0 bytes .../images/support/vrt_colortable.png | Bin 7305 -> 0 bytes tests/python_tests/raster_colormapped_test.py | 40 ---------- ...colortable-256-256-1.0-grid-reference.json | 72 ++++++++++++++++++ ...t_colortable-256-256-1.0-agg-reference.png | Bin 0 -> 1863 bytes ...t_colortable-256-256-2.0-agg-reference.png | Bin 0 -> 1863 bytes .../styles}/vrt_colortable.xml | 2 +- tests/visual_tests/test.py | 1 + 8 files changed, 74 insertions(+), 41 deletions(-) delete mode 100644 tests/python_tests/images/support/tif_colortable.png delete mode 100644 tests/python_tests/images/support/vrt_colortable.png delete mode 100644 tests/python_tests/raster_colormapped_test.py create mode 100644 tests/visual_tests/grids/vrt_colortable-256-256-1.0-grid-reference.json create mode 100644 tests/visual_tests/images/vrt_colortable-256-256-1.0-agg-reference.png create mode 100644 tests/visual_tests/images/vrt_colortable-256-256-2.0-agg-reference.png rename tests/{data/good_maps => visual_tests/styles}/vrt_colortable.xml (85%) diff --git a/tests/python_tests/images/support/tif_colortable.png b/tests/python_tests/images/support/tif_colortable.png deleted file mode 100644 index aa055bb459326cf1515aa78b2589672623b62193..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26701 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 B%boxL diff --git a/tests/python_tests/raster_colormapped_test.py b/tests/python_tests/raster_colormapped_test.py deleted file mode 100644 index de56346e0..000000000 --- a/tests/python_tests/raster_colormapped_test.py +++ /dev/null @@ -1,40 +0,0 @@ -#coding=utf8 -import os -import mapnik -from utilities import execution_path, run_all -from nose.tools import * - -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('.')) - -if 'gdal' in mapnik.DatasourceCache.plugin_names(): - - def test_vrt_rendering(): - m = mapnik.Map(512,512) - mapnik.load_map(m,'../data/good_maps/vrt_colortable.xml') - m.zoom_all() - im = mapnik.Image(512,512) - mapnik.render(m,im) - actual = '/tmp/vrt_colortable.png' - expected = 'images/support/vrt_colortable.png' - im.save(actual) - expected_im = mapnik.Image.open(expected) - eq_(im.tostring(),expected_im.tostring(), 'failed comparing actual (%s) and expected(%s)' % (actual,'tests/python_tests/'+ expected)) - - def test_tif_rendering_nodata(): - m = mapnik.Map(512,512) - mapnik.load_map(m,'../data/good_maps/tiff_colortable.xml') - m.zoom_all() - im = mapnik.Image(512,512) - mapnik.render(m,im) - actual = '/tmp/tif_colortable.png' - expected = 'images/support/tif_colortable.png' - im.save(actual) - expected_im = mapnik.Image.open(expected) - eq_(im.tostring(),expected_im.tostring(), 'failed comparing actual (%s) and expected(%s)' % (actual,'tests/python_tests/'+ expected)) - -if __name__ == "__main__": - setup() - run_all(eval(x) for x in dir() if x.startswith("test_")) diff --git a/tests/visual_tests/grids/vrt_colortable-256-256-1.0-grid-reference.json b/tests/visual_tests/grids/vrt_colortable-256-256-1.0-grid-reference.json new file mode 100644 index 000000000..e023c5e7e --- /dev/null +++ b/tests/visual_tests/grids/vrt_colortable-256-256-1.0-grid-reference.json @@ -0,0 +1,72 @@ +{ + "keys": [ + "" + ], + "data": {}, + "grid": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ] +} \ No newline at end of file diff --git a/tests/visual_tests/images/vrt_colortable-256-256-1.0-agg-reference.png b/tests/visual_tests/images/vrt_colortable-256-256-1.0-agg-reference.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa463b515d559795eb9c46f2bb6c1892a709137 GIT binary patch literal 1863 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 2011_5km_vrt_nodata_style - ../raster/dataraster.vrt + ../../data/raster/dataraster.vrt gdal diff --git a/tests/visual_tests/test.py b/tests/visual_tests/test.py index 47ff731b1..846cb3888 100755 --- a/tests/visual_tests/test.py +++ b/tests/visual_tests/test.py @@ -176,6 +176,7 @@ files = { 'dst-over-compositing':{'sizes':[(512,512)]}, 'tiff_colortable':{'sizes':[(256,256)]}, 'tiff_colortable_custom_nodata':{'sizes':[(256,256)]}, + 'vrt_colortable':{'sizes':[(256,256)]}, } class Reporting: