§
    ‡ÛgG ã                   óv  — d dl Z d dlZd dlZd dlmZmZmZmZ d dlZ	d dl
mZmZmZ d dlmZ d dlmZmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZmZ d d
lmZ d dl m!Z! d dl"m#Z$ d dl%Z& e j'        edd¬¦  «        Z( edg¬¦  «        d„ ¦   «         Z) e(dgd¬¦  «        d„ ¦   «         Z* e(dgd¬¦  «        d„ ¦   «         Z+d„ Z, e(dg¦  «        d„ ¦   «         Z- e(dg¦  «        d„ ¦   «         Z.d„ Z/ e(dg¦  «        d„ ¦   «         Z0 e(d g¦  «        d!„ ¦   «         Z1d"„ Z2 e(d#g¦  «        d$„ ¦   «         Z3 e(d%g¦  «        d&„ ¦   «         Z4 e(d'g¦  «        d(„ ¦   «         Z5 e(d)g¦  «        d*„ ¦   «         Z6ej7         8                    d+d,g d-¢gd.g d/¢gd0g d1¢gg¦  «         edg¬¦  «        d2„ ¦   «         ¦   «         Z9 e(d3gd4¬5¦  «        d6„ ¦   «         Z:d7„ Z; e(d8g¦  «        d9„ ¦   «         Z< edg¬¦  «        d:„ ¦   «         Z=d;„ Z> e(d<g¦  «        d=„ ¦   «         Z? edg¬¦  «        d>„ ¦   «         Z@ e(d?g¦  «        d@„ ¦   «         ZA e(dAg¦  «        dB„ ¦   «         ZB e(dCg¦  «        dD„ ¦   «         ZC edg¬¦  «        dE„ ¦   «         ZD edg¬¦  «        dF„ ¦   «         ZEej7         8                    dGddg¦  «         edg¬¦  «        dH„ ¦   «         ¦   «         ZFej7         8                    dIdJdKg¦  «         edg¬¦  «        dL„ ¦   «         ¦   «         ZG edg¬¦  «        dM„ ¦   «         ZH e(dNgdO¬5¦  «        dP„ ¦   «         ZI e(dQg¦  «        dR„ ¦   «         ZJ e(dSg¦  «        dT„ ¦   «         ZK e(dUg¦  «        dV„ ¦   «         ZL edg¬¦  «        dW„ ¦   «         ZM e(dXg¦  «        dY„ ¦   «         ZN e(dZgd¬¦  «        d[„ ¦   «         ZO edg¬¦  «        d\„ ¦   «         ZP e(d]gd^¬5¦  «        d_„ ¦   «         ZQ e(d`gda¬5¦  «        db„ ¦   «         ZR e(dcg¦  «        dd„ ¦   «         ZS e(deg¦  «        df„ ¦   «         ZT e(dgg¦  «        dh„ ¦   «         ZUdi„ ZVdj„ ZW e(g dk¢¦  «        dl„ ¦   «         ZX edg¬¦  «        dm„ ¦   «         ZY e(dng¦  «        do„ ¦   «         ZZdp„ Z[ edg¬¦  «        dq„ ¦   «         Z\dr„ Z] e(dsg¦  «        dt„ ¦   «         Z^du„ Z_ e(dvg¦  «        dw„ ¦   «         Z` e(dxg¦  «        dy„ ¦   «         Za e(dzg¦  «        d{„ ¦   «         Zb e(d|gd¬¦  «        d}„ ¦   «         Zc e(d~gd¬¦  «        d„ ¦   «         Zd e(d€gd¬¦  «        d�„ ¦   «         Zed‚„ Zfdƒ„ Zgd„„ ZhdÙd†„Zi e(d‡g¦  «        dˆ„ ¦   «         Zj e(d‰g¦  «        dŠ„ ¦   «         Zkd‹„ ZldŒ„ Zm e(d�g¦  «        dŽ„ ¦   «         Znd�„ Zod�„ Zpej7         8                    d‘d’¦  «        ej7         8                    d“d”¦  «        d•„ ¦   «         ¦   «         Zqd–„ Zr e(d—gd¬¦  «        d˜„ ¦   «         Zs e(d™gd¬¦  «        dš„ ¦   «         Zt e(d›g¦  «        dœ„ ¦   «         Zuej7         8                    d�e&jv        e&jw        g¦  «        ej7         8                    džg dŸ¢¦  «        d „ ¦   «         ¦   «         Zx G d¡„ d¢¦  «        Zyd£„ Zz edg¬¦  «        d¤„ ¦   «         Z{d¥„ Z|d¦„ Z} edg¬¦  «        d§„ ¦   «         Z~ edg¬¦  «        d¨„ ¦   «         Z ed©gdª¬«¦  «        d¬„ ¦   «         Z€ e(d­g¦  «        d®„ ¦   «         Z� e(d¯g¦  «        d°„ ¦   «         Z‚ ed±gdªd²¬³¦  «        d´„ ¦   «         Zƒ edµgdª¬«¦  «        d¶„ ¦   «         Z„d·„ Z…d¸„ Z†d¹„ Z‡dº„ Zˆd»„ Z‰ej7         8                    d¼d½ejŠ        dd¾fd½ejŠ        d¿dÀfd½ejŠ        dÁdÂfd½ej‹        ddÃfdÄejŠ        ddÅfdÄejŠ        d¿dÆfdÄejŠ        dÁdÇfg¦  «        dÈ„ ¦   «         ZŒe	j�         Ž                    d¦  «         edg¬¦  «        dÉ„ ¦   «         ¦   «         Z�dÊ„ Z� edËgddgdÌ¬Í¦  «        dÎ„ ¦   «         Z‘dÏ„ Z’dÐ„ Z“dÑ„ Z”ej7         8                    dÒe•dÓi dÔfe•dÕi dÔfe•dÖi dÔfe• e–¦   «         d¿d×idÔfe• e–¦   «         dÁd×idÔfe• e–¦   «         dØd×idÔfe—dÙd¿d…idÚfe—dÙd…d…d…d’œdÚfe—dÙd…d…dÛœdÚfe—dÜi dÝff
¦  «        dÞ„ ¦   «         Z˜ edg¬¦  «        dß„ ¦   «         Z™dà„ Zš edg¬¦  «        dá„ ¦   «         Z› edâgdd¬ã¦  «        dä„ ¦   «         Zœdå„ Z�dæ„ Zžej7         8                    dçdØg dè¢g dé¢g dê¢g dë¢gdìdígdîdïgfdðdígdïdïgfdðdðgdïdñgfgg dò¢fdÁg dó¢g dô¢g dê¢g dõ¢gdðdígdñdñgfdídígdïdñgfdödðgd÷dñgfgg dø¢fd¿g dù¢g dú¢g dê¢g dû¢gdðdðgdñdïgfdídìgdñd÷gfdídðgdñdñgfgg dü¢fg¦  «        dý„ ¦   «         ZŸ edþgdd¬ã¦  «        dÿ„ ¦   «         Z  e�d gddª¬ã¦  «        �d„ ¦   «         Z¡ edg¬¦  «        �d„ ¦   «         Z¢dS (  é    N)ÚAxes3DÚaxes3dÚproj3dÚart3d)ÚMouseButtonÚ
MouseEventÚNavigationToolbar2)Úcm)ÚcolorsÚpatches)Úimage_comparisonÚcheck_figures_equal)Ú
mock_event)ÚLineCollectionÚPolyCollection)ÚCircleÚ	PathPatch)ÚPath)ÚTextTÚdefault)Úremove_textÚstyleÚpng)Ú
extensionsc                 óx   — |                       t          d¬¦  «        ¬¦  «        }|                     d¦  «         d S )NÚ3d©Ú
projection©Ú
subplot_kwF)ÚsubplotsÚdictÚset_visible©Úfig_testÚfig_refÚaxs      ú\/granary/edev/quantum/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/test_axes3d.pyÚtest_invisible_axesr)      s;   € à	×	Ò	¥d°dÐ&;Ñ&;Ô&;Ð	Ñ	<Ô	<€BØ‡N‚N�5ÑÔÐÐÐó    zaspects.pngF)r   c                  ó|  — d} t          j        dt          | ¦  «        ddi¬¦  «        \  }}ddg}t          j        g d¢¦  «        }t          j        t          j        t          t          j        |||¦  «        ¦  «        ¦  «        d¦  «        }|D ]d\  }}t          j	        t          j
        ||z
  ¦  «        ¦  «        |d         |d         z
  k    r#|D ] } |j        t          ||z  ||z  ¦  «        Ž  Œ!Œet          |¦  «        D ]7\  }	}|                     d	¦  «         |                     | |	         d
¬¦  «         Œ8d S )N©ÚautoÚequalÚequalxyÚequalyzÚequalxzé   r   r   r   r   )r2   r2   é   é   ©é   é   r3   Údatalim©Ú
adjustable)Úpltr!   ÚlenÚnpÚarrayÚ	itertoolsÚcombinationsÚlistÚproductÚsumÚabsÚplot3DÚzipÚ	enumerateÚset_box_aspectÚ
set_aspect©
ÚaspectsÚfigÚaxsÚrÚscaleÚptsÚstartÚendr'   Úis
             r(   Útest_aspectsrT   !   sG  € à@€GÝŒ|˜A�s 7™|œ|¸ÀtÐ8LÐMÑMÔM�H€Cˆð 
ˆAˆ€AÝŒH�Y�Y�YÑÔ€EÝ
Ô
 ¥¤­$­yÔ/@ÀÀAÀqÑ/IÔ/IÑ*JÔ*JÑ!KÔ!KÈQÑ
OÔ
O€CØð 8ð 8‰
ˆˆsÝŒ6•"”&˜ ™Ñ%Ô%Ñ&Ô&¨!¨A¬$°°1´©+Ò5Ð5Øð 8ð 8�Ø�”	�3˜u U™{¨C°©IÑ6Ô6Ð7Ð7Ð7øÝ˜3‘”ð 8ð 8‰ˆˆ2Ø
×Ò˜)Ñ$Ô$Ð$Ø
�Š�g˜a”j¨YˆÑ7Ô7Ð7Ð7ð8ð 8r*   zaspects_adjust_box.pngc                  óT  — d} t          j        dt          | ¦  «        ddid¬¦  «        \  }}ddg}t          j        g d¢¦  «        }t          j        t          j        t          t          j        |||¦  «        ¦  «        ¦  «        d	¦  «        }|D ]d\  }}t          j	        t          j
        ||z
  ¦  «        ¦  «        |d         |d         z
  k    r#|D ] } |j        t          ||z  ||z  ¦  «        Ž  Œ!Œet          |¦  «        D ]"\  }	}|                     | |	         d
¬¦  «         Œ#d S )Nr,   r2   r   r   )é   r6   )r    Úfigsizer   )r7   r6   r3   r4   Úboxr9   )r;   r!   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rI   rJ   s
             r(   Útest_aspects_adjust_boxrY   3   s<  € à@€GÝŒ|˜A�s 7™|œ|¸ÀtÐ8LØ$+ð-ñ -ô -�H€Cˆð 
ˆAˆ€AÝŒH�Y�Y�YÑÔ€EÝ
Ô
 ¥¤­$­yÔ/@ÀÀAÀqÑ/IÔ/IÑ*JÔ*JÑ!KÔ!KÈQÑ
OÔ
O€CØð 8ð 8‰
ˆˆsÝŒ6•"”&˜ ™Ñ%Ô%Ñ&Ô&¨!¨A¬$°°1´©+Ò5Ð5Øð 8ð 8�Ø�”	�3˜u U™{¨C°©IÑ6Ô6Ð7Ð7Ð7øÝ˜3‘”ð 4ð 4‰ˆˆ2Ø
�Š�g˜a”j¨UˆÑ3Ô3Ð3Ð3ð4ð 4r*   c                  óT  — t          j        ¦   «         } |                      d¬¦  «        }|                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         t          |¦  «        dk    sJ ‚d S )	Nr   r   ÚlabelÚtitleÚxÚyÚzzV<Axes3D: label='label', title={'center': 'title'}, xlabel='x', ylabel='y', zlabel='z'>)	r;   ÚfigureÚadd_subplotÚ	set_labelÚ	set_titleÚ
set_xlabelÚ
set_ylabelÚ
set_zlabelÚrepr©rL   r'   s     r(   Útest_axes3d_reprri   E   s­   € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ‡L‚L�ÑÔÐØ‡L‚L�ÑÔÐØ‡M‚M�#ÑÔÐØ‡M‚M�#ÑÔÐØ‡M‚M�#ÑÔÐÝ�‰8Œ8ð	IòJð Jð Jð Jð Jð Jr*   zaxes3d_primary_views.pngc                  óÀ  — g d¢} t          j        ddddi¬¦  «        \  }}t          |j        ¦  «        D ]•\  }}|                     d¦  «         |                     d¦  «         |                     d	¦  «         |                     d
¦  «         |                     | |         d         | |         d         | |         d         ¬¦  «         Œ–t          j	        ¦   «          d S )N))éZ   é¦ÿÿÿr   )r   rl   r   ©r   r   r   )rl   rk   r   )r   rk   r   )r   é´   r   r4   r6   r   r   r   r]   r^   r_   Úorthor   r2   ©ÚelevÚazimÚroll)
r;   r!   rG   Úflatrd   re   rf   Úset_proj_typeÚ	view_initÚtight_layout)ÚviewsrL   rM   rS   r'   s        r(   Útest_axes3d_primary_viewsry   R   så   € ðð ð €Eõ Œ|˜A˜q¨l¸DÐ-AÐBÑBÔB�H€CˆÝ˜3œ8Ñ$Ô$ð Kð K‰ˆˆ2Ø
�Š�cÑÔÐØ
�Š�cÑÔÐØ
�Š�cÑÔÐØ
×Ò˜Ñ!Ô!Ð!Ø
�Š˜% œ( 1œ+¨E°!¬H°Q¬K¸eÀA¼hÀq¼kˆÑJÔJÐJÐJÝÔÑÔÐÐÐr*   z	bar3d.pngc            
      óD  — t          j        ¦   «         } |                      d¬¦  «        }t          g d¢g d¢¦  «        D ]a\  }}t	          j        d¦  «        }t	          j        d¦  «        }|gt          |¦  «        z  }d|d<   |                     |||dd	|d
¬¦  «         Œbd S )Nr   r   )rN   ÚgÚbr^   )é   é   é
   r   r~   Úcr   r^   Úedgeçš™™™™™é?)ÚzsÚzdirÚalignÚcolorÚalpha)r;   r`   ra   rF   r=   Úaranger<   Úbar)rL   r'   r€   r_   ÚxsÚysÚcss          r(   Ú
test_bar3dr�   g   s­   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝÐ(Ð(Ð(¨/¨/¨/Ñ:Ô:ð Jð J‰ˆˆ1ÝŒY�r‰]Œ]ˆÝŒY�r‰]Œ]ˆØˆS•3�r‘7”7‰]ˆØˆˆ1‰Ø
�Šˆr�2˜! #¨V¸2ÀSˆÑIÔIÐIÐIðJð Jr*   c            
      ó,  — t          j        ¦   «         } |                      d¬¦  «        }dD ]g}t          j        t          |¦  «        ¦  «        }t          j        |¦  «        }t          j        |¦  «        }|                     |||ddd|¬¦  «         Œhd S )Nr   r   )ÚredÚgreenÚblueÚyellowr2   ©r†   )r;   r`   ra   r=   rˆ   r<   Ú
zeros_likeÚbar3d)rL   r'   r€   rŠ   r‹   rƒ   s         r(   Útest_bar3d_colorsr–   s   s‘   € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ/ð /ð /ˆÝŒY•s˜1‘v”vÑÔˆÝŒ]˜2ÑÔˆÝŒ]˜2ÑÔˆð 	�Š��R˜˜Q  1¨AˆÑ.Ô.Ð.Ð.ð/ð /r*   zbar3d_shaded.pngc            
      ó–  — t          j        d¦  «        } t          j        d¦  «        }t          j        | |¦  «        \  }}|                     ¦   «         |                     ¦   «         }}||z   dz   }g d¢}t	          j        t	          j        dt          |¦  «        z  ¦  «        ¬¦  «        }|                     dt          |¦  «        t          d¬¦  «        ¬¦  «        }t          ||¦  «        D ]@\  }\  }	}
}|                     |||d	z  dd|d
¬¦  «         |                     |	|
|¬¦  «         ŒA|j                             ¦   «          d S )Nr7   r3   r2   ))r}   iÄÿÿÿr   )r}   r}   r}   )éâÿÿÿr}   rl   )é,  r˜   r   ©rW   r   r   r   r   T©Úshaderp   )r=   rˆ   ÚmeshgridÚravelr;   r`   Ú	figaspectr<   r!   r"   rF   r•   rv   ÚcanvasÚdraw)r]   r^   Úx2dÚy2dr_   rx   rL   rM   r'   rq   rr   rs   s               r(   Útest_bar3d_shadedr¤      s5  € å
Œ	�!‰Œ€AÝ
Œ	�!‰Œ€AÝŒ{˜1˜aÑ Ô �H€CˆØ�yŠy‰{Œ{˜CŸIšI™KœKˆ€CØˆc‰	�A‰€AàGÐGÐG€EÝ
Œ*�Sœ]¨1­s°5©z¬z©>Ñ:Ô:Ð
;Ñ
;Ô
;€CØ
�,Š,Ø	�3ˆu‰:Œ:Ý 4Ð(Ñ(Ô(ð ñ ô €Cõ #& c¨5¡/¤/ð 6ð 6ÑˆÑˆT�4˜Ø
�Š��c˜3 ™7 A q¨!°4ˆÑ8Ô8Ð8Ø
�Š˜$ T°ˆÑ5Ô5Ð5Ð5Ø„J‡O‚OÑÔÐÐÐr*   zbar3d_notshaded.pngc            	      ó¢  — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        ||¦  «        \  }}|                     ¦   «         |                     ¦   «         }}||z   }|                     |||dz  dd|d¬¦  «         | j         	                    ¦   «          d S )	Nr   r   r7   r3   r   r2   Fr›   )
r;   r`   ra   r=   rˆ   r�   rž   r•   r    r¡   )rL   r'   r]   r^   r¢   r£   r_   s          r(   Útest_bar3d_notshadedr¦   “   s­   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝ
Œ	�!‰Œ€AÝ
Œ	�!‰Œ€AÝŒ{˜1˜aÑ Ô �H€CˆØ�yŠy‰{Œ{˜CŸIšI™KœKˆ€CØˆc‰	€AØ‡H‚HˆS�#�s˜Q‘w  1 a¨u€HÑ5Ô5Ð5Ø„J‡O‚OÑÔÐÐÐr*   c                  ó@  ‡
— t          j        ¦   «         } |                      dddd¬¦  «        }t          j        dd¬¦  «        }d\  }}||z  Š
t          j        t          j        |¦  «        t          j        |¦  «        ¦  «        \  }}|                     ¦   «         }|                     ¦   «         }||z   }ˆ
fd„t          ‰
¦  «        D ¦   «         }| 
                    ||ddd||d	|¬
¦	  «	        }	t
          j                             ||	j        dd d…         ¦  «         d S )Nr2   r   r   r   rk   )ÚazdegÚaltdeg)r6   r7   c                 ó>   •— g | ]}t          j        |‰z  ¦  «        ‘ŒS © )r
   Úcoolwarm)Ú.0rS   Úareas     €r(   ú
<listcomp>z*test_bar3d_lightsource.<locals>.<listcomp>®   s'   ø€ Ð6Ð6Ð6 Q�RŒ[˜˜4™Ñ Ô Ð6Ð6Ð6r*   T)	r]   r^   r_   ÚdxÚdyÚdzr†   rœ   Úlightsourceé   )r;   r`   ra   ÚmcolorsÚLightSourcer=   r�   rˆ   rž   Úranger•   ÚtestingÚassert_array_equalÚ_facecolor3d)rL   r'   ÚlsÚlengthÚwidthr]   r^   r²   r†   Ú
collectionr®   s             @r(   Útest_bar3d_lightsourcer¿       s  ø€ Ý
Œ*‰,Œ,€CØ	�Š˜˜A˜q¨TˆÑ	2Ô	2€Bå	Ô	 1¨RÐ	0Ñ	0Ô	0€Bà�M€FˆEØ�E‰>€DåŒ;•r”y Ñ(Ô(­"¬)°EÑ*:Ô*:Ñ;Ô;�D€A€qØ	�Š‰	Œ	€AØ	�Š‰	Œ	€AØ	
ˆQ‰€Bà6Ð6Ð6Ð6­%°©+¬+Ð6Ñ6Ô6€Eà—’˜A  aØ 1¨Ø %¨T¸rð ñ Cô C€Jõ „J×!Ò! %¨Ô)@ÀÀÀAÀÔ)FÑGÔGÐGÐGÐGr*   zcontour3d.pngc                  óê  — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        \  }}}|                     |||ddt          j        ¬¦  «         |                     |||ddt          j        ¬¦  «         |                     |||d	d
t          j        ¬¦  «         |                     dd
¦  «         | 	                    dd
¦  «         | 
                    dd¦  «         d S ©Nr   r   çš™™™™™©?r_   éœÿÿÿ)r„   ÚoffsetÚcmapr]   éØÿÿÿr^   é(   éd   ©r;   r`   ra   r   Úget_test_dataÚcontourr
   r¬   Úset_xlimÚset_ylimÚset_zlim©rL   r'   ÚXÚYÚZs        r(   Útest_contour3drÓ   »   sØ   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝÔ" 4Ñ(Ô(�G€A€qˆ!Ø‡J‚Jˆq�!�Q˜S¨µB´K€JÑ@Ô@Ð@Ø‡J‚Jˆq�!�Q˜S¨µ2´;€JÑ?Ô?Ð?Ø‡J‚Jˆq�!�Q˜S¨µ"´+€JÑ>Ô>Ð>Ø‡K‚K��RÑÔÐØ‡K‚K��RÑÔÐØ‡K‚K��cÑÔÐÐÐr*   zcontour3d_extend3d.pngc            	      óX  — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        \  }}}|                     |||ddt          j        d¬¦  «         |                     dd	¦  «         | 	                    d
d¦  «         | 
                    dd¦  «         d S )Nr   r   rÂ   r_   rÃ   T)r„   rÄ   rÅ   Úextend3dr˜   r}   éìÿÿÿrÇ   é°ÿÿÿéP   rÉ   rÏ   s        r(   Útest_contour3d_extend3drÙ   È   sš   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝÔ" 4Ñ(Ô(�G€A€qˆ!Ø‡J‚Jˆq�!�Q˜S¨µB´KÈ$€JÑOÔOÐOØ‡K‚K��RÑÔÐØ‡K‚K��RÑÔÐØ‡K‚K��RÑÔÐÐÐr*   zcontourf3d.pngc                  óê  — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        \  }}}|                     |||ddt          j        ¬¦  «         |                     |||ddt          j        ¬¦  «         |                     |||d	d
t          j        ¬¦  «         |                     dd
¦  «         | 	                    dd
¦  «         | 
                    dd¦  «         d S rÁ   )r;   r`   ra   r   rÊ   Úcontourfr
   r¬   rÌ   rÍ   rÎ   rÏ   s        r(   Útest_contourf3drÜ   Ó   sØ   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝÔ" 4Ñ(Ô(�G€A€qˆ!Ø‡K‚K��1�a˜c¨$µR´[€KÑAÔAÐAØ‡K‚K��1�a˜c¨#µB´K€KÑ@Ô@Ð@Ø‡K‚K��1�a˜c¨"µ2´;€KÑ?Ô?Ð?Ø‡K‚K��RÑÔÐØ‡K‚K��RÑÔÐØ‡K‚K��cÑÔÐÐÐr*   zcontourf3d_fill.pngc                  óð  — t          j        ¦   «         } |                      d¬¦  «        }t          j        t          j        ddd¦  «        t          j        ddd¦  «        ¦  «        \  }}|                     dd¦  «        }d|d d d…d d d…f<   |                     |||dd	dgt          j	        ¬
¦  «         | 
                    dd¦  «         |                     dd¦  «         |                     dd¦  «         d S )Nr   r   éþÿÿÿr4   ç      Ð?r   çš™™™™™¹?r3   çš™™™™™¹¿)rÄ   ÚlevelsrÅ   éÿÿÿÿr2   )r;   r`   ra   r=   r�   rˆ   ÚcliprÛ   r
   r¬   rÌ   rÍ   rÎ   rÏ   s        r(   Útest_contourf3d_fillrå   à   sã   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝŒ;•r”y  Q¨Ñ-Ô-­r¬y¸¸QÀÑ/EÔ/EÑFÔF�D€A€qØ	�Šˆq�!‰Œ€Að €A€c€cˆ€cˆ3ˆ3ˆQˆ3€h�KØ‡K‚K��1�a ¨4°¨)½"¼+€KÑFÔFÐFØ‡K‚K��AÑÔÐØ‡K‚K��AÑÔÐØ‡K‚K��AÑÔÐÐÐr*   zextend, levelsÚboth)r4   r7   r´   Úmin)r4   r7   r´   é   Úmax)r   r4   r7   r´   c                 ó   — t          j        t          j        ddd¦  «        t          j        ddd¦  «        ¦  «        \  }}|dz  |dz  z   }t          j        d                              ¦   «         }|                      |d¦  «        ¦  «         |                      |d¦  «        ¦  «         dd|d	œ}|                     d
¬¦  «        }	 |	j	        |||fdg d¢i|¤Ž |                      d
¬¦  «        }
 |
j	        ||||fd|i|¤Ž |	|
fD ]D}| 
                    dd¦  «         |                     dd¦  «         |                     dd¦  «         ŒEd S )NrÞ   r4   rß   Úviridisr   éÿ   r2   é   )ÚvminÚvmaxrÅ   r   r   râ   )r   r4   r7   r´   rè   Úextendéöÿÿÿr   )r=   r�   rˆ   ÚmplÚ	colormapsÚcopyÚ	set_underÚset_overra   rÛ   rÌ   rÍ   rÎ   )r%   r&   rð   râ   rÐ   rÑ   rÒ   rÅ   ÚkwargsÚax_refÚax_testr'   s               r(   Útest_contourf3d_extendrú   ï   sy  € õ
 Œ;•r”y  Q¨Ñ-Ô-­r¬y¸¸QÀÑ/EÔ/EÑFÔF�D€A€qà	ˆ1‰ˆq�!‰t‰€Aõ Œ=˜Ô#×(Ò(Ñ*Ô*€DØ‡N‚N�4�4˜‘7”7ÑÔÐØ‡M‚M�$�$�s‘)”)ÑÔÐà ¨DÐ1Ð1€Fà× Ò ¨DÐ Ñ1Ô1€FØ€F„O�A�q˜!Ð>Ð> O O OÐ>°vÐ>Ð>Ð>à×"Ò"¨dÐ"Ñ3Ô3€GØ€GÔ�Q˜˜1˜fÐ>Ð>¨VÐ>°vÐ>Ð>Ð>à�wÐð ð ˆØ
�Š�B˜ÑÔÐØ
�Š�B˜ÑÔÐØ
�Š�C˜ÑÔÐÐðð r*   ztricontour.pngç{®Gáz”?)Útolc                  óÊ  — t          j        ¦   «         } t          j                             d¦  «         t          j                             d¦  «        dz
  }t          j                             d¦  «        dz
  }|dz  |dz  z    }|                      dddd¬¦  «        }|                     |||¦  «         |                      dddd¬¦  «        }|                     |||¦  «         d S )Ni!N,éè  ç      à?r4   r2   r   r   )	r;   r`   r=   ÚrandomÚseedÚrandra   Ú
tricontourÚtricontourf)rL   r]   r^   r_   r'   s        r(   Útest_tricontourr    sÈ   € å
Œ*‰,Œ,€Cå„I‡N‚N�8ÑÔÐÝ
Œ	�Š�tÑÔ˜sÑ"€AÝ
Œ	�Š�tÑÔ˜sÑ"€AØ
ˆQ‰$��A‘‰+ˆ€Aà	�Š˜˜A˜q¨TˆÑ	2Ô	2€BØ‡M‚M�!�Q˜ÑÔÐØ	�Š˜˜A˜q¨TˆÑ	2Ô	2€BØ‡N‚N�1�a˜ÑÔÐÐÐr*   c                  ó2  — t          j        ¦   «         } |                      d¬¦  «        }d\  }}t          j        dd|¦  «        }t          j        dd|¦  «        }t          j                             dd||g¦  «        }|                     |||dg¦  «         d S )	Nr   r   )r}   r~   rñ   r   r   r4   rÿ   )r;   r`   ra   r=   Úlinspacer   ÚrandintrË   )rL   r'   ÚnxÚnyr]   r^   r_   s          r(   Útest_contour3d_1d_inputr    sŒ   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ�F€BˆÝ
Œ�C˜˜RÑ Ô €AÝ
Œ�C˜˜RÑ Ô €AÝ
Œ	×Ò˜!˜Q  R Ñ)Ô)€AØ‡J‚Jˆq�!�Q˜˜ÑÔÐÐÐr*   zlines3d.pngc                  ó~  — t          j        ¦   «         } |                      d¬¦  «        }t          j        dt          j        z  dt          j        z  d¦  «        }t          j        ddd¦  «        }|dz  dz   }|t          j        |¦  «        z  }|t          j        |¦  «        z  }|                     |||¦  «         d S )	Nr   r   éüÿÿÿr7   rÈ   rÞ   r4   r2   )	r;   r`   ra   r=   r  ÚpiÚsinÚcosÚplot)rL   r'   Úthetar_   rN   r]   r^   s          r(   Útest_lines3dr  %  sŸ   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝŒK˜�RœU™
 A­¬¡I¨sÑ3Ô3€EÝ
Œ�B˜˜3ÑÔ€AØ	ˆQ‰�‰
€AØ	�BŒF�5‰MŒMÑ€AØ	�BŒF�5‰MŒMÑ€AØ‡G‚GˆAˆq�!ÑÔÐÐÐr*   c                 ó¾   — |                       d¬¦  «        }|                     dgdgd¦  «         |                      d¬¦  «        }|                     ddd¦  «         d S )Nr   r   r2   Úo©ra   r  ©r%   r&   Úax1Úax2s       r(   Útest_plot_scalarr  1  sd   € à
×
Ò
¨$Ð
Ñ
/Ô
/€CØ‡H‚HˆaˆS�1�#�sÑÔÐØ
×
Ò
¨Ð
Ñ
.Ô
.€CØ‡H‚HˆQ��3ÑÔÐÐÐr*   c                  ó¦  — t          j        t          d¬¦  «        5  t          j        dg g ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          j        g dg ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          j        g g d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g g g ¦  «        } t          j        t          d¬¦  «        5  |                      dg g ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      g dg ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      g g d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz	x must be©Úmatchr   z	y must bez	z must be)ÚpytestÚraisesÚRuntimeErrorr   ÚLine3DÚset_data_3d)Úlines    r(   Útest_invalid_line_datar$  9  s&  € Ý	Œ•|¨;Ð	7Ñ	7Ô	7ð  ð  ÝŒ�Q˜˜BÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  å	Œ•|¨;Ð	7Ñ	7Ô	7ð  ð  ÝŒ�R˜˜BÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  å	Œ•|¨;Ð	7Ñ	7Ô	7ð  ð  ÝŒ�R˜˜QÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ Œ<˜˜B Ñ#Ô#€DÝ	Œ•|¨;Ð	7Ñ	7Ô	7ð $ð $Ø×Ò˜˜B Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $å	Œ•|¨;Ð	7Ñ	7Ô	7ð $ð $Ø×Ò˜˜Q Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $å	Œ•|¨;Ð	7Ñ	7Ô	7ð $ð $Ø×Ò˜˜R Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $si   œ?¿AÁAÁ%BÂBÂBÂ.CÃCÃCÄD1Ä1D5Ä8D5ÅE;Å;E?ÆE?Æ!GÇG
ÇG
zmixedsubplot.pngc            	      óÎ  — d„ } t          j        ddd¦  «        }t          j        ddd¦  «        }t          j        t          j        d¦  «        ¬¦  «        }|                     dd	d	¦  «        }|                     | | |¦  «        d
| | |¦  «        dd¬¦  «         |                     d¦  «         |                     dd	dd¬¦  «        }t          j        t          j        ddd¦  «        t          j        ddd¦  «        ¦  «        \  }}t          j	        ||¦  «        }t          j
        |¦  «        }|                     |||dddd¬¦  «         |                     dd	¦  «         d S )Nc                 óv   — t          j        dt           j        z  | z  ¦  «        t          j        |  ¦  «        z  S )Nr4   )r=   r  r  Úexp)Úts    r(   Úfztest_mixedsubplots.<locals>.fL  s+   € ÝŒv�a�œ‘g˜a‘iÑ Ô ¥2¤6¨1¨"¡:¤:Ñ-Ð-r*   ç        ç      @rà   rû   ç       @rš   r4   r2   Úbozk--r�   )ÚmarkerfacecolorTr   r   éûÿÿÿr3   rß   rÇ   r   F)ÚrcountÚccountÚ	linewidthÚantialiasedrã   )r=   rˆ   r;   r`   rŸ   ra   r  Úgridr�   Úhypotr  Úplot_surfaceÚ
set_zlim3d)	r)  Út1Út2rL   r'   rÐ   rÑ   ÚRrÒ   s	            r(   Útest_mixedsubplotsr;  J  sU  € ð.ð .ð .õ 
Œ�3˜˜SÑ	!Ô	!€BÝ	Œ�3˜˜TÑ	"Ô	"€Bå
Œ*�Sœ]¨2Ñ.Ô.Ð
/Ñ
/Ô
/€CØ	�Š˜˜A˜qÑ	!Ô	!€BØ‡G‚GˆB���"‘”�t˜R   2¡¤¨¸w€GÑGÔGÐGØ‡G‚GˆD�M„M€Mà	�Š˜˜A˜q¨TˆÑ	2Ô	2€BÝŒ;•r”y  Q¨Ñ-Ô-­r¬y¸¸QÀÑ/EÔ/EÑFÔF�D€A€qÝ
Œ��A‰Œ€AÝ
Œˆq‰	Œ	€Aà‡O‚O�A�q˜! B¨rØ¨Uð ñ 4ô 4ð 4ð ‡M‚M�"�aÑÔÐÐÐr*   c                 ó  — |                       d¬¦  «        }|                     dddd¬¦  «         |                      ¦   «          |                      d¬¦  «        }|                     ¦   «          |                     dddd¬¦  «         d S )Nr   r   rÿ   zsome string©Ús)ra   Útextrw   r  s       r(   Útest_tight_layout_textr@  b  sŽ   € ð ×
Ò
¨$Ð
Ñ
/Ô
/€CØ‡H‚HˆR��R˜=€HÑ)Ô)Ð)Ø×ÒÑÔÐà
×
Ò
¨Ð
Ñ
.Ô
.€CØ×ÒÑÔÐØ‡H‚HˆR��R˜=€HÑ)Ô)Ð)Ð)Ð)r*   zscatter3d.pngc                  óœ  — t          j        ¦   «         } |                      d¬¦  «        }|                     t	          j        d¦  «        t	          j        d¦  «        t	          j        d¦  «        dd¬¦  «         t	          j        dd¦  «        x}x}}|                     |||dd	¬¦  «         d
|d<   |                     g g g dd¬¦  «         d S )Nr   r   r   rN   r  )r€   Úmarkerr~   r|   ú^r   rã   rÐ   ©r;   r`   ra   Úscatterr=   rˆ   ©rL   r'   r]   r^   r_   s        r(   Útest_scatter3drG  o  sÀ   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ‡J‚J�rŒy˜‰}Œ}�bœi¨™mœm­R¬Y°r©]¬]Ø˜Sð ñ "ô "ð "å”	˜"˜bÑ!Ô!Ð!€AÐ!ˆˆAØ‡J‚Jˆq�!�Q˜# c€JÑ*Ô*Ð*Ø€A€b�Eà‡J‚Jˆr�2�r˜S¨€JÑ-Ô-Ð-Ð-Ð-r*   zscatter3d_color.pngc                  óB  — t          j        ¦   «         } |                      d¬¦  «        }|                     t	          j        d¦  «        t	          j        d¦  «        t	          j        d¦  «        ddd¬¦  «         |                     t	          j        d¦  «        t	          j        d¦  «        t	          j        d¦  «        ddd¬¦  «         |                     t	          j        dd¦  «        t	          j        dd¦  «        t	          j        dd¦  «        d	d
¬¦  «         d S )Nr   r   r   rN   Únoner  )Ú	facecolorÚ	edgecolorrB  r~   r|   r>  )r†   rB  rD  rh   s     r(   Útest_scatter3d_colorrL  |  sø   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€Bð ‡J‚J�rŒy˜‰}Œ}�bœi¨™mœm­R¬Y°r©]¬]Ø¨°sð ñ <ô <ð <à‡J‚J�rŒy˜‰}Œ}�bœi¨™mœm­R¬Y°r©]¬]Ø¨3°sð ñ <ô <ð <ð ‡J‚J�rŒy˜˜RÑ Ô ¥"¤)¨B°Ñ"3Ô"3µR´Y¸rÀ2Ñ5FÔ5FØ ð ñ &ô &ð &ð &ð &r*   zscatter3d_linewidth.pngc            	      ó  — t          j        ¦   «         } |                      d¬¦  «        }|                     t	          j        d¦  «        t	          j        d¦  «        t	          j        d¦  «        dt	          j        d¦  «        ¬¦  «         d S )Nr   r   r   r  )rB  r2  rD  rh   s     r(   Útest_scatter3d_linewidthrN  Œ  sr   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€Bð ‡J‚J�rŒy˜‰}Œ}�bœi¨™mœm­R¬Y°r©]¬]Ø¥R¤Y¨r¡]¤]ð ñ 4ô 4ð 4ð 4ð 4r*   c           	      ó  — |                      d¬¦  «        }|                     t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        d¬¦  «        }|                     t          j        d¦  «        ¦  «         |                       d¬¦  «        }|                     t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        dt          j        d¦  «        ¬¦  «         d S )Nr   r   r   r  ©rB  )rB  Ú
linewidths)ra   rE  r=   rˆ   Úset_linewidths©r&   r%   rù   r€   rø   s        r(   Ú%test_scatter3d_linewidth_modificationrT  –  sÕ   € ð ×"Ò"¨dÐ"Ñ3Ô3€GØ�Š�œ	 "™œ¥r¤y°¡}¤}µb´iÀ±m´mØ"ð 	ñ 	$ô 	$€Aà×Ò•R”Y˜r‘]”]Ñ#Ô#Ð#à× Ò ¨DÐ Ñ1Ô1€FØ
‡N‚N•2”9˜R‘=”=¥"¤)¨B¡-¤-µ´¸2±´ÀsÝ œi¨™mœmð ñ -ô -ð -ð -ð -r*   c                 ó4  — |                      d¬¦  «        }|                     t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        d¬¦  «        }|                     d¦  «         |                     d¦  «         |                     dd	gd
z  ¦  «         |                     ¦   «         sJ ‚|                     d¦  «         |                     ¦   «         rJ ‚| 	                    t          j
        dd¦  «        ¦  «         |                     d¦  «         |                       d¬¦  «        }|                     t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        ddddd	gd
z  ddd¬¦
  «
         d S )Nr   r   r   r  rP  ÚC1ÚC2ç333333Ó?çffffffæ?r3   FéK   r6   )rB  rJ  rK  r‡   Ú
depthshader>  rQ  )ra   rE  r=   rˆ   Úset_facecolorÚset_edgecolorÚ	set_alphaÚget_depthshadeÚset_depthshadeÚ	set_sizesÚfullrR  rS  s        r(   Útest_scatter3d_modificationrc  ¤  sv  € ð ×"Ò"¨dÐ"Ñ3Ô3€GØ�Š�œ	 "™œ¥r¤y°¡}¤}µb´iÀ±m´mØ"ð 	ñ 	$ô 	$€Aà‡O‚O�DÑÔÐØ‡O‚O�DÑÔÐØ‡K‚K��c�
˜Q‘ÑÔÐØ×ÒÑÔÐÐÐØ×Ò�UÑÔÐØ×ÒÑ!Ô!Ð!Ð!Ð!Ø‡K‚K•”˜˜B‘”Ñ Ô Ð Ø×Ò�QÑÔÐà× Ò ¨DÐ Ñ1Ô1€FØ
‡N‚N•2”9˜R‘=”=¥"¤)¨B¡-¤-µ´¸2±´ÀsØ!¨T¸#¸s¸Àa¹Ø# r°að ñ 9ô 9ð 9ð 9ð 9r*   r[  c                 ó€  — t           j        dd…dd…f         \  }}t          j        |j        ¦  «                             |j        ¦  «        }t          j        |j        d¦  «        }d|ddd…ddd…f<   d|ddd…ddd…f<   t          j        |j        d¦  «        }d	|dd
…dd
…f<   d|dd…dd…f<   d|dd…dd…f<   t          j        |j        d¦  «        }d|dd
…dd
…f<   d|d
d…dd
…f<   d|d
d…d
d…f<   t          j        |j        d¦  «        }	d
|	ddd…ddd…f<   d
|	ddd…ddd…f<   d„ |||||||	fD ¦   «         \  }}}}}}}	|                      d¬¦  «        }
d„ ||||	fD ¦   «         }t          j	        |Ž D ]�\  }}}}||k    ||k    z  ||k    z  |	|k    z  }t           j
                             ||t          ¬¦  «        }t          j        |t          |j         ¦  «        ¦  «        }|
                     |||||||d|¬¦	  «	         Œ�|                     d¬¦  «        }|                     |||||||	d|¬¦	  «	         dS )z1Test that marker properties are correctly sorted.Nr   é   rÈ   r   r4   r2   ÚC0rV  r3   rW  r´   r7   ÚC3ÚC4ÚC5ÚC6é	   ÚC7c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r«   )Úflatten©r­   Úas     r(   r¯   z*test_scatter3d_sorting.<locals>.<listcomp>Ó  s0   € ð :ð :ð :àð 	
�	Š	‰Œð:ð :ð :r*   r   r   c              3   ó>   K  — | ]}t          j        |¦  «        V — Œd S )N)r=   Úuniquero  s     r(   ú	<genexpr>z)test_scatter3d_sorting.<locals>.<genexpr>Ù  s*   è è € ÐNÐN˜Q�BŒI�a‰LŒLÐNÐNÐNÐNÐNÐNr*   ©Údtype)r>  ÚfcÚecÚlwr‡   r[  )r=   Úmgridrˆ   ÚsizeÚreshapeÚshaperb  ra   r?   rB   ÚmaÚmasked_arrayÚfloatÚrepeatrC   ÚmaskrE  )r&   r%   r[  r^   r]   r_   ÚsizesÚ
facecolorsÚ
edgecolorsrQ  rø   Úsetsr>  rv  rw  rx  Úsubsetrù   s                     r(   Útest_scatter3d_sortingr‡  ¹  s  € õ
 Œ8�C�R�C˜˜"˜�HÔ�D€A€qÝ
Œ	�!”&ÑÔ×!Ò! !¤'Ñ*Ô*€AåŒG�A”G˜RÑ Ô €EØ€Eˆ!ˆ$ˆQˆ$���1�ˆ*ÑØ€Eˆ!ˆ$ˆQˆ$���1�ˆ*Ñå”˜œ $Ñ'Ô'€JØ€Jˆr�ˆr�2�A�2ˆvÑØ€Jˆqˆrˆr�2�A�2ˆvÑØ€Jˆqˆrˆr�1�2�2ˆvÑå”˜œ $Ñ'Ô'€JØ€Jˆq�ˆs�A�a�CˆxÑØ€Jˆq�ˆs�A�a�CˆxÑØ€Jˆq�ˆs�A�a�CˆxÑå”˜œ !Ñ$Ô$€JØ€Jˆqˆt�!ˆt�Q�T˜�TˆzÑØ€Jˆqˆt�!ˆt�Q�T˜�TˆzÑð:ð :à�Q˜˜5 *¨j¸*ÐEð:ñ :ô :Ñ6€A€qˆ!ˆU�J 
¨Jð
 × Ò ¨DÐ Ñ1Ô1€FØNÐN 5¨*°jÀ*Ð"MÐNÑNÔN€DÝ"Ô*¨DÐ1ð .ð .‰ˆˆ2ˆr�2à�aŠZØ˜2Òñà˜2Òñð ˜2Òñð 	õ ”×#Ò# A vµUÐ#Ñ;Ô;ˆõ ŒY�r�3 ¤˜|Ñ,Ô,Ñ-Ô-ˆà�Š�q˜!˜V q¨R°B¸2ÀQØ",ð 	ñ 	.ô 	.ð 	.ð 	.ð ×"Ò"¨dÐ"Ñ3Ô3€GØ‡O‚O�A�q˜!˜u¨¸
Ø!¨°zð ñ Cô Cð Cð Cð Cr*   rr   éÎÿÿÿé‚   c           
      óŽ  — ddg}ddg}ddg}ddg}|                       d¬¦  «        }|                     |||d|¬	¦  «         |                     d|d¬
¦  «         |                      d¬¦  «        }|                     |ddd…         |ddd…         |ddd…         d|ddd…         ¬	¦  «         |                     d|d¬
¦  «         dS )zÕ
    Test that the draw order does not depend on the data point order.

    For the given viewing angle at azim=-50, the yellow marker should be in
    front. For azim=130, the blue marker should be in front.
    rã   r2   r   r|   r^   r   r   é¬  ©r>  r€   rp   N)ra   rE  rv   ©r%   r&   rr   r]   r^   r_   r†   r'   s           r(   Ú$test_marker_draw_order_data_reversedrŽ  ñ  sê   € ð 
ˆQˆ€AØ	
ˆBˆ€AØ	
ˆAˆ€AØ�#ˆJ€EØ	×	Ò	¨Ð	Ñ	.Ô	.€BØ‡J‚Jˆq�!�Q˜$ %€JÑ(Ô(Ð(Ø‡L‚L�a˜d¨€LÑ+Ô+Ð+Ø	×	Ò	¨Ð	Ñ	-Ô	-€BØ‡J‚Jˆq���2�Œw˜˜$˜$˜B˜$œ  4 4 R 4¤¨D°E¸$¸$¸B¸$´K€JÑ@Ô@Ð@Ø‡L‚L�a˜d¨€LÑ+Ô+Ð+Ð+Ð+r*   c           
      ó²  — d}ddg}ddg}ddg}ddg}|                       d¬¦  «        }|                     ¦   «          |                     |||d	|¬
¦  «         |                     d|d¬¦  «         |                      d¬¦  «        }|                     ¦   «          |                     |||d	|ddd…         ¬
¦  «         |                     d|dz
  d¬¦  «         dS )z­
    Test that the draw order changes with the direction.

    If we rotate *azim* by 180 degrees and exchange the colors, the plot
    plot should look the same again.
    r‰  rã   r2   r   r|   r^   r   r   r‹  rŒ  rp   Nrn   )ra   Úset_axis_offrE  rv   r�  s           r(   Ú#test_marker_draw_order_view_rotatedr‘    sõ   € ð €DØ	ˆQˆ€AØ	
ˆBˆ€AØ	
ˆAˆ€AØ�#ˆJ€EØ	×	Ò	¨Ð	Ñ	.Ô	.€Bà‡O‚OÑÔÐØ‡J‚Jˆq�!�Q˜$ %€JÑ(Ô(Ð(Ø‡L‚L�a˜d¨€LÑ+Ô+Ð+Ø	×	Ò	¨Ð	Ñ	-Ô	-€BØ‡O‚OÑÔÐØ‡J‚Jˆq�!�Q˜$ %¨¨¨"¨¤+€JÑ.Ô.Ð.Ø‡L‚L�a˜d S™j¨q€LÑ1Ô1Ð1Ð1Ð1r*   zplot_3d_from_2d.pngg¸…ëQ¸Ž?c                  ó  — t          j        ¦   «         } |                      d¬¦  «        }t          j        dd¦  «        }t          j        dd¦  «        }|                     ||dd¬¦  «         |                     ||dd¬¦  «         d S )	Nr   r   r   r3   r   r]   ©rƒ   r„   r^   )r;   r`   ra   r=   rˆ   r  )rL   r'   rŠ   r‹   s       r(   Útest_plot_3d_from_2dr”    sz   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝ	Œ�1�a‰Œ€BÝ	Œ�1�bÑ	Ô	€BØ‡G‚GˆB��q˜s€GÑ#Ô#Ð#Ø‡G‚GˆB��q˜s€GÑ#Ô#Ð#Ð#Ð#r*   zsurface3d.pngc            
      óú  — dt           j        d<   t          j        ¦   «         } |                      d¬¦  «        }t	          j        ddd¦  «        }t	          j        ddd¦  «        }t	          j        ||¦  «        \  }}t	          j        ||¦  «        }t	          j        |¦  «        }| 	                    |||ddt          j        d	d¬
¦  «        }|                     dd¦  «         |                      |dd¬¦  «         d S )NFzpcolormesh.snapr   r   r/  r3   rß   rÇ   r   )r0  r1  rÅ   rx  r3  ç)\�Âõ(ð¿ç)\�Âõ(ð?rÿ   )ÚshrinkÚaspect)r;   ÚrcParamsr`   ra   r=   rˆ   r�   r5  r  r6  r
   r¬   rÎ   Úcolorbar)rL   r'   rÐ   rÑ   r:  rÒ   Úsurfs          r(   Útest_surface3dr�  (  sã   € ð ',…C„LÐ"Ñ#å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝ
Œ	�"�a˜ÑÔ€AÝ
Œ	�"�a˜ÑÔ€AÝŒ;�q˜!ÑÔ�D€A€qÝ
Œ��A‰Œ€AÝ
Œˆq‰	Œ	€AØ�?Š?˜1˜a ¨2°b½r¼{Ø¨Uð ñ 4ô 4€Dà‡K‚K��tÑÔÐØ‡L‚L�˜c¨!€LÑ,Ô,Ð,Ð,Ð,r*   zsurface3d_shaded.pngc            
      ó¬  — t          j        ¦   «         } |                      d¬¦  «        }t          j        ddd¦  «        }t          j        ddd¦  «        }t          j        ||¦  «        \  }}t          j        |dz  |dz  z   ¦  «        }t          j        |¦  «        }|                     |||ddg d¢dd	¬
¦  «         | 	                    dd¦  «         d S )Nr   r   r/  r3   rß   r4   )rß   r2   rß   r2   F)ÚrstrideÚcstrider†   rx  r3  r–  r—  )
r;   r`   ra   r=   rˆ   r�   Úsqrtr  r6  rÎ   )rL   r'   rÐ   rÑ   r:  rÒ   s         r(   Útest_surface3d_shadedr¢  :  sÐ   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝ
Œ	�"�a˜ÑÔ€AÝ
Œ	�"�a˜ÑÔ€AÝŒ;�q˜!ÑÔ�D€A€qÝ
Œ��Q‘˜˜a™‘Ñ Ô €AÝ
Œˆq‰	Œ	€AØ‡O‚O�A�q˜! Q°Ø)˜/˜/¨a¸Uð ñ Dô Dð Dà‡K‚K��tÑÔÐÐÐr*   zsurface3d_masked.pngc                  óJ  — t          j        ¦   «         } |                      d¬¦  «        }g d¢}g d¢}t          j        ||¦  «        \  }}t          j        g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g¦  «        }t          j                             |d¦  «        }t          j	        | 
                    ¦   «         |                     ¦   «         ¬¦  «        }t          j        d          ||¦  «        ¦  «        }|                     ||||¬¦  «         |                     ddd¦  «         d S )Nr   r   )r2   r4   r6   r7   r3   r´   rí   rè   rk  r   rV   )r2   r4   r6   r7   r3   r´   rí   rè   )rã   r   r   r   r   r   r   r   r   r   r   )rã   r2   r4   r6   r7   r7   r7   r6   r4   r2   r2   )rã   ç      ð¿r7   r3   r´   rè   r´   r3   r7   r6   r¤  )rã   r¤  rí   rè   rV   é   rV   rè   rí   r¤  r¤  )rã   r¤  rè   rk  r   é   r   rk  r   rí   r¤  )rã   r¤  r¤  r¥  r¦  r~   r¦  r¥  rV   r¤  r¤  )rã   r¤  r¤  r¤  é   é   r§  r~   é   r¤  r¤  )rã   r¤  r¤  r¤  r¤  é   é   re  r¤  r¤  r¤  r   )rï   rî   Úplasma©rƒ  r}   r×   )r;   r`   ra   r=   r�   r>   r}  Úmasked_lessrµ   Ú	Normalizeré   rç   rò   ró   r6  rv   )rL   r'   r]   r^   Úmatrixr_   Únormr   s           r(   Útest_surface3d_maskedr²  H  s9  € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ+Ð+Ð+€AØ Ð Ð €AåŒ;�q˜!ÑÔ�D€A€qÝŒXà.Ð.Ð.Ø.Ð.Ð.Ø2Ð2Ð2Ø7Ð7Ð7Ø6Ð6Ð6Ø<Ð<Ð<Ø=Ð=Ð=Ø?Ð?Ð?ð		
ñô €Fõ 	Œ×Ò˜& !Ñ$Ô$€AÝÔ !§%¢%¡'¤'°·²±´Ð8Ñ8Ô8€DÝŒ]˜8Ô$ T T¨!¡W¤WÑ-Ô-€FØ‡O‚O�A�q˜!¨€OÑ/Ô/Ð/Ø‡L‚L��S˜!ÑÔÐÐÐr*   c                 ó@  — t          j        t          j        d¦  «        t          j        d¦  «        ¦  «        \  }}||z   }|                      d¬¦  «        }|                     |||d ¬¦  «         |                     d¬¦  «        }|                     |||¦  «         d S )Nr3   r   r   r­  )r=   r�   rˆ   ra   r6  )r%   r&   r]   r^   r_   rù   rø   s          r(   Útest_plot_surface_None_argr´  c  s—   € åŒ;•r”y ‘|”|¥R¤Y¨q¡\¤\Ñ2Ô2�D€A€qØ	ˆA‰€AØ×"Ò"¨dÐ"Ñ3Ô3€GØ×Ò˜˜A˜q¨TÐÑ2Ô2Ð2Ø× Ò ¨DÐ Ñ1Ô1€FØ
×Ò˜˜1˜aÑ Ô Ð Ð Ð r*   zsurface3d_masked_strides.pngc                  ó:  — t          j        ¦   «         } |                      d¬¦  «        }t          j        ddd…ddd…f         \  }}t          j                             ||z  d¦  «        }|                     |||dd¬¦  «         |                     d	d
d¦  «         d S )Nr   r   iúÿÿÿgffffff@r2   r4   r7   ©rŸ  r   é<   éÓÿÿÿr   )	r;   r`   ra   r=   ry  r}  r®  r6  rv   rF  s        r(   Útest_surface3d_masked_stridesr¹  m  s”   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BåŒ8�B�s˜1�H˜b  Q˜hÐ&Ô'�D€A€qÝ
Œ×Ò˜!˜a™% Ñ#Ô#€Aà‡O‚O�A�q˜! Q°€OÑ2Ô2Ð2Ø‡L‚L��S˜!ÑÔÐÐÐr*   z
text3d.pngc                  óR  — t          j        ¦   «         } |                      d¬¦  «        }d}d}d}d}t          ||||¦  «        D ])\  }}}}	d|||	|fz  }
|                     |||	|
|¦  «         Œ*|                     dddd	d	¬
¦  «         |                     ddd|j        ¬¦  «         |                     dd¦  «         |                     dd¦  «         | 	                    dd¦  «         | 
                    d¦  «         |                     d¦  «         |                     d¦  «         d S )Nr   r   ©Nr]   r^   r_   ©r2   r2   r   ©r2   r2   r2   ©r4   r´   r7   rk  rí   r4   ©r´   r7   rè   rí   r4   r4   ©r7   r4   r3   r´   r2   rí   z(%d, %d, %d), dir=%sr2   r�   r“   rÂ   gffffffî?z2D Text)Ú	transformr   r   zX axiszY axiszZ axis)r;   r`   ra   rF   r?  Útext2DÚ	transAxesÚ
set_xlim3dÚ
set_ylim3dr7  rd   re   rf   )rL   r'   ÚzdirsrŠ   r‹   rƒ   r„   r]   r^   r_   r[   s              r(   Útest_text3drÇ  y  s8  € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€Bà7€EØ	€BØ	€BØ	€Bå˜U B¨¨BÑ/Ô/ð &ð &‰ˆˆa��AØ&¨!¨Q°°4¨Ñ8ˆØ
�Š��1�a˜ Ñ%Ô%Ð%Ð%à‡G‚GˆAˆq�!�U %€GÑ(Ô(Ð(Ø‡I‚Iˆd�D˜)¨r¬|€IÑ<Ô<Ð<Ø‡M‚M�!�RÑÔÐØ‡M‚M�!�RÑÔÐØ‡M‚M�!�RÑÔÐØ‡M‚M�(ÑÔÐØ‡M‚M�(ÑÔÐØ‡M‚M�(ÑÔÐÐÐr*   c                 ó¦  — d}d}d}d}|                      d¬¦  «        }|                     dd¦  «         |                     dd¦  «         |                     dd¦  «         t	          ||||¦  «        D ]E\  }}}	}
|                     dddd	|› d
|	› d
|
› d|› �¦  «        }|                     ||	|
f|¬¦  «         ŒF|                       d¬¦  «        }|                     dd¦  «         |                     dd¦  «         |                     dd¦  «         t	          ||||¦  «        D ]-\  }}}	}
|                     ||	|
d	|› d
|	› d
|
› d|› �|¬¦  «         Œ.d S )Nr»  r¾  r¿  rÀ  r   r   r   r   ú(z, z), dir=)r„   )ra   rÄ  rÅ  r7  rF   r?  Úset_position_3d)r&   r%   rÆ  rŠ   r‹   rƒ   rù   r„   r]   r^   r_   r(  rø   s                r(   Útest_text3d_modificationrË  ‘  sº  € ð 8€EØ	€BØ	€BØ	€Bà×"Ò"¨dÐ"Ñ3Ô3€GØ×Ò�q˜"ÑÔÐØ×Ò�q˜"ÑÔÐØ×Ò�q˜"ÑÔÐÝ˜U B¨¨BÑ/Ô/ð 0ð 0‰ˆˆa��AØ�LŠL˜˜A˜qÐ"@ aÐ"@Ð"@¨1Ð"@Ð"@°Ð"@Ð"@¸$Ð"@Ð"@ÑAÔAˆØ	×Ò˜1˜a ˜)¨$ÐÑ/Ô/Ð/Ð/à× Ò ¨DÐ Ñ1Ô1€FØ
×Ò�a˜ÑÔÐØ
×Ò�a˜ÑÔÐØ
×Ò�a˜ÑÔÐÝ˜U B¨¨BÑ/Ô/ð Hð H‰ˆˆa��AØ�Š�A�q˜!Ð; Ð;Ð; aÐ;Ð;¨1Ð;Ð;°TÐ;Ð;À$ˆÑGÔGÐGÐGðHð Hr*   ztrisurf3d.pngg¬Zd;¯?c                  óØ  — d} d}t          j        dd|¦  «        }t          j        ddt           j        z  | d¬¦  «        }t          j        |d	t           j        f         |d
¬¦  «        }|d d …d
d d…fxx         t           j        | z  z  cc<   t          j        d|t          j        |¦  «        z                       ¦   «         ¦  «        }t          j        d|t          j        |¦  «        z                       ¦   «         ¦  «        }t          j        | |z  ¦  «        }t          j
        ¦   «         }|                     d¬¦  «        }|                     |||t          j        d¬¦  «         d S )Né$   rè   ç      À?ç      ð?r   r4   F©Úendpoint.r2   ©Úaxisr   r   çš™™™™™É?)rÅ   r2  )r=   r  r  r€  ÚnewaxisÚappendr  rn  r  r;   r`   ra   Úplot_trisurfr
   Újet©	Ún_anglesÚn_radiiÚradiiÚanglesr]   r^   r_   rL   r'   s	            r(   Útest_trisurf3drÞ  ª  s1  € à€HØ€GÝŒK˜˜s GÑ,Ô,€EÝŒ[˜˜A�bœe™G X¸Ð>Ñ>Ô>€FÝŒY�v˜c¥2¤:˜oÔ.°¸aÐ@Ñ@Ô@€FØ
ˆ1ˆ1ˆ1ˆaˆd�ˆdˆ7€O€O„O•r”u˜X‘~Ñ%€O€O�Oå
Œ	�!�e�BœF 6™NœNÑ*×3Ò3Ñ5Ô5Ñ6Ô6€AÝ
Œ	�!�e�BœF 6™NœNÑ*×3Ò3Ñ5Ô5Ñ6Ô6€AÝ
Œ�ˆr�!‰t‰Œ€Aå
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ‡O‚O�A�q˜!¥"¤&°C€OÑ8Ô8Ð8Ð8Ð8r*   ztrisurf3d_shaded.pngç¸…ëQ¸ž?c                  óÈ  — d} d}t          j        dd|¦  «        }t          j        ddt           j        z  | d¬¦  «        }t          j        |d	t           j        f         |d
¬¦  «        }|d d …d
d d…fxx         t           j        | z  z  cc<   t          j        d|t          j        |¦  «        z                       ¦   «         ¦  «        }t          j        d|t          j        |¦  «        z                       ¦   «         ¦  «        }t          j        | |z  ¦  «        }t          j
        ¦   «         }|                     d¬¦  «        }|                     |||g d¢d¬¦  «         d S )NrÍ  rè   rÎ  rÏ  r   r4   FrÐ  .r2   rÒ  r   r   )r2   rÿ   r   rÔ  )r†   r2  )r=   r  r  r€  rÕ  rÖ  r  rn  r  r;   r`   ra   r×  rÙ  s	            r(   Útest_trisurf3d_shadedrá  ¼  s3  € à€HØ€GÝŒK˜˜s GÑ,Ô,€EÝŒ[˜˜A�bœe™G X¸Ð>Ñ>Ô>€FÝŒY�v˜c¥2¤:˜oÔ.°¸aÐ@Ñ@Ô@€FØ
ˆ1ˆ1ˆ1ˆaˆd�ˆdˆ7€O€O„O•r”u˜X‘~Ñ%€O€O�Oå
Œ	�!�e�BœF 6™NœNÑ*×3Ò3Ñ5Ô5Ñ6Ô6€AÝ
Œ	�!�e�BœF 6™NœNÑ*×3Ò3Ñ5Ô5Ñ6Ô6€AÝ
Œ�ˆr�!‰t‰Œ€Aå
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ‡O‚O�A�q˜! ; ; ;¸#€OÑ>Ô>Ð>Ð>Ð>r*   zwireframe3d.pngc                  ó¼   — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        \  }}}|                     |||dd¬¦  «         d S )Nr   r   rÂ   é   ©r0  r1  ©r;   r`   ra   r   rÊ   Úplot_wireframerÏ   s        r(   Útest_wireframe3drç  Î  s[   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝÔ" 4Ñ(Ô(�G€A€qˆ!Ø×Ò�a˜˜A b°ÐÑ4Ô4Ð4Ð4Ð4r*   zwireframe3dzerocstride.pngc                  ó¼   — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        \  }}}|                     |||dd¬¦  «         d S )Nr   r   rÂ   rã  r   rä  rå  rÏ   s        r(   Útest_wireframe3dzerocstrideré  Ö  s[   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝÔ" 4Ñ(Ô(�G€A€qˆ!Ø×Ò�a˜˜A b°ÐÑ3Ô3Ð3Ð3Ð3r*   zwireframe3dzerorstride.pngc                  ó¼   — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        \  }}}|                     |||dd¬¦  «         d S )Nr   r   rÂ   r   r   r¶  rå  rÏ   s        r(   Útest_wireframe3dzerorstriderë  Þ  s[   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝÔ" 4Ñ(Ô(�G€A€qˆ!Ø×Ò�a˜˜A q°"ÐÑ5Ô5Ð5Ð5Ð5r*   c                  ó   — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        \  }}}t          j        t          ¦  «        5  |                     |||dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   rÂ   r   r¶  )	r;   r`   ra   r   rÊ   r  r  Ú
ValueErrorræ  rÏ   s        r(   Ú test_wireframe3dzerostrideraisesrî  æ  sÉ   € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝÔ" 4Ñ(Ô(�G€A€qˆ!Ý	Œ•zÑ	"Ô	"ð 9ð 9Ø
×Ò˜!˜Q ¨1°aÐÑ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9s   ÁBÂBÂ
Bc                  ó¶  — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        \  }}}t          j        t          ¦  «        5  |                     |||dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  | 	                    |||dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   rÂ   r   é2   )rŸ  r1  )r   r0  )
r;   r`   ra   r   rÊ   r  r  rí  ræ  r6  rÏ   s        r(   Útest_mixedsamplesraisesrñ  î  sJ  € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝÔ" 4Ñ(Ô(�G€A€qˆ!Ý	Œ•zÑ	"Ô	"ð :ð :Ø
×Ò˜!˜Q ¨2°bÐÑ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :å	Œ•zÑ	"Ô	"ð 8ð 8Ø
�Š˜˜1˜a¨°BˆÑ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8s$   ÁBÂBÂ	BÂ&CÃCÃC)zquiver3d.pngzquiver3d_pivot_middle.pngzquiver3d_pivot_tail.pngc                  óD  — t           j        ddd…ddd…ddd…f         \  } }}t          j        t           j        | z  ¦  «        t          j        t           j        |z  ¦  «        z  t          j        t           j        |z  ¦  «        z  }t          j        t           j        | z  ¦  «         t          j        t           j        |z  ¦  «        z  t          j        t           j        |z  ¦  «        z  }dt          j        t           j        | z  ¦  «        z  t          j        t           j        |z  ¦  «        z  t          j        t           j        |z  ¦  «        z  }dD ]G}t          j        ¦   «                              d¬	¦  «        }|                     | |||||d
|d¬¦	  «	         ŒHd S )Nrã   r‚   ù              $@ç333333ã?ù              @ç>,p½ ê?)ÚtipÚmiddleÚtailr   r   rà   T©r¼   ÚpivotÚ	normalize)	r=   Úogridr  r  r  r;   r`   ra   Úquiver)r]   r^   r_   ÚuÚvÚwrû  r'   s           r(   Útest_quiver3dr  ø  sT  € õ Œh�r˜#˜c�z 2 c¨# :¨r°#°b¨yÐ8Ô9�G€A€qˆ!Ý
Œ�rŒu�q‰yÑÔ�BœF¥2¤5¨1¡9Ñ-Ô-Ñ-µ´µr´u¸q±yÑ0AÔ0AÑA€AÝ	Œ•”˜‘	Ñ	Ô	Ð�RœV¥B¤E¨A¡IÑ.Ô.Ñ.µ´½¼À¹	Ñ1BÔ1BÑB€AØ•R”V�BœE A™IÑ&Ô&Ñ&­¬µ´¸±	Ñ):Ô):Ñ:½R¼VÅBÄEÈAÁIÑ=NÔ=NÑN€AØ*ð Mð MˆÝŒZ‰\Œ\×%Ò%°Ð%Ñ6Ô6ˆØ
�	Š	�!�Q˜˜1˜a ¨3°eÀtˆ	ÑLÔLÐLÐLðMð Mr*   c                 ó²   — |                      d¬¦  «         g x}x}x}x}x}}|                       d¬¦  «        }|                     ||||||ddd¬¦	  «	         d S )Nr   r   rà   r÷  Trú  )ra   rþ  )	r%   r&   r]   r^   r_   rÿ  r   r  r'   s	            r(   Útest_quiver3d_emptyr    sw   € à×Ò 4ÐÑ(Ô(Ð(ØÐ€AÐˆÐˆAÐ�Ð�A˜Ø	×	Ò	¨Ð	Ñ	.Ô	.€BØ‡I‚Iˆa��A�q˜!˜Q s°%À4€IÑHÔHÐHÐHÐHr*   zquiver3d_masked.pngc                  óò  — t          j        ¦   «         } |                      d¬¦  «        }t          j        ddd…ddd…ddd…f         \  }}}t          j        t          j        |z  ¦  «        t          j        t          j        |z  ¦  «        z  t          j        t          j        |z  ¦  «        z  }t          j        t          j        |z  ¦  «         t          j        t          j        |z  ¦  «        z  t          j        t          j        |z  ¦  «        z  }dt          j        t          j        |z  ¦  «        z  t          j        t          j        |z  ¦  «        z  t          j        t          j        |z  ¦  «        z  }t          j         	                    d	|k     |d
k     z  |d¬¦  «        }t          j         	                    d
|k     |dk     z  |d¬¦  «        }| 
                    ||||||d
dd¬¦	  «	         d S )Nr   r   rã   r‚   ró  rô  rõ  rö  çš™™™™™Ù¿rà   F)rô   rY  r÷  Trú  )r;   r`   ra   r=   ry  r  r  r  r}  Úmasked_whererþ  )rL   r'   r]   r^   r_   rÿ  r   r  s           r(   Útest_quiver3d_maskedr    sŽ  € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€Bõ Œh�r˜#˜c�z 2 c¨# :¨r°#°b¨yÐ8Ô9�G€A€qˆ!å
Œ�rŒu�q‰yÑÔ�BœF¥2¤5¨1¡9Ñ-Ô-Ñ-µ´µr´u¸q±yÑ0AÔ0AÑA€AÝ	Œ•”˜‘	Ñ	Ô	Ð�RœV¥B¤E¨A¡IÑ.Ô.Ñ.µ´½¼À¹	Ñ1BÔ1BÑB€AØ•R”V�BœE A™IÑ&Ô&Ñ&­¬µ´¸±	Ñ):Ô):Ñ:½R¼VÅBÄEÈAÁIÑ=NÔ=NÑN€AÝ
Œ×Ò˜D 1šH¨¨SªÑ1°1¸5ÐÑAÔA€AÝ
Œ×Ò˜C !šG¨¨CªÑ0°!¸%ÐÑ@Ô@€Aà‡I‚Iˆa��A�q˜!˜Q s°%À4€IÑHÔHÐHÐHÐHr*   c                  óÈ  — t          j        ¦   «         } |                      d¬¦  «        }t          d¦  «        }|                     |¦  «         t          j        |¦  «         |                     d¦  «         t          j	        | 
                    ¦   «         d¦  «        sJ ‚| j                             ¦   «          t          j	        | 
                    ¦   «         d¦  «        sJ ‚d S )Nr   r   ©r   r   )rÏ  r*  r*  r2   ©r2   r   r   r2   )r;   r`   ra   r   Ú	add_patchr   Úpatch_2d_to_3dr\  rµ   Ú
same_colorÚget_facecolorr    r¡   )rL   r'   Úcircles      r(   Útest_patch_modificationr    sÅ   € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝ�F‰^Œ^€FØ‡L‚L�ÑÔÐÝ	Ô˜Ñ Ô Ð Ø
×ÒÐ+Ñ,Ô,Ð,åÔ˜f×2Ò2Ñ4Ô4°lÑCÔCÐCÐCÐCØ„J‡O‚OÑÔÐÝÔ˜f×2Ò2Ñ4Ô4°lÑCÔCÐCÐCÐCÐCÐCr*   c                 ó  — t          dd¦  «        }t          dd¦  «        }t          j        g d¢g d¢g¦  «        }t          j        ||gd¬¦  «        }|                      d	¬
¦  «        }|                     |¦  «         |                     d¦  «         |                     |¦  «         | 	                    d¦  «         | 
                    ¦   «         sJ ‚|                     d¦  «         | 
                    ¦   «         rJ ‚t          dd¦  «        }t          dd¦  «        }t          j        g d¢g d¢g¦  «        }t          j        ||gdd|dd¬¦  «        }|                     d	¬
¦  «        }|                     |¦  «         d S )Nr
  rÂ   )rà   rà   rß  )r*  rÿ   r*  rÏ  )rÿ   r*  r*  rÿ   r6   )rQ  r   r   rW  rY  F)rQ  rK  rJ  r‡   r[  )r   r=   r>   r   ÚPatch3DCollectionra   Úadd_collection3dr]  r\  r^  r_  r`  )r%   r&   Úpatch1Úpatch2rƒ  r€   rù   rø   s           r(   Ú"test_patch_collection_modificationr  +  sž  € õ �F˜DÑ!Ô!€FÝ�J Ñ%Ô%€FÝ”Ð,Ð,Ð,Ð.@Ð.@Ð.@ÐAÑBÔB€JÝÔ ¨Ð 0¸QÐ?Ñ?Ô?€Aà×"Ò"¨dÐ"Ñ3Ô3€GØ×Ò˜QÑÔÐØ‡O‚O�DÑÔÐØ‡O‚O�JÑÔÐØ‡K‚K�ÑÔÐØ×ÒÑÔÐÐÐØ×Ò�UÑÔÐØ×ÒÑ!Ô!Ð!Ð!Ð!å�F˜DÑ!Ô!€FÝ�J Ñ%Ô%€FÝ”Ð,Ð,Ð,Ð.@Ð.@Ð.@ÐAÑBÔB€JÝÔ ¨Ð 0¸QØ*.¸*Ø&)°eð	=ñ 	=ô 	=€Að × Ò ¨DÐ Ñ1Ô1€FØ
