From e66d00762754d1204204ccf122955116e5e9d017 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Fri, 8 Mar 2013 20:32:39 -0800 Subject: [PATCH] add halo-rasterizer option for text symbolizer - closes #1298 - allows for much faster halo drawing and simliar quality for radius values in the 1-2 px range - also moves grid_renderer away from using freetype stroker completely since halo quality is not critical for this renderer --- CHANGELOG.md | 3 + bindings/python/mapnik_text_placement.cpp | 9 + include/mapnik/font_engine_freetype.hpp | 60 +---- include/mapnik/text_symbolizer.hpp | 12 + src/agg/process_shield_symbolizer.cpp | 2 +- src/agg/process_text_symbolizer.cpp | 2 +- src/font_engine_freetype.cpp | 223 +++++++++++++----- src/grid/process_shield_symbolizer.cpp | 4 +- src/grid/process_text_symbolizer.cpp | 4 +- src/load_map.cpp | 3 + src/save_map.cpp | 5 + src/text_symbolizer.cpp | 36 ++- src/xml_tree.cpp | 1 + tests/python_tests/object_test.py | 1 + .../grids/collision-600-reference.json | 40 ++-- .../grids/expressionformat-500-reference.json | 8 +- .../grids/formatting-1-500-reference.json | 16 +- .../grids/formatting-2-500-reference.json | 16 +- .../grids/formatting-3-500-reference.json | 10 +- .../grids/jalign-auto-200-reference.json | 42 ++-- .../grids/line-offset-900-reference.json | 66 +++--- .../grids/lines-1-200-reference.json | 2 +- .../grids/lines-1-400-reference.json | 42 ++-- .../grids/lines-1-600-reference.json | 18 +- .../grids/lines-1-800-reference.json | 22 +- .../grids/lines-2-200-reference.json | 2 +- .../grids/lines-2-400-reference.json | 6 +- .../grids/lines-2-600-reference.json | 12 +- .../grids/lines-2-800-reference.json | 22 +- .../grids/lines-3-200-reference.json | 2 +- .../grids/lines-3-400-reference.json | 42 ++-- .../grids/lines-3-600-reference.json | 18 +- .../grids/lines-3-800-reference.json | 42 ++-- .../grids/list-100-reference.json | 16 +- .../grids/list-150-reference.json | 24 +- .../grids/list-250-reference.json | 18 +- .../grids/list-300-reference.json | 18 +- .../grids/list-400-reference.json | 18 +- .../grids/list-600-reference.json | 18 +- .../grids/list-800-reference.json | 10 +- .../grids/rtl-point-200-reference.json | 26 +- .../shieldsymbolizer-1-490-reference.json | 26 +- .../shieldsymbolizer-1-495-reference.json | 26 +- .../shieldsymbolizer-1-497-reference.json | 26 +- .../shieldsymbolizer-1-498-reference.json | 24 +- .../shieldsymbolizer-1-499-reference.json | 24 +- .../shieldsymbolizer-1-500-reference.json | 26 +- .../shieldsymbolizer-1-501-reference.json | 26 +- .../shieldsymbolizer-1-502-reference.json | 26 +- .../shieldsymbolizer-1-505-reference.json | 24 +- .../shieldsymbolizer-1-510-reference.json | 24 +- .../grids/simple-100-reference.json | 24 +- .../grids/simple-150-reference.json | 26 +- .../grids/simple-250-reference.json | 28 +-- .../grids/simple-300-reference.json | 28 +-- .../grids/simple-400-reference.json | 28 +-- .../grids/simple-600-reference.json | 20 +- .../grids/simple-800-reference.json | 10 +- .../grids/simple-E-500-reference.json | 8 +- .../grids/simple-N-500-reference.json | 8 +- .../grids/simple-NE-500-reference.json | 8 +- .../grids/simple-NW-500-reference.json | 8 +- .../grids/simple-S-500-reference.json | 8 +- .../grids/simple-SE-500-reference.json | 8 +- .../grids/simple-SW-500-reference.json | 8 +- .../grids/simple-W-500-reference.json | 8 +- tests/visual_tests/test.py | 5 +- 67 files changed, 783 insertions(+), 643 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 176fc51f8..a7978afcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ For a complete change history, see the git log. ## Future +- Added `text-halo-rasterizer` property. Set to `fast` for lower quality but faster + halo rendering (#1298) + - Added ability to access style list from map by (name,obj) in python (#1725) - Added `is_solid` method to python mapnik.Image and mapnik.ImageView classes (#1728) diff --git a/bindings/python/mapnik_text_placement.cpp b/bindings/python/mapnik_text_placement.cpp index 2cdb744fc..f1dcefae8 100644 --- a/bindings/python/mapnik_text_placement.cpp +++ b/bindings/python/mapnik_text_placement.cpp @@ -340,6 +340,11 @@ void export_text_placement() .value("CAPITALIZE",CAPITALIZE) ; + enumeration_("halo_rasterizer") + .value("FULL",HALO_RASTERIZER_FULL) + .value("FAST",HALO_RASTERIZER_FAST) + ; + class_("TextSymbolizer", init<>()) .def(init()) @@ -363,6 +368,10 @@ void export_text_placement() &text_symbolizer::clip, &text_symbolizer::set_clip, "Set/get the text geometry's clipping status") + .add_property("halo_rasterizer", + &text_symbolizer::get_halo_rasterizer, + &text_symbolizer::set_halo_rasterizer, + "Set/get the halo rasterizer method") ; diff --git a/include/mapnik/font_engine_freetype.hpp b/include/mapnik/font_engine_freetype.hpp index 03a0defbd..02bb44bc2 100644 --- a/include/mapnik/font_engine_freetype.hpp +++ b/include/mapnik/font_engine_freetype.hpp @@ -33,7 +33,9 @@ #include #include #include +#include #include +#include // freetype2 extern "C" @@ -343,7 +345,7 @@ public: } } - stroker_ptr get_stroker() + inline stroker_ptr get_stroker() { return stroker_; } @@ -362,8 +364,12 @@ struct text_renderer : private mapnik::noncopyable FT_Glyph image; char_properties *properties; glyph_t(FT_Glyph image_, char_properties *properties_) - : image(image_), properties(properties_) {} - ~glyph_t () { FT_Done_Glyph(image);} + : image(image_), + properties(properties_) {} + ~glyph_t() + { + FT_Done_Glyph(image); + } }; typedef boost::ptr_vector glyphs_t; @@ -371,57 +377,17 @@ struct text_renderer : private mapnik::noncopyable text_renderer (pixmap_type & pixmap, face_manager & font_manager, - stroker & s, + halo_rasterizer_e rasterizer, composite_mode_e comp_op = src_over, double scale_factor=1.0); box2d prepare_glyphs(text_path const& path); void render(pixel_position const& pos); - void render_id(int feature_id, pixel_position const& pos, double min_radius=1.0); - + void render_id(mapnik::value_integer feature_id, + pixel_position const& pos); private: - - void render_bitmap(FT_Bitmap *bitmap, unsigned rgba, int x, int y, double opacity) - { - int x_max=x+bitmap->width; - int y_max=y+bitmap->rows; - int i,p,j,q; - - for (i=x,p=0;ibuffer[q*bitmap->width+p]; - if (gray) - { - pixmap_.blendPixel2(i, j, rgba, gray, opacity); - } - } - } - } - - void render_bitmap_id(FT_Bitmap *bitmap,int feature_id,int x,int y) - { - int x_max=x+bitmap->width; - int y_max=y+bitmap->rows; - int i,p,j,q; - - for (i=x,p=0;ibuffer[q*bitmap->width+p]; - if (gray) - { - pixmap_.setPixel(i,j,feature_id); - //pixmap_.blendPixel2(i,j,rgba,gray,opacity_); - } - } - } - } - pixmap_type & pixmap_; face_manager & font_manager_; - stroker & stroker_; + halo_rasterizer_e rasterizer_; glyphs_t glyphs_; composite_mode_e comp_op_; double scale_factor_; diff --git a/include/mapnik/text_symbolizer.hpp b/include/mapnik/text_symbolizer.hpp index 3e8fb06f1..3a8945ded 100644 --- a/include/mapnik/text_symbolizer.hpp +++ b/include/mapnik/text_symbolizer.hpp @@ -46,6 +46,15 @@ namespace mapnik { +enum halo_rasterizer_enum +{ + HALO_RASTERIZER_FULL, + HALO_RASTERIZER_FAST, + halo_rasterizer_enum_MAX +}; + +DEFINE_ENUM(halo_rasterizer_e, halo_rasterizer_enum); + struct MAPNIK_DECL text_symbolizer : public symbolizer_base { // Note - we do not use boost::make_shared below as VC2008 and VC2010 are @@ -100,6 +109,8 @@ struct MAPNIK_DECL text_symbolizer : public symbolizer_base color const& get_halo_fill() const func_deprecated; void set_halo_radius(double radius); double get_halo_radius() const func_deprecated; + void set_halo_rasterizer(halo_rasterizer_e rasterizer_p); + halo_rasterizer_e get_halo_rasterizer() const; void set_label_placement(label_placement_e label_p); label_placement_e get_label_placement() const func_deprecated; void set_vertical_alignment(vertical_alignment_e valign); @@ -131,6 +142,7 @@ struct MAPNIK_DECL text_symbolizer : public symbolizer_base bool largest_bbox_only() const; private: text_placements_ptr placement_options_; + halo_rasterizer_e halo_rasterizer_; }; } diff --git a/src/agg/process_shield_symbolizer.cpp b/src/agg/process_shield_symbolizer.cpp index 752e74f96..ff85bd636 100644 --- a/src/agg/process_shield_symbolizer.cpp +++ b/src/agg/process_shield_symbolizer.cpp @@ -47,7 +47,7 @@ void agg_renderer::process(shield_symbolizer const& sym, text_renderer ren(*current_buffer_, font_manager_, - *(font_manager_.get_stroker()), + sym.get_halo_rasterizer(), sym.comp_op(), scale_factor_); diff --git a/src/agg/process_text_symbolizer.cpp b/src/agg/process_text_symbolizer.cpp index 9b438abf7..287bb18b6 100644 --- a/src/agg/process_text_symbolizer.cpp +++ b/src/agg/process_text_symbolizer.cpp @@ -44,7 +44,7 @@ void agg_renderer::process(text_symbolizer const& sym, text_renderer ren(*current_buffer_, font_manager_, - *(font_manager_.get_stroker()), + sym.get_halo_rasterizer(), sym.comp_op(), scale_factor_); diff --git a/src/font_engine_freetype.cpp b/src/font_engine_freetype.cpp index 253ad3a8d..67646dd4a 100644 --- a/src/font_engine_freetype.cpp +++ b/src/font_engine_freetype.cpp @@ -45,6 +45,7 @@ namespace mapnik { + freetype_engine::freetype_engine() { FT_Error error = FT_Init_FreeType( &library_ ); @@ -326,15 +327,124 @@ void font_face_set::get_string_info(string_info & info, UnicodeString const& ust ubidi_close(bidi); } + template -text_renderer::text_renderer (pixmap_type & pixmap, - face_manager & font_manager, - stroker & s, - composite_mode_e comp_op, - double scale_factor) +void composite_bitmap(T & pixmap, + FT_Bitmap *bitmap, + unsigned rgba, + int x, + int y, + double opacity, + composite_mode_e comp_op) +{ + int x_max=x+bitmap->width; + int y_max=y+bitmap->rows; + int i,p,j,q; + + for (i=x,p=0;ibuffer[q*bitmap->width+p]; + if (gray) + { + pixmap.composite_pixel(comp_op, i, j, rgba, gray, opacity); + } + } + } +} + +/* +template +void render_bitmap(T & pixmap, + FT_Bitmap *bitmap, + unsigned rgba, + int x, + int y, + double opacity) +{ + int x_max=x+bitmap->width; + int y_max=y+bitmap->rows; + int i,p,j,q; + + for (i=x,p=0;ibuffer[q*bitmap->width+p]; + if (gray) + { + pixmap_.blendPixel2(i, j, rgba, gray, opacity); + } + } + } +} +*/ + +template +void render_halo(T & pixmap, + FT_Bitmap *bitmap, + unsigned rgba, + int x, + int y, + int halo_radius, + double opacity) +{ + int x_max=x+bitmap->width; + int y_max=y+bitmap->rows; + int i,p,j,q; + + for (i=x,p=0;ibuffer[q*bitmap->width+p]; + if (gray) + { + for (int n=-halo_radius; n <=halo_radius; ++n) + for (int m=-halo_radius;m <= halo_radius; ++m) + pixmap.blendPixel2(i+m,j+n,rgba,gray,opacity); + } + } + } +} + +template +void render_halo_id(T & pixmap, + FT_Bitmap *bitmap, + mapnik::value_integer feature_id, + int x, + int y, + int halo_radius) +{ + int x_max=x+bitmap->width; + int y_max=y+bitmap->rows; + int i,p,j,q; + + for (i=x,p=0;ibuffer[q*bitmap->width+p]; + if (gray) + { + for (int n=-halo_radius; n <=halo_radius; ++n) + for (int m=-halo_radius;m <= halo_radius; ++m) + pixmap.setPixel(i+m,j+n,feature_id); + } + } + } +} + +template +text_renderer::text_renderer(pixmap_type & pixmap, + face_manager & font_manager, + halo_rasterizer_e rasterizer, + composite_mode_e comp_op, + double scale_factor) : pixmap_(pixmap), font_manager_(font_manager), - stroker_(s), + rasterizer_(rasterizer), comp_op_(comp_op), scale_factor_(scale_factor) {} @@ -416,26 +526,6 @@ box2d text_renderer::prepare_glyphs(text_path const& path) return box2d(bbox.xMin, bbox.yMin, bbox.xMax, bbox.yMax); } -template -void composite_bitmap(T & pixmap, FT_Bitmap *bitmap, unsigned rgba, int x, int y, double opacity, composite_mode_e comp_op) -{ - int x_max=x+bitmap->width; - int y_max=y+bitmap->rows; - int i,p,j,q; - - for (i=x,p=0;ibuffer[q*bitmap->width+p]; - if (gray) - { - pixmap.composite_pixel(comp_op, i, j, rgba, gray, opacity); - } - } - } -} - template void text_renderer::render(pixel_position const& pos) { @@ -453,24 +543,43 @@ void text_renderer::render(pixel_position const& pos) double halo_radius = itr->properties->halo_radius * scale_factor_; //make sure we've got reasonable values. if (halo_radius <= 0.0 || halo_radius > 1024.0) continue; - stroker_.init(halo_radius); FT_Glyph g; error = FT_Glyph_Copy(itr->image, &g); if (!error) { FT_Glyph_Transform(g,0,&start); - FT_Glyph_Stroke(&g,stroker_.get(),1); - error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_NORMAL,0,1); - if ( ! error ) + if (rasterizer_ == HALO_RASTERIZER_FULL) { - - FT_BitmapGlyph bit = (FT_BitmapGlyph)g; - composite_bitmap(pixmap_, &bit->bitmap, itr->properties->halo_fill.rgba(), - bit->left, - height - bit->top, - itr->properties->text_opacity, - comp_op_ - ); + stroker_ptr stk = font_manager_.get_stroker(); + stk->init(halo_radius); + FT_Glyph_Stroke(&g,stk->get(),1); + error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_NORMAL,0,1); + if (!error) + { + FT_BitmapGlyph bit = (FT_BitmapGlyph)g; + composite_bitmap(pixmap_, + &bit->bitmap, + itr->properties->halo_fill.rgba(), + bit->left, + height - bit->top, + itr->properties->text_opacity, + comp_op_); + } + } + else + { + error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_NORMAL,0,1); + if (!error) + { + FT_BitmapGlyph bit = (FT_BitmapGlyph)g; + render_halo(pixmap_, + &bit->bitmap, + itr->properties->halo_fill.rgba(), + bit->left, + height - bit->top, + halo_radius, + itr->properties->text_opacity); + } } } FT_Done_Glyph(g); @@ -490,7 +599,9 @@ void text_renderer::render(pixel_position const& pos) // bit->left, // height - bit->top, itr->properties->text_opacity); - composite_bitmap(pixmap_, &bit->bitmap, itr->properties->fill.rgba(), + composite_bitmap(pixmap_, + &bit->bitmap, + itr->properties->fill.rgba(), bit->left, height - bit->top, itr->properties->text_opacity, @@ -500,9 +611,9 @@ void text_renderer::render(pixel_position const& pos) } } - template -void text_renderer::render_id(int feature_id, pixel_position const& pos, double min_radius) +void text_renderer::render_id(mapnik::value_integer feature_id, + pixel_position const& pos) { FT_Error error; FT_Vector start; @@ -515,22 +626,21 @@ void text_renderer::render_id(int feature_id, pixel_position const& pos, doub typename glyphs_t::iterator itr; for (itr = glyphs_.begin(); itr != glyphs_.end(); ++itr) { - stroker_.init(std::max(itr->properties->halo_radius, min_radius)); FT_Glyph g; error = FT_Glyph_Copy(itr->image, &g); if (!error) { FT_Glyph_Transform(g,0,&start); - FT_Glyph_Stroke(&g,stroker_.get(),1); error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_NORMAL,0,1); - //error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_MONO,0,1); if ( ! error ) { - FT_BitmapGlyph bit = (FT_BitmapGlyph)g; - render_bitmap_id(&bit->bitmap, feature_id, - bit->left, - height - bit->top); + render_halo_id(pixmap_, + &bit->bitmap, + feature_id, + bit->left, + height - bit->top, + itr->properties->halo_radius); } } FT_Done_Glyph(g); @@ -541,11 +651,18 @@ void text_renderer::render_id(int feature_id, pixel_position const& pos, doub boost::mutex freetype_engine::mutex_; #endif std::map > freetype_engine::name2file_; -template void text_renderer::render(pixel_position const&); -template text_renderer::text_renderer(image_32&, face_manager&, stroker&, composite_mode_e, double); +template text_renderer::text_renderer(image_32&, + face_manager&, + halo_rasterizer_e, + composite_mode_e, + double); template box2dtext_renderer::prepare_glyphs(text_path const&); - -template void text_renderer::render_id(int, pixel_position const& , double ); -template text_renderer::text_renderer(grid&, face_manager&, stroker&, composite_mode_e, double); +template void text_renderer::render(pixel_position const&); +template void text_renderer::render_id(mapnik::value_integer, + pixel_position const&); +template text_renderer::text_renderer(grid&, + face_manager&, + halo_rasterizer_e, + composite_mode_e, double); template box2dtext_renderer::prepare_glyphs(text_path const& ); } diff --git a/src/grid/process_shield_symbolizer.cpp b/src/grid/process_shield_symbolizer.cpp index 2c1d355ef..c33f8a46c 100644 --- a/src/grid/process_shield_symbolizer.cpp +++ b/src/grid/process_shield_symbolizer.cpp @@ -50,7 +50,7 @@ void grid_renderer::process(shield_symbolizer const& sym, text_renderer ren(pixmap_, font_manager_, - *(font_manager_.get_stroker()), + sym.get_halo_rasterizer(), sym.comp_op(), scale_factor_); @@ -78,7 +78,7 @@ void grid_renderer::process(shield_symbolizer const& sym, sym.comp_op()); ren.prepare_glyphs(placements[ii]); - ren.render_id(feature.id(), placements[ii].center, 2); + ren.render_id(feature.id(), placements[ii].center); } } if (placement_found) diff --git a/src/grid/process_text_symbolizer.cpp b/src/grid/process_text_symbolizer.cpp index 4b4af86b3..2c6322062 100644 --- a/src/grid/process_text_symbolizer.cpp +++ b/src/grid/process_text_symbolizer.cpp @@ -43,7 +43,7 @@ void grid_renderer::process(text_symbolizer const& sym, text_renderer ren(pixmap_, font_manager_, - *(font_manager_.get_stroker()), + sym.get_halo_rasterizer(), sym.comp_op(), scale_factor_); @@ -53,7 +53,7 @@ void grid_renderer::process(text_symbolizer const& sym, for (unsigned int ii = 0; ii < placements.size(); ++ii) { ren.prepare_glyphs(placements[ii]); - ren.render_id(feature.id(), placements[ii].center, 2); + ren.render_id(feature.id(), placements[ii].center); } } if (placement_found) pixmap_.add_feature(feature); diff --git a/src/load_map.cpp b/src/load_map.cpp index 8dc5a44d5..7595200d4 100644 --- a/src/load_map.cpp +++ b/src/load_map.cpp @@ -1159,6 +1159,9 @@ void map_parser::parse_text_symbolizer(rule & rule, xml_node const& sym) text_symbolizer text_symbol = text_symbolizer(placement_finder); parse_symbolizer_base(text_symbol, sym); + optional halo_rasterizer = sym.get_opt_attr("halo-rasterizer"); + if (halo_rasterizer) text_symbol.set_halo_rasterizer(*halo_rasterizer); + rule.append(text_symbol); } catch (const config_error & ex) diff --git a/src/save_map.cpp b/src/save_map.cpp index 4d3aee4f4..edfa029a3 100644 --- a/src/save_map.cpp +++ b/src/save_map.cpp @@ -254,6 +254,11 @@ public: add_font_attributes( sym_node, sym); serialize_symbolizer_base(sym_node, sym); + text_symbolizer dfl; + if (sym.get_halo_rasterizer() != dfl.get_halo_rasterizer() || explicit_defaults_) + { + set_attr(sym_node, "halo-rasterizer", sym.get_halo_rasterizer()); + } } void operator () ( building_symbolizer const& sym ) diff --git a/src/text_symbolizer.cpp b/src/text_symbolizer.cpp index 8aed6297b..61ea9f6ac 100644 --- a/src/text_symbolizer.cpp +++ b/src/text_symbolizer.cpp @@ -34,6 +34,15 @@ namespace mapnik { +static const char * halo_rasterizer_strings[] = { + "full", + "fast", + "" +}; + +IMPLEMENT_ENUM( halo_rasterizer_e, halo_rasterizer_strings ) + + static const char * label_placement_strings[] = { "point", "line", @@ -92,7 +101,8 @@ IMPLEMENT_ENUM( text_transform_e, text_transform_strings ) text_symbolizer::text_symbolizer(text_placements_ptr placements) : symbolizer_base(), - placement_options_(placements) + placement_options_(placements), + halo_rasterizer_(HALO_RASTERIZER_FULL) { } @@ -101,7 +111,8 @@ text_symbolizer::text_symbolizer(expression_ptr name, std::string const& face_na float size, color const& fill, text_placements_ptr placements) : symbolizer_base(), - placement_options_(placements) + placement_options_(placements), + halo_rasterizer_(HALO_RASTERIZER_FULL) { set_name(name); set_face_name(face_name); @@ -112,7 +123,8 @@ text_symbolizer::text_symbolizer(expression_ptr name, std::string const& face_na text_symbolizer::text_symbolizer(expression_ptr name, float size, color const& fill, text_placements_ptr placements) : symbolizer_base(), - placement_options_(placements) + placement_options_(placements), + halo_rasterizer_(HALO_RASTERIZER_FULL) { set_name(name); set_text_size(size); @@ -121,7 +133,9 @@ text_symbolizer::text_symbolizer(expression_ptr name, float size, color const& f text_symbolizer::text_symbolizer(text_symbolizer const& rhs) : symbolizer_base(rhs), - placement_options_(rhs.placement_options_) /*TODO: Copy options! */ + placement_options_(rhs.placement_options_), + halo_rasterizer_(rhs.halo_rasterizer_) + /*TODO: Copy options! */ { } @@ -130,9 +144,7 @@ text_symbolizer& text_symbolizer::operator=(text_symbolizer const& other) if (this == &other) return *this; placement_options_ = other.placement_options_; /*TODO: Copy options? */ - - MAPNIK_LOG_DEBUG(text_symbolizer) << "text_symbolizer: TODO - Metawriter (text_symbolizer::operator=)"; - + halo_rasterizer_ = other.halo_rasterizer_; return *this; } @@ -338,6 +350,16 @@ double text_symbolizer::get_halo_radius() const return placement_options_->defaults.format.halo_radius; } +void text_symbolizer::set_halo_rasterizer(halo_rasterizer_e rasterizer_p) +{ + halo_rasterizer_ = rasterizer_p; +} + +halo_rasterizer_e text_symbolizer::get_halo_rasterizer() const +{ + return halo_rasterizer_; +} + void text_symbolizer::set_label_placement(label_placement_e label_p) { placement_options_->defaults.label_placement = label_p; diff --git a/src/xml_tree.cpp b/src/xml_tree.cpp index 8360d5e97..b9c15d407 100644 --- a/src/xml_tree.cpp +++ b/src/xml_tree.cpp @@ -400,6 +400,7 @@ compile_get_opt_attr(label_placement_e); compile_get_opt_attr(vertical_alignment_e); compile_get_opt_attr(horizontal_alignment_e); compile_get_opt_attr(justify_alignment_e); +compile_get_opt_attr(halo_rasterizer_e); compile_get_opt_attr(expression_ptr); compile_get_attr(std::string); compile_get_attr(filter_mode_e); diff --git a/tests/python_tests/object_test.py b/tests/python_tests/object_test.py index 0ce436a99..0a83ddc95 100644 --- a/tests/python_tests/object_test.py +++ b/tests/python_tests/object_test.py @@ -87,6 +87,7 @@ def test_text_symbolizer(): s = mapnik.TextSymbolizer() eq_(s.comp_op,mapnik.CompositeOp.src_over) eq_(s.clip,True) + eq_(s.halo_rasterizer,mapnik.halo_rasterizer.FULL) # https://github.com/mapnik/mapnik/issues/1420 eq_(s.text_transform, mapnik.text_transform.NONE) diff --git a/tests/visual_tests/grids/collision-600-reference.json b/tests/visual_tests/grids/collision-600-reference.json index 46bbe72a3..8732041e9 100644 --- a/tests/visual_tests/grids/collision-600-reference.json +++ b/tests/visual_tests/grids/collision-600-reference.json @@ -21,13 +21,13 @@ " !!!!! ", " !!!!! ", " !!!! ", - " ! ! ", - " !!! ", + " !!! ", " !!! ", " !!!! ", + " !!!!! ", + " !!!!!!! ", " !!!!!! ", - " !!!!! ", - " !! ! ", + " !!!! ", " ! !!! ", " !!!! ", " !!!!! ", @@ -42,7 +42,7 @@ " !!!! ", " !! ", " ", - " !!! ", + " !!!! ", " !!!! ", " !!!! ", " !!!! ", @@ -59,51 +59,51 @@ " !!! ", " !!!! ", " !!!! ", - " ", + " ! ", " !! ", " !!!! ", " !!!! ", - " !!! ", + " !!!! ", " !!!! ", " !!!! ", " !!!! ", - " ! ! ", + " !!! ", " ! ", " !!! ", " !!!! ", " !!!! ", " !!! ", - " !!! ", + " !!!! ", " !!!! ", " !!!! ", " !!! ", " ", " !! ", " !!! ", - " !!! ", + " !!!! ", " !!!! ", " !!! ", " !!!! ", " !!! ", - " ! ! ", + " ! ! ! ", " !! ", " !!!! ", " !!!!! ", - " !!!!! ", + " !!!!!! ", " !!!! ", " !! ! !! ", " !!!! ", " !!!!! ", - " !!!!!! ", - " !!!! ", - " !!! !!! ", + " !!!!!!!! ", + " !!!!!! ", + " !! !!! ", " !!!!!! ", - " !!!!!!! ", - " !!!!!! ! ", - " !! !!!! ", - " !!!!! ! ", + " !!!!!!!! ", + " !!!!!! !! ", + " !!! !!!! ", + " !!!!! !! ", " !!!!!!!! ", " !!!!!! ", - " !! " + " !!! " ] } \ No newline at end of file diff --git a/tests/visual_tests/grids/expressionformat-500-reference.json b/tests/visual_tests/grids/expressionformat-500-reference.json index 416408391..3422ee2cd 100644 --- a/tests/visual_tests/grids/expressionformat-500-reference.json +++ b/tests/visual_tests/grids/expressionformat-500-reference.json @@ -27,10 +27,10 @@ " ", " ", " ! # $ % & ' ( ) * + ", - " ! ", - " ! ## $$$$ %%%%% &&&&& '''''' ((((((((( )))))))))) *********** ++++++++++ ", - " $ % % &&&&& ''''' ((((((((( ))))))))) ********** ++++++++++ ", - " )) ** * ++++++++++ ", + " ", + " # $$$ %%% &&&& ''''' (( ( )) ) ))) ** *** ++ + ", + " ' ((((((( )) ))))) * * * + + ++++ ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/formatting-1-500-reference.json b/tests/visual_tests/grids/formatting-1-500-reference.json index e0827b51f..1d40e9072 100644 --- a/tests/visual_tests/grids/formatting-1-500-reference.json +++ b/tests/visual_tests/grids/formatting-1-500-reference.json @@ -27,14 +27,14 @@ " ", " ", " ! # $ % & ' ( ) * + ", - " $ & * ", - "!!!!!!! !!!! !! $$$$$ $$$ $$$$$$$$$$ &&&&&&&&&&&&& &&& ((((((((( ((((((((((( ********* ******** ", - "!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&&&&&&&&&& (((((((((((((((((((( ******** ********* ", - "!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&& &&&&&&& (((((((((((((((((((( ******** ********* ", - " !!!!!! !!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&&&&& & && ( (((((((((((((((((( ****** *********** ", - " !!!!!!!!!!! $$$$$$$$$$$$ &&&&&&&&&&& ((((((((((((( *********** ", - " !!!!!!!!!!! $$$$$$$$$$$$$ &&&&&&&&&&& ((((((((((((( *********** ", - " ! $ $ & * ", + " ", + "! ! $$$ $ $ &&& & && ((( ( ** ", + " !!! ! !!! ! $$ $ $ $$$ $$$ &&& & &&& & ( ((( ( ((((( ( * * * *** ", + " ! !! !!! $$ $ $ $$$ $ $ & && && & ( ( (( (( ((( ( * * ** ", + " ", + " !!!! !!! $$$$$$$$$ $ &&&&&&&& (((((((((( ******** ", + " !!!!!!! $$$$$$$$$ &&&& & (((((( ( ( ***** **** ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/formatting-2-500-reference.json b/tests/visual_tests/grids/formatting-2-500-reference.json index e0827b51f..1d40e9072 100644 --- a/tests/visual_tests/grids/formatting-2-500-reference.json +++ b/tests/visual_tests/grids/formatting-2-500-reference.json @@ -27,14 +27,14 @@ " ", " ", " ! # $ % & ' ( ) * + ", - " $ & * ", - "!!!!!!! !!!! !! $$$$$ $$$ $$$$$$$$$$ &&&&&&&&&&&&& &&& ((((((((( ((((((((((( ********* ******** ", - "!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&&&&&&&&&& (((((((((((((((((((( ******** ********* ", - "!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&& &&&&&&& (((((((((((((((((((( ******** ********* ", - " !!!!!! !!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&&&&& & && ( (((((((((((((((((( ****** *********** ", - " !!!!!!!!!!! $$$$$$$$$$$$ &&&&&&&&&&& ((((((((((((( *********** ", - " !!!!!!!!!!! $$$$$$$$$$$$$ &&&&&&&&&&& ((((((((((((( *********** ", - " ! $ $ & * ", + " ", + "! ! $$$ $ $ &&& & && ((( ( ** ", + " !!! ! !!! ! $$ $ $ $$$ $$$ &&& & &&& & ( ((( ( ((((( ( * * * *** ", + " ! !! !!! $$ $ $ $$$ $ $ & && && & ( ( (( (( ((( ( * * ** ", + " ", + " !!!! !!! $$$$$$$$$ $ &&&&&&&& (((((((((( ******** ", + " !!!!!!! $$$$$$$$$ &&&& & (((((( ( ( ***** **** ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/formatting-3-500-reference.json b/tests/visual_tests/grids/formatting-3-500-reference.json index bc733d5b3..2bc1776e8 100644 --- a/tests/visual_tests/grids/formatting-3-500-reference.json +++ b/tests/visual_tests/grids/formatting-3-500-reference.json @@ -27,11 +27,11 @@ " ", " ", " ! # $ % & ' ( ) * + ", - " $ & * ", - "!!!!!!! !!!! !! $$$$$ $$$ $$$$$$$$$$ &&&&&&&&&&&&& &&& ((((((((( ((((((((((( ********* ******** ", - "!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&&&&&&&&&& (((((((((((((((((((( ******** ********* ", - "!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&& &&&&&&& (((((((((((((((((((( ******** ********* ", - " !!!!!! !!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&& && & && ( (((((((((((((((((( ****** * ********* ", + " ", + "! ! $$$ $ $ &&& & && ((( ( ** ", + " !!! ! !!! ! $$ $ $ $$$ $$$ &&& & &&& & ( ((( ( ((((( ( * * * *** ", + " ! !! !!! $$ $ $ $$$ $ $ & && && & ( ( (( (( ((( ( * * ** ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/jalign-auto-200-reference.json b/tests/visual_tests/grids/jalign-auto-200-reference.json index c486d0636..12e6b386b 100644 --- a/tests/visual_tests/grids/jalign-auto-200-reference.json +++ b/tests/visual_tests/grids/jalign-auto-200-reference.json @@ -17,33 +17,33 @@ " ", " ", " ", - " !! !! ! !! !!! ! !! !! ! ", - " !!!!!!!!!!!! !!!!!!!!!!!!! !!!!!!!!!!!! ", - " !!!!!!!!!!!!! !!!!!!!!!!!! !!!!!!!!!!!!! ", - " ! !! ! ! !! ! !!! ! ! ", - " !!!!!!! !!!!!!! !!!!!!! ", - " !!!!!!! !!!!!!! !!!!!!! ", - " ! ! ", + " ", + " !!!!!! ! ! ! ! ! !!! !!!!!! ! ! ", + " ! ! !!! ! !! !! ! !! ! ! !!! ! ", + " ", + " !! ! !! ! ! !!!! ! ", + " !!! ! ! !! !!!! ! ", " ", " ", " ", - " !! !! ! !! !! ! ", - " !!!!!!!!!!!! !!!!!!!!!!!! ", - " !!!!!!!!!!!!! !!!!!!!!!!!!! ", - " ! !! ! ! ! !!! ! ! ", - " !!!!!!! !!!!!!! ", - " !!!!!!! !!!!!!! ", - " ! ! ", + " ", + " ", + " !!!!!! ! ! !!!!!! ! ! ", + " ! ! !!! ! ! ! !!! ! ", + " ! ", + " !! ! !!!! ! ", + " !!! ! !!!! ! ", " ", " ", " ", - " !! !! ! !! !!! ! !! !! ! ", - " !!!!!!!!!!!! !!!!!!!!!!!!! !!!!!!!!!!!! ", - " !!!!!!!!!!!!! !!!!!!!!!!!! !!!!!!!!!!!!! ", - " ! !! ! ! !! ! !!! ! ! ", - " !!!!!!! !!!!!!! !!!!!!! ", - " !!!!!!! !!!!!!! !!!!!!! ", - " ! ! ", + " ", + " ", + " !!!!!! ! ! ! ! ! !!! !!!!!! ! ! ", + " ! ! !!! ! !! !! ! !! ! ! !!! ! ", + " ", + " !! ! !! ! ! !!!! ! ", + " !!! ! ! !! !!!! ! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/line-offset-900-reference.json b/tests/visual_tests/grids/line-offset-900-reference.json index b828b16a7..1fef4aaf5 100644 --- a/tests/visual_tests/grids/line-offset-900-reference.json +++ b/tests/visual_tests/grids/line-offset-900-reference.json @@ -5,9 +5,9 @@ "-400", "-461", "-302", + "-112", "-115", "-117", - "-112", "-118" ], "data": {}, @@ -30,38 +30,38 @@ " ", " ", " ", - " !! ## ", - " !! !!!!!!!!!! ! ## ####### # ", - " !!!!!!!! !!!!!!!!!!!!! ####### ############# ", - " !!!!!!!! !!!!!!!!!!!!!! ######### ############## ", - " !! !!!!!!!!!!!!!!!!!!! !!!!!!! ## ####### ######## ## ####### $$$$$$ ", - " %% %% %%% !!!!!! !! ! !!!!!! ###### ## ## ##### $$ $$$ $$$ ", - " %% %%%%%%%% %% !!!!!!!! !!!!!! ##### # ####### $$ $$$$$$$$$$$ $ $$ ", - " % %%%%%%%%%%%%%%%%%%%% %% !!!! ! !!! ###### #### $ $$$$$$$$$$ $$$$$$$$$$$$ ", - " % %%%%%%%%%%%%%%%%%% %%% % !!!!! ! ! ###### # # $ $$$$$$$$$$ $$$$$$$$$$$$ $ ", - " % %%%%%%%% %%%%%%%%%% % !!!!!! ! !! ##### # # $$$$$$ $$$$$$$$ $ ", - " % %%%% % %%%%%%%% !!!!! !!!!! ##### ##### $$ $$$$$ $ ", - " %%%%% %%%%% % !!! !!!!! #### ##### $ $$$$ $ ", - " % %%%% %%% % ! ! !!! # #### $ $$$$ $ ", - " %%%%% %%%%% !!!! ##### $$$ $$$ $ ", - " %%%%% %%% ! &&&& & & !!!!! ' ##### $$$$ $$$$$ ", - " %%%% (((( ((( ((( %%%% &&&&& &&&& &&&&&&&&& !!!!! # '''''' '''''''' #### $$$$ )))))) ))))) )) $$$$$ ", - " % %% (((((((((((((((((((((((((((((( !!!! &&&&&&&&&&&&&& !!! # ## '''''''''''''''' # $$$$ )))))))))))))))))))))))))) ", - " % (((((((( (((( %%%%% !!!! && && & ! !!! #### ''''''''' ' ' # ### $$$$ ))))))))))) )) $$$$$ ", - " % %%%%% !!!! !!! #### # ### $$$$ $$$ $ ", - " %%% % !!! ! ! !!! ### # #### $$$$$ $$$ ", - " % %% %%% !!!! !!!! #### ##### $$$$$ $$$$$ ", - " % %%% %%% % !!! ! !!!!! ### # # #### $ $$$$$ $$$ $$ ", - " % %%%% %%%%%%% !!!! ! !!!!!! #### # ###### $$$ $$$ $$$$$$$ $ ", - " %%%%%%%%% % %%%%%%%%%% !!!! ! !!!!!! #### # ###### $ $$$$$$$$$$ $$$$$$$$$$ ", - " %%%%%%%%%%%%%%%%%%%%%%%%% % !!!!! ! ! !!!! ##### # ## #### $ $$$$$$$$$$$$$$$$ $$$$$ $ ", - " % %%%%%% %%%%%%%%%%%%%% !!!!!! ! ! !! ### ### # ## ## $$$$$$ $$$$$$$$$$ $$$ $ ", - " %%%%%% %%%%%%%%%%%% !!!!! ! !! !!! !!! ##### ## ## ## $$$$$$$$$$$$$$ $$ ", - " %%% %%% !!!!!!!! !!!!!!! !! !!!! ######## ######### #### $$$$$ $$$$$ ", - " !!!!! !!! !!!!!!!!! ###### ### ######### ", - " !!! !!!!!!!!!! !!!!!! ### ########## ####### ", - " !!!!!!!!!! !!!! ########## ##### ", - " !!!!!!!!! ######### ", + " !! ", + " ! !!!!!!! # ####### ", + " !!!!!!! !!!!!!!!! !!! ####### ############# ", + " !!!!!!!! !!!!!!!!! !!!! ## ##### ########## ### ", + " !! !!!!! !!!!!!!!!!! !!!!! # ###### ######## # ##### $$$$$$ ", + " %% %%% !!!! ! !! ! !!!!! ### # ## ## ##### $$ $$$ ", + " %% %%%%%%% %% !!!!!!! !! !! ##### # ## ### $$ $ $$$$$$$ $ $ ", + " % %%%%%%%%%% %%%%%%%% %% !!!! ! !!! #### # ### $ $$$$$$$$$ $$$$$$$ $$ $ ", + " % %%%%%%%%%%%%%%%%%% %% % !!! ! ! #### # # $ $$$$$$$$$$ $ $$$$$$$$$ $ ", + " % %%% %%% %%% %%% % !!!!! ! ! ##### # # $$$$$ $$$$$$$ $ ", + " % %%%% %%%%% % !!!!! !!!!! ### # ### $ $$$$ $ ", + " %%%%% %%%%% % !! !!!!! #### ##### $ $$$$ $ ", + " % %%%% %%% % ! ! !!! # ### $ $$$ $ ", + " %%%% % % % !!!! # ## $$$ $$$ $ ", + " %%%%% %%% ! !! # ## $$$ $ $$ ", + " %%%% &&&& & && %%% ''''' '''' '''''''' !!!!! # (((((( (((( ((( ### $$$$ )))))) )) ) )) $$$$$ ", + " % % &&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ! !! '''''''' '''' ! ! # (((((((((( (((( # $$ $ )))))))))) ))))))))))))))) ", + " % &&&&&&&& &&& %%%% !!!! ' ' ! !!! #### ( ( # ### $$$ ))))))))) ) $$ $ ", + " % %%%%% !!! !!! #### # ### $$$ $$$ $ ", + " %%% % !!! ! ! !!! ## # ### $$$$ $$$ ", + " % % % !!! !!!! ### # ### $$$$ $$$$$ ", + " % %% %% % !!! ! ! !!! ### # # ### $ $$$$$ $$ $$ ", + " % %%% %%%%%% !!! ! !!!!!! ### # ###### $$$ $$$ $$$$ $ ", + " %%%%%%%% % %%%%% % !!!! ! !!!!!! ### # ###### $ $$$$$ $ $$$$$$$$$ ", + " % %%%%%%%%%%%%% %%%%%%%%% % !!!!! ! ! !!! ### # # ## ### $ $$$$$$$$$$$$$$$$ $$$$$ $ ", + " % %%%%%% %%%%%%%%%%%% % ! !! ! ! ! ## ## # ## ## $$ $$$ $$$$$$$$$$ $ $ ", + " %% %% %%%%%%% %%%% !!!!! !! !!! ! #### ## ## # $$$$$$$$$$$$$$ $$ ", + " %%% %%% !!!!!! !!!!!!! !! # ##### ######### ### $$$$$ $$$$$ ", + " !!!!! !!! !!!!!!!! ###### ### ######## ", + " !! !!!!!!!!!! !!!!!! ## ########## ###### ", + " !!!!!! !!! ! ! ##### #### # ## ", + " !!! !! ## #### ", " ", " ", " ", diff --git a/tests/visual_tests/grids/lines-1-200-reference.json b/tests/visual_tests/grids/lines-1-200-reference.json index 2cf3f7024..216dd9007 100644 --- a/tests/visual_tests/grids/lines-1-200-reference.json +++ b/tests/visual_tests/grids/lines-1-200-reference.json @@ -27,7 +27,7 @@ " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", - " !!!!!!!!!!! !!!!!!!!!!! ", + " ! ! ! ! ", " ############################################# ", " ############################################# ", " ############################################# ", diff --git a/tests/visual_tests/grids/lines-1-400-reference.json b/tests/visual_tests/grids/lines-1-400-reference.json index e76bcd5fe..6780b03bd 100644 --- a/tests/visual_tests/grids/lines-1-400-reference.json +++ b/tests/visual_tests/grids/lines-1-400-reference.json @@ -6,9 +6,9 @@ "210", "208", "240", - "206", "202", "200", + "206", "204" ], "data": {}, @@ -36,11 +36,11 @@ " ", " ", " ", - " !!! ! ", + " ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", - " ! ", + " ", " ", " ", " ", @@ -48,7 +48,7 @@ " ########################################################################################## ", " ########################################################################################## ", " ########################################################################################## ", - " ### ### ## # ", + " # # # ", " ", " ", " ", @@ -58,7 +58,7 @@ " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", - " $$$ $$$ ", + " $ $ ", " ", " ", " ", @@ -73,22 +73,22 @@ " ", " ", " ", - " ' '' (((((( ", - " ))))) ''''''''''''''''''' ((((((((((( ", - " ))))))))))) ''''''''''''''''''' (((((((((((( ", - " )))))))))))) ''''''''''''''''''' ((((( ((((( ", - " ))))) ))))) ''''''''''' ''''''' (((( (((( ", - " ))) ))) ((( (((( ", - " )))) )))) (((( ((( ", - " ))) ))) (((( (((( ", - " ))) ))) ((( ((( ", - " )))) )))) ((( (((( ", - " ))) )))) (((( (((( ", - " )))) )))) (((((((((((( ", - " ))))))))))))) ((((((((((( ", - " ))))))))))) ******************* (((((((( ", - " )))))))) ******************* ((( ", - " ))) ******************* ", + " '''''' ", + " ((((( ))))))))))))))))))) ''''''''''' ", + " ((((((((((( ))))))))))))))))))) '''''''''''' ", + " (((((((((((( ))))))))))))))))))) ''''' ''''' ", + " ((((( ((((( '''' '''' ", + " ((( ((( ''' '''' ", + " (((( (((( '''' ''' ", + " ((( ((( '''' '''' ", + " ((( ((( ''' ''' ", + " (((( (((( ''' '''' ", + " ((( (((( '''' '''' ", + " (((( (((( '''''''''''' ", + " ((((((((((((( ''''''''''' ", + " ((((((((((( ******************* '''''''' ", + " (((((((( ******************* ''' ", + " ((( ******************* ", " ", " ", " ", diff --git a/tests/visual_tests/grids/lines-1-600-reference.json b/tests/visual_tests/grids/lines-1-600-reference.json index d1e67031d..aa7ca1731 100644 --- a/tests/visual_tests/grids/lines-1-600-reference.json +++ b/tests/visual_tests/grids/lines-1-600-reference.json @@ -52,7 +52,6 @@ " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", - " !!!!!!!!!!! !!!!!!!!!!! ", " ", " ", " ", @@ -60,11 +59,13 @@ " ", " ", " ", - " # ### # # # # # ", + " ", + " ", " ######################################################################################################################################## ", " ######################################################################################################################################## ", " ######################################################################################################################################## ", - " ##### ### ####### ## ### # #### ### ###### #### #### ## ########## ## ##### ### ", + " ## ## # # ", + " ", " ", " ", " ", @@ -75,22 +76,21 @@ " ", " ", " ", - " $ $$ $$ $ $$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", - " $$$ $$$$$ $$$ $$ $ $$$ $$ $$$$$ $ $$$$ $$$ ", + " $ $ ", + " ", " ", " ", " ", " ", " ", " ", - " %% % %% % % % %%%%%%%%% %%%%%%%%%%%%%%%% % %%%%%% %% %%%% %%%%%%%% %%%%%%%% %%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", - " %% % % %% %%% %%%%%% %%% % % % %% %% % %% %% % ", + " %% %% % % ", " ", " ", " ", @@ -98,7 +98,7 @@ " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", - " &&& &&& & && & ", + " ", " ", " ", " ", @@ -108,7 +108,7 @@ " ((((((( )))))))))))))))))))))))))))) '''''''''''''' ", " ((((((((((( )))))))))))))))))))))))))))) ''''''' '''''''' ", " ((((((((((((((( )))))))))))))))))))))))))))) ''''' ''''' ", - " (((((( (((((( ))))))))))))))))))) ''' ''' ", + " (((((( (((((( ''' ''' ", " (((( (((( '''' '''' ", " ((( (((( ''' ''' ", " (((( ((( '''' '''' ", diff --git a/tests/visual_tests/grids/lines-1-800-reference.json b/tests/visual_tests/grids/lines-1-800-reference.json index a6f82c616..fffa4395c 100644 --- a/tests/visual_tests/grids/lines-1-800-reference.json +++ b/tests/visual_tests/grids/lines-1-800-reference.json @@ -61,7 +61,7 @@ " ", " ", " ", - " !!!! !! ", + " ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", @@ -80,8 +80,8 @@ " #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ", - " ################## ######## ############################# ########### ############ ", - " ## ## ## # ", + " # # # # # # # # # ## # # ", + " ", " ", " ", " ", @@ -100,8 +100,9 @@ " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", - " $$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$ $$$$$$$$$$$ ", - " $$ $$ ", + " $ $ ", + " ", + " ", " ", " ", " ", @@ -111,22 +112,21 @@ " ", " ", " ", - " %% % %% % % % %%%%%%%%% %%%%%%%%%%%%%%%% % %%%%%% %% %%%% %%%%%%%% %%%%%%%% %%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", - " %% % % %% %%% %%%%%% %%% % % % %% %% % %% %% % ", + " %% %% % % ", + " ", " ", " ", " ", " ", " ", - " & & & & & & ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", - " & &&&&&&&&&&& &&&& &&& && &&&& && &&&&&&&&&& &&&& & &&& &&&& &&&& &&&&&&&&&&&&& &&&& &&& &&&&&&& & && &&&&&&&&&&&&&& ", - " & & & ", + " &&& && & & & ", + " ", " ", " ", " ", @@ -139,7 +139,7 @@ " ((((((( )))))))))))))))))))))))))))))))))))))) ''''''''''''''''' ", " (((((((((((( )))))))))))))))))))))))))))))))))))))) '''''''' '''''''' ", " ((((((((((((((((( )))))))))))))))))))))))))))))))))))))) '''''' '''''' ", - " (((((((( (((((((( ))))))))))) ))))))) '''' '''' ", + " (((((((( (((((((( '''' '''' ", " (((((( (((((( '''' '''' ", " (((( ((((( ''' ''' ", " (((( ((( '''' ''' ", diff --git a/tests/visual_tests/grids/lines-2-200-reference.json b/tests/visual_tests/grids/lines-2-200-reference.json index c1380c9a4..6b1df7f63 100644 --- a/tests/visual_tests/grids/lines-2-200-reference.json +++ b/tests/visual_tests/grids/lines-2-200-reference.json @@ -27,7 +27,7 @@ " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", - " !!!!!!!!!!!!!!!!!!!!!!! ", + " ! ! ! ", " ############################################# ", " ############################################# ", " ############################################# ", diff --git a/tests/visual_tests/grids/lines-2-400-reference.json b/tests/visual_tests/grids/lines-2-400-reference.json index efdbcde3b..b9f546d70 100644 --- a/tests/visual_tests/grids/lines-2-400-reference.json +++ b/tests/visual_tests/grids/lines-2-400-reference.json @@ -36,11 +36,11 @@ " ", " ", " ", - " !!! ! ", + " ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", - " ! ! ! ", + " ", " ", " ", " ", @@ -58,7 +58,7 @@ " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", - " $$ $$ ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/lines-2-600-reference.json b/tests/visual_tests/grids/lines-2-600-reference.json index d47a0c333..12b682634 100644 --- a/tests/visual_tests/grids/lines-2-600-reference.json +++ b/tests/visual_tests/grids/lines-2-600-reference.json @@ -52,7 +52,6 @@ " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", - " !!!!!!!!!!! !!!!!!!!!!! ", " ", " ", " ", @@ -60,11 +59,13 @@ " ", " ", " ", - " # ## ## # # ## ## ", + " ", + " ", " ######################################################################################################################################## ", " ######################################################################################################################################## ", " ######################################################################################################################################## ", - " ######### ### ### ######## ######## # ######### ######## ## ####### ### ######## ", + " ## ## ## # ", + " ", " ", " ", " ", @@ -75,11 +76,10 @@ " ", " ", " ", - " $ $$ $$$$ $ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", - " $$$$ $$$$ $$$$ $ $ $ $ $ $ $ $$$$ $$ $ $$ $ ", + " $$ $$ ", " ", " ", " ", @@ -108,7 +108,7 @@ " ((((((( )))))))))))))))))))))))))))) '''''''''''''' ", " ((((((((((( )))))))))))))))))))))))))))) ''''''' '''''''' ", " ((((((((((((((( )))))))))))))))))))))))))))) ''''' ''''' ", - " (((((( (((((( ))))))))))) ))))))) ''' ''' ", + " (((((( (((((( ''' ''' ", " (((( (((( '''' '''' ", " ((( (((( ''' ''' ", " (((( ((( '''' '''' ", diff --git a/tests/visual_tests/grids/lines-2-800-reference.json b/tests/visual_tests/grids/lines-2-800-reference.json index 3be96c9ce..0ac963c89 100644 --- a/tests/visual_tests/grids/lines-2-800-reference.json +++ b/tests/visual_tests/grids/lines-2-800-reference.json @@ -61,7 +61,7 @@ " ", " ", " ", - " !!! !! ", + " ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", @@ -80,8 +80,8 @@ " #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ", - " ######### ######## ######## ######## #################### ########## ############ # # ## ", - " ## ## ## # ", + " # # # # # # # # # # # ## # # ", + " ", " ", " ", " ", @@ -100,8 +100,9 @@ " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", - " $$$$$$$$$$ $$$$$$$ $$$$$$$$ $$$$$$$$$ $$$$$$$$$$$ $ $ ", - " $$ $$ ", + " $ $ ", + " ", + " ", " ", " ", " ", @@ -111,22 +112,21 @@ " ", " ", " ", - " %%% %% % % %% % %%%% %%%%%%%%%% %%% %%%% %%%% %%%%%%%%%%% %% %%%%% %% % %%% %%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", - " % % % % % %%% % %% % %% % %% % % %% % %% % % ", + " %% %% % % % ", + " ", " ", " ", " ", " ", " ", - " & & & & & ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", - " &&&&&&&&&&&&&&&&&&& &&&& &&&&&&&& &&&&&&&&&&&&& &&&& &&&&&&&&&&&&&&& &&& &&&& &&&& &&&&&& & &&&& &&& & && & & && &&&&&& ", - " & & ", + " && && & & ", + " ", " ", " ", " ", @@ -139,7 +139,7 @@ " ((((((( )))))))))))))))))))))))))))))))))))))) ''''''''''''''''' ", " (((((((((((( )))))))))))))))))))))))))))))))))))))) '''''''' '''''''' ", " ((((((((((((((((( )))))))))))))))))))))))))))))))))))))) '''''' '''''' ", - " (((((((( (((((((( ))))))))))))))))))) '''' '''' ", + " (((((((( (((((((( '''' '''' ", " (((((( (((((( '''' '''' ", " (((( ((((( ''' ''' ", " (((( ((( '''' ''' ", diff --git a/tests/visual_tests/grids/lines-3-200-reference.json b/tests/visual_tests/grids/lines-3-200-reference.json index 2cf3f7024..216dd9007 100644 --- a/tests/visual_tests/grids/lines-3-200-reference.json +++ b/tests/visual_tests/grids/lines-3-200-reference.json @@ -27,7 +27,7 @@ " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", - " !!!!!!!!!!! !!!!!!!!!!! ", + " ! ! ! ! ", " ############################################# ", " ############################################# ", " ############################################# ", diff --git a/tests/visual_tests/grids/lines-3-400-reference.json b/tests/visual_tests/grids/lines-3-400-reference.json index 3535d4503..6780b03bd 100644 --- a/tests/visual_tests/grids/lines-3-400-reference.json +++ b/tests/visual_tests/grids/lines-3-400-reference.json @@ -6,9 +6,9 @@ "210", "208", "240", - "206", "202", "200", + "206", "204" ], "data": {}, @@ -36,11 +36,11 @@ " ", " ", " ", - " !!! ! !!! ! !!! ! ", + " ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", - " ! ! ! ", + " ", " ", " ", " ", @@ -48,7 +48,7 @@ " ########################################################################################## ", " ########################################################################################## ", " ########################################################################################## ", - " ### ### ## # ", + " # # # ", " ", " ", " ", @@ -58,7 +58,7 @@ " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", - " $$$ $$$ ", + " $ $ ", " ", " ", " ", @@ -73,22 +73,22 @@ " ", " ", " ", - " ' '' (((((( ", - " ))))) ''''''''''''''''''' ((((((((((( ", - " ))))))))))) ''''''''''''''''''' (((((((((((( ", - " )))))))))))) ''''''''''''''''''' ((((( ((((( ", - " ))))) ))))) ''''''''''' ''''''' (((( (((( ", - " ))) ))) ((( (((( ", - " )))) )))) (((( ((( ", - " ))) ))) (((( (((( ", - " ))) ))) ((( ((( ", - " )))) )))) ((( (((( ", - " ))) )))) (((( (((( ", - " )))) )))) (((((((((((( ", - " ))))))))))))) ((((((((((( ", - " ))))))))))) ******************* (((((((( ", - " )))))))) ******************* ((( ", - " ))) ******************* ", + " '''''' ", + " ((((( ))))))))))))))))))) ''''''''''' ", + " ((((((((((( ))))))))))))))))))) '''''''''''' ", + " (((((((((((( ))))))))))))))))))) ''''' ''''' ", + " ((((( ((((( '''' '''' ", + " ((( ((( ''' '''' ", + " (((( (((( '''' ''' ", + " ((( ((( '''' '''' ", + " ((( ((( ''' ''' ", + " (((( (((( ''' '''' ", + " ((( (((( '''' '''' ", + " (((( (((( '''''''''''' ", + " ((((((((((((( ''''''''''' ", + " ((((((((((( ******************* '''''''' ", + " (((((((( ******************* ''' ", + " ((( ******************* ", " ", " ", " ", diff --git a/tests/visual_tests/grids/lines-3-600-reference.json b/tests/visual_tests/grids/lines-3-600-reference.json index 141b45013..199d6aab9 100644 --- a/tests/visual_tests/grids/lines-3-600-reference.json +++ b/tests/visual_tests/grids/lines-3-600-reference.json @@ -52,7 +52,6 @@ " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", - " !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!!! ", " ", " ", " ", @@ -60,11 +59,13 @@ " ", " ", " ", - " # ### # # # # # ", + " ", + " ", " ######################################################################################################################################## ", " ######################################################################################################################################## ", " ######################################################################################################################################## ", - " ##### ### ####### ## ### # #### ### ###### #### #### ## ########## ## ##### ### ", + " ## ## # # ", + " ", " ", " ", " ", @@ -75,22 +76,21 @@ " ", " ", " ", - " $ $$$ $$$$ $ $$ $$ $$$$ $$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", - " $$$$$ $$$ $ $ $$ $$$ $$$$ $$$ $$$$ $ $ $$$ $$$$$ $$$$ $ $ $$ $$$ $ $$$$$ $$ $$$$ $ ", + " $$ $$ $$ $$ ", + " ", " ", " ", " ", " ", " ", " ", - " %% % %% % % % %%%%%%%%% %%%%%%%%%%%%%%%% % %%%%%% %% %%%% %%%%%%%% %%%%%%%% %%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", - " %% % % %% %%% %%%%%% %%% % % % %% %% % %% %% % ", + " %% %% % % ", " ", " ", " ", @@ -98,7 +98,7 @@ " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", - " &&& &&& & && & ", + " ", " ", " ", " ", @@ -108,7 +108,7 @@ " ((((((( )))))))))))))))))))))))))))) '''''''''''''' ", " ((((((((((( )))))))))))))))))))))))))))) ''''''' '''''''' ", " ((((((((((((((( )))))))))))))))))))))))))))) ''''' ''''' ", - " (((((( (((((( ))))))))))))))))))) ''' ''' ", + " (((((( (((((( ''' ''' ", " (((( (((( '''' '''' ", " ((( (((( ''' ''' ", " (((( ((( '''' '''' ", diff --git a/tests/visual_tests/grids/lines-3-800-reference.json b/tests/visual_tests/grids/lines-3-800-reference.json index b5c386f88..da989fb80 100644 --- a/tests/visual_tests/grids/lines-3-800-reference.json +++ b/tests/visual_tests/grids/lines-3-800-reference.json @@ -61,7 +61,7 @@ " ", " ", " ", - " !!!! !! !!!! !! !!!! !! !!!! !! !!!! !! !!!! !! ", + " ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", @@ -80,8 +80,8 @@ " #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ", - " ################## ######## ############################# ########### ############ ################## ######## ############################# ########### ############ ", - " ## ## ## # ## ## ## # ", + " # # # # # # # # ## # # # # # # # # # # # ## # # ", + " ", " ", " ", " ", @@ -100,8 +100,9 @@ " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", - " $$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$ $$$$$$$$$$$ ", - " $$ $$ $$ $$ $$ $$ ", + " $ $ $ $ $ $ ", + " ", + " ", " ", " ", " ", @@ -111,22 +112,21 @@ " ", " ", " ", - " %% % %% % % % %%%%%%%%% %%%%%%%%%%%%%%%% % %%%%%% %% %%%% %%%%%%%% %%%%%%%% %%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", - " %% % % %% %%% %%%%%% %%% % % % %% %% % %% %% % ", + " %% %% % % ", + " ", " ", " ", " ", " ", " ", - " & & & & & & ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", - " & &&&&&&&&&&& &&&& &&& && &&&& && &&&&&&&&&& &&&& & &&& &&&& &&&& &&&&&&&&&&&&& &&&& &&& &&&&&&& & && &&&&&&&&&&&&&& ", - " & & & ", + " &&& && & & & ", + " ", " ", " ", " ", @@ -139,7 +139,7 @@ " ((((((( )))))))))))))))))))))))))))))))))))))) ''''''''''''''''' ", " (((((((((((( )))))))))))))))))))))))))))))))))))))) '''''''' '''''''' ", " ((((((((((((((((( )))))))))))))))))))))))))))))))))))))) '''''' '''''' ", - " (((((((( (((((((( ))))))))))) ))))))) '''' '''' ", + " (((((((( (((((((( '''' '''' ", " (((((( (((((( '''' '''' ", " (((( ((((( ''' ''' ", " (((( ((( '''' ''' ", @@ -150,19 +150,19 @@ " (((( (((( ''' ''' ", " ((( ((( '''' '''' ", " (((( (((( '''' ''' ", - " (((( (((( ''' '''' ", - " ((( ((((( '''' '''' ", - " (((( (((( '''' '''' ", + " (((( ((( ''' '''' ", + " ((( (((( '''' '''' ", + " (((( ((( '''' '''' ", " ((( (((( ''' '''' ", " ((( (((( '''' '''' ", - " ((((( (((( '''''' '''''' ", - " ((((( ((((( '''''''' ''''''' ", - " (((((( (((((( ''''''''''''''''' ", - " ((((((((( (((((((( ''''''''''''' ", + " (((( (((( '''''' '''''' ", + " (((( (((( '''''''' ''''''' ", + " (((((( ((((( ''''''''''''''''' ", + " (((((((( (((((((( ''''''''''''' ", " (((((((((((((((((( '''''''' ", - " ( (((((((((((( ************************************** ''' ", - " (((((((((( ************************************** ", - " (((( ************************************** ", + " (((((((((((( ************************************** ''' ", + " (((((((( ************************************** ", + " ((( ************************************** ", " ", " ", " ", diff --git a/tests/visual_tests/grids/list-100-reference.json b/tests/visual_tests/grids/list-100-reference.json index 9c48a8b23..fc6b5b79e 100644 --- a/tests/visual_tests/grids/list-100-reference.json +++ b/tests/visual_tests/grids/list-100-reference.json @@ -22,16 +22,16 @@ " ", " ", " ", - "!!! ### $$$ %%% &&& ", - "!!! #### $$$ %%%% &&&& ", - "!!!! #### $$$$ %%% &&&& ", - "! # # $ $ % & & ", + " ", + "! ! # $ % % & ", + "!!! ## $$$ %%% &&& ", + " ", " ! ' # ( $ ) % * & +", " ", - " '' ( ) * ++", - " '' (( )) ** +++", - " '' (( )) ** +++", - " ) ", + " ", + " '' ( ) ** ++", + " ' (( )) ** ++", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/list-150-reference.json b/tests/visual_tests/grids/list-150-reference.json index 6ff4d3534..041fc5135 100644 --- a/tests/visual_tests/grids/list-150-reference.json +++ b/tests/visual_tests/grids/list-150-reference.json @@ -1,13 +1,13 @@ { "keys": [ "", - "-1", - "-2", "-4", "-6", "-7", "-8", "-9", + "-2", + "-1", "-3", "-5", "-10" @@ -22,17 +22,17 @@ " ", " ", " ", - " !!! ## $$ $ %%%&&& ''' ((( ", - "!!!!####$$$$$$$$$$$%%%%&&&&'''(((( ", - "!!!!####$$$$$$$$$$$%%%%&&& '''(((( ", - " ! # $$ $ %% ' ' ( ", - " ! # ) $ * % & ' ( + ", " ", - "))) ) ) ) ++ ", - ")))))))))))))))))))) ++++", - " ))))))) ))))))))))) ++++", - " ))))))))))))))))))) + ", - " ) ) ) ) ", + " !!!!!!!!! # $ % % && ", + " '' !! ! !! ###$$$ %% & ", + " ", + " ( ' ) ! * # $ % & + ", + " ", + " ", + " ) ) +++", + " ))))) ) )))) ++ ", + " ) ))))) )) )))) ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/list-250-reference.json b/tests/visual_tests/grids/list-250-reference.json index 0356b25bd..245fd2733 100644 --- a/tests/visual_tests/grids/list-250-reference.json +++ b/tests/visual_tests/grids/list-250-reference.json @@ -22,17 +22,17 @@ " ", " ", " ", - " !!! ## # # $$$ $$ %%% && & ", - " !!! ############# $$$$$$$$$$$%%%%%%%%%%%%%%&&&&&&&&&&& ", - " !!! ############ $$$$$$$$$$ %%%%%%%%%%%%%&&&&&&&&&&& ", - " ! ## # # $ $ % % % && & ", + " ", + " ! ! ### #### # $$ $$$$ $ %% %% %%%%%% &&& &&& & ", + " !! # ## $$$$ $$$ %%%% %% %% & & & ", + " ", " ! ' # ( $ ) % * & + ", " ", - " '''' ' ' ( ))) ) ) * +++ ", - " ''''''''''''''''' (( ))))))))) )))))) ** ++++ ", - " '''''''' ''''''' ((( )))))))))))))) *** ++++ ", - " '''''''' ''''''' ))))))))))))))) * + ", - " ' ' ' ))) ) ", + " ", + " ' ' ( ) ) * ", + " ''' ' ' '' ' (( ) ))) ) ) ))) * ", + " '''''' ' '' '' ) )))))) ))))) ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/list-300-reference.json b/tests/visual_tests/grids/list-300-reference.json index 5fa935dc6..900f741a9 100644 --- a/tests/visual_tests/grids/list-300-reference.json +++ b/tests/visual_tests/grids/list-300-reference.json @@ -22,17 +22,17 @@ " ", " ", " ", - "! ! ## ## $$ $$ %%% % &&& & & ", - "!!!!!!!!!! ############# $$$$$$$$$$ %%%%%%%%%%%%%% &&&&&&&&&&&& ", - "!!!!!!!!!! ############# $$$$$$$$$$ %%%%%%%%%%%%% &&&&&&&&&&& ", - " !! ! ! ## # $$ $ % % % & & ", + " ", + " !!! !!!! ### #### # $$$$$$$$ % %%% %%%%%% & &&& &&&& ", + " ! !! # ### $$ $ %%% % % % &&& & & & ", + " ", " ! ' # ( $ ) % * & + ", " ", - " ''' ' ' ( ))) ) )) * + + ", - " ''''''''''''''''' (( ))))))))))))))) *** ++++ ", - " '''''''''''''''' ((( )))))))))))))) *** ++++ ", - " '''''''' ''''''' )))))))))))))) * + ", - " ''' ' ))) ) ", + " ", + " ' ' ' ( ) ) ", + " ' ''' ' ''' ' ( ) ))) ) ) ) * ", + " ' '''''' ' '' '' ) ))))) )) )) ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/list-400-reference.json b/tests/visual_tests/grids/list-400-reference.json index 7e6cbc5a5..4da9a6826 100644 --- a/tests/visual_tests/grids/list-400-reference.json +++ b/tests/visual_tests/grids/list-400-reference.json @@ -22,17 +22,17 @@ " ", " ", " ", - "!! ## ## $$ $$ %% % && & & '''' ", - "!!!!!!!!!!! ############# $$$$$$$$$$$ %%%%%%%%%%%%%% &&&&&&&&&&&& ''''' ", - "!!!!!!!!!!! ############# $$$$$$$$$$ %%%%%%%%%%%%% &&&&&&&&&&& ''''' ", - " !! ! ! # ## $ $ %% %% % && ' ", + " ", + " !!!!! !! # ######## $$ $$$$ $ %%% %%% %%% &&& &&& & ' ''' ", + " !! ! ! ### # ## # $$ $ $$$ % % % %% & & && ''''' ", + " ", " ! ( # ) $ * % + & ' ", " ", - " ((( ( ( ))) ) )) *** * ** ++++ + ++ + + ", - " ((((((((((((((((( ))))))))))))))))))) *************** +++++++++ ++++++++++ ", - " (((((((((((((((( )))))))) )))))))) ******* ****** ++++++++ ++++++++++ ", - " (((((((((((((((( ))))))))))))))))) ************** ++++++++ ++++++++++ ", - " ( ( ( ) ) ) ) * * * + + + +++ ", + " ", + " ( ( ) * + ", + " ( ((( ( (((( ( ))))) )))) ***** * * ++ + ++ + ++ ", + " ( ((((( (( ((( ))))) ) ))))) * ***** ** * ++++ + ++ +++ + ", + " + ", " ", " ", " ", diff --git a/tests/visual_tests/grids/list-600-reference.json b/tests/visual_tests/grids/list-600-reference.json index c12801c9f..f1118d133 100644 --- a/tests/visual_tests/grids/list-600-reference.json +++ b/tests/visual_tests/grids/list-600-reference.json @@ -22,17 +22,17 @@ " ", " ", " ", - " !! ! ### ## $$ $ %% % % && ", - " !!!!!!!!!!! ############ $$$$$$$$$$ %%%%%%%%%%%% &&&&&&&&&& ", - " !!!!!!!!!! ########## $$$$$$$$$ %%%%%%%%%%%% &&&&&&&&&& ", - " !! ! # # $ $ %% % %% && & ", + " ", + " ! !!! !! ! ## #### # $$ $$$ $ %%% %%%%%% &&& &&& ", + " !! ! !!! #### ## # $$ $ $$$ % %%%%% & && ", + " % ", " ' ! ( # ) $ * % + & ", " ", - "''' ' ((( ( (( )))) ) ))) **** * +++ + + ", - "'''''''' ''''''' (((((((((((((((((((( ))))))))) ))) ))) ********* *********** ++++++++++++++++++ ", - "'''''''' '''''''' ((((((((((((((((((( )))))))) ))))))) ******************** +++++++ +++++++++ ", - "'''''''' '''''''' ((((((((((((((((((( )))))))) ))))))) ******************** +++++++++++++++++ ", - " ' ' ' ' ( ( ( ( ) ) )) * * * * * + + + ", + " ", + " ' ( ( ( ) * + ", + " ''''' ' ' ''' ( ((( ( ( ((((( )) ) ) )) *** * * *** ***** +++++ +++ +++ ", + " '''' ' ''' ''' ( ((((( (( ((((( )))) ) ) ) )) ****** **** * ** * + +++++ +++ ++ ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/list-800-reference.json b/tests/visual_tests/grids/list-800-reference.json index 8c348d27d..c93664013 100644 --- a/tests/visual_tests/grids/list-800-reference.json +++ b/tests/visual_tests/grids/list-800-reference.json @@ -28,11 +28,11 @@ " ", " ! # $ % & ' ( ) * + ", " ", - " !!! ! ### # # $$$$ $ $$$ %%% % %% &&& & && ''' ' '' ((( ( )))) ) )) ) ) **** * ** ++++ + + ", - " !!!!!!!!!!!!!!!!! ################# $$$$$$$$$ $$$$$$$$$$ %%%%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&&& ''''''''''''''' (((((((((((((((((((())))))))) )))))))))) ********* ******** ++++++++++++++++ ", - " !!!!!!!!!!!!!!!! ################ $$$$$$$$ $$$$$$$$$$$ %%%%%%%% %%%%%%%% &&&&&&&&&&&&&&&& ''''''' '''''' ((((((( (((((((((((()))))))) )))))))))) ******** ********* ++++++++ ++++++ ", - " !!!!!!!!!!!!!!!! ################ $$$$$$$$ $$$$$$$$$$$ %%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&& '''''''''''''' (((((((((((((((((((()))))))) )))))))))) ******** ********* ++++++++ ++++++ ", - " ! ! ! ! # # # $ $ $ $ % % % % &&& & ' ' ' ( ( ( ( ( ) ) ) ))) * * * + + + ", + " ", + " ! ! # # $ $ % & & & ' ( ) * + + ", + " ! !!! ! !!!!!! # ### # #### # $$$$$ $ $$ $$$$ %%%%% %%%% & &&& & &&&&&& ''''' ' ' ((((( ((((((((( )) ) )) ) )) *** * * *** +++ + ++++++ ", + " ! !!!!! !!!!!!! # ##### ## ### $$$$ $ $$ $$ $$$$ %%%%% % %%%%% & &&&&& && &&& ' ''''' '' ' ( ((((( (( ((( ((( )))) ) )) ))) ) ****** * *** ++++++ + ++ + ", + " ) ", " ", " ", " ", diff --git a/tests/visual_tests/grids/rtl-point-200-reference.json b/tests/visual_tests/grids/rtl-point-200-reference.json index 55c4098ec..48ee59043 100644 --- a/tests/visual_tests/grids/rtl-point-200-reference.json +++ b/tests/visual_tests/grids/rtl-point-200-reference.json @@ -30,21 +30,21 @@ " ", " ", " ", - " !! ", - " !!! ", - " ! !! ", - " !!!!!!!!! ", - " !!!!!!!!!! ", - " !! ", + " ! ", + " ! ", " ", + " !! ! ! ! ", + " ! ! ! ", + " ", + " ", + " ! ", + " ", + " ! ! ", + " ", + " ! ", + " !!! ", " !!!! ", - " !!!!! ", - " !!!!! ", - " !!! !!! ", - " ! !!! ", - " !!!!!!!! ", - " !!!!!!!! ", - " !!!!!! ", + " !! ", " ", " ", " ", diff --git a/tests/visual_tests/grids/shieldsymbolizer-1-490-reference.json b/tests/visual_tests/grids/shieldsymbolizer-1-490-reference.json index 09e951570..8afdea2b6 100644 --- a/tests/visual_tests/grids/shieldsymbolizer-1-490-reference.json +++ b/tests/visual_tests/grids/shieldsymbolizer-1-490-reference.json @@ -20,20 +20,20 @@ " ", " ", " ", - " !!! ", - " !!! ", - " !!! ", - " ### !!! ", - " ### ", - " $$$ %%%% ##### &&& ''' !!! ((((((((( )))) ", - " $$$ %%% **** +++ ### &&& ''' !!! ((((((( )) ", - " $$$ %%% *** +++ &&& ''' !!! (((((((( ))) ", - " $$$ %%%% ** ++++ &&& ''' !!! ((((((((( )))) ", - " **** +++ ", - " !!! ", - " !! ", - " !!! ", + " ", + " ! ", + " ! ", + " # ! ! ", + " ## ", + " $$$ % ##### &&& ' ' ! ! ( (((( ) ", + " $ % % * + ### && '' ! ( ( ( )) ", + " $ %% ** + & ' ! (( ( (( )) ", + " $ ** ++++ & ( ", + " * + + ", " ! ! ", + " ! ", + " ! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/shieldsymbolizer-1-495-reference.json b/tests/visual_tests/grids/shieldsymbolizer-1-495-reference.json index bb3d6c471..be4ac2118 100644 --- a/tests/visual_tests/grids/shieldsymbolizer-1-495-reference.json +++ b/tests/visual_tests/grids/shieldsymbolizer-1-495-reference.json @@ -20,20 +20,20 @@ " ", " ", " ", - " !!! ", - " !!! ", - " !!! ", - " ### !!!! ", - " ### ", - " $$$ %%% & #### ''' (((( !!! ))))))))) **** ", - " $$$ %%%% &&& +++ #### ''' ((( !!! ))))))) ** ", - " $$$ %%% &&& +++ ''' ((( !!! )))))))) *** ", - " $$$$ %%%% &&& ++++ '''' (((( !!!! ))))))))) **** ", - " &&& ++++ ", - " !!! ", - " !! ", - " !!! ", + " ", + " ! ", + " ! ", " ! ! ", + " ## ", + " $$$ % % & #### ' ' ( ! ! ) )))) * ", + " $ % % & + ## '' ( ( ! ) ) ) ** ", + " $$ %% & ++ '' (( !! )) )))) ** ", + " $ & ++++ ) ", + " & & ++ ", + " ! ", + " ! ", + " ! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/shieldsymbolizer-1-497-reference.json b/tests/visual_tests/grids/shieldsymbolizer-1-497-reference.json index d791519c4..aed6eedda 100644 --- a/tests/visual_tests/grids/shieldsymbolizer-1-497-reference.json +++ b/tests/visual_tests/grids/shieldsymbolizer-1-497-reference.json @@ -20,20 +20,20 @@ " ", " ", " ", - " !!! ", - " !!! ", - " !!! ", - " ### !!!! ", - " ### ", - " $$$$ %%% & #### ''' ((( !!! )))))))) *** ", - " $$$ %%% &&& ++++ ### ''' ((( !!! )))))))) *** ", - " $$$ %%% &&& ++++ ''' ((( !!! )))))))) *** ", - " $$$$ %%% &&& ++++ ''' ((( !!!! ) )))) ) *** ", - " &&& ++++ ", - " !!! ", + " ", " !! ", - " !!! ", - " ! ! ", + " ! ", + " # ! ! ", + " ## ", + " $$$ % % & #### ''' ((( !!! ) )) ) ) *** ", + " $ %% & + ### '' (( ! ) )) ) * ", + " $$ % & ++ ' ( !! ) )) ) * ", + " $ & ++++ ' ( ! * ", + " & & ++ ", + " ! ", + " ! ", + " ! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/shieldsymbolizer-1-498-reference.json b/tests/visual_tests/grids/shieldsymbolizer-1-498-reference.json index acbc5d159..7a1c6bc15 100644 --- a/tests/visual_tests/grids/shieldsymbolizer-1-498-reference.json +++ b/tests/visual_tests/grids/shieldsymbolizer-1-498-reference.json @@ -20,20 +20,20 @@ " ", " ", " ", - " !!!! ", - " !!! ", + " ", " !! ", - " ### !!!! ", - " ### ", - " $$$$ %%% & ##### '''' ((( !!!! ))))))))) **** ", - " $$ %%% &&& ++++ ### '' ((( !! ))))))) ** ", - " $$$ %%% &&& +++ ''' ((( !!! )))))))) *** ", - " $$$$ % % &&& ++++ '''' (((( !!!! ))))))))) **** ", - " &&& ++++ ", - " !!!! ", " !! ", - " !!! ", - " !!!! ", + " # ! ", + " ## ", + " $$$ % % & ##### ''' ((( ! )) ) ) ** ", + " $ %% & + ### '' (( !! ) ) ) * ", + " $$ % & ++ '' (( !! )))) )) ** ", + " $ & ++++ ' ( * ", + " & & ++ ", + " !! ", + " ! ", + " !! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/shieldsymbolizer-1-499-reference.json b/tests/visual_tests/grids/shieldsymbolizer-1-499-reference.json index f309a6079..a5c033f6c 100644 --- a/tests/visual_tests/grids/shieldsymbolizer-1-499-reference.json +++ b/tests/visual_tests/grids/shieldsymbolizer-1-499-reference.json @@ -20,20 +20,20 @@ " ", " ", " ", - " !!!! ", - " !!! ", + " ", " !! ", - " ### !!!! ", - " ### ", - " $$$$ %%% & ##### '''' (((( !!!! ))))))))) **** ", - " $$ %%% &&& +++ ### '' ((( !! ))))))) ** ", - " $$$ %%% &&& +++ ''' ((( !!! ))))))) ** ", - " $$$$ % % &&& ++++ '''' (((( !!!! ))))))))) **** ", - " &&&& ++++ ", - " !!!! ", " !! ", - " !!!! ", - " !!!! ", + " # ! ", + " ## ", + " $$ % % & ##### '' (( ! ) )))) * ", + " $ %% & + ### '' ((( !! )) ) )) ** ", + " $$ && ++ '' (( !! )) ) )) ** ", + " $ & ++++ ' ( ) ", + " & & + ", + " !! ", + " ! ", + " !! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/shieldsymbolizer-1-500-reference.json b/tests/visual_tests/grids/shieldsymbolizer-1-500-reference.json index 01b037e96..7f1f7e4a1 100644 --- a/tests/visual_tests/grids/shieldsymbolizer-1-500-reference.json +++ b/tests/visual_tests/grids/shieldsymbolizer-1-500-reference.json @@ -20,20 +20,20 @@ " ", " ", " ", - " !!! ", - " !!! ", - " !!! ", - " ### !!!! ", - " ### ", - " $$$$ %%% & #### '''' (((( !!! )))))))) *** ", - " $$ %%% &&&& +++ #### ''' ((( !!! )))))))) *** ", - " $$$ %%% &&& +++ '' (( !!! )))))))) *** ", - " $$$$ % % &&& ++++ '''' (((( !!!! ))))))))) **** ", - " &&&& ++++ ", - " !!! ", + " ", " !! ", - " !!! ", - " !! ! ", + " ! ", + " # ! ! ", + " ## ", + " $$ % % & #### ' ( ! ! ) )))) ) * * ", + " $ %% & + ## ''' ((( ! ) ) ) * ", + " $$ && ++ '' (( !! )) )))) ** ", + " $ & ++++ ) ", + " & & + ", + " ! ", + " ! ", + " !! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/shieldsymbolizer-1-501-reference.json b/tests/visual_tests/grids/shieldsymbolizer-1-501-reference.json index 083c379bd..1ce39ee72 100644 --- a/tests/visual_tests/grids/shieldsymbolizer-1-501-reference.json +++ b/tests/visual_tests/grids/shieldsymbolizer-1-501-reference.json @@ -20,20 +20,20 @@ " ", " ", " ", + " ", + " ! ", + " ! ", + " # ! ! ", + " ## ", + " $$ % % & #### ' ( !!! ) ) )) ) *** ", + " $ %% & + ## '' ( ( ! ) )) ) * ", + " $$ && + '' (( ! )) * ", + " $ && ++++ ! * ", + " & & + + ", " ! ! ", - " !!! ", - " !!! ", - " #### !!! ", - " ### ", - " $$$$ %%% & #### '''' (((( !!! )))))))) *** ", - " $$ %%% &&&& +++ #### ''' ((( !!! )))))))) *** ", - " $$$ %%% &&& +++ ''' ((( !!! )))))))) *** ", - " $$$$ % % && ++++ '''' (((( !!! ) )))) ) *** ", - " &&&& +++ ", - " !!! ", - " !!! ", - " !!! ", - " ! ! ", + " ! ", + " ! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/shieldsymbolizer-1-502-reference.json b/tests/visual_tests/grids/shieldsymbolizer-1-502-reference.json index 8ea785d53..2c1d175ff 100644 --- a/tests/visual_tests/grids/shieldsymbolizer-1-502-reference.json +++ b/tests/visual_tests/grids/shieldsymbolizer-1-502-reference.json @@ -20,20 +20,20 @@ " ", " ", " ", - " !!! ", - " !!! ", - " !!! ", - " #### !!! ", - " #### ", - " $$$$ %%% #### &&& ''' !!! (((((((( )))) ", - " $$ %%% **** +++ #### &&& '''' !!! (((((((( )) ", - " $$$ %%% *** +++ &&& ''' !!! (((((((( ))) ", - " $$$$ % % ** ++++ &&&& '''' !!! ((((((((( )))) ", - " **** +++ ", - " !!! ", - " !! ", - " !!! ", + " ", + " ! ", + " ! ", " ! ! ", + " ## ", + " $$ % % #### & & ' ' !!! ( (( ( ( ))) ", + " $ %% * + ## && ' ' ! ( ( ( ) ", + " $$ % ** ++ && '' ! (((( (( )) ", + " $ ** ++++ ! ) ", + " * +++ ", + " ! ", + " ! ", + " ! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/shieldsymbolizer-1-505-reference.json b/tests/visual_tests/grids/shieldsymbolizer-1-505-reference.json index 95be81435..068d830e0 100644 --- a/tests/visual_tests/grids/shieldsymbolizer-1-505-reference.json +++ b/tests/visual_tests/grids/shieldsymbolizer-1-505-reference.json @@ -20,20 +20,20 @@ " ", " ", " ", - " !!!! ", - " !!! ", + " ", " !! ", - " # # !!!! ", - " ### ", - " $$$$ %%% #### &&& '''' !!!! (((((((( ))) ", - " $$ %%% **** +++ ### &&& ''' !! (((((((( ))) ", - " $$$ %%% *** +++ &&& ''' !!! (((((((( ))) ", - " $$$$ %%%% ** +++++ &&&& '''' !!!! ((((((((( ))) ", - " **** +++ ", - " !!!! ", " !! ", - " !!! ", - " !!!! ", + " ! ! ", + " # ", + " $$ % % #### &&& '' ! ( (((( ( ))) ", + " $ %% * + ## && '' ! ( ( ( ) ", + " $$ %%% ** ++ && '' !! (( (((( ) ", + " $ % ** +++++ & ' ( ) ", + " * +++ ", + " ! ", + " ! ", + " !! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/shieldsymbolizer-1-510-reference.json b/tests/visual_tests/grids/shieldsymbolizer-1-510-reference.json index f1eda2204..9b92d42de 100644 --- a/tests/visual_tests/grids/shieldsymbolizer-1-510-reference.json +++ b/tests/visual_tests/grids/shieldsymbolizer-1-510-reference.json @@ -20,20 +20,20 @@ " ", " ", " ", - " !!!! ", - " !!! ", + " ", " !! ", - " #### !!!! ", - " ### ", - " $$$$ %%%% #### &&& ''' !!!! (((((((( ))) ", - " $$ %%% *** +++ #### &&& ''' !! (((((((( ))) ", - " $$$ %%% *** +++ &&& ''' !!! (((((((( ))) ", - " $$$$ %%%% *** ++++ &&& ''' !!!! (((((((( ))) ", - " *** ++++ ", - " !!!! ", " !! ", - " !!!! ", - " !!!! ", + " ! ", + " ## ", + " $ % % #### & & ''' ! ( ( (( ( ))) ", + " $$ %%% * + ## && '' ! ( (( ( ) ", + " $$ %%% * ++ & ' !! ( (( ( ) ", + " % * ++++ ' ) ", + " * * + ", + " !! ", + " ! ", + " !! ", + " ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-100-reference.json b/tests/visual_tests/grids/simple-100-reference.json index 672cc86fa..d83a2c3a0 100644 --- a/tests/visual_tests/grids/simple-100-reference.json +++ b/tests/visual_tests/grids/simple-100-reference.json @@ -18,20 +18,20 @@ " ", " ", " ", - "! ", - "!!!!!!!!!#### $$$$$$ ", - "!!!!!!!!!##### $$$$$$$ ", - " !! ! ## # $$$$ ", " ", - " %%%% %% ", - " % %%%%%%%% %%%%%%%% & '", - " %%%%%%%% %%%%%%%% ", - " %%%%%%%% %%%%%%%% ", + " !!! !!!! ", + " ! ! #### $$$$$ ", + " ", + " ", + " %% ", + " % %% %%% %% %%%% & '", + " % % % %% ", + " % % % % ", + " ", + " ", + " (( (((( ((( )))))) ", + " (((( ((( (( ", " ", - "((( ( ))) ", - "((((((((((((())))))) ", - " (((((((((((( )) ) ", - " ( ( ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-150-reference.json b/tests/visual_tests/grids/simple-150-reference.json index d44818954..241b9b231 100644 --- a/tests/visual_tests/grids/simple-150-reference.json +++ b/tests/visual_tests/grids/simple-150-reference.json @@ -18,21 +18,21 @@ " ", " ", " ", - " !! ! ## ", - "!!!!!!!!!!!$ $$ ############## %% % ", - " !!!!!!!!!!$$$$$ ############## %%%%%", - " !! ! $ # # # % ", " ", - " &&&& & ''' '' '' ", - " & &&&&&&&&&&&&&&&& ' '''''''''''''' ", - " &&&&&&&&&&&&&&&& '''''''''''''' ", - " &&&&&&&& &&&&&&& '''''''''''''' ", + " !!! !!!! # ### # # # ", + " ! !$$ $$ ### # ### %%%", + " ", + " ", + " &&& & ''' ' ", + " & & &&&&&& &&&& && ' ' ''''' ' '' ", + " & & && &&& ' ''' ' ' ", + " && & ' ' ' ", + " ", + " ", + " ( ( ) ))) )))))) ", + " ((((( ( (((( ))) ) ))) ", + " ( ((((( (( (((( ", " ", - "((( ( ( ( ))) ) ) ) ", - "(((((((((((((((((((( ))))))))))))) ", - " ((((((( ((((((((((( )))))))))))) ", - " ((((((((((((((((((( ) ))) ", - " ( ( ( ( ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-250-reference.json b/tests/visual_tests/grids/simple-250-reference.json index 5ef322152..d19402960 100644 --- a/tests/visual_tests/grids/simple-250-reference.json +++ b/tests/visual_tests/grids/simple-250-reference.json @@ -19,22 +19,22 @@ " ", " ", " ", - " !!!! ! ! ### # ## $$$$ $ $$ $ $ ", - " !!!!!!!!!!!!!!!!! #################$$$$$$$$$ $$$$$$$$$$ ", - " !!!!!!!! !!!!!!! ################ $$$$$$$$ $$$$$$$$$$%%%% ", - " !!!!!!!! !!!!!!! ######## ####### $$$$$$$$ $$$$$$$$$$%%%%% ", - " ! ! ! ### # $ $ $ $$$ % ", " ", - " &&&& && '''' ' '' ((( (( ", - " & &&&&&&&& &&&&&&&&' '''''''''''''''''( ((((((((((((((((((((", - " &&&&&&&& &&&&&&&& '''''''' ''''''' ((((((((((((((((((((", - " &&&&&&&& &&&&&&& '''''''' ''''''' ((((((((((((((((((((", + " ! ! # # # $ $ $ ", + " !!! ! ! !! ! # ### # ####### $$$$$ $$ $ $$$$ ", + " !!!!!! ! !! !! # ###### ## #### $$$$ $ $$ $$$$ $ %%%% ", + " $ ", + " ", + " && ''' ' ' ((( ( ", + " & &&&&&& &&&& && ' ' '''''' '''' '''( ( ((((( ( (((((((( ", + " & && & & && ' ' '' '' ' '' ( ((( ( ((( ( (", + " & & & & '' ' ' ( ( ( ( ( ", + " ", + " ", + " ) ) ) * * + ", + " ) ))) ) ) )))))) * *** * * *** +++++ + +++ ", + " ) ))))) )) )) )) * ****** ***** ++++ + + +++ ", " ", - " ))) ) )) *** * * ++++ + ++ ", - " )))))))))))))))))))) ********* ****** +++++++++ +++++++++", - " ))))))))))))))))))) ************** ++++++++ +++++++++", - " ))))))))))))))))))) *************** ++++++++ +++++++++", - " ))) ) ) *** * + + + ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-300-reference.json b/tests/visual_tests/grids/simple-300-reference.json index e3d08eb83..ca2f4ce27 100644 --- a/tests/visual_tests/grids/simple-300-reference.json +++ b/tests/visual_tests/grids/simple-300-reference.json @@ -19,22 +19,22 @@ " ", " ", " ", - " !!! ! ! ### # ## $$$ $ $$ $ $ ", - " !!!!!!!!!!!!!!!!! ################ $$$$$$$$$$$$$$$$$$$$%% % ", - " !!!!!!!!!!!!!!!! ####### ######## $$$$$$$ $$$$$$$$$$%%%%%%%%%", - " !!!!!!!! !!!!!!! ################ $$$$$$$$$$$$$$$$$$$%%%%%%%%", - " !!! ! # # # $ $ $ $$$ %% %", " ", - " &&& & '''' '' '' ((( ( ", - " & &&&&&&&&&&&&&&&& ' '''''''' '''''''' ( ((((((((((((((((((((% ", - " &&&&&&&&&&&&&&&& '''''''' ''''''' (((((((((((((((((((( ", - " & &&&&&& &&&&&&& '''''''' ''''''' ( (((((((((((((((((( ", + " ! ! ! # $ $ ", + " ! !!! ! !!! ! ##### #### $$$$$ $$$ $$ % %%% %%", + " ! !!!!!! ! !! !! # ##### # ## $ $$$$$ $$ $$$ $ %% % % ", + " $$ ", + " ", + " &&& & '' ' ((( ( ", + " & & &&&&& &&&& && ' '' ''' '''' ''' ( ( ((((( (((((((( ((% ", + " & && && & ' ' '' ' '' ( (( (( ((( ( ", + " &&& & & ' ' ' ' ((( ( (( ( ", + " ", + " ", + " ) ) )) * * + + ", + " ) ))) ) )) ))))))) * *** * * * + +++ + ++++ ++ ", + " ) )))))) )) ))))))) * ***** ** ** + +++++ +++ ++ ", " ", - " ))) ) ))) *** * ** +++ + + ", - " )))))))))))))))))))) *************** ++++++++++++++++++ ", - " ))))))))))))))))))) ************** +++++++++++++++++ ", - " )))))))) )))))))))) ************** +++++++++++++++++ ", - " ))) ) ) *** * +++ ++ ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-400-reference.json b/tests/visual_tests/grids/simple-400-reference.json index f7b867997..ecb27515b 100644 --- a/tests/visual_tests/grids/simple-400-reference.json +++ b/tests/visual_tests/grids/simple-400-reference.json @@ -19,22 +19,22 @@ " ", " ", " ", - " !!! ! ! ### # ## $$$ $ $$ %%%% % %% % % ", - " !!!!!!!!!!!!!!!!! ################### $$$$$$$$$$$$$$$ %%%%%%%%% %%%%%%%%%% &&& ", - " !!!!!!!!!!!!!!!! ######## ######## $$$$$$$ $$$$$$ %%%%%%%% %%%%%%%%%% &&&&&&&&&&", - " !!!!!!!!!!!!!!!! ################# $$$$$$$$$$$$$$ %%%%%%%% %%%%%%%%%% &&&&&&&&&", - " ! ! ! # # # # $ $ $ % % % %%% & ", " ", - " '''' ' ", - " ' '''''''' ''''''' ( # ) $ * % + & ", - " '''''''''''''''' ", - " '''''''' ''''''' ", + " ! ! # $ % ", + " ! !!! ! !!!! ! ##### #### $$$$$ $ $ %% % %% % %% && &&&& &", + " ! !!!!! !! !!! ##### # ##### $ $$$$$ $$ $ %%%% % %% %%% % &&&& &&& ", + " % ", + " ", + " ''' ' ", + " ' '''''' '''' '' ( # ) $ * % + & ", + " ' '' ' ' ", + " ' ' ' '' ", + " ", + " ", + " ( ( ) ) ) * + ", + " ((((( ( (( (((( ) ))) ) )))))) ***** ********* +++ + + +++ ", + " (((( ( (( (( (((( ) ))))) )) ))) * ***** ** *** *** ++++++ + +++ ", " ", - " (((( ( ((( ))) ) )) *** * ++++ + ++ ", - " ((((((((( (((((((((( ))))))))))))))))) *********************+++++++++ ++++++++ ", - " (((((((( ((((((((((( )))))))))))))))) ******* ************ ++++++++ +++++++++ ", - " (((((((( ((((((((((( )))))))))))))))) ******************** ++++++++ +++++++++ ", - " ( ( ( ( ))) ) * * * * * + + + ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-600-reference.json b/tests/visual_tests/grids/simple-600-reference.json index 8adf03a35..a7035063f 100644 --- a/tests/visual_tests/grids/simple-600-reference.json +++ b/tests/visual_tests/grids/simple-600-reference.json @@ -19,22 +19,22 @@ " ", " ", " ", - "!!! ! ### # ## $$$$ $ $$$ %%%% % &&& & & ", - "!!!!!!!! !!!!!!! #################### $$$$$$$$$ $$$ $$$ %%%%%%%%% %%%%%%%%%%% &&&&&&&&&&&&&&&&&& ", - "!!!!!!!! !!!!!!!! ################### $$$$$$$$ $$$$$$$ %%%%%%%%%%%%%%%%%%%% &&&&&&& &&&&&&&&& ", - "!!!!!!!! !!!!!!!! ################### $$$$$$$$ $$$$$$$ %%%%%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&&& ", - " ! ! ! ! # # # # $ $ $$ % % % % % & & & ", + " ", + " ! # # # $ % & ", + " !!!!! ! ! !!! # ### # # ##### $$ $ $ $$ %%% % % %%% %%%%% &&&&& &&& &&& ", + " !!!! ! !!! !!! # ##### ## ##### $$$$ $ $ $ $$ %%%%%% %%%% % %% % & &&&&& &&& && ", + " ", " ", " ", " ! ' # ( $ ) % * & + ", " ", " ", " ", - " '''' ' ' ((( ( (( )))) ) ) *** * * ** * +++ + + ", - " ''''''''' ''''''' (((((((((((((((((( ))))))))) )))))) ********* ********** +++++++++++++++", - " '''''''' '''''''' ((((((((((((((((( )))))))))))))) ******************* +++++++ ++++++", - " '''''''' '''''''' (((((((( ((((((( ))))))))))))))) ******************* ++++++++++++++", - " ' ' ' ((( ( ( ) ) ) *** ** *** + + + ", + " ", + " ' ' ( ( ( ) * * * + ", + " ''''' ' '''' ( ((( ( (( ( (( ))) ) ) ))) * *** * **** ** +++++ +++ ", + " '''' ' '''' '' ( (((((( ((( ((( )))))) ))))) * ***** ***** ** + +++++ ++++ ", + " ** ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-800-reference.json b/tests/visual_tests/grids/simple-800-reference.json index e8a4bbce7..93d781345 100644 --- a/tests/visual_tests/grids/simple-800-reference.json +++ b/tests/visual_tests/grids/simple-800-reference.json @@ -19,11 +19,11 @@ " ", " ", " ", - " !!! ! ### # # $$$$ $ $$$ %%% % %% &&& & && ''' ' '' ((( ( )))) ) )) ) ) **** * ** ++++ + + ", - " !!!!!!!!!!!!!!!!! ################# $$$$$$$$$ $$$$$$$$$$ %%%%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&&& ''''''''''''''' (((((((((((((((((((())))))))) )))))))))) ********* ******** ++++++++++++++++ ", - " !!!!!!!!!!!!!!!! ################ $$$$$$$$ $$$$$$$$$$$ %%%%%%%% %%%%%%%% &&&&&&&&&&&&&&&& ''''''' '''''' ((((((( (((((((((((()))))))) )))))))))) ******** ********* ++++++++ ++++++ ", - " !!!!!!!!!!!!!!!! ################ $$$$$$$$ $$$$$$$$$$$ %%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&& '''''''''''''' (((((((((((((((((((()))))))) )))))))))) ******** ********* ++++++++ ++++++ ", - " ! ! ! ! # # # $ $ $ $ % % % % &&& & ' ' ' ( ( ( ( ( ) ) ) ))) * * * + + + ", + " ", + " ! ! # # $ $ % & & & ' ( ) * + + ", + " ! !!! ! !!!!!! # ### # #### # $$$$$ $ $$ $$$$ %%%%% %%%% & &&& & &&&&&& ''''' ' ' ((((( ((((((((( )) ) )) ) )) *** * * *** +++ + ++++++ ", + " ! !!!!! !!!!!!! # ##### ## ### $$$$ $ $$ $$ $$$$ %%%%% % %%%%% & &&&&& && &&& ' ''''' '' ' ( ((((( (( ((( ((( )))) ) )) ))) ) ****** * *** ++++++ + ++ + ", + " ) ", " ", " ", " ! # $ % & ' ( ) * + ", diff --git a/tests/visual_tests/grids/simple-E-500-reference.json b/tests/visual_tests/grids/simple-E-500-reference.json index 9c75e93cb..3c9040863 100644 --- a/tests/visual_tests/grids/simple-E-500-reference.json +++ b/tests/visual_tests/grids/simple-E-500-reference.json @@ -16,10 +16,10 @@ " ", " ", " ", - " !!!! !! !!! ", - " ! !!!!!!!!!!!!!!!! ", - " !!!!!!! !!!!!!!! ", - " !!!!!!!!!!!!!!!! ", + " !!! ! ", + " ! ! !!!!! !! !!! ", + " !! !! !!! ", + " ! ! ! ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-N-500-reference.json b/tests/visual_tests/grids/simple-N-500-reference.json index eaff04754..3be2fd058 100644 --- a/tests/visual_tests/grids/simple-N-500-reference.json +++ b/tests/visual_tests/grids/simple-N-500-reference.json @@ -12,10 +12,10 @@ " ", " ", " ", - " !!!! ! !! ", - " !!!!!!!!!!!!!!!! ", - " !!!!!!!! !!!!!!! ", - " !!!!!!!! !!!!!!! ", + " !!! ! !! ", + " !!!!!! !!! !! ", + " ! !! !! !! ", + " ! ! ! ", " ", " ! ", " ", diff --git a/tests/visual_tests/grids/simple-NE-500-reference.json b/tests/visual_tests/grids/simple-NE-500-reference.json index 1451527ce..07252b16e 100644 --- a/tests/visual_tests/grids/simple-NE-500-reference.json +++ b/tests/visual_tests/grids/simple-NE-500-reference.json @@ -12,10 +12,10 @@ " ", " ", " ", - " !!!! !! !!! ", - " !!!!!!!!!!!!!!!! ", - " !!!!!!! !!!!!!!! ", - " !!!!!!!!!!!!!!!! ", + " !!! ! ", + " ! !!!!! !! !!! ", + " !! !! !!! ", + " ! ! ! ", " ", " ! ", " ", diff --git a/tests/visual_tests/grids/simple-NW-500-reference.json b/tests/visual_tests/grids/simple-NW-500-reference.json index d67ce818c..76932fa7b 100644 --- a/tests/visual_tests/grids/simple-NW-500-reference.json +++ b/tests/visual_tests/grids/simple-NW-500-reference.json @@ -12,10 +12,10 @@ " ", " ", " ", - " !!!! !! !!! ", - " !!!!!!!!!!!!!!!! ", - " !!!!!!! !!!!!!!! ", - " !!!!!!!!!!!!!!!! ", + " !!! ! ", + " ! !!!!! !! !!! ", + " !! !! !!! ", + " ! ! ! ", " ", " ! ", " ", diff --git a/tests/visual_tests/grids/simple-S-500-reference.json b/tests/visual_tests/grids/simple-S-500-reference.json index b33943023..40a5c0528 100644 --- a/tests/visual_tests/grids/simple-S-500-reference.json +++ b/tests/visual_tests/grids/simple-S-500-reference.json @@ -20,10 +20,10 @@ " ! ", " ", " ", - " !!!! ! !! ", - " !!!!!!!!!!!!!!!! ", - " !!!!!!!! !!!!!!! ", - " !!!!!!!! !!!!!!! ", + " !!! ! !! ", + " !!!!!! !!! !! ", + " ! !! !! !! ", + " ! ! ! ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-SE-500-reference.json b/tests/visual_tests/grids/simple-SE-500-reference.json index 012be0ddb..488195401 100644 --- a/tests/visual_tests/grids/simple-SE-500-reference.json +++ b/tests/visual_tests/grids/simple-SE-500-reference.json @@ -20,10 +20,10 @@ " ! ", " ", " ", - " !!!! !! !!! ", - " !!!!!!!!!!!!!!!! ", - " !!!!!!! !!!!!!!! ", - " !!!!!!!!!!!!!!!! ", + " !!! ! ", + " ! !!!!! !! !!! ", + " !! !! !!! ", + " ! ! ! ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-SW-500-reference.json b/tests/visual_tests/grids/simple-SW-500-reference.json index b9d90f7a5..5de510272 100644 --- a/tests/visual_tests/grids/simple-SW-500-reference.json +++ b/tests/visual_tests/grids/simple-SW-500-reference.json @@ -20,10 +20,10 @@ " ! ", " ", " ", - " !!!! !! !!! ", - " !!!!!!!!!!!!!!!! ", - " !!!!!!! !!!!!!!! ", - " !!!!!!!!!!!!!!!! ", + " !!! ! ", + " ! !!!!! !! !!! ", + " !! !! !!! ", + " ! ! ! ", " ", " ", " ", diff --git a/tests/visual_tests/grids/simple-W-500-reference.json b/tests/visual_tests/grids/simple-W-500-reference.json index c5d0cf326..b60edd1a6 100644 --- a/tests/visual_tests/grids/simple-W-500-reference.json +++ b/tests/visual_tests/grids/simple-W-500-reference.json @@ -16,10 +16,10 @@ " ", " ", " ", - " !!!! !! !!! ", - " !!!!!!!!!!!!!!!! ! ", - " !!!!!!! !!!!!!!! ", - " !!!!!!!!!!!!!!!! ", + " !!! ! ", + " ! !!!!! !! !!! ! ", + " !! !! !!! ", + " ! ! ! ", " ", " ", " ", diff --git a/tests/visual_tests/test.py b/tests/visual_tests/test.py index 56ca305ce..664ba828a 100755 --- a/tests/visual_tests/test.py +++ b/tests/visual_tests/test.py @@ -52,6 +52,7 @@ files = [ {'name': "marker-on-hex-grid", 'sizes':[(600,400),(400,600),(257,256)]}, {'name': "whole-centroid", 'sizes':[(600,400)], 'bbox': mapnik.Box2d(736908, 4390316, 2060771, 5942346)}, + {'name': "text-halo-rasterizer", 'sizes':[(600,400)]}, {'name': "simple-E", 'bbox':mapnik.Box2d(-0.05, -0.01, 0.95, 0.01)}, {'name': "simple-NE",'bbox':default_text_box}, {'name': "simple-NW",'bbox':default_text_box}, @@ -132,8 +133,8 @@ def render(config, width, height, bbox, quiet=False, overwrite_failures=False): # generate it on the fly fail(actual_agg,expected,None) else: - diff = compare(actual_agg, expected, threshold=1, alpha=True) threshold = 0 + diff = compare(actual_agg, expected, threshold=0, alpha=True) if overwrite_failures and diff > threshold: fail(actual_agg,expected,None) else: @@ -182,7 +183,7 @@ def render(config, width, height, bbox, quiet=False, overwrite_failures=False): # generate it on the fly fail(actual_grid,expected_grid,None) else: - threshold = 1 + threshold = 0 diff = compare_grids(actual_grid, expected_grid, threshold=threshold, alpha=False) if overwrite_failures and diff > threshold: fail(actual_grid,expected_grid,None)