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 dc6f987e5..f58bb33ed 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 948aa5ae0..01d83aded 100644 --- a/include/mapnik/font_engine_freetype.hpp +++ b/include/mapnik/font_engine_freetype.hpp @@ -27,7 +27,9 @@ #include #include #include +#include #include +#include // freetype2 extern "C" @@ -118,7 +120,7 @@ public: face_set_ptr get_face_set(std::string const& name, boost::optional fset); - stroker_ptr get_stroker() { return stroker_; } + inline stroker_ptr get_stroker() { return stroker_; } private: font_engine_type & engine_; diff --git a/include/mapnik/text/renderer.hpp b/include/mapnik/text/renderer.hpp index 51166479f..cde65d2f0 100644 --- a/include/mapnik/text/renderer.hpp +++ b/include/mapnik/text/renderer.hpp @@ -4,6 +4,9 @@ //mapnik #include #include +#include +//TODO: Find a better place for halo_rasterizer_e! +//TODO: Halo rasterizer selection should go to text_properties because it might make sense to use a different rasterizer for different fonts //boost #include @@ -24,7 +27,7 @@ namespace mapnik class text_renderer : private boost::noncopyable { public: - text_renderer (stroker &stroker, composite_mode_e comp_op = src_over, double scale_factor=1.0); + text_renderer (halo_rasterizer_e rasterizer, composite_mode_e comp_op = src_over, double scale_factor=1.0, stroker_ptr stroker=stroker_ptr()); protected: struct glyph_t : boost::noncopyable { @@ -40,10 +43,12 @@ protected: void prepare_glyphs(glyph_positions_ptr pos); + halo_rasterizer_e rasterizer_; composite_mode_e comp_op_; double scale_factor_; boost::ptr_vector glyphs_; - stroker & stroker_; + stroker_ptr stroker_; + }; template @@ -51,11 +56,14 @@ class agg_text_renderer : public text_renderer { public: typedef T pixmap_type; - agg_text_renderer (pixmap_type & pixmap, stroker &stroker, - composite_mode_e comp_op = src_over, double scale_factor=1.0); + agg_text_renderer (pixmap_type & pixmap, halo_rasterizer_e rasterizer, + composite_mode_e comp_op = src_over, + double scale_factor=1.0, + stroker_ptr stroker=stroker_ptr()); void render(glyph_positions_ptr pos); private: pixmap_type & pixmap_; + void render_halo(FT_Bitmap *bitmap, unsigned rgba, int x, int y, int halo_radius, double opacity); }; template @@ -63,12 +71,12 @@ class grid_text_renderer : public text_renderer { public: typedef T pixmap_type; - grid_text_renderer (pixmap_type & pixmap, stroker &stroker, - composite_mode_e comp_op = src_over, double scale_factor=1.0); - void render(glyph_positions_ptr pos, int feature_id, double min_radius=1.0); + grid_text_renderer (pixmap_type & pixmap, composite_mode_e comp_op = src_over, + double scale_factor=1.0); + void render(glyph_positions_ptr pos, value_integer feature_id); private: pixmap_type & pixmap_; - void render_bitmap_id(FT_Bitmap *bitmap, int feature_id, int x, int y); + void render_halo_id(FT_Bitmap *bitmap, mapnik::value_integer feature_id, int x, int y, int halo_radius); }; } diff --git a/include/mapnik/text_symbolizer.hpp b/include/mapnik/text_symbolizer.hpp index b8b3be624..ab090636c 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 9c5a64b8d..adc72def6 100644 --- a/src/agg/process_shield_symbolizer.cpp +++ b/src/agg/process_shield_symbolizer.cpp @@ -41,7 +41,7 @@ void agg_renderer::process(shield_symbolizer const& sym, t_, font_manager_, *detector_, query_extent_); - agg_text_renderer ren(*current_buffer_, *(font_manager_.get_stroker()), sym.comp_op(), scale_factor_); + agg_text_renderer ren(*current_buffer_, sym.get_halo_rasterizer(), sym.comp_op(), scale_factor_, font_manager_.get_stroker()); placements_list const& placements = helper.get(); BOOST_FOREACH(glyph_positions_ptr glyphs, placements) diff --git a/src/agg/process_text_symbolizer.cpp b/src/agg/process_text_symbolizer.cpp index df9761e1a..7b126ae80 100644 --- a/src/agg/process_text_symbolizer.cpp +++ b/src/agg/process_text_symbolizer.cpp @@ -42,7 +42,7 @@ void agg_renderer::process(text_symbolizer const& sym, t_, font_manager_, *detector_, query_extent_); - agg_text_renderer ren(*current_buffer_, *(font_manager_.get_stroker()), sym.comp_op(), scale_factor_); + agg_text_renderer ren(*current_buffer_, sym.get_halo_rasterizer(), sym.comp_op(), scale_factor_, font_manager_.get_stroker()); placements_list const& placements = helper.get(); BOOST_FOREACH(glyph_positions_ptr glyphs, placements) diff --git a/src/grid/process_shield_symbolizer.cpp b/src/grid/process_shield_symbolizer.cpp index 956db413f..d2bb1facc 100644 --- a/src/grid/process_shield_symbolizer.cpp +++ b/src/grid/process_shield_symbolizer.cpp @@ -48,7 +48,7 @@ void grid_renderer::process(shield_symbolizer const& sym, t_, font_manager_, *detector_, query_extent_); - grid_text_renderer ren(pixmap_, *(font_manager_.get_stroker()), sym.comp_op(), scale_factor_); + grid_text_renderer ren(pixmap_, sym.comp_op(), scale_factor_); placements_list const& placements = helper.get(); if (!placements.size()) return; @@ -60,7 +60,7 @@ void grid_renderer::process(shield_symbolizer const& sym, *(glyphs->marker()->marker), glyphs->marker()->transform, sym.get_opacity(), sym.comp_op()); - ren.render(glyphs, feature.id(), 2); + ren.render(glyphs, feature.id()); } pixmap_.add_feature(feature); } diff --git a/src/grid/process_text_symbolizer.cpp b/src/grid/process_text_symbolizer.cpp index e8fcb72fb..f8d50c607 100644 --- a/src/grid/process_text_symbolizer.cpp +++ b/src/grid/process_text_symbolizer.cpp @@ -41,13 +41,13 @@ void grid_renderer::process(text_symbolizer const& sym, t_, font_manager_, *detector_, query_extent_); - grid_text_renderer ren(pixmap_, *(font_manager_.get_stroker()), sym.comp_op(), scale_factor_); + grid_text_renderer ren(pixmap_, sym.comp_op(), scale_factor_); placements_list const& placements = helper.get(); if (!placements.size()) return; BOOST_FOREACH(glyph_positions_ptr glyphs, placements) { - ren.render(glyphs, feature.id(), 2); + ren.render(glyphs, feature.id()); } pixmap_.add_feature(feature); } diff --git a/src/load_map.cpp b/src/load_map.cpp index 18ea89ad3..36fca224d 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 d79e5b497..0fdcc9674 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/renderer.cpp b/src/text/renderer.cpp index 7e41712fa..5a2a56771 100644 --- a/src/text/renderer.cpp +++ b/src/text/renderer.cpp @@ -7,8 +7,9 @@ namespace mapnik { -text_renderer::text_renderer (stroker &stroker, composite_mode_e comp_op, double scale_factor) - : comp_op_(comp_op), +text_renderer::text_renderer (halo_rasterizer_e rasterizer, composite_mode_e comp_op, double scale_factor, stroker_ptr stroker) + : rasterizer_(rasterizer), + comp_op_(comp_op), scale_factor_(scale_factor), stroker_(stroker) {} @@ -74,9 +75,12 @@ void composite_bitmap(T & pixmap, FT_Bitmap *bitmap, unsigned rgba, int x, int y } template -agg_text_renderer::agg_text_renderer (pixmap_type & pixmap, stroker &stroker, - composite_mode_e comp_op, double scale_factor) - : text_renderer(stroker, comp_op, scale_factor), pixmap_(pixmap) +agg_text_renderer::agg_text_renderer (pixmap_type & pixmap, + halo_rasterizer_e rasterizer, + composite_mode_e comp_op, + double scale_factor, + stroker_ptr stroker) + : text_renderer(rasterizer, comp_op, scale_factor, stroker), pixmap_(pixmap) { } @@ -107,26 +111,46 @@ void agg_text_renderer::render(glyph_positions_ptr pos) halo_radius = itr->properties->halo_radius; //make sure we've got reasonable values. if (halo_radius <= 0.0 || halo_radius > 1024.0) break; - stroker_.init(halo_radius); + 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) + FT_Glyph_Transform(g,0,&start); + if (rasterizer_ == HALO_RASTERIZER_FULL) { - FT_BitmapGlyph bit = (FT_BitmapGlyph)g; - composite_bitmap(pixmap_, &bit->bitmap, format->halo_fill.rgba(), - bit->left, - height - bit->top, - format->text_opacity, - comp_op_); + FT_Glyph_Stroke(&g, stroker_->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, + format->halo_fill.rgba(), + bit->left, + height - bit->top, + format->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(&bit->bitmap, + format->halo_fill.rgba(), + bit->left, + height - bit->top, + halo_radius, + format->text_opacity); + } } } FT_Done_Glyph(g); + } //render actual text @@ -155,7 +179,7 @@ void agg_text_renderer::render(glyph_positions_ptr pos) template -void grid_text_renderer::render(glyph_positions_ptr pos, int feature_id, double min_radius) +void grid_text_renderer::render(glyph_positions_ptr pos, value_integer feature_id) { FT_Error error; FT_Vector start; @@ -166,32 +190,43 @@ void grid_text_renderer::render(glyph_positions_ptr pos, int feature_id, doub // now render transformed glyphs typename boost::ptr_vector::iterator itr, end = glyphs_.end(); + double halo_radius = 0.; for (itr = glyphs_.begin(); itr != end; ++itr) { - stroker_.init(std::max(itr->properties->halo_radius, min_radius)); + if (itr->properties) + { + halo_radius = itr->properties->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); - //error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_MONO,0,1); + FT_Glyph_Transform(g, 0, &start); + error = FT_Glyph_To_Bitmap(&g, FT_RENDER_MODE_NORMAL, 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(&bit->bitmap, + feature_id, + bit->left, + height - bit->top, + halo_radius); } } FT_Done_Glyph(g); } } + template -void grid_text_renderer::render_bitmap_id(FT_Bitmap *bitmap, int feature_id, int x, int y) +void agg_text_renderer::render_halo( + 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; @@ -201,21 +236,49 @@ void grid_text_renderer::render_bitmap_id(FT_Bitmap *bitmap, int feature_id, { for (j=y,q=0;jbuffer[q*bitmap->width+p]; + int gray = bitmap->buffer[q*bitmap->width+p]; if (gray) { - pixmap_.setPixel(i,j,feature_id); - //pixmap_.blendPixel2(i,j,rgba,gray,opacity_); + 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 -grid_text_renderer::grid_text_renderer(grid_text_renderer::pixmap_type &pixmap, - stroker &stroker, composite_mode_e comp_op, +void grid_text_renderer::render_halo_id( + 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 +grid_text_renderer::grid_text_renderer(pixmap_type &pixmap, + composite_mode_e comp_op, double scale_factor) : - text_renderer(stroker, comp_op, scale_factor), pixmap_(pixmap) + text_renderer(HALO_RASTERIZER_FAST, comp_op, scale_factor), pixmap_(pixmap) { } diff --git a/src/text_symbolizer.cpp b/src/text_symbolizer.cpp index 58f53baf7..95735af6e 100644 --- a/src/text_symbolizer.cpp +++ b/src/text_symbolizer.cpp @@ -34,9 +34,19 @@ namespace mapnik { +static const char * halo_rasterizer_strings[] = { + "full", + "fast", + "" +}; + +IMPLEMENT_ENUM( halo_rasterizer_e, halo_rasterizer_strings ) + + text_symbolizer::text_symbolizer(text_placements_ptr placements) : symbolizer_base(), - placement_options_(placements) + placement_options_(placements), + halo_rasterizer_(HALO_RASTERIZER_FULL) { } @@ -45,7 +55,8 @@ text_symbolizer::text_symbolizer(expression_ptr name, std::string const& face_na double 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); @@ -56,7 +67,8 @@ text_symbolizer::text_symbolizer(expression_ptr name, std::string const& face_na text_symbolizer::text_symbolizer(expression_ptr name, double 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); @@ -65,7 +77,9 @@ text_symbolizer::text_symbolizer(expression_ptr name, double size, color const& 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! */ { } @@ -74,9 +88,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; } @@ -282,6 +294,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 5c7cf7a98..cf15cbc6b 100644 --- a/src/xml_tree.cpp +++ b/src/xml_tree.cpp @@ -401,6 +401,7 @@ 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(text_upright_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 6a630d1d8..fda5fe04e 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 1c78f37e3..1054ac084 100755 --- a/tests/visual_tests/test.py +++ b/tests/visual_tests/test.py @@ -16,7 +16,8 @@ except ImportError: visual_output_dir = "/tmp/mapnik-visual-images" defaults = { - 'sizes': [(500, 100)] + 'sizes': [(500, 100)], + 'scales':[1.0,2.0] } sizes_many_in_big_range = [(800, 100), (600, 100), (400, 100), @@ -36,14 +37,12 @@ files = [ {'name': "lines-1", 'sizes': sizes_few_square,'bbox':default_text_box}, {'name': "lines-2", 'sizes': sizes_few_square,'bbox':default_text_box}, {'name': "lines-3", 'sizes': sizes_few_square,'bbox':default_text_box}, - {'name': "lines-4", 'sizes': sizes_few_square,'bbox':default_text_box}, - {'name': "lines-5", 'sizes': sizes_few_square,'bbox':default_text_box}, - {'name': "lines-6", 'sizes': sizes_few_square,'bbox':default_text_box}, # https://github.com/mapnik/mapnik/issues/1696 # https://github.com/mapnik/mapnik/issues/1521 # fails with clang++ on os x #{'name': "lines-shield", 'sizes': sizes_few_square,'bbox':default_text_box}, {'name': "collision", 'sizes':[(600,400)]}, + {'name': "marker-svg-opacity"}, {'name': "marker-multi-policy", 'sizes':[(600,400)]}, {'name': "marker-on-line", 'sizes':[(600,400)], 'bbox': mapnik.Box2d(-10, 0, 15, 20)}, @@ -55,6 +54,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}, @@ -67,7 +67,6 @@ files = [ {'name': "formatting-2",'bbox':default_text_box}, {'name': "formatting-3",'bbox':default_text_box}, {'name': "formatting-4",'bbox':default_text_box}, - {'name': "formatting", 'bbox':default_text_box}, {'name': "expressionformat",'bbox':default_text_box}, {'name': "shieldsymbolizer-1", 'sizes': sizes_many_in_small_range,'bbox':default_text_box}, {'name': "rtl-point", 'sizes': [(200, 200)],'bbox':default_text_box}, @@ -94,13 +93,6 @@ files = [ #{'name': "tiff-alpha-broken-assoc-alpha-raster", 'sizes':[(600,400)]}, #{'name': "tiff-nodata-edge-raster", 'sizes':[(600,400)]}, #{'name': "tiff-opaque-edge-raster", 'sizes':[(256,256)]}, - {'name': "shieldsymbolizer-2"}, - {'name': "shieldsymbolizer-3"}, - {'name': "shieldsymbolizer-4"}, - {'name': "orientation", 'sizes': [(800, 200)]}, - {'name': "hb-fontsets", 'sizes': [(800, 200)]}, - {'name': "charspacing", 'sizes': [(200, 400)]}, - {'name': "line_break", 'sizes': [(800, 800)]}, ] def report(diff,threshold,quiet=False): @@ -115,14 +107,15 @@ def report(diff,threshold,quiet=False): else: print '\x1b[32m✓\x1b[0m' -def render(config, width, height, bbox, quiet=False, overwrite_failures=False): +def render(config, width, height, bbox, scale_factor, quiet=False, overwrite_failures=False): filename = config['name'] m = mapnik.Map(width, height) + postfix = "%s-%d-%d-%s" % (filename,width,height,scale_factor) ## AGG rendering if config.get('agg',True): - expected = os.path.join(dirname, "images", '%s-%d-reference.png' % (filename, width)) - actual = '%s-%d' % (filename, width) + expected_agg = os.path.join(dirname, "images", postfix + '-agg-reference.png') + actual_agg = os.path.join(visual_output_dir, '%s-agg.png' % postfix) try: mapnik.load_map(m, os.path.join(dirname, "styles", "%s.xml" % filename), False) if bbox is not None: @@ -131,38 +124,39 @@ def render(config, width, height, bbox, quiet=False, overwrite_failures=False): m.zoom_all() except Exception, e: sys.stderr.write(e.message + '\n') - fail(actual,expected,str(e.message)) + fail(actual_agg,expected_agg,str(e.message)) return - actual_agg = os.path.join(visual_output_dir, '%s-agg.png' % actual) if not quiet: - print "\"%s\" with size %dx%d with agg..." % (filename, width, height), - + print "\"%s\" with agg..." % (postfix), try: - mapnik.render_to_file(m, actual_agg) - if not os.path.exists(expected): + mapnik.render_to_file(m, actual_agg, 'png8:m=h', scale_factor) + if not os.path.exists(expected_agg): # generate it on the fly - fail(actual_agg,expected,None) + fail(actual_agg,expected_agg,None) else: - diff = compare(actual_agg, expected, threshold=1, alpha=True) threshold = 0 + diff = compare(actual_agg, expected_agg, threshold=0, alpha=True) if overwrite_failures and diff > threshold: - fail(actual_agg,expected,None) + fail(actual_agg,expected_agg,None) else: report(diff,threshold,quiet) except Exception, e: sys.stderr.write(e.message + '\n') - fail(actual_agg,expected,str(e.message)) + fail(actual_agg,expected_agg,str(e.message)) ### TODO - set up tests to compare agg and cairo png output ### Cairo rendering if config.get('cairo',True): - expected_cairo = os.path.join(dirname, "images", '%s-%d-reference-cairo.png' % (filename, width)) - actual_cairo = os.path.join(visual_output_dir, '%s-cairo.png' % actual) + expected_cairo = os.path.join(dirname, "images", postfix + '-cairo-reference.png') + actual_cairo = os.path.join(visual_output_dir, '%s-cairo.png' % postfix) if not quiet: - print "\"%s\" with size %dx%d with cairo..." % (filename, width, height), + print "\"%s\" with cairo..." % (postfix), try: - mapnik.render_to_file(m, actual_cairo,'ARGB32') + mapnik.render_to_file(m, actual_cairo,'ARGB32', scale_factor) + # open and re-save as png8 to save space + new_im = mapnik.Image.open(actual_cairo) + new_im.save(actual_cairo,'png8:m=h') if not os.path.exists(expected_cairo): # generate it on the fly fail(actual_cairo,expected_cairo,None) @@ -179,21 +173,22 @@ def render(config, width, height, bbox, quiet=False, overwrite_failures=False): fail(actual_cairo,expected_cairo,str(e.message)) ## Grid rendering - if config.get('grid',True): - expected_grid = os.path.join(dirname, "grids", '%s-%d-reference.json' % (filename, width)) - actual_grid = os.path.join(visual_output_dir, '%s-grid.json' % actual) + # TODO - grid renderer does not support scale_factor yet via python + if scale_factor == 1.0 and config.get('grid',True): + expected_grid = os.path.join(dirname, "grids", postfix + '-grid-reference.json') + actual_grid = os.path.join(visual_output_dir, '%s-grid.json' % postfix) if not quiet: - print "\"%s\" with size %dx%d with grid..." % (filename, width, height), + print "\"%s\" with grid..." % (postfix), try: grid = mapnik.Grid(m.width,m.height) mapnik.render_layer(m,grid,layer=0) utf1 = grid.encode('utf',resolution=4) - open(actual_grid,'wb').write(json.dumps(utf1,indent=2)) + open(actual_grid,'wb').write(json.dumps(utf1,indent=1)) if not os.path.exists(expected_grid): # 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) @@ -201,7 +196,7 @@ def render(config, width, height, bbox, quiet=False, overwrite_failures=False): report(diff,threshold,quiet) except Exception, e: sys.stderr.write(e.message + '\n') - fail(actual_grid,expected,str(e.message)) + fail(actual_grid,expected_grid,str(e.message)) return m if __name__ == "__main__": @@ -217,26 +212,29 @@ if __name__ == "__main__": else: overwrite_failures = False + if len(sys.argv) == 2: + files = [{"name": sys.argv[1], "sizes": sizes_few_square}] elif len(sys.argv) > 2: files = [] - if sys.argv[1] == "-s": - name = sys.argv[2] - for f in files: - if f['name'] == name: - active.append(f) - else: - for name in sys.argv[1:]: - active.append({"name": name}) + for name in sys.argv[1:]: + files.append({"name": name}) if not os.path.exists(visual_output_dir): os.makedirs(visual_output_dir) if 'osm' in mapnik.DatasourceCache.plugin_names(): - for f in active: + for f in files: config = dict(defaults) config.update(f) for size in config['sizes']: - m = render(config, size[0], size[1], config.get('bbox'), quiet=quiet, overwrite_failures=overwrite_failures) + for scale_factor in config['scales']: + m = render(config, + size[0], + size[1], + config.get('bbox'), + scale_factor, + quiet=quiet, + overwrite_failures=overwrite_failures) mapnik.save_map(m, os.path.join(dirname, 'xml_output', "%s-out.xml" % config['name'])) summary(generate=True)