From a47019ac7bb5ddf393da1497f4d68d6c4b4e711f Mon Sep 17 00:00:00 2001 From: Hermann Kraus Date: Sun, 5 Feb 2012 16:29:27 +0100 Subject: [PATCH] Better tests. Reference images. --- .../visual_tests/python-MyText-reference.png | Bin 0 -> 3907 bytes .../python-TextNode-reference.png | Bin 0 -> 2964 bytes tests/visual_tests/test_python.py | 25 +++++++++++------- 3 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 tests/visual_tests/python-MyText-reference.png create mode 100644 tests/visual_tests/python-TextNode-reference.png diff --git a/tests/visual_tests/python-MyText-reference.png b/tests/visual_tests/python-MyText-reference.png new file mode 100644 index 0000000000000000000000000000000000000000..836393a24f699b0dd52ea2f44a0920b20bc9b146 GIT binary patch literal 3907 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 Dsg;>R literal 0 HcmV?d00001 diff --git a/tests/visual_tests/python-TextNode-reference.png b/tests/visual_tests/python-TextNode-reference.png new file mode 100644 index 0000000000000000000000000000000000000000..caad4208acd252625d2bc5a05a3e4ce81a8cfe9d GIT binary patch literal 2964 zcmeHJ`!^fd77m@3Qf+Tt(|XnPJ$+!*pp~NfGPGhSf+C?0ltzgp9VA|ND6Oc`Mvc)_ zjg|z_AtFM;Xr)GoN61AUNB>703*-uF8Bcex^Nfj#sZy?YGAhQp#Ue#T*U3{nA8Ym=_pW6+E$h|IN~; zd1I2~NfgwEJI)f@Y?P?aOs#AxeikJ`&#*S0osPmZ1R3dR@4f19tW8I|#++~01pvOe z^nd<~0=Rqa1mB7-BT{39An7xRNo`-$JoSxl`HX;;aNR&wl@tFnj)mFk9KXdWg?+}8 zI;VBvHvqud-}V2@de?v0z#zz@U@t<%C2g=p{M4ij8o;S2_Obqul#OkyNUQ79oT1Q%3 zLP10=1565+e0<-jS&!TSNT`0pBO}FQ|6E{<&P<-&HRZ?>rfrB{`r!8}F`Ttq4u5^* z07YNKsh+}Ytgo2k=AkE%i$P8)ia7l0MZID$1U+nI<;t@TZ~fhiH_u z_$b#`8RpyW<1wo4G>~Z6)EhyNiYY>caX;1)$a`0KV7;VpO)CYRM7c9Q)Ai7F$|kgV z=O~OLBLu0{Qic>p6FV~2h$Om!7)XAds+6&Wb8zQt+ti>*s7p3uLzBX#q2gEG9Vlon zv5#sIk5g!EDJv>Qw|`O;cS=LVo_9>QNNA{3ANaaNcM74Ct#|=S_mtEZw5-5J8i+w4Mad|DUS-DiU0N;*_tZ!3@yUR_XO_b zbPu#=Y~t^Rq`p6bMANnYmgHDrKH>*ZT&>qGFkw7I4mvPX<)-{#Y~^el*7Cs_xj5GZ z49nqN$nP@r|Qj}02xrvRQHtimO8DhWFc^$ zI9GkBQ_KRIW?ik$szD}NHtRaumpI-DAy@kV=UrBK@bf7KoRDw|jL(AW_=+!ClL+Jo zeGd;3q_WL5i_(KO2@fM&(oD_}cU|ct#QyR4D5eCo|65#<1&umc1zc=!Uze>dv1wYT z3-hhq=wl9&pSMT;rN+m`O_$7;buQ}}A39SxHBo6lrtOoXR^R{KtOX&OF~lx>07_ejgrdIiSAGO%a8yRd zb9lwr!}GA&g|jd0$%{>hzyo6=QF!zSe!i-~ux*2Q>~^LqmZ+fwK))ZX!mb7 zdo&Gw9#&|Mkp1L*&UR{7zPTD-;p{}{J@o-uC-D$v&=yr3j6&LC(oczpq#X^U{Fpdx z!&M=uVPz^lN~pxk%kJ+&qDmf+n~s=#vo$Rk1ZfWUV!co|p;gPD z*e3Ip`CJ_jaO_^~;7T(;@jRzB;J(B-_T1q5)!YSMmE+V-MS2-*DLO?h7tI!t>Rji` zPp_}B?AgtFR;m4N@B^waHe^nxBW|<@Aq|S6CJVecpOPnRK2AQcRjC(L0?x~6H`{!g zs}bj%HkmXf4m>=Tm43(QQ3R&==+7e6q^FQ z$9eMpD8#=sQrC$5d_p7g&dzW^&f;W3&$2Veuo+C?17R)^w9|-`kwu8TA*km97n8nE( z-&H#44Fhxx0qMGPx03=|79JAv(>DVE(1-sMya?H8H}R`&mbgRv`vQ1g1YM{*2hIE! D*=WC_ literal 0 HcmV?d00001 diff --git a/tests/visual_tests/test_python.py b/tests/visual_tests/test_python.py index 28f84bfb2..0ae03db5e 100755 --- a/tests/visual_tests/test_python.py +++ b/tests/visual_tests/test_python.py @@ -6,27 +6,33 @@ class MyText(mapnik.FormatingNode): def __init__(self): mapnik.FormatingNode.__init__(self) self.expr = mapnik.Expression("[name]") + self.expr_nr = mapnik.Expression("[nr]") def apply(self, properties, feature, output): colors = [mapnik.Color('red'), mapnik.Color('green'), mapnik.Color('blue')] text = self.expr.evaluate(feature) - i = 0 - my_properties = mapnik.CharProperties(properties) - for char in text: - my_properties.fill = colors[i % len(colors)] - output.append(my_properties, char) - i += 1 + if int(feature['nr']) > 5: + i = 0 + my_properties = mapnik.CharProperties(properties) + for char in text: + my_properties.fill = colors[i % len(colors)] + output.append(my_properties, char) + i += 1 + else: + output.append(properties, text) def add_expressions(self, output): output.insert(self.expr) + output.insert(self.expr_nr) -m = mapnik.Map(600,300) +m = mapnik.Map(600, 100) m.background = mapnik.Color('white') text = mapnik.TextSymbolizer() -text.face_name = 'DejaVu Sans Book' +text.placements.defaults.displacement = (0, 5) +text.placements.defaults.default_format.face_name = 'DejaVu Sans Book' point = mapnik.PointSymbolizer() @@ -45,7 +51,8 @@ layer.datasource = mapnik.Shapefile(file="points.shp") layer.styles.append('Style') m.layers.append(layer) -m.zoom_all() +bbox = mapnik.Box2d(-0.05, -0.01, 0.95, 0.01) +m.zoom_to_box(bbox) format_trees = [