From 09df94265d2a2065e8b61633daa4bec21a239887 Mon Sep 17 00:00:00 2001 From: Keerysanth Sribaskaran Date: Sat, 15 Apr 2017 14:43:36 -0400 Subject: [PATCH 1/5] Fixed issue #7523 and added tests for it. --- .../test_text/line_spacing.png | Bin 0 -> 13330 bytes lib/matplotlib/tests/test_text.py | 25 ++++++++++++++++++ lib/matplotlib/text.py | 1 + 3 files changed, 26 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_text/line_spacing.png diff --git a/lib/matplotlib/tests/baseline_images/test_text/line_spacing.png b/lib/matplotlib/tests/baseline_images/test_text/line_spacing.png new file mode 100644 index 0000000000000000000000000000000000000000..91175acc36374db6a5b58cf2edd7d7e931fce6cc GIT binary patch literal 13330 zcmeHud03Ozy6=Zr(Nd)zw@^jE3Q8*q6$E4qY89glRb&>TA|PXwFo-}xwGJ%`2m&%j zML}c+0U4vU$V^mZ3=kEPFa?A#1u~p>Vej4Dz4!E-zq?PLrw*Y%f z^4+odtiS&`eGQF&zDS+u=dR)EGYcQT8N+|S_xObrZeK`rJL^Y|*iyHpc6s?q=Y2oj zy?%MKvYd06$JA7boIVJgWAk6dH-Ot+a|sDAvYh}uRU=8UfU5Ii>* zO3QqFEbI6(4Ew<(z*GaCYtOlrUt-wZuO#4S|4=r;u<+B%SHiDvU=kSi%i7HtX0mJ9 zat!{5{w$$q6%~ot%8pNWSKo`slv2#bzz~U;<6xx^d%1 zzc+YQ*8K?e!{#?BEDYQ9^zrt%!w=KtUT@gxRI!^Xn$EN$5SWI6bA3Ua4-p#ux%^J2 zAg4T3}Rttp}7Bx+MWc_!O`qQAO2el>=rCY7D!nwXoL*L=L9F(`$b z-z#DfM6OZnnvcIqmx~rgNww>3&%C~WAkio!kSyX+IoQFe9{pF^ef&A)qoIa!H0OQ($W z1ueZ{ewY49* z)6*D6fghhssp56KyIzg-)+td!%QXC?u)71zcXlbqZZjVlave)pUT<8=)v0tW_3j=o z^l>q$SU*u(yhY2cx&C~eLZ`9x1FJ;+08ig?R(z!MiYr|ck`Y4V0{BvwonMm_p;7a+ zJ*c=K1m4BQ$|}~m`l2hhr-Wft>eiB^f~S#%4ylz~AKN;Gpc5}|Y-l4#JZKy0t1PQF z4*%ynMU^#87|Go$yS!HU;F$&7Pi~Natmrb^pGX#I7*oRn-dC z+v9dPSM6E7dNn+Em%4^c5hMq%H)cwT6 z>gpPWBz){P7TmRO3p_Dws47LG`$vQEr^+sMku64Zy|J|sa_(?T^(KE?#~ZJl829f7 zbV`1mZkkzIs$*$5`Mool&kE&w5t^dE-aj=~OqX>q!Z3e}We?U9Yxr*4EYngZ2kP7# zVzve^3}^BLJi0r7id8=HI6F{(?xj4jd4eKdY);YB;&JHoV!Cm%c#$F|K7Rbzj}>Pt zs}Id@C}sH}wec!m>+apV2d~Qe9x`t+ojAq_v>E6RnP^#<84cPK1jWvW%1VP;c@#W0 zlpfW(!9C^Hfe6`>#U21mt#zAo?*IS;peC=g*mJLT{^|LFH(gzK@x<z4N7Qu0xzlq+W(o2NcGlG{DLIygc>GQZoI%p$t1Gr@l2D=dhXfU;so?e=vvD zN`$ah;Ph;jErr%eg0O)Vm^JMgH8pEyf`=BcRC05x1^+`G6b&Wlh--+#hP9nIkGOJ z9l4`-+XehDH|IXe%4&$;=~yby)G6gwM0XfY)hn03yCm)R{4=@1Y=Y3!c(yQ#b<0$- zq1~2{3f*InolNX!(P^xBM@_fpJJmQK4m~*~1dL9_;o!izch?Jp;f;qn^9db!PL+N0 zrK9?=!DTPX35z|QQ(2Z_+X2rHC8#^as3;%2QUA+&wW+=dvaVHzS;O7EmwVjbW7w;P z@|D%=;kSpJoSdNZI@|ydF5pip*jHURABhvqv*)|qriWg4R|I%DQ-m{Nw38UtWw|oi z#_Y~_U*EiWGZ^;E;Rcf;7H;_Nq{+dX8{<^6^7HABt+Rn3CDAwqFV-~OKM+wAFxnwY zlG|Yyt)eIR_<|8U1D_qdD%$46h4)uB7>8cSFiVVqR%I9v5Kzue@-gO zA-1H{8t?PF-T*;hRn7Kzl~2Dp!kcQ+;LLOq=qit49j3Y&dzI04eBp{ zQ4U3`$4Mbgi54d~Kwp}FR!zI35-b+ZS=rj!j-bnF<+u9(!SI_p7pI5bc66}+FO1JY zgK34*)(l&iX3rmrNizyzYlx>b7-3wf?L??;M0&#(XIoaOro1{G+WYjphqre#Kxx5? zav8&qCJS>DR7B}sTwNVJ({5Yr+gCB`tchV`a?nCXMn)W}?Lrw{t^J2*pwQh1>u>Ra z%cY5gi|+Fu-y@PgRjWZhdL6^gJtM(_fjvd`y_2-Pl9ZUY;Q2BiKi*Cec2fFI z3qWX?O}%!Hz_4dO9u9wU`nT(Av$C^~?BBmXV)BZ#oDTFTMDPK`j#*o`pRPKRppK6@ z{IDp>7WG3Ji8sH%4nHU?+$Cc){X@hg5Mi9;iZALP9Zio3^{=i2n0ENS7Oq2Vu45S+ z#E#FdxlWoWAjUh$eJ7~eXaM@ZM(AAr*vmLu=foc+rAnWEHQYoH`9&Hp3<+M~1p5`k zre6zyQ`f^S>=Q6(LdR`pcM95yRWVAd^TpwZy+E<~a3ZlPpxR84-jd^Y&&-h;qM!zXf!oH5as^n z0iG}5;HWBDj~_RFCU+tl)d{yIFue6~R@S#lp&$41><2(6K|f1(qOe0IsuMsuAQ*3P z;XrX%g^7g1H3yQwyTDHVIuh5Ux=+EuZhT}ODTWfk|=+(WQ_cLtso%yiK43&l{Rue;b2kX+7 zSY~qV!dPM5n@mfpS<0SWc(mSL65U8oINgT$U1rGKI4VonO(aZHE{3?8F-zw6-aU=j&osERAN4JBM&f(C0&~ABoAaE8GH@8I%Se#+JGC*h{Ed;8n=;ZTd)bi!8 ze%6y*W|BGevt{W0+Ro~WGlyfmy9&O>PjxsFU4i6vKRxf_Mo;V8q664f4ZQTsz{{J% z-No+Z2P6v^VAG@??#y#?46WwgpYpj^$R&Lbbc!JW0e;6N(u1>p*(=#)%fp3@rK2VX zqZCtPE%dW4+e$u5^IN?VTZ{vGVQ3UG+YBV-gM&=CFj{LfHfD;dcHNTD=kfpVxT_-(?Zwo5E~Ms|lQ zo0XT>YGr8@rzHA#tz|$;!T$$i;jm@dd_O@rV#|MbStg0*TyS!)>=MTk%@2IG(&Uu& zdQQHn-@RZ3=4WVN$N=E@hwI+*`OKMZ%Bn_xn z9Ejn7X-%w4l57qD_TL#>Km2w?qx!Zyv1*qRdHz()V5Gr#J)I)rZNXIndy9W7 zlNG>R9xffw_r*0CdbornVwQ+Ya~F8O-*>xmKUZ{RB_vm<;E`Jrr)JBpSB`4#$aO@} z3^s}DyJtUc*mLe=HoefZ{V}?a0PlJqt}AQ$551B-+LmpbFW@poJ~3xN{&2}=*jN%K zad*EVv=C%AY_mwYqheouF#sBRS_*k#I9SBzv{i@9?bgw8131~B>wCh&Xyz@u9Nsqg z-H%d5@Uhb)?P^Yyfh}#8xYWIuSGWRN4a15|6=bo>%_i8;advBJGO`cQ?FOYVRZJD` zpd0ec;LKuCo59Cqrd`~gUp?!9KL6B@|Ab1c)p&6%(r`Hz_^VR^yqhsE zk$&dY-M#o2b*GBK|5-I%VoUc)427mhNZhsJ|E6mE`okz#J6n;H6s;0Gnp;)`ri6Fz z(_O{xbl-aAC%)X2qFg z5Gtkf7a0dwjD0Q)&h;GlmQNLT?W)_<_F>f4Ie04_Ck{oDZ3mb^*Ay?F1xZmtkCYBK zQidCI8kKWZFsanHFG&Sp%gn`PKoLj(XJvY1G8b0ufu<2ilhjGHpO@8%XhZs&kE3!o5uu(045Cr111@6e;b>+xWB!C#DgibXi8U*>K0q+PEjuI?E;{Bqi`|L*x0OYR`_)d>@YA^+C-B=ZX zkrp@`tqULDRe@$21~0%E1Q-HHK*~n=oKC~Jrvs5q=DK~iIaG?Vwzf7}h%q47ri(-O z%Ev249Rw-=iZKY3QLjqYCCYBbuB`eJ`{gUmGly2lD5fYHT~xs%qXKx0E{=?v6EI!` zJs_|uLT8Jq=HT4rfyRRaF5s_gi$yxO)sa{ohr9(n{$Om|t5?y$ZP>_fK!8CHS7|8e zbY`4ZfNR%EB=eF}g8GA7yd>^!q9WkeBn#%3-Z;j8v|}eh@IkKa?c3X6Cv3%|r+{ss zHF#vE#v>>i2C;0+Z?I$&MQoy9k4Gk}j3)HqT^Xm000C$~n}7_!q9%27r{!|JP zwD|~G0?~js*=jJMf+qt(cZZvZ%s}7jnGV^)Lg=c<@Idde)^yYB55XPz1S;~LQEvr( zI!4-u>0bv7vC$w~OSVZnzgiD#Sf;&!E{LntOvUA&nHg#4 zb0{K?4NWRs6I#_Gg5<6E);$9^P5^_d6o?Rlv(yL;jd5x`OYyYj1}!(U5RJ9rsppp3 z6Zpr*s6C-=Q*a(FT-yDLk;iY_+gb9=`GXdEtlRstm!C9+Cp}3+{wO$1t_#z{{6^av zu%gPBnytY^RV?ZvU<@IfJXVFtZw)Fs_x{%#oAflZZE_o(g8JG8h5&EoK0ZFC3M-yT z90|t?m|3~G=5RSRp&U;@O@C@zXz}cP#9HU08@)Q^;_7EEYUM9c>Ao$M8nyl2mE4)zM5hx;T3>Vsfa{%|Q=XDcy zQs(JOg@1>vB_ktU?p5MWyMoP-gb+qXN45M0>rePKYz211Q8cRiP#d8YGCQ^@uv5f4xVQD#(QqdxGP zCbmjq&&Yd0^~{cS4>QV$7JJ_RBs&1)?Fc}KGZ;sytxR~GdgWM=S<>!rGgAW{LewD! zm{n8XM?3(A764Ke5^NO}6{)S_PS8|4?2A+&8#rf>vj$#A0N+zy$GiUCHN}d)`R7tf zy@L5j#0HoP9c6yd@7Q3qc4t#@0V8jx$NMU4?cjEMdU?%_@WBNm6}z=Gg4O460|;^6 zWg8x6fB2L8U=X5E1? zvl#%2xaJ?N;ZHvNDy`8RRKrU(OVr#7tf=+Xz5OJHPnm0Lie5Q2zA4ia3mIjPux_zk?J zJ18PX-^L)|PKmJF>Qpa)E|4H_Z22prolv(j)sVn2k@vp|R2&Qk`}pscJ6AsFZNjj1 z1T+iq$B_LmanXX~-B+Pa6LN_>5W=pk#yCWEZvibg0)Fjz&l(De!}{WrIft4MBKaty z1EZ(~nPo`2X7W(uL~0q>E04m4mn<=;HVcEDkOP2N-~Qy{?`cSXD6hpV%}{TkE{Yzr z^~lt8n@H)_s-RuiSLB?#(mA6*S%ILo0j!0Uqmr2b z8wd!4D=<06O`?2ub~YoOQwiD(5iL@yp1aZ~I32&#{>y54ok0MPK3@SyQeSdt&`u!o zwuG<%3!HE|^u08pD_8H&mRlJ`9m9OI{*UF>RS__%e^#4f49oQN^aPhBp8K-wrcb5% z8C#@yAb2vM3IrktkHj7X z3&R|Qc+4PZlIG?_Etq?t8iy^Y;DLx%?SRG)(jYi3WW3xEI(Z8{Wd8j%4!AlK(Jsqi zUcuy3KSB);Nyg$3*LsRS=2<~Ym|@XRlb3kAyUnif(-LNjW;a&Yo6Iu zj;3}HEFdR7n9oWe4L?k9gPZ`F!qPb@!k@(_73{|5eyk-c*^TLr8UOeE(;#&b$j9Kq zXg+Sd8$P9cZ->2`d!b7Owk-G;&8ohwJ z_AtY;hGPLt6j?TuMWQ%2cnsP_3&(h_T=4N4&U>x|`h@#7zyM&_(_DtGYRb8N5t9gb z!EV>6`uM8_ClYuQ1R#CB6719TJ7sXhoA+idGJbx0tcj&LeKFAauN9h zQ}N>LSa}^Ob~ja_eEvhkoPWbu9ZZ%mULU!;`O}-A_p+}E4Mxo@()lGBcID3mHhHd& zS*A*gJp=PbK&1{Mk$-uO{@JL`)tJd5XjZFu4MG}B4FpXen{@<2{U@l+&C1Hc=Q~%= zdiuspPcU&XfYg%=%>IY#T1q|xTc&Mpe6?!}Xg65$*{oa)E98D_Nh%V49*e4!ZGq9gUJRrqG>6Ko_r~vsN>^cs_-Asox#X6>RUx3T*_xgYwONKJPAB_uX1O7w8v=t=| zdVXir%Lij@CgR(ZP{~2;t$}j^D18Gd-iNSojhAy1$P9- ztByn(&32_gOEIW2GEg8A=R*E^4yETb_(jOzL6!$?A)D3+vn7Ecd7a*sS-)EBv@d#q zGEf`jy&EN!!Ch{I&~Q66=zI`*)nGLxG-evlWHkII`U-T>f2X}0iL1bnNje$JD%b>O8ZK4P!CF36DVHtah6{Z>3ni^?}M$cr!aY$A8Iw_BrUJ{;5d+Ei&NCsgaJ z49XV>nc}b?(#XLeUi1w>BUuVWeVv9AJaBdiC@hST5M)khYGMmyXRT zfx9-k9h6}97n}C{5bl2({uKItfhI&yjbM{+*Ql94&6|e_m+jKBJI;0n6bJPbF*{F? z%;AyP&5128;1uQpj+IR%Q1}Vl3g6j&AgF4HU$D@mBn(Qj2(#aqRJk#4mt8^R{6{*`b0Xg-0+$U{4q^vPX z*j6dU3!8PVJ0 zBW>+wZcbiaUVDUe*-e;oENMES|FWjP770phyr{3M)tcF5@P6jn7-6%8)w)>&Wf*aIqx~?+K}7 z=As-nuV!HcB^>-;@>hOMfknrEDCrKfP&*hg09Z$a*1j| zgEvIVA_Ik9Jecw-Wqi8Pkc6TE%w{AuLTxJ{@apw%Ge^lS(^xv=#f6qq&hkSB*?*Xq zN_Q;wk!L2C`=?a*P2fsS*ZzVccmAL%E)gZ#?d=vefd}DaD1tglGhQ|IHk#(-mKx9I zmW~BMZ_)AXy@Rqyy~VNOSQW?wTA?Cuq3jnDPPCDWJ5s9O#0$wVhOsn{bxB%%$@NFs zSQD%_2Bu#1)ogO=!OHFR9nCPz@19Me$aBHzCxd9?1`aU#<$Cf7G#gI)+qVw@Ekd*t zB8$rwg>|9B}6`XnjLt0~Tr2^qNO!_XF*)s%jK*XdL-B1g1DEg((q?aF3g(DI5bk@XMhK*RE z7G2>#9HWA84vD1+@?2%2rt4wIXWtr2XYN5OCuElv!_@5q7?p#$)15DuETZ{Vw(nvM zF4fV=iCc?TeH$;dhyjy_b3?1O{^d=19$=6g_^#Yin;u`{96E5kAGf5F4RV7h;=xs5 zp;;^twp2j+vM@QiqE{1h0{PD%U?7qA+*QM^^{91U7NieH1(S*#$n1&zOdmwMKx(q# z&zW=58T*4&e=l*S>OT!;1#xP3qf>OmfAQbYoF;U5~lL+FBj>i$pH656L5 zR79#F;KTUsBBd^d&=|xLvaGnGO#yF@B8`t!o>zW#>HK5?$%nrf2GPqI0JGrPZgayRfW;#@pEKnywG^8;04O_z(pvj?fpzzRt3KXC-@lXY{Z4)3cD*wln6EHg0|xd zV=8gVk$dh>O^8JkanR^&P&EOX<(BpL2*Q8~JyyvAvr0EA*S~nqaBT~iT!J@y-iDZ@d4;zj)r=en-IRrd;AbBNOs zFYE_a#)68=gUN)akc~ziN3(m4U_Bl~Fo)WZ!udU8`v5ag1_134I#HHjJcyQ!hU?;z zeJipc3a~<1f-7u;!udmESCQh5gE6~Yq*GxD;7{}jm>+zU4h?HNGFC+|14Q4hn(BXS zD}F2fA&eEoL4sQ{pQcc45g(#V<3p5VzZ9SdD0~?3_`x2c-r*M~Wk5EE zTodo?FF3XT;jzgiAHt)@$Ezlv-2SJ2MI$~zA0w}>4r3C2)2~f+nK5xV0<;>%rGM}-u*Lsx`;R}^V#x#A WIf>I@(qLF%82*68_j&tHUiwc$WN@$m literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_text.py b/lib/matplotlib/tests/test_text.py index ada43bfd7b60..73ea5a2a8bae 100644 --- a/lib/matplotlib/tests/test_text.py +++ b/lib/matplotlib/tests/test_text.py @@ -421,3 +421,28 @@ def test_font_scaling(): for i, fs in enumerate(range(4, 43, 2)): ax.text(0.1, i*30, "{fs} pt font size".format(fs=fs), fontsize=fs) + + +def two_2line_texts(x1, y1, spacing1, x2, y2, spacing2): + text_string = 'line1\nline2' + plt.text(x1, y1, text_string, linespacing=spacing1, alpha=0.5) + plt.text(x2, y2, text_string, linespacing=spacing2, alpha=0.5) + plt.show() + + +@image_comparison(baseline_images=['line_spacing'], tol=0.01) +def test_linespacing_figure1(): + two_2line_texts(x1=.5, y1=.5, spacing1=2, + x2=.5, y2=.5, spacing2=0.4) + + +@image_comparison(baseline_images=['line_spacing'], tol=0.01) +def test_linespacing_figure2(): + two_2line_texts(x1=.5, y1=.5, spacing1=0.4, + x2=.5, y2=.5, spacing2=2) + + +@image_comparison(baseline_images=['line_spacing'], tol=0.01) +def test_linespacing_figure3(): + two_2line_texts(x1=.5, y1=.5000000001, spacing1=0.4, + x2=.5, y2=.5, spacing2=2) diff --git a/lib/matplotlib/text.py b/lib/matplotlib/text.py index 9e2d8be26842..c8b58adf101b 100644 --- a/lib/matplotlib/text.py +++ b/lib/matplotlib/text.py @@ -911,6 +911,7 @@ def get_prop_tup(self, renderer=None): hash(self._fontproperties), self._rotation, self._rotation_mode, self.figure.dpi, id(renderer or self._renderer), + self._linespacing ) def get_text(self): From e6de9cc33db6cf4f17853c29a053e9d2d4f4fdc5 Mon Sep 17 00:00:00 2001 From: Keerysanth Sribaskaran Date: Sat, 15 Apr 2017 15:52:22 -0400 Subject: [PATCH 2/5] Added png extension to tests. --- lib/matplotlib/tests/test_text.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/matplotlib/tests/test_text.py b/lib/matplotlib/tests/test_text.py index 73ea5a2a8bae..ec34790eff5f 100644 --- a/lib/matplotlib/tests/test_text.py +++ b/lib/matplotlib/tests/test_text.py @@ -430,19 +430,25 @@ def two_2line_texts(x1, y1, spacing1, x2, y2, spacing2): plt.show() -@image_comparison(baseline_images=['line_spacing'], tol=0.01) +@image_comparison(baseline_images=['line_spacing'], + extensions=['png'], + tol=0.01) def test_linespacing_figure1(): two_2line_texts(x1=.5, y1=.5, spacing1=2, x2=.5, y2=.5, spacing2=0.4) -@image_comparison(baseline_images=['line_spacing'], tol=0.01) +@image_comparison(baseline_images=['line_spacing'], + extensions=['png'], + tol=0.01) def test_linespacing_figure2(): two_2line_texts(x1=.5, y1=.5, spacing1=0.4, x2=.5, y2=.5, spacing2=2) -@image_comparison(baseline_images=['line_spacing'], tol=0.01) +@image_comparison(baseline_images=['line_spacing'], + extensions=['png'], + tol=0.01) def test_linespacing_figure3(): two_2line_texts(x1=.5, y1=.5000000001, spacing1=0.4, x2=.5, y2=.5, spacing2=2) From 244ee5050acd2dd9a262955f59947525ec8def0f Mon Sep 17 00:00:00 2001 From: Keerysanth Sribaskaran Date: Sat, 15 Apr 2017 22:07:37 -0400 Subject: [PATCH 3/5] Updated tests. --- lib/matplotlib/tests/test_text.py | 33 +++++-------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/lib/matplotlib/tests/test_text.py b/lib/matplotlib/tests/test_text.py index ec34790eff5f..124fecb6b0d2 100644 --- a/lib/matplotlib/tests/test_text.py +++ b/lib/matplotlib/tests/test_text.py @@ -423,32 +423,9 @@ def test_font_scaling(): ax.text(0.1, i*30, "{fs} pt font size".format(fs=fs), fontsize=fs) -def two_2line_texts(x1, y1, spacing1, x2, y2, spacing2): +@pytest.mark.parametrize('spacing1, spacing2', [(2, 0.4), (0.4, 2)]) +@image_comparison(baseline_images=['figure1'], extensions=['png'], tol=0.01) +def two_2line_texts(spacing1, spacing2): text_string = 'line1\nline2' - plt.text(x1, y1, text_string, linespacing=spacing1, alpha=0.5) - plt.text(x2, y2, text_string, linespacing=spacing2, alpha=0.5) - plt.show() - - -@image_comparison(baseline_images=['line_spacing'], - extensions=['png'], - tol=0.01) -def test_linespacing_figure1(): - two_2line_texts(x1=.5, y1=.5, spacing1=2, - x2=.5, y2=.5, spacing2=0.4) - - -@image_comparison(baseline_images=['line_spacing'], - extensions=['png'], - tol=0.01) -def test_linespacing_figure2(): - two_2line_texts(x1=.5, y1=.5, spacing1=0.4, - x2=.5, y2=.5, spacing2=2) - - -@image_comparison(baseline_images=['line_spacing'], - extensions=['png'], - tol=0.01) -def test_linespacing_figure3(): - two_2line_texts(x1=.5, y1=.5000000001, spacing1=0.4, - x2=.5, y2=.5, spacing2=2) + plt.text(0.5, 0.5, text_string, linespacing=spacing1, alpha=0.5) + plt.text(0.5, 0.5, text_string, linespacing=spacing2, alpha=0.5) From 04ed906ab643afbc12028ab5bf846a6750dd28fe Mon Sep 17 00:00:00 2001 From: Keerysanth Sribaskaran Date: Sun, 16 Apr 2017 16:40:57 -0400 Subject: [PATCH 4/5] Updated baseline image name in test. --- lib/matplotlib/tests/test_text.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/tests/test_text.py b/lib/matplotlib/tests/test_text.py index 124fecb6b0d2..9d341f7995d0 100644 --- a/lib/matplotlib/tests/test_text.py +++ b/lib/matplotlib/tests/test_text.py @@ -424,7 +424,8 @@ def test_font_scaling(): @pytest.mark.parametrize('spacing1, spacing2', [(2, 0.4), (0.4, 2)]) -@image_comparison(baseline_images=['figure1'], extensions=['png'], tol=0.01) +@image_comparison(baseline_images=['line_spacing'], extensions=['png'], + tol=0.01) def two_2line_texts(spacing1, spacing2): text_string = 'line1\nline2' plt.text(0.5, 0.5, text_string, linespacing=spacing1, alpha=0.5) From 428dc54d15c4fe3630df2e54fb79acf6c9206236 Mon Sep 17 00:00:00 2001 From: Keerysanth Sribaskaran Date: Sun, 16 Apr 2017 19:52:05 -0400 Subject: [PATCH 5/5] Changed test to look at text extents, and removed baseline image. --- .../test_text/line_spacing.png | Bin 13330 -> 0 bytes lib/matplotlib/tests/test_text.py | 24 +++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) delete mode 100644 lib/matplotlib/tests/baseline_images/test_text/line_spacing.png diff --git a/lib/matplotlib/tests/baseline_images/test_text/line_spacing.png b/lib/matplotlib/tests/baseline_images/test_text/line_spacing.png deleted file mode 100644 index 91175acc36374db6a5b58cf2edd7d7e931fce6cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13330 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 WIf>I@(qLF%82*68_j&tHUiwc$WN@$m diff --git a/lib/matplotlib/tests/test_text.py b/lib/matplotlib/tests/test_text.py index 9d341f7995d0..439ccbb3540b 100644 --- a/lib/matplotlib/tests/test_text.py +++ b/lib/matplotlib/tests/test_text.py @@ -423,10 +423,22 @@ def test_font_scaling(): ax.text(0.1, i*30, "{fs} pt font size".format(fs=fs), fontsize=fs) -@pytest.mark.parametrize('spacing1, spacing2', [(2, 0.4), (0.4, 2)]) -@image_comparison(baseline_images=['line_spacing'], extensions=['png'], - tol=0.01) -def two_2line_texts(spacing1, spacing2): +@pytest.mark.parametrize('spacing1, spacing2', [(0.4, 2), (2, 0.4), (2, 2)]) +def test_two_2line_texts(spacing1, spacing2): text_string = 'line1\nline2' - plt.text(0.5, 0.5, text_string, linespacing=spacing1, alpha=0.5) - plt.text(0.5, 0.5, text_string, linespacing=spacing2, alpha=0.5) + fig = plt.figure() + renderer = fig.canvas.get_renderer() + + text1 = plt.text(0.25, 0.5, text_string, linespacing=spacing1) + text2 = plt.text(0.25, 0.5, text_string, linespacing=spacing2) + fig.canvas.draw() + + box1 = text1.get_window_extent(renderer=renderer) + box2 = text2.get_window_extent(renderer=renderer) + + # line spacing only affects height + assert box1.width == box2.width + if (spacing1 == spacing2): + assert box1.height == box2.height + else: + assert box1.height != box2.height