×Ò˜AÑÔÐÐÐr*   c                  óv  — g d¢g d¢g d¢g d¢g} t          j        t          d¬¦  «        5  t          j        | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        | t          ¬¦  «        } t          j        t          d¬¦  «        5  t          j        | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©r   r   r2   ©r   r2   r2   )r   r2   r   rm   zlist of \(N, 3\) array-liker  rt  )r  r  rí  r   ÚPoly3DCollectionr=   r>   r  )Úpolys    r(   Ú&test_poly3dcollection_verts_validationr  G  s=  € ØˆIˆI�y�y�y ) ) )¨Y¨Y¨YÐ7€DÝ	Œ•zÐ)GÐ	HÑ	HÔ	Hð %ð %ÝÔ˜tÑ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ Œ8�D¥Ð&Ñ&Ô&€DÝ	Œ•zÐ)GÐ	HÑ	HÔ	Hð %ð %ÝÔ˜tÑ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s#   ªAÁAÁAÂB.Â.B2Â5B2zpoly3dcollection_closed.pngc                  ó   — t          j        ¦   «         } |                      d¬¦  «        }t          j        g d¢g d¢g d¢gt
          ¦  «        }t          j        g d¢g d¢g d¢gt
          ¦  «        }t          j        |gdd	d
d¬¦  «        }t          j        |gdd	dd¬¦  «        }|                     |¦  «         |                     |¦  «         d S )Nr   r   r  r  rm   r½  r¼  r6   Úk)rÿ   rÿ   r2   rÿ   T©rQ  rK  rJ  Úclosed)r2   rÿ   rÿ   rÿ   F)	r;   r`   ra   r=   r>   r  r   r  r  ©rL   r'   Úpoly1Úpoly2Úc1Úc2s         r(   Útest_poly3dcollection_closedr'  Q  sä   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BåŒH�i�i�i   ¨I¨I¨IÐ6½Ñ>Ô>€EÝŒH�i�i�i   ¨I¨I¨IÐ6½Ñ>Ô>€EÝ	Ô	  °AÀØ*<ÀTð
Kñ 
Kô 
K€Bå	Ô	  °AÀØ*<ÀUð
Lñ 
Lô 
L€Bà×Ò˜ÑÔÐØ×Ò˜ÑÔÐÐÐr*   c                  ó´  — t          g ¦  «        } t          j        | ¦  «         t          | t          j        ¦  «        sJ ‚|                      ¦   «         g k    sJ ‚t          j        t          d¬¦  «        ¬¦  «        \  }}| 	                    | ¦  «         |  
                    ¦   «         }t          j        |¦  «        sJ ‚|j                             ¦   «          d S )Nr   r   r   )r   r   Úpoly_collection_2d_to_3dÚ
isinstancer  Ú	get_pathsr;   r!   r"   Ú
add_artistÚdo_3d_projectionr=   Úisnanr    r¡   )r  rL   r'   Úminzs       r(   Ú#test_poly_collection_2d_to_3d_emptyr0  `  sÆ   € Ý˜"ÑÔ€DÝ	Ô" 4Ñ(Ô(Ð(Ý�d�EÔ2Ñ3Ô3Ð3Ð3Ð3Ø�>Š>ÑÔ˜rÒ!Ð!Ð!Ð!åŒl¥d°dÐ&;Ñ&;Ô&;Ð<Ñ<Ô<�G€CˆØ‡M‚M�$ÑÔÐØ× Ò Ñ"Ô"€DÝŒ8�D‰>Œ>ÐÐÐð „J‡O‚OÑÔÐÐÐr*   zpoly3dcollection_alpha.pngc                  óD  — t          j        ¦   «         } |                      d¬¦  «        }t          j        g d¢g d¢g d¢gt
          ¦  «        }t          j        g d¢g d¢g d¢gt
          ¦  «        }t          j        |gdd	d
d¬¦  «        }|                     d¦  «         t          j        |gdd¬¦  «        }| 	                    d¦  «         | 
                    d	¦  «         |                     d¦  «         |                     |¦  «         |                     |¦  «         d S )Nr   r   r  r  rm   r½  r¼  r6   r  ©rÿ   rÿ   r2   Tr   rÿ   F)rQ  r!  )r2   rÿ   rÿ   )r;   r`   ra   r=   r>   r  r   r  r^  r\  r]  r  r"  s         r(   Útest_poly3dcollection_alphar3  o  s"  € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BåŒH�i�i�i   ¨I¨I¨IÐ6½Ñ>Ô>€EÝŒH�i�i�i   ¨I¨I¨IÐ6½Ñ>Ô>€EÝ	Ô	  °AÀØ*7Àð
Fñ 
Fô 
F€Bà‡L‚L�ÑÔÐÝ	Ô	  °A¸eÐ	DÑ	DÔ	D€Bà×Ò�]Ñ#Ô#Ð#Ø×Ò�SÑÔÐØ‡L‚L�ÑÔÐØ×Ò˜ÑÔÐØ×Ò˜ÑÔÐÐÐr*   zadd_collection3d_zs_array.pngc                  ó¼  — t          j        dt           j        z  dt           j        z  d¦  «        } t          j        ddd¦  «        }|dz  dz   }|t          j        | ¦  «        z  }|t          j        | ¦  «        z  }t          j        |||g¦  «                             ddd¦  «        }t          j        |d d…         |dd …         gd¬	¦  «        }t          j	        ¦   «         }| 
                    d
¬¦  «        }t          j        ddt           j        z  ¦  «        }	t          |d d …d d …d d…f         d|	¬¦  «        }
|
                     t          j        | dt           j        z  ¦  «        ¦  «         |                     |
|d d …d d …df         ¬¦  «        }|€J ‚|                     dd¦  «         |                     dd¦  «         |                     dd¦  «         d S )Nr  r7   rÈ   rÞ   r4   r2   rã   r6   rÒ  r   r   r   Útwilight©rÅ   r±  ©rƒ   r/  r3   r´   )r=   r  r  r  r  Úcolumn_stackr{  Úconcatenater;   r`   ra   r¯  r   Ú	set_arrayÚmodr  rÌ   rÍ   rÎ   ©r  r_   rN   r]   r^   ÚpointsÚsegmentsrL   r'   r±  Úlcr#  s               r(   Útest_add_collection3d_zs_arrayr@  ‚  s²  € åŒK˜�RœU™
 A­¬¡I¨sÑ3Ô3€EÝ
Œ�B˜˜3ÑÔ€AØ	ˆ1‰ˆq‰€AØ	�BŒF�5‰MŒMÑ€AØ	�BŒF�5‰MŒMÑ€AåŒ_˜a  A˜YÑ'Ô'×/Ò/°°A°qÑ9Ô9€FÝŒ~˜v c r cœ{¨F°1°2°2¬JÐ7¸aÐ@Ñ@Ô@€Hå
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BåŒ=˜˜A�bœe™GÑ$Ô$€Då	˜    A A A r¨ r Ô*°À$Ð	GÑ	GÔ	G€BØ‡L‚L•”˜˜q¥¤™wÑ'Ô'Ñ(Ô(Ð(à×Ò˜r h¨q¨q¨q°!°!°!°Q¨wÔ&7ÐÑ8Ô8€DàÐÐÐà‡K‚K��AÑÔÐØ‡K‚K��AÑÔÐØ‡K‚K��AÑÔÐÐÐr*   zadd_collection3d_zs_scalar.pngc                  ó   — t          j        ddt           j        z  d¦  «        } d}|dz  dz   }|t          j        | ¦  «        z  }|t          j        | ¦  «        z  }t          j        ||g¦  «                             ddd¦  «        }t          j        |d d…         |dd …         gd¬¦  «        }t          j	        ¦   «         }| 
                    d¬¦  «        }t          j        ddt           j        z  ¦  «        }	t          |d	|	¬
¦  «        }
|
                     | ¦  «         |                     |
|¬¦  «        }|€J ‚|                     dd¦  «         |                     dd¦  «         |                     dd¦  «         d S )Nr   r4   rÈ   r2   rã   rÒ  r   r   r5  r6  r7  r/  r3   r  r´   )r=   r  r  r  r  r8  r{  r9  r;   r`   ra   r¯  r   r:  r  rÌ   rÍ   rÎ   r<  s               r(   Útest_add_collection3d_zs_scalarrB  ž  s`  € åŒK˜˜1�rœu™9 cÑ*Ô*€EØ	€AØ	ˆ1‰ˆq‰€AØ	�BŒF�5‰MŒMÑ€AØ	�BŒF�5‰MŒMÑ€AåŒ_˜a ˜VÑ$Ô$×,Ò,¨R°°AÑ6Ô6€FÝŒ~˜v c r cœ{¨F°1°2°2¬JÐ7¸aÐ@Ñ@Ô@€Hå
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BåŒ=˜˜A�bœe™GÑ$Ô$€DÝ	˜ z¸Ð	=Ñ	=Ô	=€BØ‡L‚L�ÑÔÐØ×Ò˜r aÐÑ(Ô(€DàÐÐÐà‡K‚K��AÑÔÐØ‡K‚K��AÑÔÐØ‡K‚K��1ÑÔÐÐÐr*   zaxes3d_labelpad.pngc                  ó˜  — t          j        ¦   «         } |                      t          | ¦  «        ¦  «        }|j        j        t          j        d         k    sJ ‚|                     dd¬¦  «         |j        j        dk    sJ ‚| 	                    d¦  «         | 
                    dd¬¦  «         |j        j        dk    sJ ‚|                     ¦   «         dk    sJ ‚d|j        _        d|j        _        t          |j                             ¦   «         ¦  «        D ]2\  }}|                     |                     ¦   «         |d	z  z
  ¦  «         Œ3d S )
Nzaxes.labelpadzX LABELr   )ÚlabelpadzY LABELzZ LABELr~   rÆ   r3   )r;   r`   Úadd_axesr   ÚxaxisrD  rò   rš  rd   re   rf   ÚzaxisÚ
get_zlabelÚyaxisrG   Úget_major_ticksÚset_padÚget_pad)rL   r'   rS   Úticks       r(   Útest_axes3d_labelpadrN  ¸  s3  € å
Œ*‰,Œ,€CØ	�Š•f˜S‘k”kÑ	"Ô	"€BàŒ8Ô¥¤¨_Ô =Ò=Ð=Ð=Ð=à‡M‚M�) b€MÑ)Ô)Ð)ØŒ8Ô Ò"Ð"Ð"Ð"Ø‡M‚M�)ÑÔÐØ‡M‚M�) b€MÑ)Ô)Ð)ØŒ8Ô Ò"Ð"Ð"Ð"Ø�=Š=‰?Œ?˜iÒ'Ð'Ð'Ð'à€B„HÔØ€B„HÔõ ˜RœX×5Ò5Ñ7Ô7Ñ8Ô8ð -ð -‰ˆˆ4Ø�Š�T—\’\‘^”^ a¨!¡eÑ+Ñ,Ô,Ð,Ð,ð-ð -r*   zaxes3d_cla.pngc                  ó®   — t          j        ¦   «         } |                      dddd¬¦  «        }|                     ¦   «          |                     ¦   «          d S )Nr2   r   r   )r;   r`   ra   r�  Úclarh   s     r(   Útest_axes3d_clarQ  Î  sI   € õ Œ*‰,Œ,€CØ	�Š˜˜A˜q¨TˆÑ	2Ô	2€BØ‡O‚OÑÔÐØ‡F‚F�H„H€H€H€Hr*   zaxes3d_rotated.pngc                  óŒ   — t          j        ¦   «         } |                      dddd¬¦  «        }|                     ddd¦  «         d S )Nr2   r   r   rk   é-   r   )r;   r`   ra   rv   rh   s     r(   Útest_axes3d_rotatedrT  ×  sB   € å
Œ*‰,Œ,€CØ	�Š˜˜A˜q¨TˆÑ	2Ô	2€BØ‡L‚L��R˜ÑÔÐÐÐr*   c                  ó¾  — t          j        ddd¬¦  «        } t          j        ddd¬¦  «        }t          j        | |¦  «        \  }}t           j                             d¦  «        }t          j        d¬¦  «        }|                     dddd	¬
¦  «        }t          j	        t          ¦  «        5  |                     |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrÿ   r   rÈ   )Únum)é   r´   rš   r2   r4   r   r   )r=   r  r�   r   Úrandnr;   r`   ra   r  r  rí  r6  )r]   r^   rÐ   rÑ   r_   rL   r'   s          r(   Útest_plotsurface_1d_raisesrY  Þ  s  € Ý
Œ�C˜ Ð%Ñ%Ô%€AÝ
Œ�C˜ Ð%Ñ%Ô%€AÝŒ;�q˜!ÑÔ�D€A€qÝ
Œ	�Š˜ÑÔ€Aå
Œ*˜WÐ
%Ñ
%Ô
%€CØ	�Š˜˜A˜q¨TˆÑ	2Ô	2€BÝ	Œ•zÑ	"Ô	"ð !ð !Ø
�Š˜˜1˜aÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   Â-CÃCÃCc                  óH  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          j        g d¢¦  «        }d}t          j        | |||¦  «        \  }}}t          j        |||| ¦  «        }t          j        ddd¦  «        }t          j        ||¦  «        }	|	S )N)rþ   iüÿÿiÐ  )rÈ   rÈ   rÈ   r  r   rÈ   rÃ   r2   )r=   r>   r   Ú
_view_axesÚ_view_transformation_uvwÚpersp_transformationÚdot)
ÚEr:  ÚVrs   rÿ  r   r  ÚviewMÚperspMÚMs
             r(   Ú_test_proj_make_Mrd  ê  sŸ   € å
ŒÐ$Ð$Ð$Ñ%Ô%€AÝ
Œ���Ñ!Ô!€AÝ
Œ���ÑÔ€AØ€DÝÔ  1 a¨Ñ.Ô.�G€A€qˆ!ÝÔ+¨A¨q°!°QÑ7Ô7€EÝÔ(¨¨d°AÑ6Ô6€FÝ
Œˆv�uÑÔ€AØ€Hr*   c                  óä  — t          ¦   «         } t          j        g d¢¦  «        dz  }t          j        g d¢¦  «        dz  }t          j        g d¢¦  «        dz  }t          j        |||| ¦  «        \  }}}t          j        |||| ¦  «        \  }}}	t          j                             ||¦  «         t          j                             ||¦  «         t          j                             |	|¦  «         d S )N©
r   r2   r2   r   r   r   r2   r2   r   r   ç     Àr@©
r   r   r2   r2   r   r   r   r2   r2   r   ©
r   r   r   r   r   r2   r2   r2   r2   r2   )rd  r=   r>   r   Úproj_transformÚinv_transformr¸   Úassert_almost_equal)
rc  rŠ   r‹   rƒ   ÚtxsÚtysÚtzsÚixsÚiysÚizss
             r(   Útest_proj_transformrs  ÷  sä   € ÝÑÔ€Aå	ŒÐ0Ð0Ð0Ñ	1Ô	1°EÑ	9€BÝ	ŒÐ0Ð0Ð0Ñ	1Ô	1°EÑ	9€BÝ	ŒÐ0Ð0Ð0Ñ	1Ô	1°EÑ	9€BåÔ)¨"¨b°"°aÑ8Ô8�M€CˆˆcÝÔ(¨¨c°3¸Ñ:Ô:�M€Cˆˆcå„J×"Ò" 3¨Ñ+Ô+Ð+Ý„J×"Ò" 3¨Ñ+Ô+Ð+Ý„J×"Ò" 3¨Ñ+Ô+Ð+Ð+Ð+r*   r2   c                 óv  — d|ddg}dd|dg}ddd|g}t          j        |||| ¦  «        \  }}}	t          ||¦  «        \  }
}}}|
|f|
|f|
|fg}t          j        |i |¤Ž\  }}t          |¦  «        }|                     |¦  «         t          ||g d¢¦  «        D ]\  }}}|                     |||¦  «         Œ||fS )Nr   )r  r]   r^   r_   )r   rj  rF   r;   r!   r   Úadd_collectionr?  )rc  r>  Úargsr÷   rŠ   r‹   rƒ   rm  rn  ro  r  r'   ÚayÚazÚlinesrL   Úlinecr]   r^   r(  s                       r(   Ú_test_proj_draw_axesr{    sõ   € Ø
ˆQ��1ˆ€BØ
ˆQ��1ˆ€BØ
ˆQ��1ˆ€BÝÔ)¨"¨b°"°aÑ8Ô8�M€CˆˆcÝ˜˜S‘M”M�M€A€rˆ2ˆrØ�ˆW�q˜"�g  2˜wÐ'€EåŒl˜DÐ+ FÐ+Ð+�G€CˆÝ˜5Ñ!Ô!€EØ×Ò�eÑÔÐÝ�s˜CÐ!5Ð!5Ð!5Ñ6Ô6ð ð ‰ˆˆ1ˆaØ
�Š��1�aÑÔÐÐà�ˆ7€Nr*   zproj3d_axes_cube.pngc                  óT  — t          ¦   «         } d                     ¦   «         }t          j        g d¢¦  «        dz  }t          j        g d¢¦  «        dz  }t          j        g d¢¦  «        dz  }t	          j        |||| ¦  «        \  }}}t          | d¬¦  «        \  }}	|	                     |||¬¦  «         |	                     ||d	¬¦  «         t          |||¦  «        D ]\  }
}}|	 
                    |
||¦  «         Œ|	                     d
d¦  «         |	                     d
d¦  «         d S )Nú0 1 2 3 0 4 5 6 7 4rf  rg  rh  ri  i�  r=  ©r€   rN   çš™™™™™É¿rÔ  )rd  Úsplitr=   r>   r   rj  r{  rE  r  rF   r?  rÌ   rÍ   )rc  ÚtsrŠ   r‹   rƒ   rm  rn  ro  rL   r'   r]   r^   r(  s                r(   Útest_proj_axes_cuber‚    s9  € åÑÔ€Aà	×	$Ò	$Ñ	&Ô	&€BÝ	ŒÐ0Ð0Ð0Ñ	1Ô	1°EÑ	9€BÝ	ŒÐ0Ð0Ð0Ñ	1Ô	1°EÑ	9€BÝ	ŒÐ0Ð0Ð0Ñ	1Ô	1°EÑ	9€BåÔ)¨"¨b°"°aÑ8Ô8�M€Cˆˆcå" 1¨Ð,Ñ,Ô,�G€Cˆà‡J‚Jˆs�C˜3€JÑÔÐØ‡G‚GˆC�˜€GÑÔÐÝ�s˜C Ñ$Ô$ð ð ‰ˆˆ1ˆaØ
�Š��1�aÑÔÐÐà‡K‚K��cÑÔÐØ‡K‚K��cÑÔÐÐÐr*   zproj3d_axes_cube_ortho.pngc                  ó~  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          j        g d¢¦  «        }d}t          j        | |||¦  «        \  }}}t          j        |||| ¦  «        }t          j        dd¦  «        }t          j        ||¦  «        }	d                     ¦   «         }
t          j        g d¢¦  «        d	z  }t          j        g d
¢¦  «        d	z  }t          j        g d¢¦  «        d	z  }t          j        ||||	¦  «        \  }}}t          |	d¬¦  «        \  }}| 
                    ||d|z
  ¬¦  «         |                     ||d¬¦  «         t          |||
¦  «        D ]\  }}}|                     |||¦  «         Œ|                     dd¦  «         |                     dd¦  «         d S )N)éÈ   rÈ   rÈ   rm   r  r   rã   r2   r}  rf  rÈ   rh  ri  é–   r=  r™   rN   r~  i8ÿÿÿr„  )r=   r>   r   r[  r\  Úortho_transformationr^  r€  rj  r{  rE  r  rF   r?  rÌ   rÍ   )r_  r:  r`  rs   rÿ  r   r  ra  ÚorthoMrc  r�  rŠ   r‹   rƒ   rm  rn  ro  rL   r'   r]   r^   r(  s                         r(   Útest_proj_axes_cube_orthorˆ  -  sÅ  € å
Œ���Ñ!Ô!€AÝ
Œ���ÑÔ€AÝ
Œ���ÑÔ€AØ€DÝÔ  1 a¨Ñ.Ô.�G€A€qˆ!ÝÔ+¨A¨q°!°QÑ7Ô7€EÝÔ(¨¨QÑ/Ô/€FÝ
Œˆv�uÑÔ€Aà	×	$Ò	$Ñ	&Ô	&€BÝ	ŒÐ0Ð0Ð0Ñ	1Ô	1°CÑ	7€BÝ	ŒÐ0Ð0Ð0Ñ	1Ô	1°CÑ	7€BÝ	ŒÐ0Ð0Ð0Ñ	1Ô	1°CÑ	7€BåÔ)¨"¨b°"°aÑ8Ô8�M€Cˆˆcå" 1¨Ð,Ñ,Ô,�G€Cˆà‡J‚Jˆs�C˜3˜s™7€JÑ#Ô#Ð#Ø‡G‚GˆC�˜€GÑÔÐÝ�s˜C Ñ$Ô$ð ð ‰ˆˆ1ˆaØ
�Š��1�aÑÔÐÐà‡K‚K��cÑÔÐØ‡K‚K��cÑÔÐÐÐr*   c                  óT  — g d¢} t          j        | t          j        dz  ¦  «        }t          j                             |g d¢¦  «         g d¢} t          j        | t          j        dz  ¦  «        }t          j                             |dt          j        d¦  «        dz  ddg¦  «         d S )	Nr  r´   )r   r2   r   r2   r   r6   r4   rÿ   r2   )r   Úrot_xr=   r  r¸   Úassert_allcloser¡  )r`  Ú	rotated_Vs     r(   Útest_rotr�  J  s‘   € Øˆˆ€AÝ”˜Q¥¤¨¡	Ñ*Ô*€IÝ„J×Ò˜y¨,¨,¨,Ñ7Ô7Ð7àˆˆ€AÝ”˜Q¥¤¨¡	Ñ*Ô*€IÝ„J×Ò˜y¨1­b¬g°a©j¬j¸1©n¸cÀ1Ð*EÑFÔFÐFÐFÐFr*   c                  ó®   — d\  } }d\  }}d\  }}t          j        | |||||¦  «        }t          j                             |g d¢g d¢g d¢g d¢g¦  «         d S )N)rÈ   éx   )rÃ   rÈ   )rà   rÔ  )rÂ   r   r   r/  )r   g{®Gázt?r   rÿ   )r   r   g      $@rã   )r   r   r   r2   )r   Úworld_transformationr=   r¸   r‹  )ÚxminÚxmaxÚyminÚymaxÚzminÚzmaxrc  s          r(   Ú
test_worldr—  T  s‚   € Ø�J€Dˆ$Ø�J€Dˆ$Ø�J€Dˆ$ÝÔ# D¨$°°d¸DÀ$ÑGÔG€AÝ„J×Ò˜qØ 0Ð 0Ð 0Ø 2Ð 2Ð 2Ø /  Ø ,  ð .ñ/ô /ð /ð /ð /r*   zproj3d_lines_dists.pngc                  ó~  — t          j        dt          d¬¦  «        ¬¦  «        \  } }d}d}|                     ||¦  «         t	          ||¦  «        \  }}d}d}|                     ||¦  «         t          j        |d	         |d	         f||¦  «        }t          j        t          j	        ||f¦  «        j
        ||¦  «        }||d	         k    sJ ‚t	          |||¦  «        D ]/\  }}	}
t          ||	f|
d	¬
¦  «        }|                     |¦  «         Œ0|                     dd¦  «         |                     d	d¦  «         d S )N)r7   r´   r.   )r™  )rW   r    )r   r}   )r~   r…  )r   r   r~   r}   )rÈ   r…  r}   r„  r   )Úfillrˆ  r…  r™   )r;   r!   r"   r  rF   rE  r   Ú_line2d_seg_distr=   r>   ÚTr   r  rÌ   rÍ   )rL   r'   rŠ   r‹   Úp0Úp1Údist0Údistr]   r^   Údr€   s               r(   Útest_lines_distsr¡  `  sA  € åŒl 6µdÀ'Ð6JÑ6JÔ6JÐKÑKÔK�G€Cˆà	€BØ	€BØ‡G‚GˆB��O„O€OÝ��R‰[Œ[�F€Bˆà	€BØ	€BØ‡J‚Jˆr�2ÑÔÐåÔ# R¨¤U¨B¨q¬E N°B¸Ñ;Ô;€EÝÔ"¥2¤8¨R°¨HÑ#5Ô#5Ô#7¸¸RÑ@Ô@€DØ�D˜”GÒÐÐÐå�r˜2˜tÑ$Ô$ð ð ‰ˆˆ1ˆaÝ�A�q�6˜1 1Ð%Ñ%Ô%ˆØ
�Š�Q‰Œˆˆà‡K‚K��SÑÔÐØ‡K‚K��3ÑÔÐÐÐr*   c                  óŠ   — d} d}t          j        || | ¦  «         t          j        t          j        |¦  «        | | ¦  «         d S )N)r   r}   rð  )r~   r…  rn   )r   rš  r=   r>   )Ús0Úps     r(   Útest_lines_dists_nowarningr¥  y  sD   € à	€BØ€AÝ
Ô˜A˜r 2Ñ&Ô&Ð&Ý
Ô�BœH Q™KœK¨¨RÑ0Ô0Ð0Ð0Ð0r*   c                  óh  — t          j        ddi¬¦  «        \  } }|                     ¦   «         dk    sJ ‚|                     ddd¬¦  «         |                     dd	gdd	gdd	g¦  «         |                     ¦   «         d
k    sJ ‚|                     d¦  «         |                     d¦  «         |                     ddgddgddg¦  «         |                     ¦   «         dk    sJ ‚|                     d¬¦  «         |                     ddgddgddg¦  «         |                     ¦   «         dk    sJ ‚d S )Nr   r   r   Úlinearr   rà   rÔ  ©r]   r^   r_   r2   )r   r2   rá   çš™™™™™ñ?r  g333333ó?FTr4   )r   r2   rá   r©  r  ç333333@r]   rÒ  )r   r4   rá   r©  r  rª  )r;   r!   Ú
get_zscaleÚmarginsr  Ú
get_w_limsÚ	autoscaleÚset_autoscalez_onrh   s     r(   Útest_autoscaler°  �  sB  € ÝŒl |°TÐ&:Ð;Ñ;Ô;�G€CˆØ�=Š=‰?Œ?˜hÒ&Ð&Ð&Ð&Ø‡J‚J��b˜B€JÑÔÐØ‡G‚GˆQ�ˆF�Q˜�F˜Q ˜FÑ#Ô#Ð#Ø�=Š=‰?Œ?Ð8Ò8Ð8Ð8Ð8Ø‡L‚L�ÑÔÐØ×Ò˜ÑÔÐØ‡G‚GˆQ�ˆF�Q˜�F˜Q ˜FÑ#Ô#Ð#Ø�=Š=‰?Œ?Ð8Ò8Ð8Ð8Ð8Ø‡L‚L�c€LÑÔÐØ‡G‚GˆQ�ˆF�Q˜�F˜Q ˜FÑ#Ô#Ð#Ø�=Š=‰?Œ?Ð8Ò8Ð8Ð8Ð8Ð8Ð8r*   rÓ  r¨  r-   )TFNc                 ó(  — t          j        ¦   «         }|                     d¬¦  «        }t          j        d¦  «        }t          j        ddd¦  «        }|                     ||¦  «         t          |d| › d�¦  «        }t          |d| › d	�¦  «        }t          |d
| › d	�¦  «        }|€
 |¦   «         n|}	 |d|¬¦  «         |	 |¦   «         k    sJ ‚|j         	                    ¦   «          t          j
                              |¦   «         d¦  «         d S )Nr   r   rÈ   rá   rà   Úget_autoscaleÚ_onÚset_ÚlimÚget_)ç      à¿rÿ   )r-   )r;   r`   ra   r=   rˆ   r  rE  Úgetattrr    r¡   r¸   r¹   )
rÓ  r-   rL   r'   r]   r^   Úget_autoscale_onÚset_limÚget_limÚ	post_autos
             r(   Útest_unautoscaler½  �  s&  € õ Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€Bå
Œ	�#‰Œ€AÝ
Œ�D˜#˜sÑ#Ô#€AØ‡J‚Jˆq�!ÑÔÐå˜rÐ#<°4Ð#<Ð#<Ð#<Ñ=Ô=ÐÝ�bÐ* Ð*Ð*Ð*Ñ+Ô+€GÝ�bÐ* Ð*Ð*Ð*Ñ+Ô+€Gà&* lÐ Ð Ñ"Ô"Ð"¸€Ià€GˆK˜dÐ#Ñ#Ô#Ð#ØÐ(Ð(Ñ*Ô*Ò*Ð*Ð*Ð*Ø„J‡O‚OÑÔÐÝ„J×!Ò! ' '¡)¤)¨[Ñ9Ô9Ð9Ð9Ð9r*   c                  óz  — t          j        ¦   «         } |                      d¬¦  «        }t          j        t
          ¦  «        5  |                     dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  |                     dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   Úperspr   ©Úfocal_lengthro   r2   )r;   r`   ra   r  r  rí  ru   rh   s     r(   Útest_axes3d_focal_length_checksrÂ  ¦  s+  € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝ	Œ•zÑ	"Ô	"ð 2ð 2Ø
×Ò˜¨qÐÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2å	Œ•zÑ	"Ô	"ð 2ð 2Ø
×Ò˜¨qÐÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s$   ÁA'Á'A+Á.A+ÂB0Â0B4Â7B4zaxes3d_focal_length.pngc                  óÆ   — t          j        ddddi¬¦  «        \  } }|d                              dt          j        ¬¦  «         |d                              dd	¬¦  «         d S )
Nr2   r4   r   r   r   r   r¿  rÀ  ç333333Ã?)r;   r!   ru   r=   Úinf)rL   rM   s     r(   Útest_axes3d_focal_lengthrÆ  ¯  sc   € åŒ|˜A˜q¨l¸DÐ-AÐBÑBÔB�H€CˆØˆ„F×Ò˜­r¬vÐÑ6Ô6Ð6Øˆ„F×Ò˜¨tÐÑ4Ô4Ð4Ð4Ð4r*   zaxes3d_ortho.pngc                  ó‚   — t          j        ¦   «         } |                      d¬¦  «        }|                     d¦  «         d S )Nr   r   ro   )r;   r`   ra   ru   rh   s     r(   Útest_axes3d_orthorÈ  ¶  s:   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ×Ò�WÑÔÐÐÐr*   zaxes3d_isometric.pngc                  óR  — ddl m} m} t          j        t          ddd¬¦  «        ¬¦  «        \  }}d} | t          j        t           ||||¦  «        ¦  «        ¦  «        d	¦  «        D ]W\  }}t          ||z
  ¦  «         
                    ¦   «         |d
         |d         z
  k    r |j        t          ||¦  «        ddiŽ ŒX|                     t          j        t          j        dt          j        d	¦  «        z  ¦  «        ¦  «        dd¬¦  «         |                     d¦  «         d S )Nr   )r@   rB   r   ro   )r7   r7   r7   )r   Ú	proj_typeÚ
box_aspectr   )rã   r2   r4   r2   r€   r  rÏ  r¸  rp   T)r?   r@   rB   r;   r!   r"   r=   r>   rA   rD   rC   rE   rF   rv   ÚdegreesÚarctanr¡  r4  )r@   rB   rL   r'   rN   r>  Úes          r(   Útest_axes3d_isometricrÏ  ½  s*  € à/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ÝŒl¥dØØØð'ñ 'ô 'ð ñ ô �G€Cˆð
 	€AØ��RœX¥d¨7¨7°1°a¸Ñ+;Ô+;Ñ&<Ô&<Ñ=Ô=¸qÑAÔAð )ð )‰ˆˆ1Ýˆq�1‰u‰:Œ:�>Š>ÑÔ˜q œt a¨¤d™{Ò*Ð*ØˆBŒI•s˜1˜a‘y”yÐ( CÐ(Ð(Ð(øØ‡L‚L•b”j¥¤¨2µ´¸±
´
©?Ñ!;Ô!;Ñ<Ô<À3ÈQ€LÑOÔOÐOØ‡G‚GˆD�M„M€M€M€Mr*   Úvalue)ÚsetterÚside))rÄ  Úleft)rÄ  Úright)rÅ  Úbottom)rÅ  Útop)r7  rÕ  )r7  rÖ  c                 óð   — ||i}t          j        ¦   «         }|                     d¬¦  «        }t          j        t
          ¦  «        5   t          || ¦  «        di |¤Ž d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r«   )r;   r`   ra   r  r  rí  r¸  )rÑ  rÒ  rÐ  ÚlimitrL   Úobjs         r(   Útest_invalid_axes_limitsrÚ  Í  s¿   € ð �5ˆM€EÝ
Œ*‰,Œ,€CØ
�/Š/ Tˆ/Ñ
*Ô
*€CÝ	Œ•zÑ	"Ô	"ð &ð &Ø���VÑÔÐ%Ð%˜uÐ%Ð%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   ÁA+Á+A/Á2A/c                   ó  — e Zd Z edg¦  «        d„ ¦   «         Z edg¦  «        d„ ¦   «         Z edg¦  «        d„ ¦   «         Z edg¦  «        d„ ¦   «         Z ed	g¦  «        d
„ ¦   «         Z edgdd¬¦  «        d„ ¦   «         Z	d„ Z
dS )Ú
TestVoxelszvoxels-simple.pngc                 ó®   — t          j        ddi¬¦  «        \  }}t          j        d¦  «        \  }}}||k    ||k    z  }|                     |¦  «         d S )Nr   r   r   )r3   r7   r6   )r;   r!   r=   ÚindicesÚvoxels)ÚselfrL   r'   r]   r^   r_   rß  s          r(   Útest_simplezTestVoxels.test_simpleß  s\   € å”,¨<¸Ð*>Ð?Ñ?Ô?‰ˆˆRå”*˜YÑ'Ô'‰ˆˆ1ˆaØ�q’&˜Q !šVÑ$ˆØ
�	Š	�&ÑÔÐÐÐr*   zvoxels-edge-style.pngc                 óJ  — t          j        ddi¬¦  «        \  }}t          j        d¦  «        \  }}}|dz
  dz  |dz
  dz  z   |dz
  dz  z   dk     }|                     |dd	¬
¦  «        }|t          |                     ¦   «         ¦  «                                      d¦  «         d S )Nr   r   r   )r3   r3   r7   r4   g      ø?g]�Âõ(\@r6   rV  )rQ  rK  rW  )r;   r!   r=   rÞ  rß  ré   Úkeysr]  )rà  rL   r'   r]   r^   r_   rß  r   s           r(   Útest_edge_stylezTestVoxels.test_edge_styleç  s¤   € å”,¨<¸Ð*>Ð?Ñ?Ô?‰ˆˆRå”*˜YÑ'Ô'‰ˆˆ1ˆaØ�q‘5˜1‘*  A¡¨™zÑ)¨Q¨s©U°Q©JÑ6¸&Ò@ˆØ�IŠI�f¨°dˆIÑ;Ô;ˆð 	
�#ˆa�fŠf‰hŒh‰-Œ-Ô×&Ò& tÑ,Ô,Ð,Ð,Ð,r*   zvoxels-named-colors.pngc                 óL  — t          j        ddi¬¦  «        \  }}t          j        d¦  «        \  }}}||k    ||k    z  }|||z  |z  dk      z  }t          j        ddt          j        ¬¦  «        }d||d	k     |d	k     z  <   d
|||z   dk     <   |                     ||¬¦  «         dS )z5Test with colors set to a 3D object array of strings.r   r   r   ©r   r   r   r2   rf  rt  z0.25r3   Úcyanr   r­  N)r;   r!   r=   rÞ  rb  Úobject_rß  ©rà  rL   r'   r]   r^   r_   rß  r   s           r(   Útest_named_colorszTestVoxels.test_named_colorsò  s¼   € õ ”,¨<¸Ð*>Ð?Ñ?Ô?‰ˆˆRå”*˜\Ñ*Ô*‰ˆˆ1ˆaØ�q’&˜Q !šVÑ$ˆØ˜A ™E A™I¨šMÐ*Ñ*ˆÝ”˜ tµ2´:Ð>Ñ>Ô>ˆØ$*ˆ��A’˜!˜aš%Ñ Ñ!Ø%ˆ��A‘˜Š|ÑØ
�	Š	�& Vˆ	Ñ,Ô,Ð,Ð,Ð,r*   zvoxels-rgb-data.pngc                 ó
  — t          j        ddi¬¦  «        \  }}t          j        d¦  «        \  }}}||k    ||k    z  }t          j        d¦  «        }|dz  |d<   |dz  |d<   |dz  |d	<   |                     ||¬
¦  «         dS )z5Test with colors set to a 4d float array of rgb data.r   r   r   ræ  )r   r   r   r6   rk  ©.r   ©.r2   ©.r4   r­  N)r;   r!   r=   rÞ  Úzerosrß  ré  s           r(   Útest_rgb_datazTestVoxels.test_rgb_dataÿ  s˜   € õ ”,¨<¸Ð*>Ð?Ñ?Ô?‰ˆˆRå”*˜\Ñ*Ô*‰ˆˆ1ˆaØ�q’&˜Q !šVÑ$ˆÝ”˜/Ñ*Ô*ˆØ˜Q™ˆˆv‰Ø˜Q™ˆˆv‰Ø˜Q™ˆˆv‰Ø
�	Š	�& Vˆ	Ñ,Ô,Ð,Ð,Ð,r*   zvoxels-alpha.pngc                 óè  — t          j        ddi¬¦  «        \  }}t          j        d¦  «        \  }}}||k    }t          j        ||z
  ¦  «        dk     }||z  }t          j        d¦  «        }	g d¢|	|<   g d¢|	|<   |                     ||	¬	¦  «        }
t          |
¦  «        t          u sJ ‚|
 	                    ¦   «         D ]3\  }}||         s
J d
¦   «         ‚t          |t          j        ¦  «        sJ ‚Œ4d S )Nr   r   r   ræ  r4   )r   r   r   r7   )r2   r   r   rÿ   )r   r2   r   rÿ   r­  zfaces returned for absent voxel)r;   r!   r=   rÞ  rD   rï  rß  Útyper"   Úitemsr*  r   r  )rà  rL   r'   r]   r^   r_   Úv1Úv2rß  r   r   Úcoordr  s                r(   Ú
test_alphazTestVoxels.test_alpha  s  € å”,¨<¸Ð*>Ð?Ñ?Ô?‰ˆˆRå”*˜\Ñ*Ô*‰ˆˆ1ˆaØ�!ŠVˆÝŒV�A˜‘E‰]Œ]˜QÒˆØ�b‘ˆÝ”˜/Ñ*Ô*ˆØ#�^�^ˆˆr‰
Ø#�^�^ˆˆr‰
Ø�IŠI�f¨ˆIÑ0Ô0ˆå�A‰wŒw�$ˆˆˆˆØŸ7š7™9œ9ð 	<ð 	<‰KˆE�4Ø˜%”=ÐCÐCÐ"CÑCÔCÐCÝ˜d¥EÔ$:Ñ;Ô;Ð;Ð;Ð;Ð;ð	<ð 	<r*   zvoxels-xyz.pngç{®Gáz„?F)rü   r   c                 ó¶  — t          j        ddi¬¦  «        \  }}d„ }t          j        d¦  «        dz  \  }}} ||¦  «        } ||¦  «        } ||¦  «        }	|dz
  dz  |dz
  dz  z   |	dz
  dz  z   d	k     }
t          j        |
j        d
z   ¦  «        }||d<   ||d<   |	|d<   |                     ||||
|t          j        d|z  dz
  dd¦  «        d¬¦  «         d S )Nr   r   r   c                 óâ   — d}t          | j        ¦  «        D ]W}| |t          j        d d…         z            | |t          j        dd …         z            z   dz  } |t          j        d d …         z  }ŒX| S )Nr«   rã   r2   r,  )r·   Úndimr=   Ú	index_exp)r]   ÚslrS   s      r(   Ú	midpointsz&TestVoxels.test_xyz.<locals>.midpoints"  sx   € ØˆBÝ˜1œ6‘]”]ð &ð &�Ø�r�BœL¨¨"¨Ô-Ñ-Ô.Ø�r�BœL¨¨¨Ô,Ñ,Ô-ñ.Ø14ñ5�à•b”l 1 1 1”oÑ%��ØˆHr*   )é   rÿ  rÿ  g      0@rÿ   r4   rß   )r6   rì  rí  rî  r   r2   )rƒ  r„  r2  )r;   r!   r=   rÞ  rï  r|  rß  rä   )rà  rL   r'   rþ  rN   r{   r|   ÚrcÚgcÚbcÚspherer   s               r(   Útest_xyzzTestVoxels.test_xyz  s  € å”,¨<¸Ð*>Ð?Ñ?Ô?‰ˆˆRð	ð 	ð 	õ ”*˜\Ñ*Ô*¨TÑ1‰ˆˆ1ˆaØˆY�q‰\Œ\ˆØˆY�q‰\Œ\ˆØˆY�q‰\Œ\ˆð �s‘(˜Q‘ " s¡(¨Q¡Ñ.°"°s±(¸Q±Ñ>ÀÒGˆõ ”˜&œ,¨Ñ-Ñ.Ô.ˆØˆˆv‰Øˆˆv‰Øˆˆv‰ð 	�	Š	�!�Q˜˜6Ø#ÝœW Q v¡X°¡^°Q¸Ñ:Ô:Øð 	ñ 	!ô 	!ð 	!ð 	!ð 	!r*   c                 ó  — t          j        d¦  «        \  }}}t          j        d¦  «        }t          j        ddi¬¦  «        \  }}t          ¦   «         t          d¬¦  «        fD ]B} |j        |fi |¤Ž  |j        dd|i|¤Ž  |j        ||||fi |¤Ž  |j        |||fd|i|¤Ž ŒCt          j        t          d	¬
¦  «        5  |                     |||||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬
¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                     ||||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr5   )r4   r6   r7   r   r   r   r  )rK  Úfilledrß  r  )r  )r  r]   r^   r_   r«   )r=   rÞ  Úonesr;   r!   r"   rß  r  r  Ú	TypeErrorÚAttributeError)rà  r]   r^   r_   r  rL   r'   Úkws           r(   Útest_calling_conventionsz#TestVoxels.test_calling_conventions?  sx  € Ý”*˜YÑ'Ô'‰ˆˆ1ˆaÝ”˜Ñ#Ô#ˆå”,¨<¸Ð*>Ð?Ñ?Ô?‰ˆˆRõ ‘6”6�4¨#Ð.Ñ.Ô.Ð/ð 	4ð 	4ˆBØˆBŒI�fÐ#Ð# Ð#Ð#Ð#ØˆBŒIÐ*Ð*˜VÐ* rÐ*Ð*Ð*ØˆBŒI�a˜˜A˜vÐ,Ð,¨Ð,Ð,Ð,ØˆBŒI�a˜˜AÐ3Ð3 fÐ3°Ð3Ð3Ð3Ð3õ Œ]�9¨HÐ5Ñ5Ô5ð 	6ð 	6Ø�IŠI�a˜˜A˜v¨fˆIÑ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6õ Œ]�9¨HÐ5Ñ5Ô5ð 	ð 	Ø�IŠI�a˜‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]�>Ñ*Ô*ð 	4ð 	4Ø�IŠI˜V q¨A°ˆIÑ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s6   ÃC*Ã*C.Ã1C.ÄD3Ä3D7Ä:D7ÅE>Å>FÆFN)Ú__name__Ú
__module__Ú__qualname__Úmpl3d_image_comparisonrá  rä  rê  rð  r÷  r  r  r«   r*   r(   rÜ  rÜ  Þ  s,  € € € € € ØÐÐ0Ð1Ñ2Ô2ðð ñ 3Ô2ðð ÐÐ4Ð5Ñ6Ô6ð-ð -ñ 7Ô6ð-ð ÐÐ6Ð7Ñ8Ô8ð
-ð 
-ñ 9Ô8ð
-ð ÐÐ2Ð3Ñ4Ô4ð
-ð 
-ñ 5Ô4ð
-ð ÐÐ/Ð0Ñ1Ô1ð<ð <ñ 2Ô1ð<ð" ÐÐ-Ð.°DÀeÐLÑLÔLð!ð !ñ MÔLð!ð@4ð 4ð 4ð 4ð 4r*   rÜ  c                  óp  — ddgddgddg}}} ddgd	d
gddg}}}t          j        ¦   «         }|                     d¬¦  «        }|                     | ||¦  «        }|d         }	t          j                             | ||f|	                     ¦   «         ¦  «         |	                     |||¦  «         t          j                             |||f|	                     ¦   «         ¦  «         |	 	                    | ¦  «         |	 
                    |¦  «         |	                     |d¬¦  «         t          j                             | ||f|	                     ¦   «         ¦  «         |	                     dd¬¦  «         t          j                             | |t	          j        |¦  «        f|	                     ¦   «         ¦  «         d S )Nr   r2   r4   r6   r7   r3   r´   rí   rè   rk  r   rV   r   r   r_   r“  )r;   r`   ra   r  r=   r¸   r¹   Úget_data_3dr"  Ú	set_xdataÚ	set_ydataÚset_3d_propertiesr”   )
r]   r^   r_   Úx2Úy2Úz2rL   r'   ry  r#  s
             r(   Útest_line3d_set_get_data_3dr  X  s—  € Ø�!ˆf�q˜!�f˜q !˜fˆ!€q€AØ�Q�˜!˜Q˜ " b ˆBˆ€BÝ
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ�GŠG�A�q˜!ÑÔ€EØ�Œ8€DÝ„J×!Ò! 1 a¨ )¨T×-=Ò-=Ñ-?Ô-?Ñ@Ô@Ð@Ø×Ò�R˜˜RÑ Ô Ð Ý„J×!Ò! 2 r¨2 ,°×0@Ò0@Ñ0BÔ0BÑCÔCÐCØ‡N‚N�1ÑÔÐØ‡N‚N�1ÑÔÐØ×Ò˜a cÐÑ*Ô*Ð*Ý„J×!Ò! 1 a¨ )¨T×-=Ò-=Ñ-?Ô-?Ñ@Ô@Ð@Ø×Ò˜a cÐÑ*Ô*Ð*Ý„J×!Ò! 1 a­¬°qÑ)9Ô)9Ð":¸D×<LÒ<LÑ<NÔ<NÑOÔOÐOÐOÐOr*   c                 ó"  — |                       d¬¦  «        }|                     g d¢g d¢g d¢¦  «         |                     ¦   «          |                      d¬¦  «        }|                     ¦   «          |                     g d¢g d¢g d¢¦  «         d S )Nr   r   )r2   r2   r   r   )r2   r   r   r   )r2   r2   r2   r   )ra   r  Úinvert_yaxisr$   s      r(   Útest_invertedr  j  sš   € ð 
×	Ò	¨Ð	Ñ	.Ô	.€BØ‡G‚GˆNˆNˆN˜O˜O˜O¨]¨]¨]Ñ;Ô;Ð;Ø‡O‚OÑÔÐà	×	Ò	¨Ð	Ñ	-Ô	-€BØ‡O‚OÑÔÐØ‡G‚GˆNˆNˆN˜O˜O˜O¨]¨]¨]Ñ;Ô;Ð;Ð;Ð;r*   c                  ór  — t          j        ddi¬¦  «        \  } }|                     ¦   «         rJ ‚|                     ¦   «         rJ ‚|                     ¦   «         rJ ‚|                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |                     ¦   «         sJ ‚|                     ¦   «         sJ ‚|                     ¦   «         sJ ‚|                     ¦   «          |                     ¦   «         rJ ‚|                     ¦   «         rJ ‚|                     ¦   «         rJ ‚d S )Nr   r   r   r2   r   )	r;   r!   Úxaxis_invertedÚyaxis_invertedÚzaxis_invertedrÌ   rÍ   rÎ   rP  rh   s     r(   Útest_inverted_clar   v  sF  € õ Œl |°TÐ&:Ð;Ñ;Ô;�G€Cˆà× Ò Ñ"Ô"Ð"Ð"Ð"Ø× Ò Ñ"Ô"Ð"Ð"Ð"Ø× Ò Ñ"Ô"Ð"Ð"Ð"Ø‡K‚K��1ÑÔÐØ‡K‚K��1ÑÔÐØ‡K‚K��1ÑÔÐØ×ÒÑÔÐÐÐØ×ÒÑÔÐÐÐØ×ÒÑÔÐÐÐØ‡F‚F�H„H€HØ× Ò Ñ"Ô"Ð"Ð"Ð"Ø× Ò Ñ"Ô"Ð"Ð"Ð"Ø× Ò Ñ"Ô"Ð"Ð"Ð"Ð"Ð"r*   c                  ó  — t          j        ¦   «         } t          | ¦  «        }|                     dd¬¦  «         |                     dd¬¦  «         |                     dd¬¦  «         | j                             ¦   «          |j                             ¦   «         D ]}|j        j	        dk    sJ ‚Œ|j
                             ¦   «         D ]}|j        j	        dk    sJ ‚Œ|j                             ¦   «         D ]}|j        j	        dk    sJ ‚Œd S )Nr]   r�   )rÓ  r   r^   r_   )r;   r`   r   Útick_paramsr    r¡   rF  rJ  Ú	tick1lineÚ_colorrI  rG  )rL   r'   rM  s      r(   Útest_ax3d_tickcolourr%  Š  s  € Ý
Œ*‰,Œ,€CÝ	�‰Œ€Bà‡N‚N˜ E€NÑ*Ô*Ð*Ø‡N‚N˜ E€NÑ*Ô*Ð*Ø‡N‚N˜ E€NÑ*Ô*Ð*Ø„J‡O‚OÑÔÐà”×(Ò(Ñ*Ô*ð .ð .ˆØŒ~Ô$¨Ò-Ð-Ð-Ð-Ð-Ø”×(Ò(Ñ*Ô*ð .ð .ˆØŒ~Ô$¨Ò-Ð-Ð-Ð-Ð-Ø”×(Ò(Ñ*Ô*ð .ð .ˆØŒ~Ô$¨Ò-Ð-Ð-Ð-Ð-ð.ð .r*   c                 óø  — |                       ddddi¬¦  «        }|j        D ]}|                     dd¦  «         Œt          |g d¢¦  «        D ]É\  }}|d	                              |d
¬¦  «         |d                              |d¬¦  «         |d                              |t
          j        d          ¬¦  «         |d                              |t
          j        d          ¬¦  «         |d                              |t
          j        d          ¬¦  «         ŒÊd„ }|                      ddddi¬¦  «        }|j        D ]}|                     dd¦  «         Œt          |dgdgdgg d¢g¦  «        D �]\  }} ||d	         |¦  «        D ]}|                     d¦  «         Œ ||d         |¦  «        D ]}|                     d¦  «         Œ ||d         |¦  «        D ](}| 	                    t
          j        d          ¦  «         Œ) ||d         |¦  «        D ](}| 
                    t
          j        d          ¦  «         Œ) ||d         |¦  «        D ](}|                     t
          j        d          ¦  «         Œ)�Œd S )Nr7   r3   r   r   r   g    ÐcAg   @ÑcA)r]   r^   r_   ræ   r   Úplain)rÓ  r   r2   )rÞ   r4   )rÓ  Ú	scilimitsr4   zaxes.formatter.useoffset)rÓ  Ú	useOffsetr6   zaxes.formatter.use_locale)rÓ  Ú	useLocalezaxes.formatter.use_mathtext)rÓ  ÚuseMathTextc                 ó    ‡ — ˆ fd„|D ¦   «         S )Nc                 óT   •— g | ]$}t          ‰|¦  «                             ¦   «         ‘Œ%S r«   )r¸  Úget_major_formatter)r­   Únamer'   s     €r(   r¯   zAtest_ticklabel_format.<locals>.get_formatters.<locals>.<listcomp>®  s/   ø€ ÐJÐJÐJ¸D•˜˜DÑ!Ô!×5Ò5Ñ7Ô7ÐJÐJÐJr*   r«   )r'   Únamess   ` r(   Úget_formattersz-test_ticklabel_format.<locals>.get_formatters­  s   ø€ ØJÐJÐJÐJÀEÐJÑJÔJÐJr*   rF  rI  rG  )rF  rI  rG  F)r!   rt   rÌ   rF   Úticklabel_formatrò   rš  Úset_scientificÚset_powerlimitsÚset_useOffsetÚset_useLocaleÚset_useMathText)	r%   r&   rM   r'   Úrowr/  r1  r0  Úfmts	            r(   Útest_ticklabel_formatr:  ›  sI  € à
×
Ò
˜A˜q¨l¸DÐ-AÐ
Ñ
BÔ
B€CØŒhð #ð #ˆØ
�Š�C˜Ñ"Ô"Ð"Ð"Ý˜Ð5Ð5Ð5Ñ6Ô6ð Ið I‰	ˆˆTØˆAŒ×ÒØ˜Wð 	 ñ 	&ô 	&ð 	&àˆAŒ×ÒØ ð 	 ñ 	*ô 	*ð 	*àˆAŒ×ÒØ¥S¤\Ð2LÔ%MÐ!Mð 	 ñ 	Oô 	Oð 	OàˆAŒ×ÒØ¥S¤\Ð2MÔ%NÐ!Nð 	 ñ 	Pô 	Pð 	PàˆAŒ×ÒØÝœLÐ)FÔGÐGð 	 ñ 	Iô 	Ið 	Ið 	IðKð Kð Kð ×
Ò
˜1˜a¨\¸4Ð,@Ð
Ñ
AÔ
A€CØŒhð #ð #ˆØ
�Š�C˜Ñ"Ô"Ð"Ð"ÝØ�7�)˜g˜Y¨¨	Ð3NÐ3NÐ3NÐOñô ð Añ A‰
ˆˆUð "�> # a¤&¨%Ñ0Ô0ð 	&ð 	&ˆCØ×Ò˜uÑ%Ô%Ð%Ð%Ø!�> # a¤&¨%Ñ0Ô0ð 	)ð 	)ˆCØ×Ò Ñ(Ô(Ð(Ð(Ø!�> # a¤&¨%Ñ0Ô0ð 	Lð 	LˆCØ×Ò¥#¤,Ð/IÔ"JÐJÑKÔKÐKÐKØ!�> # a¤&¨%Ñ0Ô0ð 	Mð 	MˆCØ×Ò¥#¤,Ð/JÔ"KÐKÑLÔLÐLÐLØ!�> # a¤&¨%Ñ0Ô0ð 	Að 	AˆCØ×ÒÝ”LÐ!>Ô?Ð?ñAô Að Að Añ	AðAð Ar*   c                 ó|  — d}t          j        t          j        ddd¦  «        t          j        ddd¦  «        t          j        ddd¦  «        ¦  «        \  }}}t          j        |¦  «        x}x}}t	          || fd¦  «        D ]8\  }	}
|	                     d¬¦  «        }|                     |||||||
|¬	¦  «         Œ9d S )
Nrø  gš™™™™™é¿r2   rÔ  r‚   )r2   rÏ  r   r   )r¼   rû  )r=   r�   rˆ   Ú	ones_likerF   ra   rþ  )r%   r&   rû  r]   r^   r_   rÿ  r   r  rL   r¼   r'   s               r(   Útest_quiver3D_smoker=  Ã  sÒ   € à€EåŒkÝ
Œ	�$˜˜3ÑÔÝ
Œ	�$˜˜3ÑÔÝ
Œ	�$˜˜3ÑÔñô �G€A€qˆ!õ
 ”˜Q‘”Ð€AÐˆˆAå˜G XÐ.°Ñ9Ô9ð @ð @‰ˆˆVØ�_Š_¨ˆ_Ñ-Ô-ˆØ
�	Š	�!�Q˜˜1˜a ¨6¸ˆ	Ñ?Ô?Ð?Ð?ð@ð @r*   zminor_ticks.pngÚmpl20)r   c                  ót  — t          j        ¦   «                              d¬¦  «        } |                      dgd¬¦  «         |                      dgd¬¦  «         |                      dgd¬¦  «         |                      dgd¬¦  «         |                      d	gd¬¦  «         |                      d
gd¬¦  «         d S )Nr   r   rß   T)ÚminorÚquarterg…ëQ¸Õ?Úthirdrÿ   Úhalf)	r;   r`   ra   Ú
set_xticksÚset_xticklabelsÚ
set_yticksÚset_yticklabelsÚ
set_zticksÚset_zticklabels)r'   s    r(   Útest_minor_ticksrJ  Ó  s½   € å	Œ‰Œ×	!Ò	!¨TÐ	!Ñ	2Ô	2€BØ‡M‚M�4�& €MÑ%Ô%Ð%Ø×Ò˜	�{¨$ÐÑ/Ô/Ð/Ø‡M‚M�4�& €MÑ%Ô%Ð%Ø×Ò˜�y¨ÐÑ-Ô-Ð-Ø‡M‚M�4�& €MÑ%Ô%Ð%Ø×Ò˜�x tÐÑ,Ô,Ð,Ð,Ð,r*   zerrorbar3d_errorevery.pngc            	      óî  — t          j        ddt           j        z  dz   d¦  «        } t          j        | ¦  «        t          j        d| z  ¦  «        t          j        d| z  ¦  «        }}}t          j        ¦   «         }|                     d¬¦  «        }d	}t          j        | j        ¦  «        }||z  dk    ||z  dz  dk    z  }||z  dk    ||z  dz  dk    z  }	| 	                    |||d
||	|¬¦  «         dS )z0Tests errorevery functionality for 3D errorbars.r   r4   rà   rø  r6   r3   r   r   é   rÔ  )ÚzuplimsÚzlolimsÚ
erroreveryN)
r=   rˆ   r  r  r  r;   r`   ra   rz  Úerrorbar)
r(  r]   r^   r_   rL   r'   ÚesteprS   rM  rN  s
             r(   Útest_errorbar3d_erroreveryrR  Þ  sô   € õ 	Œ	�!�Q•r”u‘W˜R‘Z Ñ&Ô&€AÝŒf�Q‰iŒi�œ  !¡™œ¥b¤f¨Q¨q©S¡k¤kˆ!€q€Aå
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€Bà€EÝ
Œ	�!”&ÑÔ€AØ�5‰y˜AŠ~ ! u¡*¨q¡.°AÒ"5Ñ6€GØ�5‰y˜AŠ~ ! u¡*¨q¡.°AÒ"5Ñ6€Gà‡K‚K��1�a˜ g°wØ ð ñ "ô "ð "ð "ð "r*   zerrorbar3d.pngc                  óÚ   — t          j        ¦   «         } |                      d¬¦  «        }g d¢}g d¢}|                     ||||||dg d¢g d¢dd	d
¬¦  «         |                     ¦   «          dS )z9Tests limits, color styling, and legend for 3D errorbars.r   r   )r2   r4   r6   r7   r3   )rÿ   rÿ   rÿ   rÿ   rÿ   r6   )FTFTT)TFFTFTÚpurplezError lines)r]   r^   r_   ÚxerrÚyerrÚzerrÚcapsizerM  rN  ÚyuplimsÚecolorr[   N)r;   r`   ra   rP  Úlegend)rL   r'   r   rÎ  s       r(   Útest_errorbar3dr\  ð  sŒ   € õ Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€Bàˆˆ€AØÐÐ€AØ‡K‚K�!�q˜A A¨A°A¸qØ8Ð8Ð8Ø9Ð9Ð9ØØ }ð	 ñ 6ô 6ð 6ð
 ‡I‚I�K„K€K€K€Kr*   z
stem3d.pnggú~j¼t“h?)r   rü   c            
      ón  — t          j        ddddddi¬¦  «        \  } }t          j        ddt          j        z  ¦  «        }t          j        |t          j        dz  z
  ¦  «        }t          j        |t          j        dz  z
  ¦  «        }|}t          |d         g d	¢¦  «        D ]6\  }}|                     ||||¬
¦  «         | 	                    d|› �¦  «         Œ7t          j        t          j         dz  t          j        dz  d¦  «        }t          j
        |¦  «        }t          j        |¦  «        }t          |d         g d	¢¦  «        D ]i\  }}|                     |||ddd|¬¦  «        \  }}	}
| 	                    d|› �¦  «         |                     dd¬¦  «         |
                     d¦  «         Œjd S )Nr4   r6   )rè   r´   Tr   r   ©rW   Úconstrained_layoutr    r   r¨  )Úorientationzorientation=r~   r2   zC4-.ÚC1DrW  )ÚlinefmtÚ	markerfmtÚbasefmtr`  rI  )r.  Úmarkeredgewidth)r;   r!   r=   r  r  r  r  rF   Ústemrc   r<  ÚsetÚset_linewidth)rL   rM   r  r]   r^   r_   r'   r„   Ú
markerlineÚ	stemlinesÚbaselines              r(   Útest_stem3drl     sÀ  € õ Œ|˜A˜q¨&Ø/3Ø(4°dÐ';ð=ñ =ô =�H€Cˆõ ŒK˜˜1�RœU™7Ñ#Ô#€EÝ
Œˆu•r”u˜Q‘w‰ÑÔ€AÝ
Œˆu•r”u˜Q‘w‰ÑÔ€AØ€Aå˜˜Aœ   Ñ0Ô0ð ,ð ,‰ˆˆDØ
�Š��1�a TˆÑ*Ô*Ð*Ø
�ŠÐ* DÐ*Ð*Ñ+Ô+Ð+Ð+å
Œ•R”U�F˜1‘H�bœe A™g rÑ*Ô*€AÝ
Œ�Q‰Œ€AÝ
Œˆq‰	Œ	€Aå˜˜Aœ   Ñ0Ô0ð "ð "‰ˆˆDØ*,¯'ª'Øˆq�!Ø e°TØð +2ñ +ô +Ñ'ˆ
�I˜xð 	�ŠÐ* DÐ*Ð*Ñ+Ô+Ð+Ø�Š v¸qˆÑAÔAÐAØ×Ò˜qÑ!Ô!Ð!Ð!ð"ð "r*   zequal_box_aspect.pngc                  óö  — ddl m} m} t          j        ¦   «         }|                     d¬¦  «        }t          j        ddt          j        z  d¦  «        }t          j        dt          j        d¦  «        }t          j	        t          j
        |¦  «        t          j        |¦  «        ¦  «        }t          j	        t          j        |¦  «        t          j        |¦  «        ¦  «        }t          j	        t          j        |¦  «        t          j
        |¦  «        ¦  «        }|                     |||¦  «         ddg}	 |t          j        t           | |	|	|	¦  «        ¦  «        ¦  «        d¦  «        D ]\\  }
}t          j        t          j        |
|z
  ¦  «        ¦  «        |	d         |	d         z
  k    r |j        t'          |
|¦  «        d	d
iŽ Œ]t          j        |                     ¦   «         |                     ¦   «         |                     ¦   «         g¦  «        }t1          |d         ¦  «        t3          |d         ¦  «        g}|                     |¦  «         |                     |¦  «         |                     |¦  «         |                     d¦  «         |                     d¦  «         t?          j         tB          d¬¦  «        5  |                     dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )rB   r@   r   r   r4   rÈ   rã   r2   r†   r|   Úoffr½  zArgument zoom =r  )Úzoom)"r?   rB   r@   r;   r`   ra   r=   r  r  Úouterr  r  r<  r6  r>   rA   rC   rD   rE   rF   r8  Ú
get_xlim3dÚ
get_ylim3dÚ
get_zlim3drç   ré   rÄ  rÅ  r7  rÓ  rH   r  r  rí  )rB   r@   rL   r'   rÿ  r   r]   r^   r_   rN   r>  rÎ  ÚxyzlimÚXYZlims                 r(   Útest_equal_box_aspectrv    s»  € à/Ð/Ð/Ð/Ð/Ð/Ð/Ð/å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€Bõ 	Œ�A�q�2œ5‘y #Ñ&Ô&€AÝ
Œ�A•r”u˜cÑ"Ô"€AÝ
Œ•”˜‘”�BœF 1™IœIÑ&Ô&€AÝ
Œ•”˜‘”�BœF 1™IœIÑ&Ô&€AÝ
Œ•”˜a‘”¥"¤&¨¡)¤)Ñ,Ô,€Að ‡O‚O�A�q˜!ÑÔÐð 
ˆQˆ€AØ��RœX¥d¨7¨7°1°a¸Ñ+;Ô+;Ñ&<Ô&<Ñ=Ô=¸qÑAÔAð -ð -‰ˆˆ1ÝŒ6•"”&˜˜Q™‘-”-Ñ Ô  A a¤D¨1¨Q¬4¡KÒ/Ð/ØˆBŒI•s˜1˜a‘y”yÐ,¨Ð,Ð,Ð,øõ Œ_Ø	�Š‰Œ˜"Ÿ-š-™/œ/¨2¯=ª=©?¬?Ð;ñô €Fõ �&˜”)‰nŒn�c &¨¤)™nœnÐ-€FØ‡M‚M�&ÑÔÐØ‡M‚M�&ÑÔÐØ‡M‚M�&ÑÔÐØ‡G‚GˆE�N„N€NØ×Ò�iÑ Ô Ð å	Œ•zÐ):Ð	;Ñ	;Ô	;ð .ð .Ø
×Ò˜)¨"ÐÑ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s   Ë	K.Ë.K2Ë5K2c                  óà  — d} t          j        d| ddddi¬¦  «        \  }}|D ]p}|                     t          j                             d¦  «        t          j                             d¦  «        t          j                             d¦  «        ¦  «        }Œqt          j        ||d	¬
¦  «        }|j                             ¦   «          |j	         
                    ¦   «         j        d         dk     sJ ‚d S )Nr4   r2   )r7   r3   Tr   r   r^  r3   Ú
horizontal)r'   r`  rÔ  )r;   r!   r×  r=   r   rX  r›  r    r¡   r'   Úget_positionÚextents)Ú	num_plotsrL   rM   r'   Úp_triÚcbars         r(   Útest_colorbar_posr~  D  sà   € Ø€IÝŒ|˜A˜y°&Ø/3Ø(4°dÐ';ð=ñ =ô =�H€Cˆð ð 4ð 4ˆØ—’¥¤	§¢°Ñ 2Ô 2µB´I·O²OÀAÑ4FÔ4FÝ "¤	§¢°Ñ 2Ô 2ñ4ô 4ˆˆõ Œ<˜ #°<Ð@Ñ@Ô@€Dà„J‡O‚OÑÔÐàŒ7×ÒÑ!Ô!Ô)¨!Ô,¨sÒ2Ð2Ð2Ð2Ð2Ð2r*   c                  óæ  — t          j        ¦   «         } |                      d¬¦  «        }|                     ¦   «         rJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «         dk    sJ ‚|                     d¦  «         |                     ¦   «         rJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «          |                     ¦   «         sJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «         dk    sJ ‚|                     d¬¦  «         |                     ¦   «         sJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «         dk    sJ ‚|                     d	¬
¦  «         |                     ¦   «         sJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «         dk    sJ ‚d S )Nr   r   ©r   r2   ©r   r4   )r4   r   r2   )Úupper)r2   r   r4   )Úlower)r4   r2   ©r2   r4   )r;   r`   ra   r  Úget_zlimÚ
get_zboundÚ
set_zboundÚinvert_zaxisrh   s     r(   Útest_inverted_zaxisr‰  T  sê  € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ× Ò Ñ"Ô"Ð"Ð"Ð"Ø�;Š;‰=Œ=˜FÒ"Ð"Ð"Ð"Ø�=Š=‰?Œ?˜fÒ$Ð$Ð$Ð$ð ‡M‚M�&ÑÔÐØ× Ò Ñ"Ô"Ð"Ð"Ð"Ø�;Š;‰=Œ=˜FÒ"Ð"Ð"Ð"Ø�=Š=‰?Œ?˜fÒ$Ð$Ð$Ð$ð ‡O‚OÑÔÐØ×ÒÑÔÐÐÐØ�;Š;‰=Œ=˜FÒ"Ð"Ð"Ð"Ø�=Š=‰?Œ?˜fÒ$Ð$Ð$Ð$ð ‡M‚M˜€MÑÔÐØ×ÒÑÔÐÐÐØ�;Š;‰=Œ=˜FÒ"Ð"Ð"Ð"Ø�=Š=‰?Œ?˜fÒ$Ð$Ð$Ð$ð ‡M‚M˜€MÑÔÐØ×ÒÑÔÐÐÐØ�;Š;‰=Œ=˜FÒ"Ð"Ð"Ð"Ø�=Š=‰?Œ?˜fÒ$Ð$Ð$Ð$Ð$Ð$r*   c                  óv  — t          j        ¦   «         } |                      d¬¦  «        }|                     ¦   «         dk    sJ ‚|                     d¬¦  «         |                     ¦   «         dk    sJ ‚|                     d¬¦  «         |                     ¦   «         d	k    sJ ‚t          j        t          d
¬¦  «        5  |                     dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r€  r4   )r–  r�  r2   )r•  r„  z$Cannot pass both 'bottom' and 'zmin'r  r   )rÕ  r•  z!Cannot pass both 'top' and 'zmax')rÖ  r–  )r;   r`   ra   r…  rÎ   r  r  r  rh   s     r(   Útest_set_zlimr‹  t  sº  € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ�;Š;‰=Œ=˜FÒ"Ð"Ð"Ð"Ø‡K‚K�Q€KÑÔÐØ�;Š;‰=Œ=˜FÒ"Ð"Ð"Ð"Ø‡K‚K�Q€KÑÔÐØ�;Š;‰=Œ=˜FÒ"Ð"Ð"Ð"å	ŒÝÐCð
Eñ 
Eô 
Eð &ð &à
�Š˜1 1ˆÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &õ 
ŒÝÐ@ð
Bñ 
Bô 
Bð #ð #à
�Š˜ ˆÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s$   Â?C#Ã#C'Ã*C'Ä	D.Ä.D2Ä5D2c                  ó”  — t          j        ¦   «         } |                      dd¬¦  «        }|                      dd|¬¦  «        }|                     ddgddgddg¦  «         |                     ddgddgddg¦  «         |                     g d	¢¦  «         |                     ¦   «         d
k    sJ ‚|                     ¦   «         d
k    sJ ‚d S )NéÓ   r   r   éÔ   )r   Úsharezr   r2   r4   )r·  r   r4   ç      @)r·  r�  )r;   r`   ra   r  rH  r…  )rL   r  r  s      r(   Útest_shared_axes_retickr‘  …  sÎ   € Ý
Œ*‰,Œ,€CØ
�/Š/˜#¨$ˆ/Ñ
/Ô
/€CØ
�/Š/˜#¨$°sˆ/Ñ
;Ô
;€CØ‡H‚Hˆa�ˆV�a˜�V˜a ˜VÑ$Ô$Ð$Ø‡H‚Hˆa�ˆV�a˜�V˜a ˜VÑ$Ô$Ð$Ø‡N‚NÐ$Ð$Ð$Ñ%Ô%Ð%à�<Š<‰>Œ>˜[Ò(Ð(Ð(Ð(Ø�<Š<‰>Œ>˜[Ò(Ð(Ð(Ð(Ð(Ð(r*   c                  óô  — d„ } t          j        ¦   «                              d¬¦  «        }|                     ddd¦  «         |j        j                             ¦   «           | |                     ¦   «         Ž \  }} | |                     ¦   «         Ž \  }} | |                     ¦   «         Ž \  }}| 	                    t          |t          j        dd¬¦  «        ¦  «         |                     t          |t          j        dd¬¦  «        ¦  «          | |                     ¦   «         Ž \  }}	 | |                     ¦   «         Ž \  }
} | |                     ¦   «         Ž \  }}|	t          j        |¦  «        k    sJ ‚|t          j        |¦  «        k    sJ ‚|t          j        |¦  «        k    sJ ‚|t          j        |¦  «        k    sJ ‚|
t          j        |¦  «        k    sJ ‚|t          j        |¦  «        k    sJ ‚dS )z1Test mouse panning using the middle mouse button.c                 ó$   — | |z   dz  }|| z
  }||fS )z+Convert min/max limits to center and range.r4   r«   )ÚdminÚdmaxÚcenterÚrange_s       r(   Úconvert_limztest_pan.<locals>.convert_lim”  s#   € à˜‘+ Ñ"ˆØ˜‘ˆØ�vˆ~Ðr*   r   r   r   )ÚbuttonÚxdataÚydatar2   N)r;   r`   ra   rE  r    r¡   rq  rr  rs  Ú_button_pressr   r   ÚMIDDLEÚ_on_mover  Úapprox)r˜  r'   Ú	x_center0Úx_range0Ú	y_center0Úy_range0Ú	z_center0Úz_range0Úx_centerÚx_rangeÚy_centerÚy_rangeÚz_centerÚz_ranges                 r(   Útest_panr¬  ‘  s  € ðð ð õ 
Œ‰Œ×	!Ò	!¨TÐ	!Ñ	2Ô	2€BØ‡J‚Jˆq�!�QÑÔÐØ„IÔ×ÒÑÔÐà%˜+ r§}¢}¡¤Ð7Ñ€IˆxØ%˜+ r§}¢}¡¤Ð7Ñ€IˆxØ%˜+ r§}¢}¡¤Ð7Ñ€Iˆxð ×ÒÝ�2�kÔ0¸ÀÐCÑCÔCñEô Eð Eà‡K‚KÝ�2�kÔ0¸ÀÐCÑCÔCñEô Eð Eð $˜ R§]¢]¡_¤_Ð5Ñ€HˆgØ#˜ R§]¢]¡_¤_Ð5Ñ€HˆgØ#˜ R§]¢]¡_¤_Ð5Ñ€Hˆgð •f”m HÑ-Ô-Ò-Ð-Ð-Ð-Ø•f”m HÑ-Ô-Ò-Ð-Ð-Ð-Ø•f”m HÑ-Ô-Ò-Ð-Ð-Ð-ð •v”} YÑ/Ô/Ò/Ð/Ð/Ð/Ø•v”} YÑ/Ô/Ò/Ð/Ð/Ð/Ø•v”} YÑ/Ô/Ò/Ð/Ð/Ð/Ð/Ð/r*   ztool,button,key,expectedro  ))r*  ç¸…ëQ¸®?)rø  gìQ¸…ë±?)rû   ç{®Gáz´?r]   ))g{®Gáz„¿rà   ©g¸…ëQ¸ž¿r®  ©ç¸…ëQ¸®¿r­  r^   ))çìQ¸…ë±¿g{®Gáz¤?r¯  )r*  g)\�Âõ(¼?))g
×£p=
·¿rÄ  )r²  gÃõ(\�ÂÅ?)r±  g
×£p=
Ç?Úpan))gffffffæ¿ç�Âõ(\�â¿)g{®Gázð¿g…ëQ¸í¿©gR¸…ëQô¿gffffffò¿))g¸…ëQ¸î¿gáz®Gáê¿)r´  gq=
×£pÝ¿r°  ))rÔ  g{®GázÔ?)gR¸…ëQà¿gö(\�ÂõØ¿rµ  c                 óž  — t          j        ¦   «         }|                     d¬¦  «        }|                     ddd¦  «         |j                             ¦   «          |                     ¦   «         |                     ¦   «         |                     ¦   «         }}}d}	d}
|j	         
                    |	¦  «                             t          ¦  «        }|j	         
                    |
¦  «                             t          ¦  «        }t          d|j        g|¢|‘R d|iŽ}t          d|j        g|¢|‘R d|iŽ}t          |j        ¦  «        }| d	k    rT|                     ¦   «          |                     |¦  «         |                     |¦  «         |                     |¦  «         nS|                     ¦   «          |                     |¦  «         |                     |¦  «         |                     |¦  «         |\  }}}|                     ¦   «         t/          j        |d
¬¦  «        k    sJ ‚|                     ¦   «         t/          j        |d
¬¦  «        k    sJ ‚|                     ¦   «         t/          j        |d
¬¦  «        k    sJ ‚|                     ¦   «          |                     ¦   «         t/          j        |¦  «        k    sJ ‚|                     ¦   «         t/          j        |¦  «        k    sJ ‚|                     ¦   «         t/          j        |¦  «        k    sJ ‚|                     ¦   «          |                     ¦   «         t/          j        |d
¬¦  «        k    sJ ‚|                     ¦   «         t/          j        |d
¬¦  «        k    sJ ‚|                     ¦   «         t/          j        |d
¬¦  «        k    sJ ‚|                     ¦   «          |                     ¦   «         t/          j        |¦  «        k    sJ ‚|                     ¦   «         t/          j        |¦  «        k    sJ ‚|                     ¦   «         t/          j        |¦  «        k    sJ ‚d S )Nr   r   r   r
  ©r2   r2   Úbutton_press_eventÚkeyÚbutton_release_eventro  rø  )rD   )r;   r`   ra   rE  r    r¡   rq  rr  rs  Ú	transDatarÁ  ÚastypeÚintr   r	   ro  Ú
press_zoomÚ	drag_zoomÚrelease_zoomr³  Ú	press_panÚdrag_panÚrelease_panr  rŸ  ÚbackÚforwardÚhome)Útoolr™  r¹  ÚexpectedrL   r'   Úxlim0Úylim0Úzlim0Úd0Úd1r£  Ús1Ústart_eventÚ
stop_eventÚtbÚxlimÚylimÚzlims                      r(   Útest_toolbar_zoom_panrÕ  ·  så  € õ( Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ‡J‚Jˆq�!�QÑÔÐØ„J‡O‚OÑÔÐØŸ-š-™/œ/¨2¯=ª=©?¬?¸B¿MºM¹O¼O�%ˆ5€Eð 
€BØ	€Bð 
Œ×	Ò	 Ñ	#Ô	#×	*Ò	*­3Ñ	/Ô	/€BØ	Œ×	Ò	 Ñ	#Ô	#×	*Ò	*­3Ñ	/Ô	/€Bõ Ø˜cœjð@Ø+-ð@Ø/5ð@ð @ð @Ø;>ð@ð @€KåØ ¤
ðBØ-/ðBØ17ðBð Bð BØ=@ðBð B€Jõ 
˜CœJÑ	'Ô	'€BØˆv‚~€~Ø
�Š‰	Œ	ˆ	Ø
�Š�kÑ"Ô"Ð"Ø
�Š�ZÑ Ô Ð Ø
�Š˜
Ñ#Ô#Ð#Ð#à
�Š‰ŒˆØ
�Š�[Ñ!Ô!Ð!Ø
�Š�JÑÔÐØ
�Š�zÑ"Ô"Ð"ð  Ñ€Dˆ$�Ø�=Š=‰?Œ?�fœm¨D°dÐ;Ñ;Ô;Ò;Ð;Ð;Ð;Ø�=Š=‰?Œ?�fœm¨D°dÐ;Ñ;Ô;Ò;Ð;Ð;Ð;Ø�=Š=‰?Œ?�fœm¨D°dÐ;Ñ;Ô;Ò;Ð;Ð;Ð;ð ‡G‚G�I„I€IØ�=Š=‰?Œ?�fœm¨EÑ2Ô2Ò2Ð2Ð2Ð2Ø�=Š=‰?Œ?�fœm¨EÑ2Ô2Ò2Ð2Ð2Ð2Ø�=Š=‰?Œ?�fœm¨EÑ2Ô2Ò2Ð2Ð2Ð2à‡J‚J�L„L€LØ�=Š=‰?Œ?�fœm¨D°dÐ;Ñ;Ô;Ò;Ð;Ð;Ð;Ø�=Š=‰?Œ?�fœm¨D°dÐ;Ñ;Ô;Ò;Ð;Ð;Ð;Ø�=Š=‰?Œ?�fœm¨D°dÐ;Ñ;Ô;Ò;Ð;Ð;Ð;à‡G‚G�I„I€IØ�=Š=‰?Œ?�fœm¨EÑ2Ô2Ò2Ð2Ð2Ð2Ø�=Š=‰?Œ?�fœm¨EÑ2Ô2Ò2Ð2Ð2Ð2Ø�=Š=‰?Œ?�fœm¨EÑ2Ô2Ò2Ð2Ð2Ð2Ð2Ð2r*   c                 ó  — t          j        t          t          j        t          j        ddd¦  «        t          j        ddd¦  «        t          j        ddd¦  «        gŽ ¦  «        ¦  «        j        \  }}}||z   }|                      dd¬¦  «        }|                     ||||dd¬	¦  «        }| j	         
                    ¦   «          |                     ¦   «          |                     dd¬¦  «        }|                     ||||dd¬	¦  «        }	d S )
Nr   r3   r2   éo   r   r   rÇ   rë   )r€   r>  rÅ   )r=   r>   rA   r?   rB   rˆ   r›  ra   rE  r    r¡   Úchanged)
r%   r&   r]   r^   r_   r€   rù   Úsc_testrø   Úsc_refs
             r(   Útest_scalarmap_updaterÛ    s  € õ Œh��YÔ.µ´¸1¸aÀÑ1CÔ1CÝ13´¸1¸aÀÑ1CÔ1CÝ13´¸1¸aÀÑ1CÔ1Cð1Eð Fñ Gô Gñ Iô IäIJñ €A€qˆ!ð 	
ˆA‰€Að ×"Ò" 3°4Ð"Ñ8Ô8€GØ�oŠo˜a  A¨¨b°yˆoÑAÔA€Gà„O×ÒÑÔÐà‡O‚OÑÔÐð × Ò  °Ð Ñ6Ô6€FØ�^Š^˜A˜q ! q¨B°Yˆ^Ñ?Ô?€F€F€Fr*   c                  óÖ   — t          j        ¦   «         } |                      dd¦  «        }|d                              dddd¬¦  «        }|d                              ddddd¬¦  «        }d S )Nr2   r4   r   r   r   Úother)r   r[   )r;   r`   Ú
subfiguresra   )rL   Úsfr'   s      r(   Útest_subfigure_simplerà    sf   € å
Œ*‰,Œ,€CØ	�Š˜˜1Ñ	Ô	€BØ	ˆAŒ×	Ò	˜1˜a ¨tÐ	Ñ	4Ô	4€BØ	ˆAŒ×	Ò	˜1˜a ¨t¸7Ð	Ñ	CÔ	C€B€B€Br*   Úcomputed_zorder)ÚclassicÚ_classic_test_patch)Úbaseline_imagesr   r   r   c            
      óÔ  — t          j        ¦   «         } |                      dd¬¦  «        }|                      dd¬¦  «        }d|_        d}||fD ]£}t	          j        |gddd	¬
¦  «        }|                     |¦  «         |                     ddddd¬¦  «         |                     ddddd¬¦  «         | 	                    d¦  «         | 
                    d¦  «         |                     d¦  «         Œ¤|                      dd¬¦  «        }|                      dd¬¦  «        }d|_        d}t          j        | |f| |f¦  «        \  }	}
t          j        d¦  «        }d}t          j        | |fd|f¦  «        \  }}||z  }t          j        | |f| df¦  «        \  }}||z  }d}d}t          j        ddt          j        z  |¦  «        }|t          j        |¦  «        z  |t          j        |¦  «        z  ||z  t          j        |¦  «        z  }}}||fD �]P}|                     |||dddd¬¦  «         |                     ||dk              ||dk              ||dk              ddd d¬!¦  «         |                     |	|
|dddd	¬¦  «         |                     |t          j        |¦  «        z  |t          j        |¦  «        z  t          j        |¦  «        dddd¬!¦  «         |                     |||dddd"¬¦  «         |                     ||dk             ||dk             ||dk             ddd d#¬!¦  «         |                     d$d%d¬&¦  «         |                     d'¦  «         �ŒRd S )(NéÝ   r   r   éÞ   F)rm   )r   r3   r   )r3   r3   r   )r3   r   r   ÚwhiteÚblackr2   )rƒ  r„  Úzorder)r4   r4   )r   r7   r�   r4   )r€   rê  )r6   r6   )r2   r6   r   )r   r+  )r   r�  éß   éà   rÿ   r   rí   rþ   r‘   rã   )r†   r‡   r2  rê  r3   z--r�   )rx  Ú	linestyler†   rê  r6   r7   r~   rÖ   rp   rn  )r;   r`   ra   rá  r   r  r  r  rE  rÌ   rÍ   rÎ   r=   r�   rï  r  r  r  r  r6  rv   rÓ  )rL   r  r  Úcornersr'   ÚtriÚax3Úax4ÚdimrÐ   rÑ   rÒ   ÚangleÚX2ÚY2ÚZ2ÚX3ÚY3ÚZ3rN   rc  Úthr]   r^   r_   s                            r(   Útest_computed_zorderrû  "  sÑ  € õ Œ*‰,Œ,€CØ
�/Š/˜#¨$ˆ/Ñ
/Ô
/€CØ
�/Š/˜#¨$ˆ/Ñ
/Ô
/€CØ€CÔð ;€GØ�Cˆjð ð ˆÝÔ$ g YØ07Ø07Ø,-ð/ñ /ô /ˆð 	×Ò˜CÑ Ô Ð ð 	�Š�˜ ¨%¸ˆÑ:Ô:Ð:ð 	�
Š
�6˜6 6¨U¸2ˆ
Ñ>Ô>Ð>à
�Š�HÑÔÐØ
�Š�HÑÔÐØ
�Š�HÑÔÐÐà
�/Š/˜#¨$ˆ/Ñ
/Ô
/€CØ
�/Š/˜#¨$ˆ/Ñ
/Ô
/€CØ€CÔà
€CÝŒ;˜˜˜c�{ c T¨3 KÑ0Ô0�D€A€qÝ
Œ�ÑÔ€Aà€EÝŒ[˜3˜$ ˜ q¨# hÑ/Ô/�F€BˆØ	ˆe‰€BÝŒ[˜3˜$ ˜¨ t¨Q iÑ0Ô0�F€BˆØ	ˆe‰€Bà	€AØ€AÝ	Œ�Q˜�BœE™	 1Ñ	%Ô	%€BØ•"”&˜‘*”*‰n˜q¥2¤6¨"¡:¤:™~¨u°q©y½2¼6À"¹:¼:Ñ/Eˆ!€q€AØ�Cˆjð #ñ #ˆØ
�Š˜˜B Ø$Ø!Ø"#Ø!ð	 	ñ 	#ô 	#ð 	#ð
 	�Š��!�a’%”˜!˜A šEœ( A a¨!¢e¤HØØØØð	 	ñ 	ô 	ð 	ð 	�Š˜˜1˜aØ#Ø!Ø"#Ø ð	 	ñ 	"ô 	"ð 	"ð 	�Š�•B”F˜2‘J”J‘ ¥B¤F¨2¡J¤J¡µ´¸±´ØØØØð	 	ñ 	ô 	ð 	ð 	�Š˜˜B Ø$Ø!Ø"#Ø ð	 	ñ 	"ô 	"ð 	"ð 	�Š��!�a’%”˜!˜A šEœ( A a¨!¢e¤H°ØØØð 	ñ 	ô 	ð 	ð 	�Š˜" 3¨QˆÑ/Ô/Ð/Ø
�Š�‰Œˆ‰ðG#ð #r*   c                  ód  — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        }|                     |t          j        |¦  «        ¦  «         | j                             ¦   «          | 	                    dd¦  «        dk    sJ ‚| 
                    dd¬¦  «         | j                             ¦   «          | 	                    dd¦  «        d	k    sJ ‚| 
                    ¦   «          | j                             ¦   «          | 	                    dd¦  «        dk    sJ ‚d S )
Nr   r   r   r   u   x=1.8066, y=1.0367, z=âˆ’0.0553r}   r^   )rs   Úvertical_axisu"   x=9.1651, y=âˆ’0.9215, z=âˆ’0.0359)r;   r`   ra   r=   rˆ   r  r  r    r¡   Úformat_coordrv   ©rL   r'   r]   s      r(   Útest_format_coordr   u  s  € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝ
Œ	�"‰Œ€AØ‡G‚GˆA�rŒv�a‰yŒyÑÔÐØ„J‡O‚OÑÔÐØ�?Š?˜1˜aÑ Ô Ð$EÒEÐEÐEÐEà‡L‚L�b¨€LÑ,Ô,Ð,Ø„J‡O‚OÑÔÐØ�?Š?˜1˜aÑ Ô Ð$HÒHÐHÐHÐHà‡L‚L�N„N€NØ„J‡O‚OÑÔÐØ�?Š?˜1˜aÑ Ô Ð$EÒEÐEÐEÐEÐEÐEr*   c                  ó6  — t          j        ¦   «         } |                      d¬¦  «        }t          j        d¦  «        }|                     |t          j        |¦  «        ¦  «         | j                             ¦   «          | 	                    ¦   «         dk    sJ ‚d S )Nr   r   r   )FTF)
r;   r`   ra   r=   rˆ   r  r  r    r¡   Úget_axis_positionrÿ  s      r(   Útest_get_axis_positionr  †  s   € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝ
Œ	�"‰Œ€AØ‡G‚GˆA�rŒv�a‰yŒyÑÔÐØ„J‡O‚OÑÔÐØ×ÒÑ!Ô!Ð%9Ò9Ð9Ð9Ð9Ð9Ð9r*   c                  ó8  — t          j        ¦   «         } |                      d¬¦  «        }|                     d¦  «         |                     ¦   «         dk    sJ ‚|                     ddd¦  «         |                     ¦   «         dk    sJ ‚|                     d¬	¦  «         |                     ¦   «         d
k    sJ ‚|                     d¬¦  «         |                     ¦   «         dk    sJ ‚|                     d¬¦  «         |                     ¦   «         dk    sJ ‚d S )Nr   r   rÔ  )rÔ  rÔ  rÔ  rà   rX  )rà   rÔ  rX  r   )r]   )r   rÔ  rX  )r^   )r   rà   rX  ©r_   )r   rà   r   )r;   r`   ra   r¬  rh   s     r(   Útest_marginsr  �  sþ   € Ý
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ‡J‚Jˆs�O„O€OØ�:Š:‰<Œ<˜?Ò*Ð*Ð*Ð*Ø‡J‚Jˆs�C˜ÑÔÐØ�:Š:‰<Œ<˜?Ò*Ð*Ð*Ð*Ø‡J‚J�€J�O„O€OØ�:Š:‰<Œ<˜=Ò(Ð(Ð(Ð(Ø‡J‚J�€JÑÔÐØ�:Š:‰<Œ<˜=Ò(Ð(Ð(Ð(Ø‡J‚J�€J�O„O€OØ�:Š:‰<Œ<˜;Ò&Ð&Ð&Ð&Ð&Ð&r*   zerr, args, kwargs, match)rã   z!margin must be greater than -0\.5)r2   rã   r2   )r2   r2   rã   rã   r_   )r2   z'Cannot pass both positional and keyword)r]   r^   r·  z*Must pass a single positional argument forc                 óÐ   — t          j        | |¬¦  «        5  t          j        ¦   «         }|                     d¬¦  «        } |j        |i |¤Ž d d d ¦  «         d S # 1 swxY w Y   d S )Nr  r   r   )r  r  r;   r`   ra   r¬  )Úerrrv  r÷   r  rL   r'   s         r(   Útest_margins_errorsr	  ž  s²   € õ  
Œ�s %Ð	(Ñ	(Ô	(ð $ð $ÝŒj‰lŒlˆØ�_Š_¨ˆ_Ñ-Ô-ˆØˆŒ
�DÐ#˜FÐ#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   —7AÁAÁ"Ac                 ó–  — |                      d¬¦  «        }t          ddd¦  «        }t          j        |d¬¦  «         |                     |¦  «         |                     ¦   «         dk    sJ ‚|                       d¬¦  «        }t          j        dddd¦  «        }|                     |¦  «         |                     ¦   «         dk    sJ ‚d S )Nr   r   rÿ   zFoo bar $\int$r2   r  r2  )ra   r   r   Útext_2d_to_3dr,  Úget_position_3dÚText3D)r%   r&   r'   ÚtxtÚt3ds        r(   Útest_text_3dr  ´  sÐ   € à	×	Ò	¨Ð	Ñ	-Ô	-€BÝ
ˆs�CÐ*Ñ
+Ô
+€CÝ	Ô˜˜qÐ!Ñ!Ô!Ð!Ø‡M‚M�#ÑÔÐØ×ÒÑ Ô  MÒ1Ð1Ð1Ð1à	×	Ò	¨Ð	Ñ	.Ô	.€BÝ
Œ,�s˜C Ð$5Ñ
6Ô
6€CØ‡M‚M�#ÑÔÐØ×ÒÑ Ô  MÒ1Ð1Ð1Ð1Ð1Ð1r*   c                  óž   — t          j        ¦   «         } |                      d¬¦  «        }|                     dgdggdgdggdgdgg¦  «         d S )Nr   r   r   r2   )r;   r`   ra   r  rh   s     r(   Útest_draw_single_lines_from_Nx1r  Â  sT   € å
Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BØ‡G‚GˆaˆS�1�#ˆJ˜!˜˜q˜c˜
 a S¨1¨# JÑ/Ô/Ð/Ð/Ð/r*   c                 óR  — |                      d¬¦  «        }t          j        ¦   «         }t          |¦  «        }t	          j        |dd¬¦  «         |                     |¦  «         |                       d¬¦  «        }t	          j        |dd¬¦  «        }|                     |¦  «         d S )Nr   r   )r   rÿ   rY  r2   r   r^   ©r_   r„   r“  )ra   r   Úunit_rectangler   r   Úpathpatch_2d_to_3dr,  ÚPathPatch3D)r%   r&   r'   ÚpathÚpatchÚpp3ds         r(   Útest_pathpatch_3dr  É  s¢   € à	×	Ò	¨Ð	Ñ	-Ô	-€BÝÔÑ Ô €DÝ�d‰OŒO€EÝ	Ô˜UÐ&9ÀÐDÑDÔDÐDØ‡M‚M�%ÑÔÐà	×	Ò	¨Ð	Ñ	.Ô	.€BÝÔ˜TÐ&9ÀÐDÑDÔD€DØ‡M‚M�$ÑÔÐÐÐr*   zscatter_spiral.png)rä  r   r   c                  ód  — t          j        ¦   «         } |                      d¬¦  «        }t          j        ddt          j        z  dz  d¦  «        }|                     t          j        |¦  «        t          j        |¦  «        |d|dz  z   |dz  ¬	¦  «        }| j	         
                    ¦   «          d S )
Nr   r   r   r4   r´   é   r2   r3   rŒ  )r;   r`   ra   r=   r  r  rE  r  r  r    r¡   )rL   r'   rú  Úscs       r(   Útest_scatter_spiralr  Ö  s�   € õ Œ*‰,Œ,€CØ	�Š DˆÑ	)Ô	)€BÝ	Œ�Q˜�BœE™	 A™ sÑ	+Ô	+€BØ	�Š•B”F˜2‘J”J¥¤ r¡
¤
¨B°1°r¸A±v±:À"ÈÁ'ˆÑ	JÔ	J€Bð „J‡O‚OÑÔÐÐÐr*   c                  óL  — t           j        ddd…ddd…f         \  } }t          j        |¦  «        dz  t          j        | ¦  «        dz  z
  }t	          j        ¦   «         }|                     dd¬¦  «        }|                     || |d	¬
¦  «        }|                     ¦   «          d S ©Nr2   r   y              Y@r6   r4   r×  r   r   Úhot)rÅ   )	r=   rý  r  r  r;   r`   ra   r6  r  ©r^   r]   r  rL   r'   rN   s         r(   Ú#test_Poly3DCollection_get_facecolorr$  ã  ó–   € õ Œ8�A�b˜�I˜q  D˜yÐ(Ô)�D€A€qÝ	Œ�‰Œ�a‰�"œ& ™)œ) q™.Ñ	(€BÝ
Œ*‰,Œ,€CØ	�Š˜¨ˆÑ	.Ô	.€BØ
�Š˜˜1˜b uˆÑ-Ô-€AØ‡O‚OÑÔÐÐÐr*   c                  óL  — t           j        ddd…ddd…f         \  } }t          j        |¦  «        dz  t          j        | ¦  «        dz  z
  }t	          j        ¦   «         }|                     dd¬¦  «        }|                     || |d	¬
¦  «        }|                     ¦   «          d S r!  )	r=   rý  r  r  r;   r`   ra   r6  Úget_edgecolorr#  s         r(   Ú#test_Poly3DCollection_get_edgecolorr(  î  r%  r*   zDvertical_axis, proj_expected, axis_lines_expected, tickdirs_expected)r*  ç#ðk$Iò?r*  ç.�_x%Iâ¿)r*  r*  çºÙ(·më?ç£å@µmÛ¿)r*  r*  r*  g      $À)ç#ðk$Iò¿r*  r*  çÓø…W’$%@gŽË—›˜Ã¬?gÞ2m Ù3°?gæº¾I²’¥¿g‰®°…ÅM¨¿gÞ2m Ù3°¿g‰®°…ÅM¨?)r2   r   r   )r)  r*  r*  r*  )r*  r+  r*  r,  )r*  r*  r-  r.  gŽË—›˜Ã¬¿gæº¾I²’¥?)r4   r4   r   )r*  r*  r)  r*  )r+  r*  r*  r,  )r*  r-  r*  r.  )r2   r4   r2   c                 ó®  — d}t          j        dddd¬¦  «        }|                     ddd| ¬¦  «         |j        j                             ¦   «          |                     ¦   «         }t          j         	                    |||¬¦  «         t          |                     ¦   «         |                     ¦   «         |                     ¦   «         g¦  «        D ]„\  }}||         }	|j                             ¦   «         }
t          j         	                    |	|
|¬¦  «         ||         }|                     ¦   «         }t          j                             ||¦  «         Œ…dS )	a  
    Test the actual projection, axis lines and ticks matches expected values.

    Parameters
    ----------
    vertical_axis : str
        Axis to align vertically.
    proj_expected : ndarray
        Expected values from ax.get_proj().
    axis_lines_expected : tuple of arrays
        Edgepoints of the axis line. Expected values retrieved according
        to ``ax.get_[xyz]axis().line.get_data()``.
    tickdirs_expected : list of int
        indexes indicating which axis to create a tick line along.
    g�íµ ÷ÆÀ>r2   r   r   r   )rq   rr   rs   rý  )ÚrtolN)r;   Úsubplotrv   r`   r    r¡   Úget_projr=   r¸   r‹  rG   Ú	get_xaxisÚ	get_yaxisÚ	get_zaxisr#  Úget_dataÚ_get_tickdirr¹   )rý  Úproj_expectedÚaxis_lines_expectedÚtickdirs_expectedr0  r'   Úproj_actualrS   rÓ  Úaxis_line_expectedÚaxis_line_actualÚtickdir_expectedÚtickdir_actuals                r(   Útest_view_init_vertical_axisr@  ù  sH  € ðH €DÝ	Œ�Q˜˜1¨Ð	.Ñ	.Ô	.€BØ‡L‚L�a˜a a°}€LÑEÔEÐEØ„IÔ×ÒÑÔÐð —+’+‘-”-€KÝ„J×Ò˜}¨kÀÐÑEÔEÐEå˜bŸlšl™nœn¨b¯lªl©n¬n¸b¿lºl¹n¼nÐMÑNÔNð 
Hð 
H‰ˆˆ4à0°Ô3ÐØœ9×-Ò-Ñ/Ô/ÐÝ
Œ
×"Ò"Ð#5Ð7GØ(,ð 	#ñ 	.ô 	.ð 	.ð -¨QÔ/ÐØ×*Ò*Ñ,Ô,ˆÝ
Œ
×%Ò%Ð&6¸ÑGÔGÐGÐGð
Hð 
Hr*   zarc_pathpatch.pngc                  óÂ   — t          j        dddd¬¦  «        } t          j        dddddd	¬
¦  «        }|                      |¦  «         t          j        |dd¬¦  «         d S )Nr2   r   r   )rÿ   rÿ   rÿ   gÍÌÌÌÌÌì?r~   r   r‰  )r½   Úheightró  Útheta1Útheta2r   r_   r  )r;   r1  ÚmpatchÚArcr  r   r  )r'   rp  s     r(   Útest_arc_pathpatchrG  S  sl   € õ 
Œ�Q˜˜1¨Ð	.Ñ	.Ô	.€BÝŒ
�: S°Ø B¨sð	4ñ 	4ô 	4€Aà‡L‚L��O„O€OÝ	Ô˜Q !¨#Ð.Ñ.Ô.Ð.Ð.Ð.r*   zpanecolor_rcparams.pngc                  ó¾   — t          j        ddddœ¦  «        5  t          j        d¬¦  «        } |                      d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrN   r{   r|   )zaxes3d.xaxis.panecolorzaxes3d.yaxis.panecolorzaxes3d.zaxis.panecolorr·  rš   r   r   )r;   Ú
rc_contextr`   ra   )rL   s    r(   Útest_panecolor_rcparamsrJ  ^  s´   € õ 
Œ°3Ø36Ø36ð8ð 8ñ 
9ô 
9ð )ð )õ Œj Ð(Ñ(Ô(ˆØ�Š 4ˆÑ(Ô(Ð(ð	)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s   ™,AÁAÁAc                 ó  — |                       dd¬¦  «        }g d¢}g d¢}g d¢}|                     |||d¦  «         g d¢|dd…<   g d¢|dd…<   |                      dd¬¦  «        }g d¢}g d¢}g d¢}|                     |||d¦  «         dS )z~
    Test to see if the `z` axis does not get mutated
    after a call to `Axes3D.plot`

    test cases came from GH#8990
    r×  r   r   )r2   r4   r6   )r*  r*  r*  zo-Nr  )r%   r&   r  r]   r^   r_   r  s          r(   Ú"test_mutating_input_arrays_y_and_zrL  i  sÆ   € ð ×
Ò
˜s¨tÐ
Ñ
4Ô
4€CØˆ	ˆ	€AØˆˆ€AØˆˆ€AØ‡H‚HˆQ��1�dÑÔÐð ˆ9ˆ9€A€a€a€a�DØˆ9ˆ9€A€a€a€a�Dð ×
Ò
˜c¨dÐ
Ñ
3Ô
3€CØˆ	ˆ	€AØˆˆ€AØˆˆ€AØ‡H‚HˆQ��1�dÑÔÐÐÐr*   )£Ú	functoolsr?   r  Úmpl_toolkits.mplot3dr   r   r   r   Ú
matplotlibrò   Úmatplotlib.backend_basesr   r   r	   r
   r   rµ   r   rE  Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.testing.widgetsr   Úmatplotlib.collectionsr   r   Úmatplotlib.patchesr   r   Úmatplotlib.pathr   Úmatplotlib.textr   Úmatplotlib.pyplotÚpyplotr;   Únumpyr=   Úpartialr  r)   rT   rY   ri   ry   r�   r–   r¤   r¦   r¿   rÓ   rÙ   rÜ   rå   ÚmarkÚparametrizerú   r  r  r  r  r$  r;  r@  rG  rL  rN  rT  rc  r‡  rŽ  r‘  r”  r�  r¢  r²  r´  r¹  rÇ  rË  rÞ  rá  rç  ré  rë  rî  rñ  r  r  r  r  r  r  r'  r0  r3  r@  rB  rN  rQ  rT  rY  rd  rs  r{  r‚  rˆ  r�  r—  r¡  r¥  r°  r½  rÂ  rÆ  rÈ  rÏ  rÅ  ÚnanrÚ  rÜ  r  r  r   r%  r:  r=  rJ  rR  r\  rl  rv  r~  r‰  r‹  r‘  r¬  ÚLEFTÚRIGHTrÕ  r   ÚcontextrÛ  rà  rû  r   r  r  rí  Útupler  r	  r  r  r  r  r$  r(  r@  rG  rJ  rL  r«   r*   r(   ú<module>rb     sS  ðØ Ð Ð Ð Ø Ð Ð Ð à €€€à >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø Ð Ð Ð ð:ð :ð :ð :ð :ð :ð :ð :ð :ð :à Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø  Ð  Ð  Ð  Ð  Ð  Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð Ø Ð Ð Ð ð +˜Ô*Ø $¨ið9ñ 9ô 9Ð ð Ð  Ð(Ñ(Ô(ðð ñ )Ô(ðð
 Ð˜˜°UÐ;Ñ;Ô;ð8ð 8ñ <Ô;ð8ð" ÐÐ1Ð2ÀÐFÑFÔFð4ð 4ñ GÔFð4ð"
Jð 
Jð 
Jð ÐÐ3Ð4Ñ5Ô5ðð ñ 6Ô5ðð( Ð˜˜Ñ&Ô&ðJð Jñ 'Ô&ðJð	/ð 	/ð 	/ð ÐÐ+Ð,Ñ-Ô-ðð ñ .Ô-ðð& ÐÐ.Ð/Ñ0Ô0ð	ð 	ñ 1Ô0ð	ðHð Hð Hð6 Ð˜Ð)Ñ*Ô*ð	ð 	ñ +Ô*ð	ð ÐÐ1Ð2Ñ3Ô3ðð ñ 4Ô3ðð ÐÐ)Ð*Ñ+Ô+ð	ð 	ñ ,Ô+ð	ð ÐÐ.Ð/Ñ0Ô0ðð ñ 1Ô0ðð „×ÒÐ)¨V°Y°Y°YÐ,?Ø-2°L°L°LÐ,AØ-2°L°L°LÐ,Að,Cñ Dô Dð Ð  Ð(Ñ(Ô(ðð ñ )Ô(ñDô Dðð0 ÐÐ)Ð*°Ð5Ñ5Ô5ðð ñ 6Ô5ððð ð ð Ð˜˜Ñ(Ô(ðð ñ )Ô(ðð Ð  Ð(Ñ(Ô(ðð ñ )Ô(ðð$ð $ð $ð" ÐÐ+Ð,Ñ-Ô-ðð ñ .Ô-ðð. Ð  Ð(Ñ(Ô(ð	*ð 	*ñ )Ô(ð	*ð Ð˜Ð)Ñ*Ô*ð	.ð 	.ñ +Ô*ð	.ð ÐÐ.Ð/Ñ0Ô0ð&ð &ñ 1Ô0ð&ð ÐÐ2Ð3Ñ4Ô4ð4ð 4ñ 5Ô4ð4ð Ð  Ð(Ñ(Ô(ð
-ð 
-ñ )Ô(ð
-ð Ð  Ð(Ñ(Ô(ð9ð 9ñ )Ô(ð9ð( „×Ò˜¨¨e }Ñ5Ô5ØÐ  Ð(Ñ(Ô(ð3Cð 3Cñ )Ô(ñ 6Ô5ð3Cðl „×Ò˜ # s Ñ,Ô,ØÐ  Ð(Ñ(Ô(ð,ð ,ñ )Ô(ñ -Ô,ð,ð& Ð  Ð(Ñ(Ô(ð2ð 2ñ )Ô(ð2ð. ÐÐ.Ð/°UÐ;Ñ;Ô;ð$ð $ñ <Ô;ð$ð Ð˜Ð)Ñ*Ô*ð-ð -ñ +Ô*ð-ð" ÐÐ/Ð0Ñ1Ô1ð
ð 
ñ 2Ô1ð
ð ÐÐ/Ð0Ñ1Ô1ðð ñ 2Ô1ðð4 Ð  Ð(Ñ(Ô(ð!ð !ñ )Ô(ð!ð ÐÐ7Ð8Ñ9Ô9ðð ñ :Ô9ðð Ð˜˜°EÐ:Ñ:Ô:ðð ñ ;Ô:ðð. Ð  Ð(Ñ(Ô(ðHð Hñ )Ô(ðHð0 Ð˜Ð)¨uÐ5Ñ5Ô5ð9ð 9ñ 6Ô5ð9ð" ÐÐ/Ð0°dÐ;Ñ;Ô;ð?ð ?ñ <Ô;ð?ð" ÐÐ*Ð+Ñ,Ô,ð5ð 5ñ -Ô,ð5ð ÐÐ5Ð6Ñ7Ô7ð4ð 4ñ 8Ô7ð4ð ÐÐ5Ð6Ñ7Ô7ð6ð 6ñ 8Ô7ð6ð9ð 9ð 9ð8ð 8ð 8ð ÐØLÐLÐLñNô NðMð MñNô NðMð Ð  Ð(Ñ(Ô(ðIð Iñ )Ô(ðIð ÐÐ.Ð/Ñ0Ô0ðIð Iñ 1Ô0ðIð"
Dð 
Dð 
Dð Ð  Ð(Ñ(Ô(ðð ñ )Ô(ðð6%ð %ð %ð ÐÐ6Ð7Ñ8Ô8ðð ñ 9Ô8ððð ð ð ÐÐ5Ð6Ñ7Ô7ðð ñ 8Ô7ðð$ ÐÐ8Ð9Ñ:Ô:ðð ñ ;Ô:ðð6 ÐÐ9Ð:Ñ;Ô;ðð ñ <Ô;ðð2 ÐÐ.Ð/¸UÐCÑCÔCð-ð -ñ DÔCð-ð* ÐÐ)Ð*¸Ð>Ñ>Ô>ðð ñ ?Ô>ðð ÐÐ-Ð.¸EÐBÑBÔBðð ñ CÔBðð	!ð 	!ð 	!ð
ð 
ð 
ð,ð ,ð ,ðð ð ð ð" ÐÐ/Ð0Ñ1Ô1ðð ñ 2Ô1ðð* ÐÐ5Ð6Ñ7Ô7ðð ñ 8Ô7ðð8Gð Gð Gð	/ð 	/ð 	/ð ÐÐ1Ð2Ñ3Ô3ðð ñ 4Ô3ðð01ð 1ð 1ð9ð 9ð 9ð „×Ò˜ Ñ1Ô1Ø„×Ò˜Ð!4Ñ5Ô5ð:ð :ñ 6Ô5ñ 2Ô1ð:ð(2ð 2ð 2ð ÐÐ2Ð3ÀÐGÑGÔGð5ð 5ñ HÔGð5ð ÐÐ+Ð,¸%Ð@Ñ@Ô@ðð ñ AÔ@ðð ÐÐ/Ð0Ñ1Ô1ðð ñ 2Ô1ðð „×Ò˜ 2¤6¨2¬6Ð"2Ñ3Ô3Ø„×ÒÐ+ð .ð .ð .ñ ô ð&ð &ñô ñ 4Ô3ð&ðw4ð w4ð w4ð w4ð w4ñ w4ô w4ð w4ðtPð Pð Pð$ Ð  Ð(Ñ(Ô(ð<ð <ñ )Ô(ð<ð#ð #ð #ð(.ð .ð .ð" Ð  Ð(Ñ(Ô(ð$Að $Añ )Ô(ð$AðN Ð  Ð(Ñ(Ô(ð@ð @ñ )Ô(ð@ð ÐÐ$Ð%¨WÐ5Ñ5Ô5ð-ð -ñ 6Ô5ð-ð ÐÐ4Ð5Ñ6Ô6ð"ð "ñ 7Ô6ð"ð" ÐÐ)Ð*Ñ+Ô+ðð ñ ,Ô+ðð Ð�<�.¨Øðñ ô ð"ð "ñô ð"ð8 ÐÐ)Ð*°'Ð:Ñ:Ô:ð".ð ".ñ ;Ô:ð".ðJ3ð 3ð 3ð %ð %ð %ð@#ð #ð #ð"	)ð 	)ð 	)ð#0ð #0ð #0ðL „×ÒÐ3Ø! ;Ô#3°TØDðFà! ;Ô#3°SØGðIà! ;Ô#3°SØFðHà! ;Ô#4°dØGðIà  +Ô"2°DØJðLà  +Ô"2°CØIðKà  +Ô"2°CØHðJðKñLô Lð:3ð :3ñLô Lð:3ðz „×Ò�9ÑÔØÐ  Ð(Ñ(Ô(ð@ð @ñ )Ô(ñ Ôð@ð(Dð Dð Dð ÐÐ#4Ð"5À4Ø#˜WÐ,NðPñ Pô PðNð NñPô PðNðbFð Fð Fð":ð :ð :ð'ð 'ð 'ð „×ÒÐ3Ø	�U˜BÐ DÐEØ	�Z Ð%IÐJØ	�Z Ð%IÐJØ	�U�U‘W”W˜s B˜iÐ)MÐNØ	�U�U‘W”W˜s B˜iÐ)MÐNØ	�U�U‘W”W˜s B˜iÐ)MÐNØ	�E˜C ˜8Ø	2ð	4à	�E ¨°Ð3Ð3Ø	2ð	4à	�E ¨Ð+Ð+Ø	2ð	4à	�F˜BÐ LÐMð6ñ ô ð$ð $ñô ð$ð Ð  Ð(Ñ(Ô(ð
2ð 
2ñ )Ô(ð
2ð0ð 0ð 0ð Ð  Ð(Ñ(Ô(ð	ð 	ñ )Ô(ð	ð ÐÐ#7Ð"8Ø"Ø!ð#ñ #ô #ðð ñ#ô #ððð ð ðð ð ð „×ÒØJð à/Ð/Ð/Ø/Ð/Ð/Ø&Ð&Ð&Ø0Ð0Ð0ð	ð ˜jÐ)¨K¸Ð+EÐFØ˜zÐ*¨[¸+Ð,FÐGØ˜{Ð+¨k¸:Ð-FÐGðð
 ˆIˆIð	
ð  à/Ð/Ð/Ø/Ð/Ð/Ø&Ð&Ð&Ø0Ð0Ð0ð	ð ˜zÐ*¨Z¸Ð,DÐEØ˜jÐ)¨K¸Ð+DÐEØ˜{Ð+¨j¸*Ð-EÐFðð
 ˆIˆIð	
ð  à/Ð/Ð/Ø/Ð/Ð/Ø&Ð&Ð&Ø0Ð0Ð0ð	ð ˜{Ð+¨j¸+Ð-FÐGØ˜jÐ)¨J¸
Ð+CÐDØ˜kÐ*¨Z¸Ð,DÐEðð
 ˆIˆIð	
ð?.ñ1ô 1ðd%Hð %Hñe1ô 1ðd%HðP ÐÐ#6Ð"7Ø"Ø!ð#ñ #ô #ð/ð /ñ#ô #ð/ð ÐÑ#;Ð"<Ø"Øð!ñ !ô !ñ)ð )ñ!ô !ð)ð Ð  Ð(Ñ(Ô(ñð ñ )Ô(ðð ð r*   