From 09544849b992690602069b00f85ddacf3b2c4477 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Wed, 25 Sep 2013 14:08:47 -0700 Subject: [PATCH] move colorizer tests to visual suite --- tests/python_tests/raster_colorizer_test.py | 16 --- tests/python_tests/raster_symbolizer_test.py | 2 +- ..._colorizer-512-512-1.0-grid-reference.json | 136 ++++++++++++++++++ ...symbolizer-512-512-1.0-grid-reference.json | 136 ++++++++++++++++++ ...er_colorizer-512-512-1.0-agg-reference.png | Bin 0 -> 7787 bytes ...er_colorizer-512-512-2.0-agg-reference.png | Bin 0 -> 7787 bytes ...r_symbolizer-512-512-1.0-agg-reference.png | Bin 0 -> 19638 bytes ...r_symbolizer-512-512-2.0-agg-reference.png | Bin 0 -> 19638 bytes .../styles}/raster_colorizer.xml | 2 +- .../styles}/raster_symbolizer.xml | 2 +- tests/visual_tests/test.py | 2 + 11 files changed, 277 insertions(+), 19 deletions(-) create mode 100644 tests/visual_tests/grids/raster_colorizer-512-512-1.0-grid-reference.json create mode 100644 tests/visual_tests/grids/raster_symbolizer-512-512-1.0-grid-reference.json create mode 100644 tests/visual_tests/images/raster_colorizer-512-512-1.0-agg-reference.png create mode 100644 tests/visual_tests/images/raster_colorizer-512-512-2.0-agg-reference.png create mode 100644 tests/visual_tests/images/raster_symbolizer-512-512-1.0-agg-reference.png create mode 100644 tests/visual_tests/images/raster_symbolizer-512-512-2.0-agg-reference.png rename tests/{data/good_maps => visual_tests/styles}/raster_colorizer.xml (96%) rename tests/{data/good_maps => visual_tests/styles}/raster_symbolizer.xml (92%) diff --git a/tests/python_tests/raster_colorizer_test.py b/tests/python_tests/raster_colorizer_test.py index 3bdb50941..9b8778d3f 100644 --- a/tests/python_tests/raster_colorizer_test.py +++ b/tests/python_tests/raster_colorizer_test.py @@ -9,22 +9,6 @@ def setup(): # from another directory we need to chdir() os.chdir(execution_path('.')) -def test_gen_map(): - mapxmlfile = '../data/good_maps/raster_colorizer.xml' - mapxmloutputfile = 'raster_colorizer_test_save.xml' - outputfile = 'raster_colorizer_test.png' - - m = mapnik.Map(800, 600) - try: - mapnik.load_map(m, mapxmlfile) - mapnik.save_map(m, mapxmloutputfile) - m.zoom_all() - mapnik.render_to_file(m, outputfile) - except RuntimeError,e: - # only test datasources that we have installed - if not 'Could not create datasource' in str(e): - raise RuntimeError(str(e)) - #test discrete colorizer mode def test_get_color_discrete(): #setup diff --git a/tests/python_tests/raster_symbolizer_test.py b/tests/python_tests/raster_symbolizer_test.py index 826514af1..74ec4d990 100644 --- a/tests/python_tests/raster_symbolizer_test.py +++ b/tests/python_tests/raster_symbolizer_test.py @@ -90,7 +90,7 @@ def test_dataraster_query_point(): def test_load_save_map(): map = mapnik.Map(256,256) - in_map = "../data/good_maps/raster_symbolizer.xml" + in_map = "../visual_tests/styles/raster_symbolizer.xml" try: mapnik.load_map(map, in_map) diff --git a/tests/visual_tests/grids/raster_colorizer-512-512-1.0-grid-reference.json b/tests/visual_tests/grids/raster_colorizer-512-512-1.0-grid-reference.json new file mode 100644 index 000000000..53162f357 --- /dev/null +++ b/tests/visual_tests/grids/raster_colorizer-512-512-1.0-grid-reference.json @@ -0,0 +1,136 @@ +{ + "keys": [ + "" + ], + "data": {}, + "grid": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ] +} \ No newline at end of file diff --git a/tests/visual_tests/grids/raster_symbolizer-512-512-1.0-grid-reference.json b/tests/visual_tests/grids/raster_symbolizer-512-512-1.0-grid-reference.json new file mode 100644 index 000000000..53162f357 --- /dev/null +++ b/tests/visual_tests/grids/raster_symbolizer-512-512-1.0-grid-reference.json @@ -0,0 +1,136 @@ +{ + "keys": [ + "" + ], + "data": {}, + "grid": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ] +} \ No newline at end of file diff --git a/tests/visual_tests/images/raster_colorizer-512-512-1.0-agg-reference.png b/tests/visual_tests/images/raster_colorizer-512-512-1.0-agg-reference.png new file mode 100644 index 0000000000000000000000000000000000000000..dec77cf5d959264d5a09412165dbce1efbc88b59 GIT binary patch literal 7787 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 literal 0 HcmV?d00001 diff --git a/tests/visual_tests/images/raster_colorizer-512-512-2.0-agg-reference.png b/tests/visual_tests/images/raster_colorizer-512-512-2.0-agg-reference.png new file mode 100644 index 0000000000000000000000000000000000000000..dec77cf5d959264d5a09412165dbce1efbc88b59 GIT binary patch literal 7787 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 literal 0 HcmV?d00001 diff --git a/tests/visual_tests/images/raster_symbolizer-512-512-1.0-agg-reference.png b/tests/visual_tests/images/raster_symbolizer-512-512-1.0-agg-reference.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c34dc229e4a85b0bf2a3a828deeee384851d74 GIT binary patch literal 19638 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 O$A+~$_s47e&-@!FLj DISCRETE RAINBOW - ../raster/dataraster.tif + ../../data/raster/dataraster.tif gdal 1 diff --git a/tests/data/good_maps/raster_symbolizer.xml b/tests/visual_tests/styles/raster_symbolizer.xml similarity index 92% rename from tests/data/good_maps/raster_symbolizer.xml rename to tests/visual_tests/styles/raster_symbolizer.xml index 429701ca5..14632b103 100644 --- a/tests/data/good_maps/raster_symbolizer.xml +++ b/tests/visual_tests/styles/raster_symbolizer.xml @@ -26,7 +26,7 @@ ramped - ../raster/dataraster.tif + ../../data/raster/dataraster.tif gdal 1 diff --git a/tests/visual_tests/test.py b/tests/visual_tests/test.py index 846cb3888..7140900d0 100755 --- a/tests/visual_tests/test.py +++ b/tests/visual_tests/test.py @@ -177,6 +177,8 @@ files = { 'tiff_colortable':{'sizes':[(256,256)]}, 'tiff_colortable_custom_nodata':{'sizes':[(256,256)]}, 'vrt_colortable':{'sizes':[(256,256)]}, + 'raster_colorizer':{'sizes':[(512,512)]}, + 'raster_symbolizer':{'sizes':[(512,512)]}, } class Reporting: