rL iHddlZddlmZddlZddlZddlmZddl m Z ddl m ZddlmZddlmZddlmZddlmZddlmZddlmZ ddl!Z"ddl#m$Z$m%Z%dZ&dZ'e%dgdd Z(e$d g d Z)d Z*e%dgdddZ+dZ,e%dgdddZ-dZ.dZ/dZ0ejbjedgddZ3dZ4dZ5dZ6dZ7dZ8d Z9d!Z:d"Z;d#Z)g?@)sizesoffsetsoffset_transformrB)r7rC1)rBrA)g@r})r~rrrBrAr ) rrLr Rectanglerr-RegularPolyCollectionrr/rr)rTr#rect1rect2rect3rect4s r( test_hatchingrsll1a GC   vq!3 7ELL  . . %:, Ee   vq!3$ GELL  . . %:,T #EeKK1KK1r*ctj\}}|jtjdj dd}|j td\}|jsJ|jsJ|jj|jrJ|jrJ|jrJ||jvsJ||jvsJ|j|usJ|j|j||fD]"}|jJ|j"J||jvsJ|jsJ|jsJy)N$r9r<)rrLimshowrmarangereshaper`rangestalecanvasdraw_mouseover_setrremove get_figure)rTr#imlnarts r( test_removers>llnGC 299R=((A. /B ''%( CB 999 88O8JJOOyy=xx<xx< "" "" " R&& && & 77b==IIKIIKBx(xx~~'''( R&& && & 999 88O8r*zdefault_edges.pngc dtjd<tjdd\}\\}}\}}|jt j dt j ddt j ddzt j dd|j t j dt j dd |jd d d d td |jd|jdtjtjgdtjjtjj tjj tjj"gd|j$}|j'|y)Nr9ztext.kerning_factorr rtroedge)alignrBOXsawtooth)boxstyle)sizebbox)r8r)r{rrrrr{none)rr)rrcParamsrLr`rmrbartextdictrrrrOrDrEMOVETOCURVE3 CLOSEPOLYrr)rTrUrVax3ax4pp1s r(test_default_edgesrs7+,CLL&'$'LLA$6!C !*3jsCHHRYYr]BIIbM3 YYr]Q  " s4GGBIIbM299R=G7HHQ5rj(AHBLLLL    3JJ%%uzz'8'8JJ%%uzz';';= > S]]  ,C MM#r*cPtjgg}|jyN)mlinesLine2D properties)rs r(test_propertiesrs r2 BMMOr*ctjgtjggtj\}}|jt d}|jt d}t jt ||ddtj|jjdtj}tj|d||jdk(sJy) Nrr@r<green)colorzorder)filez zorder: float ) rsetprLr`rmartistrspinesvaluesroStringIOrs)rTr#lines1lines2sios r( test_setprsHHRLHHbTNllnGC WWU1X F WWU1X F LLvv&a0HHRYY   w/ ++-CHHVXC( <<>0 00 0r*ctj\}}|jtdd\}|j t j jk(sJ|jd|j dk(sJ|jd|j t j jk(sJy)Nr<)ri@) rrLr`r get_zorderrrr set_zorder)rTr#rs r(test_None_zorderrsllnGC ''%(4' (CB ==?fmm22 22 2MM& ==?f $$ $MM$ ==?fmm22 22 2r*zaccept_clause, expected))unknown)zACCEPTS: [ '-' | '--' | '-.' ]z[ '-' | '--' | '-.' ])zACCEPTS: Some description.Some description.)z.. ACCEPTS: Some description.r)z arg : intint)z *arg : intr)z"arg : int ACCEPTS: Something else.zSomething else. cGddtj}d|z|j_tj|j d}||k(sJy)NceZdZdZy):test_artist_inspector_get_valid_values..TestArtistcyr)selfargs r(set_fz@test_artist_inspector_get_valid_values..TestArtist.set_f r*N)__name__ __module__ __qualname__rrr*r( TestArtistr r*rz Some text. %s f)rArtistr__doc__ArtistInspectorget_valid_values) accept_clauseexpectedr valid_valuess r(&test_artist_inspector_get_valid_valuesrsWW^^    J **:6GGLL 8 ## #r*ctjtj}|j }|ddhk(sJy)N linewidthr@)rrrr get_aliases)aialiasess r(!test_artist_inspector_get_aliasesr's7   /BnnG ; D6 )) )r*cTtj}tjtd5|j ddddtjtd5|j gddddtjt d5|j ddddtjt d5|j tjdddy#1swYxYw#1swYxYw#1swYexYw#1swYyxYw)N^alpha must be numeric or Nonematchstring)rr routside 0-1 range皙?) rrpytestraises TypeError set_alpha ValueErrorrmnanrs r(test_set_alphar.s .. C y(H I  h y(H I! i ! z)< = c z)< = bff   !!s/C:%DD D:DDDD'ctj}tjtd5|j ddddtjt d5|j ddddtjt d5|j tjdddtjt d5|j ddgdddtjt d5|j dtjgdddy#1swYxYw#1swYxYw#1swYxYw#1swYsxYw#1swYyxYw)Nrrrrrzalpha must be between 0 and 1r ) rrrrr_set_alpha_for_arrayrrmrrs r(test_set_alpha_for_arrayr:s .. C y(H I+   *+ z)< =&   %& z)< =)   () z)H I-   #s,- z)H I0   #rvv/00++&&))--00s;D?%E  EE#"E/?E EE #E,/E8ctfdd_tj}|j}jdk(sJ|j jdk(sJ|j djdk(sJ|j ||j jdk(sJy)Nc0xjdz c_y)Nr)counter)artistfuncs r(rztest_callbacks..funcIs  r*rrrr )rrr add_callbackpchangedrremove_callback)roidrs @r(test_callbacksrHsDL .. C  4 C <<1  LLN <<1  NN2 <<1  LLN <<1  r*cHGddtj}t|jdsJd|jjvsJGdd|}t|jdsJd|jjvsJd|jjvsJy) z3Test autogenerated ``set()`` for Artist subclasses.ceZdZdZy)%test_set_signature..MyArtist1cyrrrvals r( set_myparam1z2test_set_signature..MyArtist1.set_myparam1]rr*N)rrrrrr*r( MyArtist1r \rr*r_autogenerated_signaturemyparam1ceZdZdZy)%test_set_signature..MyArtist2cyrrr s r( set_myparam2z2test_set_signature..MyArtist2.set_myparam2drr*N)rrrrrr*r( MyArtist2rcrr*rmyparam2Nrrhasattrrar)rrs r(test_set_signaturerZsGNN 9=="< == = .. .. .I 9=="< == = .. .. . .. .. .r*cGddtj}t|jdrJ|jjdk(sJGdd|}|j|jusJy)z=set() defined in Artist subclasses should not be overwritten.ceZdZdZy)*test_set_is_overwritten..MyArtist3cy)Not overwritten.Nr)rkwargss r(raz.test_set_is_overwritten..MyArtist3.setpsr*N)rrrrarr*r( MyArtist3rns #r*r"rr c eZdZy)*test_set_is_overwritten..MyArtist4Nrrrrr*r( MyArtist4r$vs r*r&Nr)r"r&s r(test_set_is_overwrittenr'lsf#GNN# y}}&@AA A == $6 66 6 I  ==IMM )) )r*c tjd}d|d<d|d<d|d<d|d <d |d <d |d <d|d<d|d<d|d<tj\}}|j dt j tjdd dd}|j|d|}gd}t|j|D]\}}|j||k(rJtjtj\}}|j dtjdjd}t j tjdd dd}|j|||}gd}t|j|D]\}}|j||k(rJtjtj\}}|j dtjdjd}t j tjdd dd}|j|||}gd}t|j|D]\}}|j||k(rJtjtjd }d!|d <d"|d <d#|d$<d%|d&<d|d'<d(|d)<d*|d+<gd,}tj\}}|j d-t j tjd d d'd./dd0d12}|j|d|}t|j|D]\}}|j||k(rJtjtj\}}|j d3t j tjd d d'd./dd0d42}|j|d|}t|j|D]\}}|j||k(rJtjtj\}}|j d5t j tjd d d'd./dd0d62}|j|d|}t|j|D]\}}|j||k(rJtjtj\}}|j d7t j tjd d d'd./dd0d82}|j|d|}t|j|D]\}}|j||k(rJtjtj\}}|j d9t j tjd d d'd./dd.d12}|j|d|}t|j|D]\}}|j||k(rJtjy:);z7Test if cursor data is correct when using BoundaryNorm.)rrg?r{gGz?)rrg+?)rr r8rrrr)rr g ףp= ?)r rg;On?)r rgH}M?r z-1..1 to 0..256 in 0.1RdBu_r)cmapnorm) [0.9][1.]r/[-1.0][0.0][1.0][0.09][0.009][0.0009]z-1..1 to 0..256 in 0.01) z[0.90]z[0.99]r2z[-1.00]z[0.00]z[1.00]r3r4r5z-1..1 to 0..256 in 0.001i) z[0.900]z[0.990]z[0.999]z[-1.000]z[0.000]z[1.000]z[0.090]r4r5)rrggg?r r rr7g?r<g@r9)r0r1z[0.1]z[0.5]r.r2z[2.0]znoclip, neitherT)endpointFneither)clipextendz noclip, minminz noclip, maxmaxz noclip, bothbothz clip, neitherN)rmemptyrrLsuptitlemcolors BoundaryNormlinspacerzipflatformat_cursor_dataclosempl colormaps resampled) XrTr#r-img labels_listvlabelr,s r($test_format_cursor_data_BoundaryNormrO|s AAdGAdGAdGAdGAdGAdGAdGAdGAdGllnGCLL)*    B2 6 .Gen1Nr%rr*r(Gen1rR r*rSrc eZdZy)$test_auto_no_rasterize..Gen2Nr%rr*r(Gen2rV$rTr*rW)rr__dict__r)rSrWs r(test_auto_no_rasterizerYsw w~~  T]] "" " == DII -- - t   && & 99 !! !r*cGddtj}|}tj}d|j |dk(sJd|j |dk(sJy)NceZdZdZy)1test_draw_wraper_forward_input..TestKlassc|Srr)rrendererextras r(rz6test_draw_wraper_forward_input..TestKlass.draw-sLr*N)rrrrrr*r( TestKlassr\,s r*r`aardvark)r_)rrmbackend_bases RendererBaser)r`rr^s r(test_draw_wraper_forward_inputrd+s]GNN +C**,H (J7 77 7 (*= == =r*cZtj}|j}|j}|j}|j d|usJ|j d|usJ|j |usJ|j d|usJ|j d|usJ|j d|usJ|j d|usJt j tj5|j |usJ ddd|j |usJtjgg}|j dJ|j dJ|j|usJ|j|usJ|j|usJy#1swYxYw)NT)rootF) rfigure subfiguresrLrrwarnsrGMatplotlibDeprecationWarningrr)rTsfig1sfig2r#rs r(test_get_figurerm7s **,C NN E    E  B >>t> $ ++ + >>u> % ,, , ==?e ## # ==e= $ -- - ==d= #s ** *     '5 00 0     &# -- - c66 7)!S((()     $$ $ r2 B ==d= # ++ + ==e= $ ,, , 99   ::   <<3  ))s F!!F*)>ro itertoolsrnumpyrmrmatplotlib.colorscolorsr@matplotlib.pyplotpyplotrmatplotlib.patchespatchesrmatplotlib.lineslinesrmatplotlib.pathpathrDmatplotlib.transforms transformsr matplotlib.collections collectionsr-matplotlib.artistrrmatplotlib.backend_bases backend_basesrb matplotlibrGmatplotlib.testing.decoratorsrrr)r3rYrhrvrrrrrrmark parametrizerrrrrrr'rOrYrdrmrr*r(rs3  #%!+-#1O'(T!OH'(d;<6(4)4$'":,D BC2:&'TKL( 1$325 $ $*  0$/$ * ^B " >r*