Ë
    ¸Ó^j¼ ã                   ót  — d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlm	Z	m
Z
mZmZ d dl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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)m*Z+ d dl,Z- e j\                  edd¬«      Z/d„ Z0 e«       d„ «       Z1 e/dgd¬«      d„ «       Z2 e/dgd¬«      d„ «       Z3 e/dgdd¬«      d„ «       Z4 e/dgdd¬«      d„ «       Z5d„ Z6d„ Z7 e/d gdd¬«      d!„ «       Z8 e/d"gdd¬«      d#„ «       Z9d$„ Z: e/d%gdej                  d&k(  rd'nd ¬(«      d)„ «       Z; e/d*gd¬«      d+„ «       Z<d,„ Z= e/d-gd¬«      d.„ «       Z> e/d/gd ee-j~                  j~                  «      j€                  d0k  rd1nd ¬(«      d2„ «       ZAd3„ ZB e/d4gd ej†                  «       d5k(  rd nd6¬(«      d7„ «       ZD e/d8gd¬«      d9„ «       ZE e/d:gd¬«      d;„ «       ZF e/d<gd¬«      d=„ «       ZGej�                  j“                  d>d?g d@¢gdAg dB¢gdCg dD¢gg«       e«       dE„ «       «       ZJ e/dFgdGd¬H«      dI„ «       ZKdJ„ ZL e/dKgd¬«      dL„ «       ZM e«       dM„ «       ZNdN„ ZO e/dOgd¬«      dP„ «       ZP e«       dQ„ «       ZQ e/dRgd¬«      dS„ «       ZR e/dTgd¬«      dU„ «       ZS e/dVgd¬«      dW„ «       ZT e«       dX„ «       ZU e«       dY„ «       ZV e«       dZ„ «       ZW e«       d[„ «       ZXej�                  j“                  d\d]d^g«       e«       d_„ «       «       ZY e«       d`„ «       ZZ e/dagdbd¬H«      dc„ «       Z[ e/ddgd¬«      de„ «       Z\ e/dfgd¬«      dg„ «       Z] e/dhgd¬«      di„ «       Z^ edjgd¬«      dk„ «       Z_ e/dlgd¬«      dm„ «       Z` e/dngd¬«      do„ «       Za e«       dp„ «       Zb e«       dq„ «       Zc e/drgd¬«      ds„ «       Zd e/dtgdd¬«      du„ «       Ze e«       dv„ «       Zf e/dwgdxd¬H«      dy„ «       Zg e/dzgd{d¬H«      d|„ «       Zh e/d}gd¬«      d~„ «       Zi e/dgd¬«      d€„ «       Zj e/d�gd¬«      d‚„ «       Zk e/dƒgd¬«      d„„ «       Zld…„ Zmd†„ Zn e/d‡gddˆ¬(«      d‰„ «       Zo e«       dŠ„ «       Zp e/d‹gd¬«      dŒ„ «       Zq e/d�gd¬«      dŽ„ «       Zrd�„ Zs e«       d�„ «       Ztd‘„ Zu e/d’gd¬«      d“„ «       Zvd”„ Zw e/d•gd¬«      d–„ «       Zx e/d—gd¬«      d˜„ «       Zy e/d™gd¬«      dš„ «       Zzd›„ Z{dœ„ Z| e/d�gdd¬«      dž„ «       Z} e/dŸgdd¬«      d „ «       Z~ e/d¡gdd¬«      d¢„ «       Zd£„ Z€d¤„ Z�d¥„ Z‚dúd§„Zƒ e/d¨gd¬«      d©„ «       Z„ e/dªgd¬«      d«„ «       Z…d¬„ Z†d­„ Z‡ej�                  j“                  d®d¯«      ej�                  j“                  d°d±«      d²„ «       «       Zˆ e«       d³„ «       Z‰d´„ ZŠ e/dµgdd¬«      d¶„ «       Z‹ e/d·gdd¬«      d¸„ «       ZŒ e/d¹gd¬«      dº„ «       Z� e«       d»„ «       ZŽej�                  j“                  d¼e-�j                  e-�j                   g«      ej�                  j“                  d½g d¾¢«      d¿„ «       «       Z‘ G dÀ„ dÁ«      Z’dÂ„ Z“ e«       dÃ„ «       Z”dÄ„ Z•dÅ„ Z– e«       dÆ„ «       Z— e«       dÇ„ «       Z˜ edÈgd¬«      dÉ„ «       Z™ e/dÊgddˆ¬(«      dË„ «       Zš e/dÌgd ej†                  «       d5k(  rd ndÍ¬(«      dÎ„ «       Z› edÏgd ej†                  «       d5k(  rd ndÐ¬(«      dÑ„ «       Zœ edÒgd¬«      dÓ„ «       Z�dÔ„ ZždÕ„ ZŸdÖ„ Z  e«       d×„ «       Z¡dØ„ Z¢dÙ„ Z£ej�                  j“                  dÚdÛ«      dÜ„ «       Z¤dÝ„ Z¥ej�                  j“                  dÞdße�jL                  ddàfdße�jL                  dádâfdße�jL                  dãdäfdße�jN                  ddåfdæe�jL                  ddçfdæe�jL                  dádèfdæe�jL                  dãdéfg«      dê„ «       Z¨e�jR                  �jU                  d«       e«       dë„ «       «       Z«dì„ Z¬ edígdd¬«      dî„ «       Z­dï„ Z®dð„ Z¯dñ„ Z°dò„ Z±ej�                  j“                  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 „ «       Z¶�d„ Z· e«       �d„ «       Z¸ e�dgdd�¬«      �d„ «       Z¹�d„ Zº�d„ Z»�d„ Z¼ej�                  j“                  �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j�                  j“                  �d g d¯¢«      �d e¾�d!df�d"„«       Z¿ej�                  j“                  �d#dág �d$¢fdãg �d%¢fdùg �d&¢fg«      �d'„ «       ZÀ e�d(gdd�¬«      �d)„ «       ZÁ e�d*gdd�¬«      �d+„ «       ZÂ e«       �d,„ «       ZÃ�d-„ ZÄ e/�d.gd¬«      �d/„ «       ZÅ�d0„ ZÆ�d1„ ZÇ�d2„ ZÈ�d3„ ZÉ�d4„ ZÊ�d5„ ZË�d6„ ZÌ�d7„ ZÍ�d8„ ZÎ e/�d9gdd�d:�¬;«      �d<„ «       ZÏ e/�d=gdd�¬>«      �d?„ «       ZÐej�                  j“                  �d@g �dA¢«      e�jR                  �jU                  d«      �dB„ «       «       ZÑ e«       ej�                  �j¥                  �dC«      �dD„ «       «       ZÓ e/�dEgdd�¬>«      �dF„ «       ZÔ e/�dGgdd�¬>«      �dH„ «       ZÕej�                  j“                  �dI�dJ�dK�dLif�dJ�dKd0if�dJ�dMd0�dNgif�dJ�dO�dPif�dQ�dKd0if�dQ�dRd¦if�dQ�dS�dTif�dQ�dMd0�dNgif�dU�dV�dTif�dU�dKd0if�dW�dO�dXifg«      �dY„ «       ZÖej�                  j“                  d®g d¯¢«      �dZ„ «       Z×�d[„ ZØej�                  j“                  �d\g �d]¢«      �d^„ «       ZÙ�d_„ ZÚ�d`„ ZÛ�da„ ZÜ�db„ ZÝ�dc„ ZÞ�dd„ Zßy(e  é    N)Úparse)ÚAxes3DÚaxes3dÚproj3dÚart3d)Ú_Quaternion)ÚMouseButtonÚ
MouseEventÚNavigationToolbar2)Úcm)ÚcolorsÚpatches)Úimage_comparisonÚcheck_figures_equal)ÚLineCollectionÚPolyCollection)ÚCircleÚ	PathPatch)ÚPath)ÚText)Ú_apiTÚdefault)Úremove_textÚstylec                 ó¨  — ddg}t        j                  t        j                  t	        t        j
                  |||«      «      «      d«      }|D ]‚  \  }}t        j                  t        j                  ||z
  «      «      |d   |d   z
  k(  sŒ> | j                  t        |t        j                  |«      z  |t        j                  |«      z  «      Ž  Œ„ y )Nr   é   é   )
Ú	itertoolsÚcombinationsÚnpÚarrayÚlistÚproductÚsumÚabsÚplot3DÚzip)ÚaxÚscaleÚrÚptsÚstartÚends         úq/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/mpl_toolkits/mplot3d/tests/test_axes3d.pyÚplot_cuboidr/      s¨   € à	
ˆAˆ€AÜ
×
 Ñ
 ¤§¡¬$¬y×/@Ñ/@ÀÀAÀqÓ/IÓ*JÓ!KÈQÓ
O€CØò H‰
ˆˆsÜ�6‰6”"—&‘&˜ ™Ó%Ó&¨!¨A©$°°1±©+Ó5ØˆB�I‰I”s˜5¤§¡¨%£Ñ0°#´b·h±h¸u³oÑ2EÓFÒGñHó    c                 ó^   — | j                  t        d¬«      ¬«      }|j                  d«       y )NÚ3d©Ú
projection©Ú
subplot_kwF)ÚsubplotsÚdictÚset_visible©Úfig_testÚfig_refr(   s      r.   Útest_invisible_axesr=   (   s&   € à	×	Ñ	¤d°dÔ&;Ð	Ó	<€BØ‡N�N�5Õr0   zgrid_off.pngÚmpl20©r   c                  ór   — t        j                  «       } | j                  d¬«      }|j                  d«       y ©Nr2   r3   F)ÚpltÚfigureÚadd_subplotÚgrid©Úfigr(   s     r.   Útest_grid_offrH   .   s(   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡G�GˆE…Nr0   zinvisible_ticks_axis.pngc                  ó<  — t        j                  «       } | j                  d¬«      }|j                  g «       |j	                  g «       |j                  g «       |j                  |j                  |j                  fD ]  }|j                  j                  d«       Œ y rA   )rB   rC   rD   Ú
set_xticksÚ
set_yticksÚ
set_zticksÚxaxisÚyaxisÚzaxisÚliner9   )rG   r(   Úaxiss      r.   Útest_invisible_ticks_axisrR   5   su   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡M�M�"ÔØ‡M�M�"ÔØ‡M�M�"ÔØ—‘˜2Ÿ8™8 R§X¡XÐ.ò %ˆØ�	‰	×Ñ˜eÕ$ñ%r0   zaxis_positions.pngFc                  óN  — g d¢} t        j                  ddddi¬«      \  }}t        |j                  «       | «      D ]g  \  }}|j                  |j
                  |j                  fD ]$  }|j                  |«       |j                  |«       Œ& |› }|j                  ddd|¬	«       Œi y )
N)ÚupperÚlowerÚbothÚnoner   r4   r2   r5   ÚxÚyÚz©ÚxlabelÚylabelÚzlabelÚtitle)
rB   r7   r'   ÚflattenrM   rN   rO   Úset_label_positionÚset_ticks_positionÚset)Ú	positionsrG   Úaxsr(   ÚposrQ   r_   s          r.   Útest_axis_positionsrg   @   sŸ   € â2€IÜ�|‰|˜A˜q¨l¸DÐ-AÔB�H€CˆÜ�s—{‘{“} iÓ0ò @‰ˆˆCØ—H‘H˜bŸh™h¨¯©Ð0ò 	)ˆDØ×#Ñ# CÔ(Ø×#Ñ# CÕ(ð	)ð �%ˆØ
�‰�c #¨c¸ˆÕ?ñ@r0   zaxis_positions_inverted.pngc                  óÆ  — t        t        j                  ddgd¬«      «      } t        j                  ddddd	i¬
«      \  }}t        |j                  «       | «      D ]„  \  }\  }}}|j                  g d¢g d¢g d¢«       |r|j                  «        |r|j                  «        |r|j                  «        |rdnd› d|rdnd› d|rdnd› d�}|j                  ddd|¬«       Œ† y )NFTé   )Úrepeatr   é   ©é
   é   r4   r2   )Úfigsizer6   ©r   r   r   ©r   r   r   ú-Ú zx, zy, rZ   rX   rY   r[   )r"   r   r#   rB   r7   r'   r`   ÚplotÚinvert_xaxisÚinvert_yaxisÚinvert_zaxisrc   )r   rG   re   r(   Úinvert_xÚinvert_yÚinvert_zr_   s           r.   Útest_axis_positions_invertedr{   L   sã   € ô œ	×)Ñ)¨5°$¨-ÀÔBÓC€LÜ�|‰|˜A˜q¨'Ø(4°dÐ';ô=�H€Cˆä.1°#·+±+³-ÀÓ.Nò @Ñ*ˆÑ*ˆX�x ð 	�‰’	š9¢iÔ0ÙØ�O‰OÔÙØ�O‰OÔÙØ�O‰OÔÙ#‘C¨Ð,¨CÙ#‘C¨Ð,¨CÙ#‘C¨Ð,¨Að/ˆð 	�‰�c #¨c¸ˆÕ?ñ@r0   c                  ó*  — t        j                  «       } | j                  d¬«      }|j                  ddgddgddg«       | j                  j                  «        |j                  «       }|j                  dd¬	«       | j                  j                  «        |j                  «       }|j                  d
d¬	«       | j                  j                  «        |j                  «       }t        j                  ||«      rJ ‚t        j                  ||«      sJ ‚y )Nr2   r3   r   r   r   ri   ÚequalÚdatalim©Ú
adjustableÚauto)
rB   rC   rD   rt   ÚcanvasÚdrawÚ
get_w_limsÚ
set_aspectr    Úallclose)rG   r(   Údefault_limitsÚequal_limitsÚfinal_limitss        r.   Ú'test_set_aspect_datalim_restores_limitsrŠ   e   sÐ   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bà‡G�GˆQˆqˆE�A�a�5˜1˜Q˜%Ô à‡J�J‡O�OÔØ—]‘]“_€Nà‡M�M�' i€MÔ0Ø‡J�J‡O�OÔØ—=‘=“?€Là‡M�M�& Y€MÔ/Ø‡J�J‡O�OÔØ—=‘=“?€Lô �{‰{˜>¨<Ô8Ð8Ð8ô �;‰;�~ |Ô4Ð4Ñ4r0   c                  ó¨  — t        j                  «       } | j                  d¬«      }|j                  ddgddgddg«       |j	                  «       }|j                  d	d
¬«       |j                  dd«       |j                  dd
¬«       |j                  «       |j                  «       |j                  «       }}}|dk(  sJ ‚||dd k(  sJ ‚||dd k(  sJ ‚y )Nr2   r3   r   r   ri   rk   é   rn   r}   r~   r   éÎÿÿÿé2   r�   )r�   rŽ   )
rB   rC   rD   rt   r„   r…   Úset_xlimÚ
get_xlim3dÚ
get_ylim3dÚ
get_zlim3d)rG   r(   Ú	orig_limsÚxlimÚylimÚzlims         r.   Ú/test_set_aspect_datalim_restores_untouched_axesr—   ~   sÇ   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡G�GˆQ�ˆF�Q˜�F˜Q ˜FÔ#Ø—‘“€Ià‡M�M�' i€MÔ0Ø‡K�K��RÔØ‡M�M�& Y€MÔ/à—}‘}“¨¯©«¸¿¹»�ˆ$€DØ�9ÒÐÐØ�9˜Q˜q�>Ò!Ð!Ð!Ø�9˜Q˜q�>Ò!Ð!Ñ!r0   zaspects.pngc                  ó   — d} t        j                  ddddi¬«      \  }}|j                  «       dd D ]  }t        |g d	¢¬
«       Œ t        |d   d   g d¢¬
«       t	        |j                  «       «      D ]@  \  }}|j                  | |   «       |j                  d«       |j                  | |   d¬«       ŒB |d   d   j                  d«       y )N)r�   r}   ÚequalxyÚequalyzÚequalxzr}   r   ri   r4   r2   r5   r   éÿÿÿÿ)r   r   rŒ   ©r)   r   ©r   r   r   ©ri   rk   rŒ   r~   r   zequal (cube))rB   r7   r`   r/   Ú	enumerateÚ	set_titleÚset_box_aspectr…   )ÚaspectsÚ_re   r(   Úis        r.   Útest_aspectsr¦   Ž   sÄ   € àI€GÜ�\‰\˜!˜Q¨L¸$Ð+?Ô@�F€A€sà�k‰k‹m˜A˜bÐ!ò )ˆÜ�BšiÖ(ð)ô ��A‘�q‘	¢Õ+ä˜3Ÿ;™;›=Ó)ò 8‰ˆˆ2Ø
�‰�W˜Q‘ZÔ Ø
×Ñ˜)Ô$Ø
�‰�g˜a‘j¨YˆÕ7ð8ð ˆ�Fˆ1�I×Ñ˜Õ'r0   zaspects_adjust_box.pngc                  óî   — d} t        j                  dt        | «      ddid¬«      \  }}t        |«      D ]>  \  }}t	        |g d¢¬«       |j                  | |   «       |j                  | |   d	¬
«       Œ@ y )N)r�   r}   r™   rš   r›   r   r4   r2   )é   ri   ©r6   ro   )rk   ri   rŒ   r�   Úboxr   )rB   r7   Úlenr    r/   r¡   r…   )r£   rG   re   r¥   r(   s        r.   Útest_aspects_adjust_boxr¬   Ÿ   su   € ð A€GÜ�|‰|˜Aœs 7›|¸ÀtÐ8LØ$+ô-�H€Cˆô ˜3“ò 4‰ˆˆ2Ü�BšiÕ(Ø
�‰�W˜Q‘ZÔ Ø
�‰�g˜a‘j¨UˆÕ3ñ4r0   c                  ó  — t        j                  «       } | j                  d¬«      }|j                  d«       |j	                  d«       |j                  d«       |j                  d«       |j                  d«       t        |«      dk(  sJ ‚y )	Nr2   r3   Úlabelr_   rX   rY   rZ   zV<Axes3D: label='label', title={'center': 'title'}, xlabel='x', ylabel='y', zlabel='z'>)	rB   rC   rD   Ú	set_labelr¡   Ú
set_xlabelÚ
set_ylabelÚ
set_zlabelÚreprrF   s     r.   Útest_axes3d_reprr´   ¬   sx   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡L�L�ÔØ‡L�L�ÔØ‡M�M�#ÔØ‡M�M�#ÔØ‡M�M�#ÔÜ�‹8ð	IòJð Jñ Jr0   zaxes3d_primary_views.pngÚdarwing
×£p=
§?)r   Útolc                  ó|  — g d¢} t        j                  ddddi¬«      \  }}t        |j                  «      D ]o  \  }}|j	                  d«       |j                  d«       |j                  d	«       |j                  d
«       |j                  | |   d   | |   d   | |   d   ¬«       Œq t        j                  «        y )N))éZ   é¦ÿÿÿr   ©r   r¹   r   ©r   r   r   )r¹   r¸   r   ©r   r¸   r   ©r   é´   r   r   ri   r4   r2   r5   rX   rY   rZ   Úorthor   r   ©ÚelevÚazimÚroll)
rB   r7   r    Úflatr°   r±   r²   Úset_proj_typeÚ	view_initÚtight_layout)ÚviewsrG   re   r¥   r(   s        r.   Útest_axes3d_primary_viewsrÉ   ¹   s®   € ò€Eô �|‰|˜A˜q¨l¸DÐ-AÔB�H€CˆÜ˜3Ÿ8™8Ó$ò K‰ˆˆ2Ø
�‰�cÔØ
�‰�cÔØ
�‰�cÔØ
×Ñ˜Ô!Ø
�‰˜% ™( 1™+¨E°!©H°Q©K¸eÀA¹hÀq¹kˆÕJðKô ×ÑÕr0   z	bar3d.pngc            
      ó,  — t        j                  «       } | j                  d¬«      }t        g d¢g d¢«      D ][  \  }}t	        j
                  d«      }t	        j
                  d«      }|gt        |«      z  }d|d<   |j                  |||dd	|d
¬«       Œ] y )Nr2   r3   )r*   ÚgÚbrY   )é   é   rm   r   rÎ   Úcr   rY   Úedgeçš™™™™™é?)ÚzsÚzdirÚalignÚcolorÚalpha)rB   rC   rD   r'   r    Úaranger«   Úbar)rG   r(   rÏ   rZ   ÚxsÚysÚcss          r.   Ú
test_bar3drÜ   Ï   s†   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜÒ(ª/Ó:ò J‰ˆˆ1Ü�Y‰Y�r‹]ˆÜ�Y‰Y�r‹]ˆØˆS”3�r“7‰]ˆØˆˆ1‰Ø
�‰ˆr�2˜! #¨V¸2ÀSˆÕIñJr0   c            
      ó  — t        j                  «       } | j                  d¬«      }dD ]b  }t        j                  t        |«      «      }t        j                  |«      }t        j                  |«      }|j                  |||ddd|¬«       Œd y )Nr2   r3   )ÚredÚgreenÚblueÚyellowr   ©rÕ   )rB   rC   rD   r    r×   r«   Ú
zeros_likeÚbar3d)rG   r(   rÏ   rÙ   rÚ   rÒ   s         r.   Útest_bar3d_colorsrå   Û   sv   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ/ò /ˆÜ�Y‰Y”s˜1“vÓˆÜ�]‰]˜2ÓˆÜ�]‰]˜2Óˆð 	�‰��R˜˜Q  1¨AˆÕ.ñ/r0   zbar3d_shaded.pngc            
      ó\  — t        j                  d«      } t        j                  d«      }t        j                  | |«      \  }}|j                  «       |j                  «       }}||z   dz   }g d¢}t	        j
                  t	        j                  dt        |«      z  «      ¬«      }|j                  dt        |«      t        d¬«      ¬«      }t        ||«      D ]8  \  }\  }	}
}|j                  |||d	z  dd|d
¬«       |j                  |	|
|¬«       Œ: |j                  j                  «        y )Nrk   rŒ   r   ))rÍ   éÄÿÿÿr   )rÍ   rÍ   rÍ   )éâÿÿÿrÍ   r¹   )é,  rè   r   ©ro   r2   r3   r5   r   T©ÚshaderÀ   )r    r×   ÚmeshgridÚravelrB   rC   Ú	figaspectr«   r7   r8   r'   rä   rÆ   r‚   rƒ   )rX   rY   Úx2dÚy2drZ   rÈ   rG   re   r(   rÁ   rÂ   rÃ   s               r.   Útest_bar3d_shadedrò   ç   sý   € ä
�	‰	�!‹€AÜ
�	‰	�!‹€AÜ�{‰{˜1˜aÓ �H€CˆØ�y‰y‹{˜CŸI™I›Kˆ€CØˆc‰	�A‰€AâG€EÜ
�*‰*œSŸ]™]¨1¬s°5«z©>Ó:Ô
;€CØ
�,‰,Ø	Œ3ˆu‹:Ü 4Ô(ð ó €Cô #& c¨5£/ò 6ÑˆÑˆT�4˜Ø
�‰��c˜3 ™7 A q¨!°4ˆÔ8Ø
�‰˜$ T°ˆÕ5ð6ð ‡J�J‡O�OÕr0   zbar3d_notshaded.pngr   ç{®Gáz„?c            	      óŠ  — t        j                  «       } | j                  d¬«      }t        j                  d«      }t        j                  d«      }t        j
                  ||«      \  }}|j                  «       |j                  «       }}||z   }|j                  |||dz  dd|d¬«       | j                  j                  «        y )	Nr2   r3   rk   rŒ   r   r   Frë   )
rB   rC   rD   r    r×   rí   rî   rä   r‚   rƒ   )rG   r(   rX   rY   rð   rñ   rZ   s          r.   Útest_bar3d_notshadedrõ   û   s—   € ô �*‰*‹,€CØ	�‰ DˆÓ	)€BÜ
�	‰	�!‹€AÜ
�	‰	�!‹€AÜ�{‰{˜1˜aÓ �H€CˆØ�y‰y‹{˜CŸI™I›Kˆ€CØˆc‰	€AØ‡H�HˆS�#�s˜Q‘w  1 a¨u€HÔ5Ø‡J�J‡O�OÕr0   c                  ó\  — t        j                  «       } | j                  dddd¬«      }t        j                  dd¬«      }d\  }}||z  }t        j                  t        j                  |«      t        j                  |«      «      \  }}|j                  «       }|j                  «       }||z   }t        |«      D �	cg c]  }	t        j                  |	|z  «      ‘Œ }
}	|j                  ||ddd||
d|¬	«	      }t
        j                  j                  |
|j                  dd d
…   d«       y c c}	w )Nr   r2   r3   r   r¸   )ÚazdegÚaltdeg)ri   rk   T)	rX   rY   rZ   ÚdxÚdyÚdzrÕ   rì   Úlightsourcern   rk   )rB   rC   rD   ÚmcolorsÚLightSourcer    rí   r×   rî   Úranger   Úcoolwarmrä   ÚtestingÚassert_array_max_ulpÚ_facecolor3d)rG   r(   ÚlsÚlengthÚwidthÚarearX   rY   rû   r¥   rÕ   Ú
collections               r.   Útest_bar3d_lightsourcer	  	  s  € Ü
�*‰*‹,€CØ	�‰˜˜A˜q¨TˆÓ	2€Bä	×	Ñ	 1¨RÔ	0€Bà�M€FˆEØ�E‰>€Dä�;‰;”r—y‘y Ó(¬"¯)©)°EÓ*:Ó;�D€A€qØ	�‰‹	€AØ	�‰‹	€AØ	
ˆQ‰€Bä*/°«+Ö6 QŒR�[‰[˜˜4™Õ Ð6€EÐ6à—‘˜A  aØ 1¨Ø %¨T¸rð ó C€Jô ‡J�J×#Ñ# E¨:×+BÑ+BÀ1À4ÀaÀ4Ñ+HÈ!ÕLùò 7s   Â<D)zcontour3d.pngÚx86_64çü©ñÒMb`?c                  ó`  — dt         j                  d<   t        j                  «       } | j                  d¬«      }t	        j
                  d«      \  }}}|j                  |||ddd¬	«       |j                  |||d
dd¬	«       |j                  |||ddd¬	«       |j                  dddddd¬«       y )NTúaxes3d.automarginr2   r3   çš™™™™™©?rZ   éœÿÿÿr   ©rÓ   ÚoffsetÚcmaprX   éØÿÿÿrY   é(   éd   )ÚxminÚxmaxÚyminÚymaxÚzminÚzmax)rB   ÚrcParamsrC   rD   r   Úget_test_dataÚcontourrQ   ©rG   r(   ÚXÚYÚZs        r.   Útest_contour3dr#  $  s¤   € ð )-„C‡L�LÐ$Ñ%Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø‡J�Jˆq�!�Q˜S¨°J€JÔ?Ø‡J�Jˆq�!�Q˜S¨°:€JÔ>Ø‡J�Jˆq�!�Q˜S¨°*€JÔ=Ø‡G�G�˜2 C¨b°tÀ#€GÕFr0   zcontour3d_extend3d.pngc            	      óD  — dt         j                  d<   t        j                  «       } | j                  d¬«      }t	        j
                  d«      \  }}}|j                  |||dddd¬	«       |j                  d
d«       |j                  dd«       |j                  dd«       y )NTr  r2   r3   r  rZ   r  r   )rÓ   r  r  Úextend3drè   rÍ   éìÿÿÿr  é°ÿÿÿéP   )
rB   r  rC   rD   r   r  r  r�   Úset_ylimÚset_zlimr  s        r.   Útest_contour3d_extend3dr+  1  s†   € à(,„C‡L�LÐ$Ñ%Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø‡J�Jˆq�!�Q˜S¨°JÈ€JÔNØ‡K�K��RÔØ‡K�K��RÔØ‡K�K��RÕr0   zcontourf3d.pngc                  óž  — dt         j                  d<   t        j                  «       } | j                  d¬«      }t	        j
                  d«      \  }}}|j                  |||ddd¬	«       |j                  |||d
dd¬	«       |j                  |||ddd¬	«       |j                  dd«       |j                  dd«       |j                  dd«       y )NTr  r2   r3   r  rZ   r  r   r  rX   r  rY   r  r  )
rB   r  rC   rD   r   r  Úcontourfr�   r)  r*  r  s        r.   Útest_contourf3dr.  =  s´   € à(,„C‡L�LÐ$Ñ%Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø‡K�K��1�a˜c¨$°Z€KÔ@Ø‡K�K��1�a˜c¨#°J€KÔ?Ø‡K�K��1�a˜c¨"°:€KÔ>Ø‡K�K��RÔØ‡K�K��RÔØ‡K�K��cÕr0   zcontourf3d_fill.pngc                  óØ  — dt         j                  d<   t        j                  «       } | j                  d¬«      }t	        j
                  t	        j                  ddd«      t	        j                  ddd«      «      \  }}|j                  dd«      }d	|d d d
…d d d
…f<   |j                  |||dddgd¬«       |j                  dd«       |j                  dd«       |j                  dd«       y )NTr  r2   r3   éþÿÿÿr   ç      Ð?r   çš™™™™™¹?rŒ   çš™™™™™¹¿r   )r  Úlevelsr  rœ   r   )rB   r  rC   rD   r    rí   r×   Úclipr-  r�   r)  r*  r  s        r.   Útest_contourf3d_fillr6  K  sÆ   € à(,„C‡L�LÐ$Ñ%Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ�;‰;”r—y‘y  Q¨Ó-¬r¯y©y¸¸QÀÓ/EÓF�D€A€qØ	�‰ˆq�!‹€Að €A�cˆ€c‰3ˆQˆ3€h�KØ‡K�K��1�a ¨4°¨)¸*€KÔEØ‡K�K��AÔØ‡K�K��AÔØ‡K�K��AÕr0   zextend, levelsrV   )r   rk   rn   Úmin)r   rk   rn   é   Úmax)r   r   rk   rn   c           	      óÈ  — t        j                  t        j                  ddd«      t        j                  ddd«      «      \  }}|dz  |dz  z   }|j                  d¬«      }|j	                  |||g d¢dd¬	«       | j                  d¬«      }|j	                  |||||dd¬
«       ||fD ]8  }	|	j                  dd«       |	j                  dd«       |	j                  dd«       Œ: y )Nr0  r   r1  r2   r3   )r   r   rk   rn   r8  r   é   )r4  ÚvminÚvmax)Úextendr<  r=  éöÿÿÿrm   )r    rí   r×   rD   r-  r�   r)  r*  )
r;   r<   r>  r4  r   r!  r"  Úax_refÚax_testr(   s
             r.   Útest_contourf3d_extendrB  [  sÜ   € ô
 �;‰;”r—y‘y  Q¨Ó-¬r¯y©y¸¸QÀÓ/EÓF�D€A€qà	ˆ1‰ˆq�!‰t‰€Aà× Ñ ¨DÐ Ó1€FØ
‡O�O�A�q˜!¢O¸!À!€OÔDà×"Ñ"¨dÐ"Ó3€GØ×Ñ�Q˜˜1˜f¨V¸!À!ÐÔDà�wÐò ˆØ
�‰�B˜ÔØ
�‰�B˜ÔØ
�‰�C˜Õñr0   ztricontour.pngç{®Gáz”?)r¶   r   c                  óÐ  — dt         j                  d<   t        j                  «       } t        j                  j                  d«       t        j                  j                  d«      dz
  }t        j                  j                  d«      dz
  }|dz  |dz  z    }| j                  dddd¬	«      }|j                  |||«       | j                  dddd¬	«      }|j                  |||«       y )
NTr  i!N,éè  ç      à?r   r   r2   r3   )
rB   r  rC   r    ÚrandomÚseedÚrandrD   Ú
tricontourÚtricontourf)rG   rX   rY   rZ   r(   s        r.   Útest_tricontourrL  p  s¹   € à(,„C‡L�LÐ$Ñ%Ü
�*‰*‹,€Cä‡I�I‡N�N�8ÔÜ
�	‰	�‰�tÓ˜sÑ"€AÜ
�	‰	�‰�tÓ˜sÑ"€AØ
ˆQ‰$��A‘‰+ˆ€Aà	�‰˜˜A˜q¨TˆÓ	2€BØ‡M�M�!�Q˜ÔØ	�‰˜˜A˜q¨TˆÓ	2€BØ‡N�N�1�a˜Õr0   c                  ó&  — t        j                  «       } | j                  d¬«      }d\  }}t        j                  dd|«      }t        j                  dd|«      }t        j
                  j                  dd||g«      }|j                  |||dg«       y )	Nr2   r3   )rÍ   rÎ   r?  rm   r   r   rF  )rB   rC   rD   r    ÚlinspacerG  Úrandintr  )rG   r(   ÚnxÚnyrX   rY   rZ   s          r.   Útest_contour3d_1d_inputrR  €  sz   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ�F€BˆÜ
�‰�C˜˜RÓ €AÜ
�‰�C˜˜RÓ €AÜ
�	‰	×Ñ˜!˜Q  R Ó)€AØ‡J�Jˆq�!�Q˜˜Õr0   zlines3d.pngc                  ó†  — t        j                  «       } | 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  }|j                  |||«       y )	Nr2   r3   éüÿÿÿrk   r  r0  r   r   )	rB   rC   rD   r    rN  ÚpiÚsinÚcosrt   )rG   r(   ÚthetarZ   r*   rX   rY   s          r.   Útest_lines3drY  ‹  s’   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ�K‰K˜œRŸU™U™
 A¬¯©¡I¨sÓ3€EÜ
�‰�B˜˜3Ó€AØ	ˆQ‰�‰
€AØ	ŒB�F‰F�5‹MÑ€AØ	ŒB�F‰F�5‹MÑ€AØ‡G�GˆAˆq�!Õr0   c                 óœ   — | j                  d¬«      }|j                  dgdgd«       |j                  d¬«      }|j                  ddd«       y )Nr2   r3   r   Úo©rD   rt   ©r;   r<   Úax1Úax2s       r.   Útest_plot_scalarr`  —  sL   € à
×
Ñ
¨$Ð
Ó
/€CØ‡H�HˆaˆS�1�#�sÔØ
×
Ñ
¨Ð
Ó
.€CØ‡H�HˆQ��3Õr0   c                  ór  — t        j                  t        d¬«      5  t        j                  dg g «       d d d «       t        j                  t        d¬«      5  t        j                  g dg «       d d d «       t        j                  t        d¬«      5  t        j                  g g d«       d d d «       t        j                  g g g «      } t        j                  t        d¬«      5  | j                  dg g «       d d d «       t        j                  t        d¬«      5  | j                  g dg «       d d d «       t        j                  t        d¬«      5  | j                  g g d«       d d d «       y # 1 sw Y   �Œ=xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒàxY w# 1 sw Y   ŒžxY w# 1 sw Y   ŒsxY w# 1 sw Y   y xY w)Nz	x must be©Úmatchr   z	y must bez	z must be)ÚpytestÚraisesÚRuntimeErrorr   ÚLine3DÚset_data_3d)rP   s    r.   Útest_invalid_line_datari  Ÿ  sS  € Ü	�‰”|¨;Ô	7ñ  Ü�‰�Q˜˜BÔ÷ ä	�‰”|¨;Ô	7ñ  Ü�‰�R˜˜BÔ÷ ä	�‰”|¨;Ô	7ñ  Ü�‰�R˜˜QÔ÷ ô �<‰<˜˜B Ó#€DÜ	�‰”|¨;Ô	7ñ $Ø×Ñ˜˜B Ô#÷$ä	�‰”|¨;Ô	7ñ $Ø×Ñ˜˜Q Ô#÷$ä	�‰”|¨;Ô	7ñ $Ø×Ñ˜˜R Ô#÷$ð $÷ ñ  ú÷ ñ  ú÷ ð  ú÷$ð $ú÷$ð $ú÷$ð $úsG   œE/ÁE<ÂF	Ã$FÄF!ÅF-Å/E9Å<FÆ	FÆFÆ!F*Æ-F6zmixedsubplot.pngc            	      óÈ  — d„ } t        j                  ddd«      }t        j                  ddd«      }dt        j                  d<   t        j                  t        j
                  d«      ¬	«      }|j                  d
dd«      }|j                  | | |«      d| | |«      dd¬«       |j                  d«       |j                  d
dd
d¬«      }t        j                  t        j                  ddd«      t        j                  ddd«      «      \  }}t        j                  ||«      }t        j                  |«      }|j                  |||dddd¬«       |j                  dd«       y )Nc                 ó‚   — t        j                  dt         j                  z  | z  «      t        j                  |  «      z  S ©Nr   )r    rW  rU  Úexp)Úts    r.   Úfztest_mixedsubplots.<locals>.f²  s,   € Ü�v‰v�aœŸ™‘g˜a‘iÓ ¤2§6¡6¨1¨"£:Ñ-Ð-r0   ç        ç      @r2  rC  Tr  ç       @rê   r   r   Úbozk--rß   )Úmarkerfacecolorr2   r3   éûÿÿÿrŒ   r1  r  r   F)ÚrcountÚccountÚ	linewidthÚantialiasedrœ   )r    r×   rB   r  rC   rï   rD   rt   rE   rí   ÚhypotrV  Úplot_surfaceÚ
set_zlim3d)	ro  Út1Út2rG   r(   r   r!  ÚRr"  s	            r.   Útest_mixedsubplotsr€  °  s"  € ò.ô 
�‰�3˜˜SÓ	!€BÜ	�‰�3˜˜TÓ	"€Bà(,„C‡L�LÐ$Ñ%Ü
�*‰*œSŸ]™]¨2Ó.Ô
/€CØ	�‰˜˜A˜qÓ	!€BØ‡G�GˆB‘�"“�t˜R¡ 2£¨¸w€GÔGØ‡G�GˆD„Mà	�‰˜˜A˜q¨TˆÓ	2€BÜ�;‰;”r—y‘y  Q¨Ó-¬r¯y©y¸¸QÀÓ/EÓF�D€A€qÜ
�‰��A‹€AÜ
�‰ˆq‹	€Aà‡O�O�A�q˜! B¨rØ¨Uð ô 4ð ‡M�M�"�aÕr0   c                 óà   — | j                  d¬«      }|j                  dddd¬«       | j                  «        |j                  d¬«      }|j                  «        |j                  dddd¬«       y )Nr2   r3   rF  zsome string©Ús)rD   ÚtextrÇ   r]  s       r.   Útest_tight_layout_textr…  É  sj   € ð ×
Ñ
¨$Ð
Ó
/€CØ‡H�HˆR��R˜=€HÔ)Ø×ÑÔà
×
Ñ
¨Ð
Ó
.€CØ×ÑÔØ‡H�HˆR��R˜=€HÕ)r0   zscatter3d.pngc                  ó„  — t        j                  «       } | j                  d¬«      }|j                  t	        j
                  d«      t	        j
                  d«      t	        j
                  d«      dd¬«       t	        j
                  dd«      x}x}}|j                  |||dd	¬«       d
|d<   |j                  g g g dd¬«       y )Nr2   r3   rm   r*   r[  )rÏ   ÚmarkerrÎ   rÌ   ú^r   rœ   r   ©rB   rC   rD   Úscatterr    r×   ©rG   r(   rX   rY   rZ   s        r.   Útest_scatter3drŒ  Ö  s    € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡J�JŒr�y‰y˜‹}œbŸi™i¨›m¬R¯Y©Y°r«]Ø˜Sð ô "ä—	‘	˜"˜bÓ!Ð!€AÐ!ˆˆAØ‡J�Jˆq�!�Q˜# c€JÔ*Ø€A€b�Eà‡J�Jˆr�2�r˜S¨€JÕ-r0   zscatter3d_color.pngc                  ó4  — t        j                  «       } | j                  d¬«      }|j                  t	        j
                  d«      t	        j
                  d«      t	        j
                  d«      ddd¬«       |j                  t	        j
                  d«      t	        j
                  d«      t	        j
                  d«      ddd¬«       |j                  t	        j
                  dd«      t	        j
                  dd«      t	        j
                  dd«      d	d
¬«       y )Nr2   r3   rm   r*   rW   r[  )Ú	facecolorÚ	edgecolorr‡  rÎ   rÌ   rƒ  )rÕ   r‡  r‰  rF   s     r.   Útest_scatter3d_colorr�  ã  sÊ   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bð ‡J�JŒr�y‰y˜‹}œbŸi™i¨›m¬R¯Y©Y°r«]Ø¨°sð ô <à‡J�JŒr�y‰y˜‹}œbŸi™i¨›m¬R¯Y©Y°r«]Ø¨3°sð ô <ð ‡J�JŒr�y‰y˜˜RÓ ¤"§)¡)¨B°Ó"3´R·Y±Y¸rÀ2Ó5FØ ð õ &r0   zscatter3d_linewidth.pngc            	      ó  — t        j                  «       } | j                  d¬«      }|j                  t	        j
                  d«      t	        j
                  d«      t	        j
                  d«      dt	        j
                  d«      ¬«       y )Nr2   r3   rm   r[  )r‡  rx  r‰  rF   s     r.   Útest_scatter3d_linewidthr’  ó  s[   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bð ‡J�JŒr�y‰y˜‹}œbŸi™i¨›m¬R¯Y©Y°r«]Ø¤R§Y¡Y¨r£]ð õ 4r0   c                 óp  — t        j                  d«      t        j                  d«      t        j                  d«      }}}t        j                  ddt         j                  ddg«      }|j                  d¬«      }|j                  ||||¬«       | j                  d¬«      }|j                  ||||d¬	«       y )
NrŒ   r   r   ri   rk   r2   r3   ©rÏ   )rÏ   rÖ   )r    r×   Úzerosr!   ÚnanrD   rŠ  )r<   r;   rX   rY   rZ   rÏ   rA  r@  s           r.   Útest_scatter3d_cmap_alphar—  ý  s–   € ô �i‰i˜‹lœBŸH™H Q›K¬¯©°1«ˆ!€q€AÜ
�‰�!�QœŸ™  1Ð%Ó&€Aà×"Ñ"¨dÐ"Ó3€GØ‡O�O�A�q˜!˜q€OÔ!Ø× Ñ ¨DÐ Ó1€FØ
‡N�N�1�a˜˜a q€NÕ)r0   c           	      óô  — |j                  d¬«      }|j                  t        j                  d«      t        j                  d«      t        j                  d«      d¬«      }|j	                  t        j                  d«      «       | j                  d¬«      }|j                  t        j                  d«      t        j                  d«      t        j                  d«      dt        j                  d«      ¬«       y )Nr2   r3   rm   r[  )r‡  )r‡  Ú
linewidths)rD   rŠ  r    r×   Úset_linewidths©r<   r;   rA  rÏ   r@  s        r.   Ú%test_scatter3d_linewidth_modificationrœ  
  s°   € ð ×"Ñ"¨dÐ"Ó3€GØ�‰œŸ	™	 "›¤r§y¡y°£}´b·i±iÀ³mØ"ð 	ó 	$€Aà×Ñ”R—Y‘Y˜r“]Ô#à× Ñ ¨DÐ Ó1€FØ
‡N�N”2—9‘9˜R“=¤"§)¡)¨B£-´·±¸2³ÀsÜ Ÿi™i¨›mð õ -r0   c                 óâ  — |j                  d¬«      }|j                  t        j                  d«      t        j                  d«      t        j                  d«      dd¬«      }|j	                  d«       |j                  d«       |j                  d	d
gdz  «       |j                  «       sJ ‚|j                  d«       |j                  «       rJ ‚|j                  t        j                  dd«      «       |j                  d«       | j                  d¬«      }|j                  t        j                  d«      t        j                  d«      t        j                  d«      dddd	d
gdz  ddd¬«
       y )Nr2   r3   rm   r[  T)r‡  Ú
depthshadeÚC1ÚC2ç333333Ó?çffffffæ?rŒ   FéK   ri   )r‡  rŽ  r�  rÖ   rž  rƒ  r™  )rD   rŠ  r    r×   Úset_facecolorÚset_edgecolorÚ	set_alphaÚget_depthshadeÚset_depthshadeÚ	set_sizesÚfullrš  r›  s        r.   Útest_scatter3d_modificationr«    s)  € ð ×"Ñ"¨dÐ"Ó3€GØ�‰œŸ	™	 "›¤r§y¡y°£}´b·i±iÀ³mØ"¨tð 	ó 	5€Aà‡O�O�DÔØ‡O�O�DÔØ‡K�K��c�
˜Q‘ÔØ×ÑÔÐÐØ×Ñ�UÔØ×ÑÔ!Ð!Ð!Ø‡K�K”—‘˜˜B“Ô Ø×Ñ�QÔà× Ñ ¨DÐ Ó1€FØ
‡N�N”2—9‘9˜R“=¤"§)¡)¨B£-´·±¸2³ÀsØ!¨T¸#¸s¸Àa¹Ø# r°að õ 9r0   c                 óœ  — t         j                  dd…dd…f   \  }}t        j                  |j                  «      j	                  |j
                  «      }d}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 «       \  }}}}}}}	| j                  d¬«      }
d„ ||||	fD «       }t        j                  |Ž D ]ˆ  \  }}}}||k7  ||k7  z  ||k7  z  |	|k7  z  }t         j                  j                  ||t        ¬«      }t        j                  |t        |j                   «      «      }|
j!                  |||||||d|¬«	       ŒŠ |j                  d¬«      }|j!                  |||||||	d|¬«	       y)z1Test that marker properties are correctly sorted.Nrm   Fé   r  r   r   r   ÚC0rŸ  rŒ   r   rn   rk   ÚC3ÚC4ÚC5ÚC6é	   ÚC7c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­w©N)r`   ©Ú.0Úas     r.   ú	<genexpr>z)test_scatter3d_sorting.<locals>.<genexpr>G  s   è ø€ ò :àð 	
�	‰	�ñ:ùs   ‚r2   r3   c              3   óF   K  — | ]  }t        j                  |«      –— Œ y ­wr¶  )r    Úuniquer·  s     r.   rº  z)test_scatter3d_sorting.<locals>.<genexpr>M  s   è ø€ ÒN˜QŒB�I‰I�a�LÑNùs   ‚!©Údtype)rƒ  ÚfcÚecÚlwrÖ   rž  )r    Úmgridr×   ÚsizeÚreshapeÚshaperª  rD   r   r#   ÚmaÚmasked_arrayÚfloatrj   r$   ÚmaskrŠ  )r<   r;   rY   rX   rZ   rž  ÚsizesÚ
facecolorsÚ
edgecolorsr™  r@  Úsetsrƒ  r¿  rÀ  rÁ  ÚsubsetrA  s                     r.   Útest_scatter3d_sortingrÏ  -  sÂ  € ô �8‰8�C�R�C˜˜"˜�HÑ�D€A€qÜ
�	‰	�!—&‘&Ó×!Ñ! !§'¡'Ó*€AØ€Jä�G‰G�A—G‘G˜RÓ €EØ€Eˆ!ˆ$ˆQˆ$���1�ˆ*ÑØ€Eˆ!ˆ$ˆQˆ$���1�ˆ*Ñä—‘˜Ÿ™ $Ó'€JØ€Jˆr�ˆr�2�A�2ˆvÑØ€Jˆq‰r�2�A�2ˆvÑØ€Jˆq‰r�1‘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€FÙN 5¨*°jÀ*Ð"MÔN€DÜ"×*Ñ*¨DÐ1ò .‰ˆˆ2ˆr�2à�a‰ZØ˜2Ññà˜2Ññð ˜2Ññð 	ô —‘×#Ñ# A v´UÐ#Ó;ˆô �Y‰Y�rœ3 §¡˜|Ó,Ó-ˆà�‰�q˜!˜V q¨R°B¸2ÀQØ",ð 	õ 	.ð.ð$ ×"Ñ"¨dÐ"Ó3€GØ‡O�O�A�q˜!˜u¨¸
Ø!¨°zð õ Cr0   rÂ   r�   é‚   c           
      óD  — ddg}ddg}ddg}ddg}| j                  d¬«      }|j                  |||d|¬	«       |j                  d|d¬
«       |j                  d¬«      }|j                  |ddd…   |ddd…   |ddd…   d|ddd…   ¬	«       |j                  d|d¬
«       y)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œ   r   r   rÌ   rY   r2   r3   é¬  ©rƒ  rÏ   rÀ   N)rD   rŠ  rÆ   ©r;   r<   rÂ   rX   rY   rZ   rÕ   r(   s           r.   Ú$test_marker_draw_order_data_reversedrÕ  e  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 R 4¡¨D°E¹$¸B¸$±K€JÔ@Ø‡L�L�a˜d¨€LÕ+r0   c           
      ój  — d}ddg}ddg}ddg}ddg}| j                  d¬«      }|j                  «        |j                  |||d	|¬
«       |j                  d|d¬«       |j                  d¬«      }|j                  «        |j                  |||d	|ddd…   ¬
«       |j                  d|dz
  d¬«       y)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œ   r   r   rÌ   rY   r2   r3   rÒ  rÓ  rÀ   Nr¾   )rD   Úset_axis_offrŠ  rÆ   rÔ  s           r.   Ú#test_marker_draw_order_view_rotatedrØ  z  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Õ1r0   zplot_3d_from_2d.pnggÛù~j¼t“?c                  óü   — t        j                  «       } | j                  d¬«      }t        j                  dd«      }t        j                  dd«      }|j                  ||dd¬«       |j                  ||dd¬«       y )	Nr2   r3   r   rŒ   rm   rX   ©rÒ   rÓ   rY   )rB   rC   rD   r    r×   rt   )rG   r(   rÙ   rÚ   s       r.   Útest_plot_3d_from_2drÛ  ’  sd   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ	�‰�1�a‹€BÜ	�‰�1�bÓ	€BØ‡G�GˆB��q˜s€GÔ#Ø‡G�GˆB��q˜s€GÕ#r0   zfill_between_quad.pngc                  ó$  — t        j                  «       } | j                  d¬«      }t        j                  ddt        j
                  z  d«      }t        j                  |«      }t        j                  |«      }dt        j                  d|z  «      z  }dt        j                  |«      z  }dt        j                  |«      z  }d}|t        j
                  dz  k  |d	t        j
                  z  dz  kD  z  }	|j                  |||||||	d
dd¬«
       y )Nr2   r3   r   r   rŽ   r2  rn   ç333333ã?ri   r�   rF  Úk)ÚwhereÚmoderÖ   r�  )	rB   rC   rD   r    rN  rU  rW  rV  Úfill_between)
rG   r(   rX  Úx1Úy1Úz1Úx2Úy2Úz2rß  s
             r.   Útest_fill_between_quadrè  œ  sá   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä�K‰K˜˜1œRŸU™U™7 BÓ'€Eä	�‰�‹€BÜ	�‰�‹€BØ	Œr�v‰v�a˜%‘iÓ Ñ	 €Bà	Œr�v‰v�e‹}Ñ	€BØ	Œr�v‰v�e‹}Ñ	€BØ	
€Bà”R—U‘U˜1‘W‰_ ¨¬2¯5©5©°©Ñ!2Ñ3€Eð ‡O�O�B˜˜B  B¨Ø f°CÀ3ð õ Hr0   zfill_between_polygon.pngc                  óx  — t        j                  «       } | j                  d¬«      }t        j                  ddt        j
                  z  d«      }|x}}dx}}t        j                  |«      }|dz   }|t        j
                  dz  k  |dt        j
                  z  dz  kD  z  }	|j                  |||||||	dd	¬
«	       y )Nr2   r3   r   r   rŽ   r   ri   r�   rÞ  )rß  rà  r�  )rB   rC   rD   r    rN  rU  rW  rá  )
rG   r(   rX  râ  rå  rã  ræ  rä  rç  rß  s
             r.   Útest_fill_between_polygonrê  ³  s¬   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä�K‰K˜˜1œRŸU™U™7 BÓ'€Eà€O€BˆØ€K€BˆÜ	�‰�‹€BØ	ˆa‰€Bà”R—U‘U˜1‘W‰_ ¨¬2¯5©5©°©Ñ!2Ñ3€Eð ‡O�O�B˜˜B  B¨Ø f¸ð õ =r0   zsurface3d.pngc            
      óþ  — dt         j                  d<   t        j                  «       } | j                  d¬«      }t	        j
                  ddd«      }t	        j
                  ddd«      }t	        j                  ||«      \  }}t	        j                  ||«      }t	        j                  |«      }|j                  |||ddd	d
d¬«      }dt         j                  d<   |j                  dd«       | j                  |dd¬«       y )NFzpcolormesh.snapr2   r3   ru  rŒ   r1  r  r   r   )rv  rw  r  rÁ  ry  Tr  ç)\�Âõ(ð¿ç)\�Âõ(ð?rF  )ÚshrinkÚaspect)rB   r  rC   rD   r    r×   rí   rz  rV  r{  r*  Úcolorbar)rG   r(   r   r!  r  r"  Úsurfs          r.   Útest_surface3drò  Æ  sÕ   € ð ',„C‡L�LÐ"Ñ#ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ
�	‰	�"�a˜Ó€AÜ
�	‰	�"�a˜Ó€AÜ�;‰;�q˜!Ó�D€A€qÜ
�‰��A‹€AÜ
�‰ˆq‹	€AØ�?‰?˜1˜a ¨2°b¸zØ¨Uð ó 4€Dà(,„C‡L�LÐ$Ñ%Ø‡K�K��tÔØ‡L�L�˜c¨!€LÕ,r0   z(surface3d_label_offset_tick_position.pngc                  ó  — t        j                  «       j                  d¬«      } t        j                  ddt        j
                  z  d…ddt        j
                  z  d…f   \  }}t        j                  t        j                  t        j                  |«      t        j                  |«      z   «      «      }| j                  |dz  |dz  |d	z  d
dd¬«       | j                  d«       | j                  d«       | j                  d«       y )Nr2   r3   r   rn   r1  rk   g     jø@g    €„.Ag    „×—AÚautumnr   )r  ÚcstrideÚrstrideúX labelúY labelúZ label)rB   rC   rD   r    rÂ  rU  Úsqrtr%   rW  r{  r°   r±   r²   )r(   rX   rY   rZ   s       r.   Ú)test_surface3d_label_offset_tick_positionrû  Ù  sÅ   € ä	�‰‹×	!Ñ	!¨TÐ	!Ó	2€Bä�8‰8�A�aœ"Ÿ%™%‘i Ð$ a¨¬B¯E©E©	°$Ð&6Ð6Ñ7�D€A€qÜ
�‰”—‘”r—v‘v˜a“y¤2§6¡6¨!£9Ñ,Ó-Ó.€Aà‡O�O�A˜‘G˜Q ™W a¨#¡g°HÀaÐQR€OÔSØ‡M�M�)ÔØ‡M�M�)ÔØ‡M�M�)Õr0   zsurface3d_shaded.pngc            
      óÄ  — t        j                  «       } | j                  d¬«      }t        j                  ddd«      }t        j                  ddd«      }t        j
                  ||«      \  }}t        j                  |dz  |dz  z   «      }t        j                  |«      }|j                  |||ddg d¢dd	¬
«       dt         j                  d<   |j                  dd«       y )Nr2   r3   ru  rŒ   r1  r   )r1  r   r1  r   F)rö  rõ  rÕ   rÁ  ry  Tr  rì  rí  )rB   rC   rD   r    r×   rí   rú  rV  r{  r  r*  )rG   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à(,„C‡L�LÐ$Ñ%Ø‡K�K��tÕr0   zsurface3d_masked.pngc                  ó  — t        j                  «       } | 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                  j                  |d«      }t        j                  |j                  «       |j                  «       ¬«      }t        j                  d    ||«      «      }|j                  ||||¬«       |j                  ddd«       y )Nr2   r3   )r   r   ri   rk   rŒ   rn   r;  r8  r³  rm   r¨   )r   r   ri   rk   rŒ   rn   r;  r8  )rœ   r   r   r   r   r   r   r   r   r   r   )rœ   r   r   ri   rk   rk   rk   ri   r   r   r   )rœ   ç      ð¿rk   rŒ   rn   r8  rn   rŒ   rk   ri   rÿ  )rœ   rÿ  r;  r8  r¨   é   r¨   r8  r;  rÿ  rÿ  )rœ   rÿ  r8  r³  rm   é   rm   r³  rm   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ÿ  rÿ  é   é   r­  rÿ  rÿ  rÿ  r   )r=  r<  Úplasma©rË  rÍ   r'  )rB   rC   rD   r    rí   r!   rÆ  Úmasked_lessrý   Ú	Normalizer9  r7  ÚmplÚ	colormapsr{  rÆ   )rG   r(   rX   rY   ÚmatrixrZ   Únormr   s           r.   Útest_surface3d_maskedr  õ  s×   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÚ+€AÚ €Aä�;‰;�q˜!Ó�D€A€qÜ�X‰Xâ.Ú.Ú2Ú7Ú6Ú<Ú=Ú?ð		
ó€Fô 	�‰×Ñ˜& !Ó$€AÜ×Ñ !§%¡%£'°·±³Ô8€DÜ�]‰]˜8Ñ$¡T¨!£WÓ-€FØ‡O�O�A�q˜!¨€OÔ/Ø‡L�L��S˜!Õr0   c                 ó  — t        j                  ddd«      }t        j                  ddd«      }t        j                  |«      t        j                  |«      z  }|dkD  }t         j                  j                  ||¬«      }| j                  d¬«      }|j                  |||«       |j                  |||«       t         j                  x||<   x||<   ||<   |j                  d¬«      }|j                  |||«       |j                  |||«       y )Nr   rm   r  )rÉ  r2   r3   )
r    rN  rV  rW  rÆ  r!   rD   rŠ  rt   r–  )	r;   r<   rX   rY   rZ   rÉ  Úz_maskedrA  r@  s	            r.   Útest_plot_scatter_masksr    sä   € ä
�‰�A�r˜3Ó€AÜ
�‰�A�r˜3Ó€AÜ
�‰ˆq‹	”B—F‘F˜1“IÑ€AØˆq‰5€Dä�u‰u�{‰{˜1 4ˆ{Ó(€HØ×"Ñ"¨dÐ"Ó3€GØ‡O�O�A�q˜(Ô#Ø‡L�L��A�xÔ ä"$§&¡&Ð(€A€d�GÐ(ˆa�‰g˜˜$™Ø× Ñ ¨DÐ Ó1€FØ
‡N�N�1�a˜ÔØ
‡K�K��1�aÕr0   c                 ó$  — t        j                  t        j                  d«      t        j                  d«      «      \  }}||z   }| j                  d¬«      }|j	                  |||d ¬«       |j                  d¬«      }|j	                  |||«       y )NrŒ   r2   r3   r  )r    rí   r×   rD   r{  )r;   r<   rX   rY   rZ   rA  r@  s          r.   Útest_plot_surface_None_argr  "  s~   € ä�;‰;”r—y‘y “|¤R§Y¡Y¨q£\Ó2�D€A€qØ	ˆA‰€AØ×"Ñ"¨dÐ"Ó3€GØ×Ñ˜˜A˜q¨TÐÔ2Ø× Ñ ¨DÐ Ó1€FØ
×Ñ˜˜1˜aÕ r0   zsurface3d_masked_strides.pngc                  ó$  — t        j                  «       } | j                  d¬«      }t        j                  ddd…ddd…f   \  }}t        j
                  j                  ||z  d«      }|j                  |||dd¬«       |j                  d	d
d«       y )Nr2   r3   éúÿÿÿgffffff@r   r   rk   ©rö  rõ  é<   éÓÿÿÿr   )	rB   rC   rD   r    rÂ  rÆ  r	  r{  rÆ   r‹  s        r.   Útest_surface3d_masked_stridesr  ,  s€   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä�8‰8�B�s˜1�H˜b  Q˜hÐ&Ñ'�D€A€qÜ
�‰×Ñ˜!˜a™% Ó#€Aà‡O�O�A�q˜! Q°€OÔ2Ø‡L�L��S˜!Õr0   z
text3d.pngc                  ó.  — t        j                  «       } | j                  d¬«      }d}d}d}d}t        ||||«      D ]%  \  }}}}	d|||	|fz  }
|j	                  |||	|
|«       Œ' |j	                  dddd	d	¬
«       |j                  ddd|j                  ¬«       dt         j                  d<   |j                  dd«       |j                  dd«       |j                  dd«       |j                  d«       |j                  d«       |j                  d«       y )Nr2   r3   ©NrX   rY   rZ   ©r   r   r   rž   ©r   rn   rk   r³  r;  r   ©rn   rk   r8  r;  r   r   ©rk   r   rŒ   rn   r   r;  z(%d, %d, %d), dir=%sr   rÞ   râ   r  gffffffî?z2D Text)Ú	transformTr  r   rm   zX axiszY axiszZ axis)rB   rC   rD   r'   r„  Útext2DÚ	transAxesr  Ú
set_xlim3dÚ
set_ylim3dr|  r°   r±   r²   )rG   r(   ÚzdirsrÙ   rÚ   rÒ   rÓ   rX   rY   rZ   r®   s              r.   Útest_text3dr'  8  s  € ä
�*‰*‹,€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Ô<Ø(,„C‡L�LÐ$Ñ%Ø‡M�M�!�RÔØ‡M�M�!�RÔØ‡M�M�!�RÔØ‡M�M�(ÔØ‡M�M�(ÔØ‡M�M�(Õr0   c                 óD  — d}d}d}d}|j                  d¬«      }|j                  dd«       |j                  dd«       |j                  dd«       t	        ||||«      D ]=  \  }}}	}
|j                  dddd	|› d
|	› d
|
› d|› �«      }|j                  ||	|
f|¬«       Œ? | j                  d¬«      }|j                  dd«       |j                  dd«       |j                  dd«       t	        ||||«      D ])  \  }}}	}
|j                  ||	|
d	|› d
|	› d
|
› d|› �|¬«       Œ+ y )Nr  r  r  r   r2   r3   r   rm   ú(z, z), dir=)rÓ   )rD   r$  r%  r|  r'   r„  Úset_position_3d)r<   r;   r&  rÙ   rÚ   rÒ   rA  rÓ   rX   rY   rZ   rn  r@  s                r.   Útest_text3d_modificationr+  Q  s[  € ð 8€EØ	€BØ	€BØ	€Bà×"Ñ"¨dÐ"Ó3€GØ×Ñ�q˜"ÔØ×Ñ�q˜"ÔØ×Ñ�q˜"ÔÜ˜U B¨¨BÓ/ò 0‰ˆˆa��AØ�L‰L˜˜A˜q A a S¨¨1¨#¨R°¨s°'¸$¸Ð"@ÓAˆØ	×Ñ˜1˜a ˜)¨$ÐÕ/ð0ð × Ñ ¨DÐ Ó1€FØ
×Ñ�a˜ÔØ
×Ñ�a˜ÔØ
×Ñ�a˜ÔÜ˜U B¨¨BÓ/ò H‰ˆˆa��AØ�‰�A�q˜!˜q   2 a S¨¨1¨#¨W°T°FÐ;À$ˆÕGñHr0   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  j                  «       «      }t        j
                  d|t        j                  |«      z  j                  «       «      }t        j                  | |z  «      }t        j                  «       }|j                  d¬«      }|j                  |||dd¬«       y )Né$   r8  ç      À?ç      ð?r   r   F©Úendpoint.r   ©rQ   r2   r3   Újetçš™™™™™É?)r  rx  ©r    rN  rU  rj   ÚnewaxisÚappendrW  r`   rV  rB   rC   rD   Úplot_trisurf©	Ún_anglesÚn_radiiÚradiiÚanglesrX   rY   rZ   rG   r(   s	            r.   Útest_trisurf3dr>  j  s	  € à€HØ€GÜ�K‰K˜˜s GÓ,€EÜ�[‰[˜˜AœbŸe™e™G X¸Ô>€FÜ�Y‰Y�v˜c¤2§:¡:˜oÑ.°¸aÔ@€FØ
Š1ˆaˆd�ˆdˆ7ƒO”r—u‘u˜X‘~Ñ%ƒOä
�	‰	�!�eœBŸF™F 6›NÑ*×3Ñ3Ó5Ó6€AÜ
�	‰	�!�eœBŸF™F 6›NÑ*×3Ñ3Ó5Ó6€AÜ
�‰�ˆr�!‰t‹€Aä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡O�O�A�q˜! %°3€OÕ7r0   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  j                  «       «      }t        j
                  d|t        j                  |«      z  j                  «       «      }t        j                  | |z  «      }t        j                  «       }|j                  d¬«      }|j                  |||g d¢d¬«       y )Nr-  r8  r.  r/  r   r   Fr0  .r   r2  r2   r3   )r   rF  r   r4  )rÕ   rx  r5  r9  s	            r.   Útest_trisurf3d_shadedrA  |  s	  € à€HØ€GÜ�K‰K˜˜s GÓ,€EÜ�[‰[˜˜AœbŸe™e™G X¸Ô>€FÜ�Y‰Y�v˜c¤2§:¡:˜oÑ.°¸aÔ@€FØ
Š1ˆaˆd�ˆdˆ7ƒO”r—u‘u˜X‘~Ñ%ƒOä
�	‰	�!�eœBŸF™F 6›NÑ*×3Ñ3Ó5Ó6€AÜ
�	‰	�!�eœBŸF™F 6›NÑ*×3Ñ3Ó5Ó6€AÜ
�‰�ˆr�!‰t‹€Aä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡O�O�A�q˜!¢;¸#€OÕ>r0   zwireframe3d.pngc                  ó®   — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}|j                  |||dd¬«       y )Nr2   r3   r  é   ©rv  rw  ©rB   rC   rD   r   r  Úplot_wireframer  s        r.   Útest_wireframe3drG  Ž  sL   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø×Ñ�a˜˜A b°ÐÕ4r0   zwireframe3dasymmetric.pngc                  óÌ   — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}|d d |d d |d d }}}|j                  |||dd¬«       y )Nr2   r3   r  rœ   ri   rC  rD  rE  r  s        r.   Útest_wireframe3dasymmetricrI  –  sk   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø��ˆf�a˜˜�f˜a  ˜fˆ!€q€AØ×Ñ�a˜˜A a°ÐÕ3r0   zwireframe3dzerocstride.pngc                  ó®   — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}|j                  |||dd¬«       y )Nr2   r3   r  rC  r   rD  rE  r  s        r.   Útest_wireframe3dzerocstriderK  Ÿ  sL   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø×Ñ�a˜˜A b°ÐÕ3r0   zwireframe3dzerorstride.pngc                  ó®   — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}|j                  |||dd¬«       y )Nr2   r3   r  r   rm   r  rE  r  s        r.   Útest_wireframe3dzerorstriderM  §  sL   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø×Ñ�a˜˜A q°"ÐÕ5r0   c                  ó
  — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}t        j                  t        «      5  |j                  |||dd¬«       d d d «       y # 1 sw Y   y xY w)Nr2   r3   r  r   r  )	rB   rC   rD   r   r  rd  re  Ú
ValueErrorrF  r  s        r.   Ú test_wireframe3dzerostrideraisesrP  ¯  sm   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ü	�‰”zÓ	"ñ 9Ø
×Ñ˜!˜Q ¨1°aÐÔ8÷9÷ 9ñ 9ús   ÁA9Á9Bc                  ó’  — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}t        j                  t        «      5  |j                  |||dd¬«       d d d «       t        j                  t        «      5  |j                  |||dd¬«       d d d «       y # 1 sw Y   ŒBxY w# 1 sw Y   y xY w)Nr2   r3   r  rm   rŽ   )rö  rw  )rõ  rv  )
rB   rC   rD   r   r  rd  re  rO  rF  r{  r  s        r.   Útest_mixedsamplesraisesrR  ·  s©   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ü	�‰”zÓ	"ñ :Ø
×Ñ˜!˜Q ¨2°bÐÔ9÷:ä	�‰”zÓ	"ñ 8Ø
�‰˜˜1˜a¨°BˆÔ7÷8ð 8÷:ð :ú÷8ð 8ús   ÁB1ÂB=Â1B:Â=Czquiver3d.pnggú~j¼t“h?c                  óÎ  — t        j                  «       } | j                  d¬«      }g d¢}g d¢}t        t	        ||«      «      D ]i  \  }\  }}t        j                  ddgddgddg«      \  }}}	| }
| }|	 }|	d|z  z  }	|j                  |||	|
||d||¬	«	       |j                  |||	|¬
«       Œk |j                  dd«       |j                  dd«       |j                  dd«       y )Nr2   r3   )ÚtipÚmiddleÚtail)ztab:bluez
tab:orangez	tab:greenç      à¿rF  r   r   )r  ÚpivotrÕ   râ   éýÿÿÿri   rœ   rŒ   )rB   rC   rD   r    r'   r    rí   ÚquiverrŠ  r�   r)  r*  )rG   r(   Úpivotsr   r¥   rX  rÕ   rX   rY   rZ   ÚuÚvÚws                r.   Útest_quiver3dr_  Â  sï   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÚ&€FÚ4€FÜ&¤s¨6°6Ó':Ó;ò )Ñˆ‰>ˆE�5Ü—+‘+˜t S˜k¨D°#¨;¸¸s¸ÓD‰ˆˆ1ˆaØˆBˆØˆBˆØˆBˆà	ˆQ�‰U‰
ˆØ
�	‰	�!�Q˜˜1˜a ¨1°EÀˆ	ÔGØ
�
‰
�1�a˜ %ˆ
Õ(ð)ð ‡K�K��AÔØ‡K�K��AÔØ‡K�K��AÕr0   c                 ó˜   — |j                  d¬«       g x}x}x}x}x}}| j                  d¬«      }|j                  ||||||ddd¬«	       y )Nr2   r3   r2  rT  T©r  rX  Ú	normalize)rD   rZ  )	r;   r<   rX   rY   rZ   r\  r]  r^  r(   s	            r.   Útest_quiver3d_emptyrc  ×  sb   € à×Ñ 4ÐÔ(ØÐ€AÐˆÐˆAÐ�Ð�A˜Ø	×	Ñ	¨Ð	Ó	.€BØ‡I�Iˆa��A�q˜!˜Q s°%À4€IÕHr0   zquiver3d_masked.pngc                  ó6  — t        j                  «       } | 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                  j                  d	|k  |d
k  z  |d¬«      }t        j                  j                  d
|k  |dk  z  |d¬«      }|j                  ||||||d
dd¬«	       y )Nr2   r3   rœ   rÑ   y              $@rÝ  y              @g>,p½ ê?çš™™™™™Ù¿r2  F)Úcopyr¢  rT  Tra  )rB   rC   rD   r    rÂ  rV  rU  rW  rÆ  Úmasked_whererZ  )rG   r(   rX   rY   rZ   r\  r]  r^  s           r.   Útest_quiver3d_maskedrh  ß  sˆ  € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bô �h‰h�r˜#˜c�z 2 c¨# :¨r°#°b¨yÐ8Ñ9�G€A€qˆ!ä
�‰Œr�u‰u�q‰yÓœBŸF™F¤2§5¡5¨1¡9Ó-Ñ-´·±´r·u±u¸q±yÓ0AÑA€AÜ	�‰”—‘˜‘	Ó	ÐœRŸV™V¤B§E¡E¨A¡IÓ.Ñ.´·±¼¿¹À¹	Ó1BÑB€AØ”R—V‘VœBŸE™E A™IÓ&Ñ&¬¯©´·±¸±	Ó):Ñ:¼R¿V¹VÄBÇEÁEÈAÁIÓ=NÑN€AÜ
�‰×Ñ˜D 1™H¨¨S©Ñ1°1¸5ÐÓA€AÜ
�‰×Ñ˜C !™G¨¨C©Ñ0°!¸%ÐÓ@€Aà‡I�Iˆa��A�q˜!˜Q s°%À4€IÕHr0   zquiver3d_colorcoded.pngc            	      óZ  — t        j                  «       } | j                  d¬«      }t        j                  d«      x}x}x}}t        j
                  d«      x}}t        j                  d   ||j                  «       z  «      }|j                  |||||||¬«       |j                  dd«       y )Nr2   r3   rm   ç      $@ÚReds)r   r   )
rB   rC   rD   r    r•  r×   r  r9  rZ  r)  )	rG   r(   rX   rY   rù   rû   rZ   rú   rÕ   s	            r.   Útest_quiver3d_colorcodedrl  ñ  s�   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä—h‘h˜r“lÐ"€AÐ"ˆÐ"ˆB�Ü�Y‰Y�s‹^Ð€Aˆä�M‰M˜&Ñ! " R§V¡V£X¡+Ó.€EØ‡I�Iˆa��A�r˜2˜r¨%€IÔ0Ø‡K�K��2Õr0   c                  ó   — t        j                  «       } | j                  d¬«      }t        d«      }|j	                  |«       t        j                  |«       |j                  d«       t        j                  |j                  «       d«      sJ ‚| j                  j                  «        t        j                  |j                  «       d«      sJ ‚y )Nr2   r3   ©r   r   )r/  rp  rp  r   )r   r   r   r   )rB   rC   rD   r   Ú	add_patchr   Úpatch_2d_to_3dr¤  rý   Ú
same_colorÚget_facecolorr‚   rƒ   )rG   r(   Úcircles      r.   Útest_patch_modificationrt  þ  s›   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ�F‹^€FØ‡L�L�ÔÜ	×Ñ˜Ô Ø
×ÑÐ+Ô,ä×Ñ˜f×2Ñ2Ó4°lÔCÐCÐCØ‡J�J‡O�OÔÜ×Ñ˜f×2Ñ2Ó4°lÔCÐCÑCr0   c                 óš  — t        dd«      }t        dd«      }t        j                  g d¢g d¢g«      }t        j                  ||gdd¬	«      }| j                  d
¬«      }|j                  |«       |j                  d«       |j                  |«       |j                  d«       |j                  «       sJ ‚|j                  d«       |j                  «       rJ ‚t        dd«      }t        dd«      }t        j                  g d¢g d¢g«      }t        j                  ||gdd|dd¬«      }|j                  d
¬«      }|j                  |«       y )Nrn  r  )r2  r2  r?  )rp  rF  rp  r/  )rF  rp  rp  rF  ri   T)r™  rž  r2   r3   r   r¢  F)r™  r�  rŽ  rÖ   rž  )r   r    r!   r   ÚPatch3DCollectionrD   Úadd_collection3dr¥  r¤  r¦  r§  r¨  )r;   r<   Úpatch1Úpatch2rË  rÏ   rA  r@  s           r.   Ú"test_patch_collection_modificationrz    s4  € ô �F˜DÓ!€FÜ�J Ó%€FÜ—‘Ò,Ò.@ÐAÓB€JÜ×Ñ ¨Ð 0¸QÈ4ÔP€Aà×"Ñ"¨dÐ"Ó3€GØ×Ñ˜QÔØ‡O�O�DÔØ‡O�O�JÔØ‡K�K�ÔØ×ÑÔÐÐØ×Ñ�UÔØ×ÑÔ!Ð!Ð!ä�F˜DÓ!€FÜ�J Ó%€FÜ—‘Ò,Ò.@ÐAÓB€JÜ×Ñ ¨Ð 0¸QØ*.¸*Ø&)°eô	=€Að × Ñ ¨DÐ Ó1€FØ
×Ñ˜AÕr0   c                  ój  — g d¢g d¢g d¢g d¢g} t        j                  t        d¬«      5  t        j                  | «       d d d «       t        j                  | t        ¬«      } t        j                  t        d¬«      5  t        j                  | «       d d d «       y # 1 sw Y   Œ^xY w# 1 sw Y   y xY w)	Nrq   rp   ©r   r   r   r»   zlist of \(N, 3\) array-likerb  r½  zshape \(M, N, 3\))rd  re  rO  r   ÚPoly3DCollectionr    r!   rÈ  )Úpolys    r.   Ú&test_poly3dcollection_verts_validationr  '  s‹   € Ú’y¢)ªYÐ7€DÜ	�‰”zÐ)GÔ	Hñ %Ü×Ñ˜tÔ$÷%ô �8‰8�D¤Ô&€DÜ	�‰”zÐ)=Ô	>ñ %Ü×Ñ˜tÔ$÷%ð %÷	%ð %ú÷%ð %ús   ªBÁ>B)ÂB&Â)B2zpoly3dcollection_closed.pngc                  ó”  — t        j                  «       } | 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¬«      }|j                  |d¬«       |j                  |d¬«       y )Nr2   r3   rq   rp   r»   rž   r  ri   rÞ  )rF  rF  r   rF  T©r™  r�  rŽ  Úclosed)r   rF  rF  rF  F©Úautolim)	rB   rC   rD   r    r!   rÈ  r   r}  rw  ©rG   r(   Úpoly1Úpoly2Úc1Úc2s         r.   Útest_poly3dcollection_closedrŠ  1  s­   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä�H‰H’i¢ªIÐ6¼Ó>€EÜ�H‰H’i¢ªIÐ6¼Ó>€EÜ	×	Ñ	  °AÀØ*<ÀTô
K€Bä	×	Ñ	  °AÀØ*<ÀUô
L€Bà×Ñ˜ EÐÔ*Ø×Ñ˜ EÐÕ*r0   c                  ó�  — t        g «      } t        j                  | «       t        | t        j                  «      sJ ‚| j                  «       g k(  sJ ‚t        j                  t        d¬«      ¬«      \  }}|j                  | «       | j                  «       }t        j                  |«      sJ ‚|j                  j                  «        y )Nr2   r3   r5   )r   r   Úpoly_collection_2d_to_3dÚ
isinstancer}  Ú	get_pathsrB   r7   r8   Ú
add_artistÚdo_3d_projectionr    Úisnanr‚   rƒ   )r~  rG   r(   Úminzs       r.   Ú#test_poly_collection_2d_to_3d_emptyr“  @  s–   € Ü˜"Ó€DÜ	×"Ñ" 4Ô(Ü�dœE×2Ñ2Ô3Ð3Ð3Ø�>‰>Ó˜rÒ!Ð!Ð!ä�l‰l¤d°dÔ&;Ô<�G€CˆØ‡M�M�$ÔØ× Ñ Ó"€DÜ�8‰8�DŒ>Ðˆ>ð ‡J�J‡O�OÕr0   zpoly3dcollection_alpha.pngc                  ó  — t        j                  «       } | 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¬«      }|j                  d«       t        j                  |gdd¬«      }|j                  d«       |j                  d	«       |j                  d«       |j                  |d¬«       |j                  |d¬«       y )Nr2   r3   rq   rp   r»   rž   r  ri   rÞ  ©rF  rF  r   Tr�  rF  F)r™  r‚  )r   rF  rF  rƒ  )rB   rC   rD   r    r!   rÈ  r   r}  r¦  r¤  r¥  rw  r…  s         r.   Útest_poly3dcollection_alphar–  O  sÙ   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä�H‰H’i¢ªIÐ6¼Ó>€EÜ�H‰H’i¢ªIÐ6¼Ó>€EÜ	×	Ñ	  °AÀØ*7Àô
F€Bà‡L�L�ÔÜ	×	Ñ	  °A¸eÔ	D€Bà×Ñ�]Ô#Ø×Ñ�SÔØ‡L�L�ÔØ×Ñ˜ EÐÔ*Ø×Ñ˜ EÐÕ*r0   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«      j                  ddd«      }t        j                  |d d |dd  gd¬	«      }t        j                  «       }|j                  d
¬«      }t        j                  ddt         j                  z  «      }	t        |d d …d d …d d…f   d|	¬«      }
|
j                  t        j                  | dt         j                  z  «      «       |j                  |
|d d …d d …df   ¬«      }|€J ‚dt        j                   d<   |j#                  dd«       |j%                  dd«       |j'                  dd«       y )NrT  rk   r  r0  r   r   rœ   ri   r2  r2   r3   r   Útwilight©r  r  ©rÒ   Tr  ru  rŒ   rn   )r    rN  rU  rV  rW  Úcolumn_stackrÄ  ÚconcatenaterB   rC   rD   r
  r   Ú	set_arrayÚmodrw  r  r�   r)  r*  ©rX  rZ   r*   rX   rY   ÚpointsÚsegmentsrG   r(   r  ÚlcrP   s               r.   Útest_add_collection3d_zs_arrayr£  b  s  € ä�K‰K˜œRŸU™U™
 A¬¯©¡I¨sÓ3€EÜ
�‰�B˜˜3Ó€AØ	ˆ1‰ˆq‰€AØ	ŒB�F‰F�5‹MÑ€AØ	ŒB�F‰F�5‹MÑ€Aä�_‰_˜a  A˜YÓ'×/Ñ/°°A°qÓ9€FÜ�~‰~˜v c r˜{¨F°1°2¨JÐ7¸aÔ@€Hä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä�=‰=˜˜AœbŸe™e™GÓ$€Dä	˜¢¢A r¨ r Ñ*°À$Ô	G€BØ‡L�L”—‘˜˜q¤§¡™wÓ'Ô(à×Ñ˜r hªq²!°Q¨wÑ&7ÐÓ8€DàÐÐÐà(,„C‡L�LÐ$Ñ%Ø‡K�K��AÔØ‡K�K��AÔØ‡K�K��AÕr0   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«      j                  ddd«      }t        j                  |d d |dd  gd¬«      }t        j                  «       }|j                  d¬«      }t        j                  ddt         j                  z  «      }	t        |d	|	¬
«      }
|
j                  | «       |j                  |
|¬«      }|€J ‚dt        j                  d<   |j!                  dd«       |j#                  dd«       |j%                  dd«       y )Nr   r   r  r   rœ   r2  r2   r3   r˜  r™  rš  Tr  ru  rŒ   rT  rn   )r    rN  rU  rV  rW  r›  rÄ  rœ  rB   rC   rD   r
  r   r�  rw  r  r�   r)  r*  rŸ  s               r.   Útest_add_collection3d_zs_scalarr¥    s;  € ä�K‰K˜˜1œrŸu™u™9 cÓ*€EØ	€AØ	ˆ1‰ˆq‰€AØ	ŒB�F‰F�5‹MÑ€AØ	ŒB�F‰F�5‹MÑ€Aä�_‰_˜a ˜VÓ$×,Ñ,¨R°°AÓ6€FÜ�~‰~˜v c r˜{¨F°1°2¨JÐ7¸aÔ@€Hä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä�=‰=˜˜AœbŸe™e™GÓ$€DÜ	˜ z¸Ô	=€BØ‡L�L�ÔØ×Ñ˜r aÐÓ(€DàÐÐÐà(,„C‡L�LÐ$Ñ%Ø‡K�K��AÔØ‡K�K��AÔØ‡K�K��1Õr0   c                  ó–  — t        j                  «       } | j                  d¬«      }ddgddgddgg}t        j                  |«      }|j                  |«       t        j                  |j                  «       d	«      sJ ‚t        j                  |j                  «       d
«      sJ ‚t        j                  |j                  «       d«      sJ ‚y )Nr2   r3   r»   )r   rk   r   ©r   r   ri   )r   r   r   ©r   r   rk   )r   rk   rŒ   )gUUUUUU¥¿gUUUUUU @©gUUUUUUµ¿çUUUUUU@)gªªªªªªº¿g«ªªªªj@)rB   rC   rD   r   ÚLine3DCollectionrw  r    r†   r�   r‘   r’   )rG   r(   Úlinesr¢  s       r.   Ú!test_line3dCollection_autoscalingr­  š  s­   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€Bà˜Ð#Ø˜Ð#Ø˜Ð#ð%€Eô 
×	Ñ	 Ó	&€BØ×Ñ˜ÔÜ�;‰;�r—}‘}“Ð(SÔTÐTÐTÜ�;‰;�r—}‘}“Ð(QÔRÐRÐRÜ�;‰;�r—}‘}“Ð(QÔRÐRÑRr0   c                  ó¾  — t        j                  «       } | j                  d¬«      }t        j                  g d¢g d¢g d¢g«      }t        j                  |g«      }|j                  |«       t        j                  |j                  «       d«      sJ ‚t        j                  |j                  «       d«      sJ ‚t        j                  |j                  «       d«      sJ ‚y )Nr2   r3   r»   r§  r¨  ©çUUUUUU•¿gUUUUUUð?)gSUUUUUµ¿rª  )rB   rC   rD   r    r!   r   r}  rw  r†   r�   r‘   r’   )rG   r(   r~  Úcols       r.   Ú!test_poly3dCollection_autoscalingr²  ©  s£   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ�8‰8’Y¢	ª9Ð5Ó6€DÜ
×
 Ñ
  $ Ó
(€CØ×Ñ˜ÔÜ�;‰;�r—}‘}“Ð(SÔTÐTÐTÜ�;‰;�r—}‘}“Ð(SÔTÐTÐTÜ�;‰;�r—}‘}“Ð(PÔQÐQÑQr0   zaxes3d_labelpad.pngc                  ó¦  — t        j                  «       } | j                  t        | «      «      }|j                  j
                  t        j                  d   k(  sJ ‚|j                  dd¬«       |j                  j
                  dk(  sJ ‚|j                  d«       |j                  dd¬«       |j                  j
                  dk(  sJ ‚|j                  «       dk(  sJ ‚d|j                  _        d|j                  _        t        |j                  j                  «       «      D ]-  \  }}|j!                  |j#                  «       d	z   |d	z  z
  «       Œ/ y )
Nzaxes.labelpadzX LABELrm   )ÚlabelpadzY LABELzZ LABELrÎ   r  rŒ   )rB   rC   Úadd_axesr   rM   r´  r  r  r°   r±   r²   rO   Ú
get_zlabelrN   r    Úget_major_ticksÚset_padÚget_pad)rG   r(   r¥   Úticks       r.   Útest_axes3d_labelpadr»  ´  s  € ä
�*‰*‹,€CØ	�‰”f˜S“kÓ	"€Bà�8‰8×Ñ¤§¡¨_Ñ =Ò=Ð=Ð=à‡M�M�) b€MÔ)Ø�8‰8×Ñ Ò"Ð"Ð"Ø‡M�M�)ÔØ‡M�M�) b€MÔ)Ø�8‰8×Ñ Ò"Ð"Ð"Ø�=‰=‹?˜iÒ'Ð'Ð'à€B‡H�HÔØ€B‡H�HÔô ˜RŸX™X×5Ñ5Ó7Ó8ò 1‰ˆˆ4Ø�‰�T—\‘\“^ aÑ'¨!¨a©%Ñ/Õ0ñ1r0   zaxes3d_cla.pngc                  ó–   — t        j                  «       } | j                  dddd¬«      }|j                  «        |j	                  «        y )Nr   r2   r3   )rB   rC   rD   r×  ÚclarF   s     r.   Útest_axes3d_clar¾  Ê  s8   € ô �*‰*‹,€CØ	�‰˜˜A˜q¨TˆÓ	2€BØ‡O�OÔØ‡F�F…Hr0   zaxes3d_rotated.pngc                  ó|   — t        j                  «       } | j                  dddd¬«      }|j                  ddd«       y )Nr   r2   r3   r¸   é-   r   )rB   rC   rD   rÆ   rF   s     r.   Útest_axes3d_rotatedrÁ  Ó  s5   € ô �*‰*‹,€CØ	�‰˜˜A˜q¨TˆÓ	2€BØ‡L�L��R˜Õr0   c                  ó¬  — t        j                  ddd¬«      } t        j                  ddd¬«      }t        j                  | |«      \  }}t         j                  j	                  d«      }t        j                  d¬«      }|j                  dddd	¬
«      }t        j                  t        «      5  |j                  |||«       d d d «       y # 1 sw Y   y xY w)NrF  rm   r  )Únum)é   rn   rê   r   r   r2   r3   )r    rN  rí   rG  ÚrandnrB   rC   rD   rd  re  rO  r{  )rX   rY   r   r!  rZ   rG   r(   s          r.   Útest_plotsurface_1d_raisesrÆ  Û  s¡   € Ü
�‰�C˜ Ô%€AÜ
�‰�C˜ Ô%€AÜ�;‰;�q˜!Ó�D€A€qÜ
�	‰	�‰˜Ó€Aä
�*‰*˜WÔ
%€CØ	�‰˜˜A˜q¨TˆÓ	2€BÜ	�‰”zÓ	"ñ !Ø
�‰˜˜1˜aÔ ÷!÷ !ñ !ús   Â-C
Ã
Cc                  óV  — 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)rE  iüÿÿiÐ  )r  r  r  rq   r   r  r  r   )r    r!   r   Ú
_view_axesÚ_view_transformation_uvwÚ_persp_transformationÚdot)
ÚEr  ÚVrÃ   r\  r]  r^  ÚviewMÚperspMÚMs
             r.   Ú_test_proj_make_MrÑ  ç  s�   € ä
�‰Ò$Ó%€AÜ
�‰’Ó!€AÜ
�‰’Ó€AØ€DÜ×Ñ  1 a¨Ó.�G€A€qˆ!Ü×+Ñ+¨A¨q°!°QÓ7€EÜ×)Ñ)¨#¨t°QÓ7€FÜ
�‰ˆv�uÓ€AØ€Hr0   c                  ó"  — t        «       } t        j                  j                  | «      }t        j                  g d¢«      dz  }t        j                  g d¢«      dz  }t        j                  g d¢«      dz  }t        j                  |||| «      \  }}}t        j                  ||||«      \  }}	}
t        j                  j                  ||«       t        j                  j                  |	|«       t        j                  j                  |
|«       y )N©
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   r   r   r   r   r   r   )
rÑ  r    ÚlinalgÚinvr!   r   Úproj_transformÚinv_transformr  Úassert_almost_equal)rÐ  ÚinvMrÙ   rÚ   rÒ   ÚtxsÚtysÚtzsÚixsÚiysÚizss              r.   Útest_proj_transformrã  ô  sÌ   € ÜÓ€AÜ�9‰9�=‰=˜Ó€Dä	�‰Ò0Ó	1°EÑ	9€BÜ	�‰Ò0Ó	1°EÑ	9€BÜ	�‰Ò0Ó	1°EÑ	9€Bä×)Ñ)¨"¨b°"°aÓ8�M€CˆˆcÜ×(Ñ(¨¨c°3¸Ó=�M€Cˆˆcä‡J�J×"Ñ" 3¨Ô+Ü‡J�J×"Ñ" 3¨Ô+Ü‡J�J×"Ñ" 3¨Õ+r0   r   c                 ó`  — d|ddg}dd|dg}ddd|g}t        j                  |||| «      \  }}}	t        ||«      \  }
}}}|
|f|
|f|
|fg}t        j                  |i |¤Ž\  }}t        |«      }|j                  |d¬«       t        ||g d¢«      D ]  \  }}}|j                  |||«       Œ ||fS )Nr   Ú_datalim_onlyrƒ  )r[  rX   rY   rZ   )r   rÙ  r'   rB   r7   r   Úadd_collectionr„  )rÐ  rƒ  ÚargsÚkwargsrÙ   rÚ   rÒ   rÝ  rÞ  rß  r[  r(   ÚayÚazr¬  rG   ÚlinecrX   rY   rn  s                       r.   Ú_test_proj_draw_axesrì    sÞ   € Ø
ˆQ��1ˆ€BØ
ˆQ��1ˆ€BØ
ˆQ��1ˆ€BÜ×)Ñ)¨"¨b°"°aÓ8�M€CˆˆcÜ˜˜S“M�M€A€rˆ2ˆrØ�ˆW�q˜"�g  2˜wÐ'€Eä�l‰l˜DÐ+ FÑ+�G€CˆÜ˜5Ó!€EØ×Ñ�e _ÐÔ5Ü�s˜CÒ!5Ó6ò ‰ˆˆ1ˆaØ
�‰��1�aÕðð �ˆ7€Nr0   zproj3d_axes_cube.pngc                  ó<  — t        «       } dj                  «       }t        j                  g d¢«      dz  }t        j                  g d¢«      dz  }t        j                  g d¢«      dz  }t	        j
                  |||| «      \  }}}t        | d¬«      \  }}	|	j                  |||¬«       |	j                  ||d	¬«       t        |||«      D ]  \  }
}}|	j                  |
||«       Œ d
t        j                  d<   |	j                  dd«       |	j                  dd«       y )Nú0 1 2 3 0 4 5 6 7 4rÓ  rÔ  rÕ  rÖ  i�  r‚  r”  r*   Tr  çš™™™™™É¿r4  )rÑ  Úsplitr    r!   r   rÙ  rì  rŠ  rt   r'   r„  rB   r  r�   r)  )rÐ  ÚtsrÙ   rÚ   rÒ   rÝ  rÞ  rß  rG   r(   rX   rY   rn  s                r.   Útest_proj_axes_cuberò    sÿ   € äÓ€Aà	×	$Ñ	$Ó	&€BÜ	�‰Ò0Ó	1°EÑ	9€BÜ	�‰Ò0Ó	1°EÑ	9€BÜ	�‰Ò0Ó	1°EÑ	9€Bä×)Ñ)¨"¨b°"°aÓ8�M€Cˆˆcä" 1¨Ô,�G€Cˆà‡J�Jˆs�C˜3€JÔØ‡G�GˆC�˜€GÔÜ�s˜C Ó$ò ‰ˆˆ1ˆaØ
�‰��1�aÕðð )-„C‡L�LÐ$Ñ%Ø‡K�K��cÔØ‡K�K��cÕr0   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j                  «       }
t        j                  g d¢«      d	z  }t        j                  g d
¢«      d	z  }t        j                  g d¢«      d	z  }t        j                  ||||	«      \  }}}t        |	d¬«      \  }}|j                  ||d|z
  ¬«       |j                  ||d¬«       t        |||
«      D ]  \  }}}|j                  |||«       Œ dt        j                  d<   |j!                  dd«       |j#                  dd«       y )N)éÈ   r  r  r»   rq   r   rœ   r   rî  rÓ  r  rÕ  rÖ  é–   r‚  ré   r*   r”  Tr  i8ÿÿÿrô  )r    r!   r   rÈ  rÉ  Ú_ortho_transformationrË  rð  rÙ  rì  rŠ  rt   r'   r„  rB   r  r�   r)  )rÌ  r  rÍ  rÃ   r\  r]  r^  rÎ  ÚorthoMrÐ  rñ  rÙ   rÚ   rÒ   rÝ  rÞ  rß  rG   r(   rX   rY   rn  s                         r.   Útest_proj_axes_cube_orthorø  ,  s~  € ä
�‰’Ó!€AÜ
�‰’Ó€AÜ
�‰’Ó€AØ€DÜ×Ñ  1 a¨Ó.�G€A€qˆ!Ü×+Ñ+¨A¨q°!°QÓ7€EÜ×)Ñ)¨"¨aÓ0€FÜ
�‰ˆv�uÓ€Aà	×	$Ñ	$Ó	&€BÜ	�‰Ò0Ó	1°CÑ	7€BÜ	�‰Ò0Ó	1°CÑ	7€BÜ	�‰Ò0Ó	1°CÑ	7€Bä×)Ñ)¨"¨b°"°aÓ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Õðð )-„C‡L�LÐ$Ñ%Ø‡K�K��cÔØ‡K�K��cÕr0   c                  ó®   — d\  } }d\  }}d\  }}t        j                  | |||||«      }t        j                  j	                  |g d¢g d¢g d¢g d¢g«       y )N)r  éx   )r  r  )r2  r4  )r  r   r   ru  )r   g{®Gázt?r   rF  )r   r   rj  rœ   ©r   r   r   r   )r   Úworld_transformationr    r  Úassert_allclose)r  r  r  r  r  r  rÐ  s          r.   Ú
test_worldrþ  J  s\   € Ø�J€Dˆ$Ø�J€Dˆ$Ø�J€Dˆ$Ü×#Ñ# D¨$°°d¸DÀ$ÓG€AÜ‡J�J×Ñ˜qÚ 0Ú 2Ú /Ú ,ð .õ/r0   c                  ó  — t        j                  ddi¬«      \  } }|j                  «       dk(  sJ ‚d|_        |j	                  ddd¬«       |j                  dd	gdd	gdd	g«       |j                  «       d
k(  sJ ‚|j                  d«       |j                  d«       |j                  ddgddgddg«       |j                  «       dk(  sJ ‚|j                  d¬«       |j                  ddgddgddg«       |j                  «       dk(  sJ ‚y )Nr4   r2   r5   Úlinearr   r2  r4  ©rX   rY   rZ   r   )r   r   r3  çš™™™™™ñ?rï  g333333ó?FTr   )r   r   r3  r  re  ç333333@rX   r2  )r   r   r3  r  re  r  )	rB   r7   Ú
get_zscaleÚ_view_marginÚmarginsrt   r„   Ú	autoscaleÚset_autoscalez_onrF   s     r.   Útest_autoscaler	  V  s  € Ü�l‰l |°TÐ&:Ô;�G€CˆØ�=‰=‹?˜hÒ&Ð&Ð&Ø€B„OØ‡J�J��b˜B€JÔØ‡G�GˆQ�ˆF�Q˜�F˜Q ˜FÔ#Ø�=‰=‹?Ð8Ò8Ð8Ð8Ø‡L�L�ÔØ×Ñ˜ÔØ‡G�GˆQ�ˆF�Q˜�F˜Q ˜FÔ#Ø�=‰=‹?Ð8Ò8Ð8Ð8Ø‡L�L�c€LÔØ‡G�GˆQ�ˆF�Q˜�F˜Q ˜FÔ#Ø�=‰=‹?Ð8Ò8Ð8Ñ8r0   rQ   r  r�   )TFNc                 óì  — t        j                  «       }|j                  d¬«      }t        j                  d«      }t        j
                  ddd«      }|j                  ||«       t        |d| › d�«      }t        |d| › d	�«      }t        |d
| › d	�«      }|€ |«       n|}	 |d|¬«       |	 |«       k(  sJ ‚|j                  j                  «        t        j                  j                   |«       d«       y )Nr2   r3   r  r3  r2  Úget_autoscaleÚ_onÚset_ÚlimÚget_)rW  rF  )r�   )rB   rC   rD   r    r×   rN  rŠ  Úgetattrr‚   rƒ   r  Úassert_array_equal)
rQ   r�   rG   r(   rX   rY   Úget_autoscale_onÚset_limÚget_limÚ	post_autos
             r.   Útest_unautoscaler  f  sÛ   € ô �*‰*‹,€CØ	�‰ DˆÓ	)€Bä
�	‰	�#‹€AÜ
�‰�D˜#˜sÓ#€AØ‡J�Jˆq�!Ôä˜r ]°4°&¸Ð#<Ó=ÐÜ�b˜D   cÐ*Ó+€GÜ�b˜D   cÐ*Ó+€Gà&* lÑ Ô"¸€IáˆK˜dÕ#ØÑ(Ó*Ò*Ð*Ð*Ø‡J�J‡O�OÔÜ‡J�J×!Ñ!¡'£)¨[Õ9r0   c                 ól  — d}t        | |f|«      D ]¡  \  }}|j                  d¬«      }t        |«      dz   }t        j                  d||«      }t        j
                  |«      }t        j                  |«      }	|j                  |||	d«       |j                  ddd¬«       |j                  d	d
d«       Œ£ y )N)r  r�   r2   r3   r   r   rÞ  )ru  rŒ   ©r”   r•   r–   rŒ   r¾   )
r'   rD   r%   r    rN  Úonesr•  rt   rc   rÆ   )
r;   r<   ÚxminsrG   r  r(   ÚnrÙ   rÚ   rÒ   s
             r.   Útest_cullingr  |  s£   € à€EÜ˜( GÐ,¨eÓ4ò 	 ‰	ˆˆTØ�_‰_¨ˆ_Ó-ˆÜ�‹I˜‰MˆÜ�[‰[˜˜D !Ó$ˆÜ�W‰W�Q‹ZˆÜ�X‰X�a‹[ˆØ
�‰��B˜˜CÔ à
�‰�G '°ˆÔ8Ø
�‰�Q˜˜QÕñ	 r0   c                  óT  — t        j                  «       } | j                  d¬«      }t        j                  t
        «      5  |j                  dd¬«       d d d «       t        j                  t
        «      5  |j                  dd¬«       d d d «       y # 1 sw Y   Œ?xY w# 1 sw Y   y xY w)Nr2   r3   Úperspr   ©Úfocal_lengthr¿   r   )rB   rC   rD   rd  re  rO  rÅ   rF   s     r.   Útest_axes3d_focal_length_checksr!  ‹  sŠ   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ	�‰”zÓ	"ñ 2Ø
×Ñ˜¨qÐÔ1÷2ä	�‰”zÓ	"ñ 2Ø
×Ñ˜¨qÐÔ1÷2ð 2÷2ð 2ú÷2ð 2ús   Á BÁ5BÂBÂB'zaxes3d_focal_length.pngc                  ó²   — t        j                  ddddi¬«      \  } }|d   j                  dt        j                  ¬«       |d   j                  dd	¬«       y )
Nr   r   r4   r2   r5   r   r  r  ç333333Ã?)rB   r7   rÅ   r    Úinf)rG   re   s     r.   Útest_axes3d_focal_lengthr%  ”  sQ   € ô �|‰|˜A˜q¨l¸DÐ-AÔB�H€CˆØˆ�F×Ñ˜¬r¯v©vÐÔ6Øˆ�F×Ñ˜¨tÐÕ4r0   zaxes3d_ortho.pngc                  ór   — t        j                  «       } | j                  d¬«      }|j                  d«       y )Nr2   r3   r¿   )rB   rC   rD   rÅ   rF   s     r.   Útest_axes3d_orthor'  œ  s+   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ×Ñ�WÕr0   zaxes3d_isometric.pngc                  ó  — ddl m} m} t        j                  t        ddd¬«      ¬«      \  }}d} | t        j                  t         ||||«      «      «      d	«      D ]J  \  }}t        ||z
  «      j                  «       |d
   |d   z
  k(  sŒ/ |j                  t        ||«      ddiŽ ŒL |j                  t        j                  t        j                  dt        j                   d	«      z  «      «      dd¬«       |j#                  d«       y )Nr   )r   r#   r2   r¿   )rk   rk   rk   )r4   Ú	proj_typeÚ
box_aspectr5   )rœ   r   r   r   rÏ   rÞ  r/  r  rÀ   T)r   r   r#   rB   r7   r8   r    r!   r"   r%   r$   r&   r'   rÆ   ÚdegreesÚarctanrú  rE   )r   r#   rG   r(   r*   rƒ  Úes          r.   Útest_axes3d_isometricr.  £  sØ   € ç/Ü�l‰l¤dØØØô'ô �G€Cˆð
 	€AÙœRŸX™X¤d©7°1°a¸Ó+;Ó&<Ó=¸qÓAò )‰ˆˆ1Üˆq�1‰u‹:�>‰>Ó˜q ™t a¨¡d™{Ó*ØˆB�I‰I”s˜1˜a“yÐ( CÓ(ð)ð ‡L�L”b—j‘j¤§¡¨2´·±¸³
©?Ó!;Ó<À3ÈQ€LÔOØ‡G�GˆD…Mr0   c           
      óD  — | j                  d¬«      }t        j                  ddd«      }t        j                  ddd«      }t        j                  ||«      \  }}||z   }|j	                  |||dd ddd¬	«       |j                  d
d
gddgd
dgdddd¬«       |j                  |j                  «       |j                  «       |j                  «       dz   d¬«       |j                  |j                  «       |j                  «       |j                  «       dz   d|j                  «       z  d|j                  «       z  d|j                  «       z  dz   dd¬«       |j                  |d   |d   |d   dz   dd¬«       |j                  dd
ddd¬«       |j                  ddd¬«       |j                  d¬«      }|d
k  }||   j                  dd«      }||   j                  dd«      }||   j                  dd«      }|j	                  |||dd ddd¬	«       |j                  d
d
gddgd
dgdddd¬«       |j                  |j                  «       |j                  «       |j                  «       dz   d¬«       |j                  |j                  «       |j                  «       |j                  «       dz   d|j                  «       z  d|j                  «       z  d|j                  «       z  dz   dd¬«       |j                  |d   |d   |d   dz   dd¬«       |j                  ddd¬«       y )Nr2   r3   r   r   r¨   rŸ  rŽ   T)rŽ  rÌ  rv  rw  Ú
axlim_cliprF  ç      ø?rÞ  ri   rŒ   )rÕ   rx  Úzorderr0  )r0  r   )Úarrow_length_ratior0  r   )rÕ   r0  r  rk   Útest)r   rF  ©r   r   )r   rŒ   r  rn   F)rD   r    rN  rí   r{  rt   rŠ  rî   rZ  r„  rc   rÄ  )	r;   r<   r(   rX   rY   r   r!  r"  Úidxs	            r.   Útest_axlim_clipr7  ³  så  € ð 
×	Ñ	¨Ð	Ó	.€BÜ
�‰�A�q˜"Ó€AÜ
�‰�A�q˜"Ó€AÜ�;‰;�q˜!Ó�D€A€qØ	ˆA‰€AØ‡O�O�A�q˜! t¸Ø b°Tð ô ;ð ‡G�GˆS�#ˆJ˜˜A˜  c 
Ø ¨1¸ð ô ?à‡J�Jˆq�w‰w‹y˜!Ÿ'™'›) Q§W¡W£Y°¡]¸t€JÔDØ‡I�Iˆa�g‰g‹i˜Ÿ™› A§G¡G£I°¡MØ�—‘“	‰k˜1˜QŸW™W›Y™;¨¨!¯'©'«)©°a©Ø!"¨tð ô 5ð ‡G�GˆAˆa‰D�!�A‘$˜˜!™˜q™¨¸€GÔ>Ø‡G�GˆC��a˜¨D€GÔ1Ø‡F�F�˜v¨F€FÔ3ð 
×	Ñ	¨Ð	Ó	-€BØ�‰8€CØ	ˆ#‰�‰�r˜1Ó€AØ	ˆ#‰�‰�r˜1Ó€AØ	ˆ#‰�‰�r˜1Ó€AØ‡O�O�A�q˜! t¸Ø b°Uð ô <à‡G�GˆS�#ˆJ˜˜A˜  c 
Ø ¨1¸ð ô @à‡J�Jˆq�w‰w‹y˜!Ÿ'™'›) Q§W¡W£Y°¡]¸u€JÔEØ‡I�Iˆa�g‰g‹i˜Ÿ™› A§G¡G£I°¡MØ�—‘“	‰k˜1˜QŸW™W›Y™;¨¨!¯'©'«)©°a©Ø!"¨uð ô 6ð ‡G�GˆAˆa‰D�!�A‘$˜˜!™˜q™¨¸€GÔ?Ø‡F�F�˜v¨F€FÕ3r0   Úvalue)ÚsetterÚside))r$  Úleft)r$  Úright)r%  Úbottom)r%  Útop)r|  r=  )r|  r>  c                 óØ   — ||i}t        j                  «       }|j                  d¬«      }t        j                  t
        «      5   t        || «      di |¤Ž d d d «       y # 1 sw Y   y xY w)Nr2   r3   © )rB   rC   rD   rd  re  rO  r  )r9  r:  r8  ÚlimitrG   Úobjs         r.   Útest_invalid_axes_limitsrC  Ú  s]   € ð �5ˆM€EÜ
�*‰*‹,€CØ
�/‰/ Tˆ/Ó
*€CÜ	�‰”zÓ	"ñ &ØŒ��VÓÑ%˜uÒ%÷&÷ &ñ &ús   ÁA Á A)c                   ó  — e Zd Z edgd¬«      d„ «       Z edgd¬«      d„ «       Z edgd¬«      d„ «       Z ed	gd¬«      d
„ «       Z edgd¬«      d„ «       Z edgdde	j                  dk(  rdnd¬«      d„ «       Zd„ Zy)Ú
TestVoxelszvoxels-simple.pngr>   r?   c                 ó¤   — t        j                  ddi¬«      \  }}t        j                  d«      \  }}}||k(  ||k(  z  }|j	                  |«       y )Nr4   r2   r5   )rŒ   rk   ri   )rB   r7   r    ÚindicesÚvoxels)ÚselfrG   r(   rX   rY   rZ   rH  s          r.   Útest_simplezTestVoxels.test_simpleì  sK   € ä—,‘,¨<¸Ð*>Ô?‰ˆˆRä—*‘*˜YÓ'‰ˆˆ1ˆaØ�q‘&˜Q !™VÑ$ˆØ
�	‰	�&Õr0   zvoxels-edge-style.pngc                 ó$  — t        j                  ddi¬«      \  }}t        j                  d«      \  }}}|dz
  dz  |dz
  dz  z   |dz
  dz  z   dk  }|j	                  |dd	¬
«      }|t        |j                  «       «         j                  d«       y )Nr4   r2   r5   )rŒ   rŒ   rk   r   r1  g]�Âõ(\@ri   rŸ  )r™  r�  r   )rB   r7   r    rG  rH  r9  Úkeysr¥  )rI  rG   r(   rX   rY   rZ   rH  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‹-Ñ×&Ñ& tÕ,r0   zvoxels-named-colors.pngc                 óD  — 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  <   |j                  ||¬«       y)z5Test with colors set to a 3D object array of strings.r4   r2   r5   ©rm   rm   rm   r   r®  r½  z0.25rŒ   Úcyanrm   r  N)rB   r7   r    rG  rª  Úobject_rH  ©rI  rG   r(   rX   rY   rZ   rH  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ˆ	Õ,r0   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	<   |j                  ||¬
«       y)z5Test with colors set to a 4d float array of rgb data.r4   r2   r5   rO  )rm   rm   rm   ri   r³  ©.r   ©.r   ©.r   r  N)rB   r7   r    rG  r•  rH  rR  s           r.   Útest_rgb_datazTestVoxels.test_rgb_data  s†   € ô —,‘,¨<¸Ð*>Ô?‰ˆˆRä—*‘*˜\Ó*‰ˆˆ1ˆaØ�q‘&˜Q !™VÑ$ˆÜ—‘˜/Ó*ˆØ˜Q™ˆˆv‰Ø˜Q™ˆˆv‰Ø˜Q™ˆˆv‰Ø
�	‰	�& Vˆ	Õ,r0   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¢|	|<   |j                  ||	¬	«      }
t        |
«      t        u sJ ‚|
j                  «       D ]-  \  }}||   sJ d
«       ‚t        |t        j                  «      rŒ-J ‚ y )Nr4   r2   r5   rO  r   )rm   rm   rm   rk   )r   r   r   rF  )r   r   r   rF  r  zfaces returned for absent voxel)rB   r7   r    rG  r%   r•  rH  Útyper8   Úitemsr�  r   r}  )rI  rG   r(   rX   rY   rZ   Úv1Úv2rH  r   r]  Úcoordr~  s                r.   Ú
test_alphazTestVoxels.test_alpha  sØ   € ä—,‘,¨<¸Ð*>Ô?‰ˆˆRä—*‘*˜\Ó*‰ˆˆ1ˆaØ�!‰VˆÜ�V‰V�A˜‘E‹]˜QÑˆØ�b‘ˆÜ—‘˜/Ó*ˆÚ#ˆˆr‰
Ú#ˆˆr‰
Ø�I‰I�f¨ˆIÓ0ˆä�A‹wœ$‰ÐˆØŸ7™7›9ò 	<‰KˆE�4Ø˜%’=ÐCÐ"CÓC�=Ü˜d¤E×$:Ñ$:Õ;Ð;Ð;ñ	<r0   zvoxels-xyz.pngFÚwin32r  r   )r   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<   |j                  ||||
|t        j                  d|z  dz
  dd«      d¬«       y )Nr4   r2   r5   c                 óÖ   — d}t        | j                  «      D ]N  }| |t        j                  d d z      | |t        j                  dd  z      z   dz  } |t        j                  d d  z  }ŒP | S )Nr@  rœ   r   rr  )rÿ   Úndimr    Ú	index_exp)rX   Úslr¥   s      r.   Ú	midpointsz&TestVoxels.test_xyz.<locals>.midpoints0  sv   € ØˆBÜ˜1Ÿ6™6“]ò &�Ø�rœBŸL™L¨¨"Ð-Ñ-Ñ.Ø�rœBŸL™L¨¨Ð,Ñ,Ñ-ñ.Ø14ñ5�à”b—l‘l¡1�oÑ%‘ð&ð ˆHr0   )é   rg  rg  g      0@rF  r   r1  )ri   rU  rV  rW  r   r   )rË  rÌ  rx  )rB   r7   r    rG  r•  rÅ  rH  r5  )rI  rG   r(   rf  r*   rË   rÌ   ÚrcÚgcÚbcÚspherer   s               r.   Útest_xyzzTestVoxels.test_xyz+  sñ   € ô —,‘,¨<¸Ð*>Ô?‰ˆˆRò	ô —*‘*˜\Ó*¨TÑ1‰ˆˆ1ˆaÙ�q‹\ˆÙ�q‹\ˆÙ�q‹\ˆð �s‘(˜Q‘ " s¡(¨Q¡Ñ.°"°s±(¸Q±Ñ>ÀÑGˆô —‘˜&Ÿ,™,¨Ñ-Ó.ˆØˆˆv‰Øˆˆv‰Øˆˆv‰ð 	�	‰	�!�Q˜˜6Ø#ÜŸW™W Q v¡X°¡^°Q¸Ó:Øð 	õ 	!r0   c                 óD  — t        j                  d«      \  }}}t        j                  d«      }t        j                  ddi¬«      \  }}t        «       t        d¬«      fD ]V  } |j                  |fi |¤Ž  |j                  dd|i|¤Ž  |j                  ||||fi |¤Ž  |j                  |||fd|i|¤Ž ŒX t        j                  t        d	¬
«      5  |j                  |||||¬«       d d d «       t        j                  t        d	¬
«      5  |j                  ||«       d d d «       t        j                  t        d¬
«      5 }|j                  ||||¬«       d d d «       j                  j                  dk(  sJ ‚y # 1 sw Y   Œ”xY w# 1 sw Y   ŒjxY w# 1 sw Y   Œ=xY w)NrŸ   )r   ri   rk   r4   r2   r5   rÞ  )r�  ÚfilledrH  rb  )rn  zkeyword argument 'x')rn  rX   rY   rZ   rX   r@  )r    rG  r  rB   r7   r8   rH  rd  re  Ú	TypeErrorÚAttributeErrorr8  Úname)	rI  rX   rY   rZ   rn  rG   r(   ÚkwÚ	exec_infos	            r.   Útest_calling_conventionsz#TestVoxels.test_calling_conventionsM  sw  € Ü—*‘*˜YÓ'‰ˆˆ1ˆaÜ—‘˜Ó#ˆä—,‘,¨<¸Ð*>Ô?‰ˆˆRô “6œ4¨#Ô.Ð/ò 	4ˆBØˆB�I‰I�fÑ# Ò#ØˆB�I‰IÑ*˜VÐ* rÒ*ØˆB�I‰I�a˜˜A˜vÑ,¨Ò,ØˆB�I‰I�a˜˜AÑ3 fÐ3°Ó3ð		4ô �]‰]œ9¨HÔ5ñ 	6Ø�I‰I�a˜˜A˜v¨fˆIÔ5÷	6ô �]‰]œ9¨HÔ5ñ 	Ø�I‰I�a˜ŒO÷	ô �]‰]œ>Ð1GÔHð 	4ÈIØ�I‰I˜V q¨A°ˆIÔ3÷	4à�‰×#Ñ# sÒ*Ð*Ñ*÷	6ð 	6ú÷	ð 	ú÷	4ð 	4ús$   ÃE>ÄF
ÅFÅ>FÆ
FÆFN)Ú__name__Ú
__module__Ú__qualname__Úmpl3d_image_comparisonrJ  rM  rS  rX  r_  ÚsysÚplatformrl  rt  r@  r0   r.   rE  rE  ë  sÛ   „ ÙÐ0Ð1¸ÔAñó Bðñ Ð4Ð5¸WÔEñ-ó Fð-ñ Ð6Ð7¸wÔGñ
-ó Hð
-ñ Ð2Ð3¸7ÔCñ
-ó Dð
-ñ Ð/Ð0¸Ô@ñ<ó Að<ñ" Ð-Ð.¸EÈØ),¯©¸Ò)@¡ÀaôIñ!óIð!ó@+r0   rE  c                  ó  — ddgddgddg}}} ddgd	d
gddg}}}t        j                  «       }|j                  d¬«      }|j                  | ||«      }|d   }	t        j
                  j                  | ||f|	j                  «       «       |	j                  |||«       t        j
                  j                  |||f|	j                  «       «       |	j                  | «       |	j                  |«       |	j                  |d¬«       t        j
                  j                  | ||f|	j                  «       «       |	j                  dd¬«       t        j
                  j                  | |t	        j                  |«      f|	j                  «       «       y )Nr   r   r   ri   rk   rŒ   rn   r;  r8  r³  rm   r¨   r2   r3   rZ   rÚ  )rB   rC   rD   rt   r    r  r  Úget_data_3drh  Ú	set_xdataÚ	set_ydataÚset_3d_propertiesrã   )
rX   rY   rZ   rå  ræ  rç  rG   r(   r¬  rP   s
             r.   Útest_line3d_set_get_data_3dr€  g  sP  € Ø�!ˆf�q˜!�f˜q !˜fˆ!€q€AØ�Q�˜!˜Q˜ " b ˆBˆ€BÜ
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ�G‰G�A�q˜!Ó€EØ�‰8€DÜ‡J�J×!Ñ! 1 a¨ )¨T×-=Ñ-=Ó-?Ô@Ø×Ñ�R˜˜RÔ Ü‡J�J×!Ñ! 2 r¨2 ,°×0@Ñ0@Ó0BÔCØ‡N�N�1ÔØ‡N�N�1ÔØ×Ñ˜a cÐÔ*Ü‡J�J×!Ñ! 1 a¨ )¨T×-=Ñ-=Ó-?Ô@Ø×Ñ˜a cÐÔ*Ü‡J�J×!Ñ! 1 a¬¯©°qÓ)9Ð":¸D×<LÑ<LÓ<NÕOr0   c                 óð   — | j                  d¬«      }|j                  g d¢g d¢g d¢«       |j                  «        |j                  d¬«      }|j                  «        |j                  g d¢g d¢g d¢«       y )Nr2   r3   )r   r   rm   rm   )r   rm   rm   rm   )r   r   r   rm   )rD   rt   rv   r:   s      r.   Útest_invertedr‚  y  s^   € ð 
×	Ñ	¨Ð	Ó	.€BØ‡G�GŠNšOª]Ô;Ø‡O�OÔà	×	Ñ	¨Ð	Ó	-€BØ‡O�OÔØ‡G�GŠNšOª]Õ;r0   c                  ó
  — t        j                  ddi¬«      \  } }|j                  «       rJ ‚|j                  «       rJ ‚|j	                  «       rJ ‚|j                  dd«       |j                  dd«       |j                  dd«       |j                  «       sJ ‚|j                  «       sJ ‚|j	                  «       sJ ‚|j                  «        |j                  «       rJ ‚|j                  «       rJ ‚|j	                  «       rJ ‚y )Nr4   r2   r5   r   r   )	rB   r7   Úxaxis_invertedÚyaxis_invertedÚzaxis_invertedr�   r)  r*  r½  rF   s     r.   Útest_inverted_clar‡  …  só   € ô �l‰l |°TÐ&:Ô;�G€Cˆà× Ñ Ô"Ð"Ð"Ø× Ñ Ô"Ð"Ð"Ø× Ñ Ô"Ð"Ð"Ø‡K�K��1ÔØ‡K�K��1ÔØ‡K�K��1ÔØ×ÑÔÐÐØ×ÑÔÐÐØ×ÑÔÐÐØ‡F�F„HØ× Ñ Ô"Ð"Ð"Ø× Ñ Ô"Ð"Ð"Ø× Ñ Ô"Ð"Ð"Ð"r0   c                  óD  — t        j                  «       } t        | «      }|j                  dd¬«       |j                  dd¬«       |j                  dd¬«       | j                  j                  «        |j                  j                  «       D ]  }|j                  j                  dk(  rŒJ ‚ |j                  j                  «       D ]  }|j                  j                  dk(  rŒJ ‚ |j                  j                  «       D ]  }|j                  j                  dk(  rŒJ ‚ y )NrX   rÞ   )rQ   r   rY   rZ   )rB   rC   r   Útick_paramsr‚   rƒ   rM   r·  Ú	tick1lineÚ_colorrN   rO   )rG   r(   rº  s      r.   Útest_ax3d_tickcolourrŒ  ™  sð   € Ü
�*‰*‹,€CÜ	�‹€Bà‡N�N˜ E€NÔ*Ø‡N�N˜ E€NÔ*Ø‡N�N˜ E€NÔ*Ø‡J�J‡O�OÔà—‘×(Ñ(Ó*ò .ˆØ�~‰~×$Ñ$¨Ó-Ð-Ð-ð.à—‘×(Ñ(Ó*ò .ˆØ�~‰~×$Ñ$¨Ó-Ð-Ð-ð.à—‘×(Ñ(Ó*ò .ˆØ�~‰~×$Ñ$¨Ó-Ð-Ð-ñ.r0   c                 ó\  — | j                  ddddi¬«      }|j                  D ]  }|j                  dd«       Œ t        |g d¢«      D ]©  \  }}|d	   j	                  |d
¬«       |d   j	                  |d¬«       |d   j	                  |t
        j                  d    ¬«       |d   j	                  |t
        j                  d    ¬«       |d   j	                  |t
        j                  d    ¬«       Œ« d„ }|j                  ddddi¬«      }|j                  D ]  }|j                  dd«       Œ t        |dgdgdgg d¢g«      D ]å  \  }} ||d	   |«      D ]  }|j                  d«       Œ  ||d   |«      D ]  }|j                  d«       Œ  ||d   |«      D ]%  }|j                  t
        j                  d    «       Œ'  ||d   |«      D ]%  }|j                  t
        j                  d    «       Œ'  ||d   |«      D ]%  }|j                  t
        j                  d    «       Œ' Œç y )Nrk   rŒ   r4   r2   r5   g    ÐcAg   @ÑcA)rX   rY   rZ   rV   r   Úplain)rQ   r   r   )r0  r   )rQ   Ú	scilimitsr   zaxes.formatter.useoffset)rQ   Ú	useOffsetri   zaxes.formatter.use_locale)rQ   Ú	useLocalezaxes.formatter.use_mathtext)rQ   ÚuseMathTextc                 ó\   — |D �cg c]  }t        | |«      j                  «       ‘Œ c}S c c}w r¶  )r  Úget_major_formatter)r(   Únamesrq  s      r.   Úget_formattersz-test_ticklabel_format.<locals>.get_formatters¼  s&   € ØDIÖJ¸D”˜˜DÓ!×5Ñ5Õ7ÒJÐJùÒJs   …!)rM   rN   rO   )rM   rN   rO   F)r7   rÄ   r�   r'   Úticklabel_formatr  r  Úset_scientificÚset_powerlimitsÚset_useOffsetÚset_useLocaleÚset_useMathText)	r;   r<   re   r(   Úrowrq  r–  r•  Úfmts	            r.   Útest_ticklabel_formatrŸ  ª  s‚  € à
×
Ñ
˜A˜q¨l¸DÐ-AÐ
Ó
B€CØ�h‰hò #ˆØ
�‰�C˜Õ"ð#ä˜Ò5Ó6ò I‰	ˆˆTØˆA‰×ÑØ˜Wð 	 ô 	&àˆA‰×ÑØ ð 	 ô 	*àˆA‰×ÑØ¤S§\¡\Ð2LÑ%MÐ!Mð 	 ô 	OàˆA‰×ÑØ¤S§\¡\Ð2MÑ%NÐ!Nð 	 ô 	PàˆA‰×ÑØÜŸL™LÐ)FÑGÐGð 	 õ 	IðIòKð ×
Ñ
˜1˜a¨\¸4Ð,@Ð
Ó
A€CØ�h‰hò #ˆØ
�‰�C˜Õ"ð#äØ�7�)˜g˜Y¨¨	Ò3NÐOóò A‰
ˆˆUñ " # a¡&¨%Ó0ò 	&ˆCØ×Ñ˜uÕ%ð	&á! # a¡&¨%Ó0ò 	)ˆCØ×Ñ Õ(ð	)á! # a¡&¨%Ó0ò 	LˆCØ×Ñ¤#§,¡,Ð/IÑ"JÐJÕKð	Lá! # a¡&¨%Ó0ò 	MˆCØ×Ñ¤#§,¡,Ð/JÑ"KÐKÕLð	Má! # a¡&¨%Ó0ò 	AˆCØ×ÑÜ—L‘LÐ!>Ñ?Ð?õAñ	AñAr0   c                 óp  — 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 ]0  \  }	}
|	j                  d¬«      }|j                  |||||||
|¬	«       Œ2 y )
NrU  gš™™™™™é¿r   r4  rÑ   )r   r/  r2   r3   )r  rX  )r    rí   r×   Ú	ones_liker'   rD   rZ  )r;   r<   rX  rX   rY   rZ   r\  r]  r^  rG   r  r(   s               r.   Útest_quiver3D_smoker¢  Ò  s±   € à€Eä�k‰kÜ
�	‰	�$˜˜3ÓÜ
�	‰	�$˜˜3ÓÜ
�	‰	�$˜˜3Óó�G€A€qˆ!ô
 —‘˜Q“Ð€AÐˆˆAä˜G XÐ.°Ó9ò @‰ˆˆVØ�_‰_¨ˆ_Ó-ˆØ
�	‰	�!�Q˜˜1˜a ¨6¸ˆ	Õ?ñ@r0   zminor_ticks.pngc                  ó<  — t        j                  «       j                  d¬«      } | j                  dgd¬«       | j	                  dgd¬«       | j                  dgd¬«       | j                  dgd¬«       | j                  d	gd¬«       | j                  d
gd¬«       y )Nr2   r3   r1  T)ÚminorÚquarterg…ëQ¸Õ?ÚthirdrF  Úhalf)	rB   rC   rD   rJ   Úset_xticklabelsrK   Úset_yticklabelsrL   Úset_zticklabels)r(   s    r.   Útest_minor_ticksr«  â  s�   € ä	�‰‹×	!Ñ	!¨TÐ	!Ó	2€BØ‡M�M�4�& €MÔ%Ø×Ñ˜	�{¨$ÐÔ/Ø‡M�M�4�& €MÔ%Ø×Ñ˜�y¨ÐÔ-Ø‡M�M�4�& €MÔ%Ø×Ñ˜�x tÐÕ,r0   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                  «       }|j                  d¬«      }d	}t        j                  | j                  «      }||z  dk(  ||z  dz  dk(  z  }||z  dk(  ||z  dz  dk(  z  }	|j                  |||d
||	|¬«       y)z0Tests errorevery functionality for 3D errorbars.r   r   r2  ró   ri   rŒ   r2   r3   é   r4  )ÚzuplimsÚzlolimsÚ
erroreveryN)
r    r×   rU  rV  rW  rB   rC   rD   rÃ  Úerrorbar)
rn  rX   rY   rZ   rG   r(   Úestepr¥   r®  r¯  s
             r.   Útest_errorbar3d_erroreveryr³  î  sß   € ô 	�	‰	�!�Q”r—u‘u‘W˜R‘Z Ó&€AÜ�f‰f�Q‹iœŸ™  !¡›¤b§f¡f¨Q¨q©S£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Ø ð õ "r0   zerrorbar3d.pngg¸…ëQ¸Ž?c                  óÂ   — t        j                  «       } | j                  d¬«      }g d¢}g d¢}|j                  ||||||dg d¢g d¢dd	d
¬«       |j	                  «        y)z9Tests limits, color styling, and legend for 3D errorbars.r2   r3   )r   r   ri   rk   rŒ   )rF  rF  rF  rF  rF  ri   )FTFTT)TFFTFTÚpurplezError lines)rX   rY   rZ   ÚxerrÚyerrÚzerrÚcapsizer®  r¯  ÚyuplimsÚecolorr®   N)rB   rC   rD   r±  Úlegend)rG   r(   Údr-  s       r.   Útest_errorbar3dr¾     sa   € ô �*‰*‹,€CØ	�‰ DˆÓ	)€Bâ€AÚ€AØ‡K�K�!�q˜A A¨A°A¸qÚ8Ú9ØØ }ð	 ô 6ð
 ‡I�I…Kr0   z
stem3d.pnggü©ñÒMb€?c            
      ó^  — 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 ].  \  }}|j                  ||||¬
«       |j                  d|› �«       Œ0 t        j                  t        j                   dz  t        j                  dz  d«      }t        j                  |«      }t        j
                  |«      }t        |d   g d	¢«      D ]Y  \  }}|j                  |||ddd|¬«      \  }}	}
|j                  d|› �«       |j                  dd¬«       |
j                  d«       Œ[ y )Nr   ri   )r8  rn   Tr4   r2   ©ro   Úconstrained_layoutr6   r   r  )Úorientationzorientation=rÎ   r   zC4-.ÚC1Dr   )ÚlinefmtÚ	markerfmtÚbasefmtrÂ  rW   )rt  Úmarkeredgewidth)rB   r7   r    rN  rU  rW  rV  r'   Ústemr¡   r¡  rc   Úset_linewidth)rG   re   rX  rX   rY   rZ   r(   rÓ   Ú
markerlineÚ	stemlinesÚbaselines              r.   Útest_stem3drÍ    s{  € ô �|‰|˜A˜q¨&Ø/3Ø(4°dÐ';ô=�H€Cˆô �K‰K˜˜1œRŸU™U™7Ó#€EÜ
�‰ˆu”r—u‘u˜Q‘w‰Ó€AÜ
�‰ˆu”r—u‘u˜Q‘w‰Ó€AØ€Aä˜˜A™¢Ó0ò ,‰ˆˆDØ
�‰��1�a TˆÔ*Ø
�‰�| D 6Ð*Õ+ð,ô 	�‰”R—U‘U�F˜1‘HœbŸe™e A™g rÓ*€AÜ
�‰�Q‹€AÜ
�‰ˆq‹	€Aä˜˜A™¢Ó0ò "‰ˆˆDØ*,¯'©'Øˆq�!Ø e°TØð +2ó +Ñ'ˆ
�I˜xð 	�‰�| D 6Ð*Ô+Ø�‰ v¸qˆÔAØ×Ñ˜qÕ!ñ"r0   zequal_box_aspect.pngc                  óŽ  — ddl m} m} t        j                  «       }|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                  |«      «      }|j                  |||«       ddg}	 |t        j                  t         | |	|	|	«      «      «      d«      D ]Y  \  }
}t        j                   t        j"                  |
|z
  «      «      |	d   |	d   z
  k(  sŒ> |j$                  t'        |
|«      d	d
iŽ Œ[ t        j(                  |j+                  «       |j-                  «       |j/                  «       g«      }t1        |d   «      t3        |d   «      g}|j5                  |«       |j7                  |«       |j9                  |«       |j;                  d«       |j=                  d«       t?        j@                  tB        d¬«      5  |j=                  dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   )r#   r   r2   r3   r   r  rœ   r   rÕ   rÌ   Úoffrž   zArgument zoom =rb  )Úzoom)"r   r#   r   rB   rC   rD   r    rN  rU  ÚouterrW  rV  r¡  r{  r!   r"   r$   r%   r&   r'   r›  r�   r‘   r’   r7  r9  r$  r%  r|  rQ   r¢   rd  re  rO  )r#   r   rG   r(   r\  r]  rX   rY   rZ   r*   rƒ  r-  ÚxyzlimÚXYZlims                 r.   Útest_equal_box_aspectrÔ  /  sþ  € ç/ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bô 	�‰�A�qœ2Ÿ5™5‘y #Ó&€AÜ
�‰�A”r—u‘u˜cÓ"€AÜ
�‰”—‘˜“œBŸF™F 1›IÓ&€AÜ
�‰”—‘˜“œBŸF™F 1›IÓ&€AÜ
�‰”—‘˜a“¤"§&¡&¨£)Ó,€Að ‡O�O�A�q˜!Ôð 
ˆQˆ€AÙœRŸX™X¤d©7°1°a¸Ó+;Ó&<Ó=¸qÓAò -‰ˆˆ1Ü�6‰6”"—&‘&˜˜Q™“-Ó  A a¡D¨1¨Q©4¡KÓ/ØˆB�I‰I”s˜1˜a“yÐ,¨Ó,ð-ô
 �_‰_Ø	�‰‹˜"Ÿ-™-›/¨2¯=©=«?Ð;ó€Fô �&˜‘)‹nœc &¨¡)›nÐ-€FØ‡M�M�&ÔØ‡M�M�&ÔØ‡M�M�&ÔØ‡G�GˆE„NØ×Ñ�iÔ ä	�‰”zÐ):Ô	;ñ .Ø
×Ñ˜)¨"ÐÔ-÷.÷ .ñ .ús   ÊJ;Ê;Kc                  óä  — d} t        j                  d| ddddi¬«      \  }}|D ]l  }|j                  t        j                  j                  d«      t        j                  j                  d«      t        j                  j                  d«      «      }Œn t        j                  |d	¬
«      }|j                  j                  «        |j                  j                  «       j                  d   dk  sJ ‚y )Nr   r   )rk   rŒ   Tr4   r2   rÀ  rŒ   Ú
horizontal)r(   rÂ  r4  )rB   r7   r8  r    rG  rÅ  rð  r‚   rƒ   r(   Úget_positionÚextents)Ú	num_plotsrG   re   r(   Úp_triÚcbars         r.   Útest_colorbar_posrÜ  U  s¿   € Ø€IÜ�|‰|˜A˜y°&Ø/3Ø(4°dÐ';ô=�H€Cˆð ò 4ˆØ—‘¤§	¡	§¡°Ó 2´B·I±I·O±OÀAÓ4FÜ "§	¡	§¡°Ó 2ó4‰ð4ô �<‰<˜ #°<Ô@€Dà‡J�J‡O�OÔà�7‰7×ÑÓ!×)Ñ)¨!Ñ,¨sÒ2Ð2Ñ2r0   c                  óV  — t        j                  «       } | j                  d¬«      }|j                  dd«       |j	                  «       rJ ‚|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  d«       |j	                  «       rJ ‚|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  «        |j	                  «       sJ ‚|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  d¬«       |j	                  «       sJ ‚|j                  «       d	k(  sJ ‚|j                  «       dk(  sJ ‚|j                  d
¬«       |j	                  «       sJ ‚|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚y )Nr2   r3   r   r   r5  )r   r   )r   r   )rT   ©r   r   r   )rU   )r   r   ©r   r   )	rB   rC   rD   r*  r†  Úget_zlimÚ
get_zboundÚ
set_zboundrw   rF   s     r.   Útest_inverted_zaxisrã  e  s‡  € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡K�K��1ÔØ× Ñ Ô"Ð"Ð"Ø�;‰;‹=˜FÒ"Ð"Ð"Ø�=‰=‹?˜fÒ$Ð$Ð$ð ‡M�M�&ÔØ× Ñ Ô"Ð"Ð"Ø�;‰;‹=˜FÒ"Ð"Ð"Ø�=‰=‹?˜fÒ$Ð$Ð$ð ‡O�OÔØ×ÑÔÐÐØ�;‰;‹=˜FÒ"Ð"Ð"Ø�=‰=‹?˜fÒ$Ð$Ð$ð ‡M�M˜€MÔØ×ÑÔÐÐØ�;‰;‹=˜FÒ"Ð"Ð"Ø�=‰=‹?˜fÒ$Ð$Ð$ð ‡M�M˜€MÔØ×ÑÔÐÐØ�;‰;‹=˜FÒ"Ð"Ð"Ø�=‰=‹?˜fÒ$Ð$Ñ$r0   c                  óf  — t        j                  «       } | j                  d¬«      }t        j                  |j                  «       d«      sJ ‚|j                  d¬«       t        j                  |j                  «       d«      sJ ‚|j                  d¬«       |j                  «       d	k(  sJ ‚t        j                  t        d
¬«      5  |j                  dd¬«       d d d «       t        j                  t        d¬«      5  |j                  dd¬«       d d d «       y # 1 sw Y   ŒAxY w# 1 sw Y   y xY w)Nr2   r3   r¯  r   )r  )r°  r   r   )r  rß  z"Cannot pass both 'lower' and 'min'rb  r   )r=  r  z"Cannot pass both 'upper' and 'max')r>  r  )
rB   rC   rD   r    r†   rà  r*  rd  re  ro  rF   s     r.   Útest_set_zlimrå  †  sø   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ�;‰;�r—{‘{“} nÔ5Ð5Ð5Ø‡K�K�Q€KÔÜ�;‰;�r—{‘{“} jÔ1Ð1Ð1Ø‡K�K�Q€KÔØ�;‰;‹=˜FÒ"Ð"Ð"ä	�‰ÜÐAô
Cñ &à
�‰˜1 1ˆÔ%÷&ô 
�‰ÜÐAô
Cñ #à
�‰˜ ˆÔ"÷#ð #÷&ð &ú÷#ð #ús   ÃDÃ>D'ÄD$Ä'D0c                 ó,  — d\  }}}| j                  dd¬«      }| j                  dd|¬«      }| j                  dd¬«      }|j                  |«       |j                  |||d¬	«       d
D ])  }|j                  |d¬«      }	|	j                  |||¬«       Œ+ y )N)rŒ   rÎ   rÍ   éƒ   r2   r3   é„   )r4   Ú	shareviewé…   T)rÁ   rÂ   rÃ   Úshare)rç  rè  rê  rÀ   )rD   ré  rÆ   )
r;   r<   rÁ   rÂ   rÃ   r^  r_  Úax3Úsubplot_numr(   s
             r.   Útest_shared_viewrî  —  s¥   € à Ñ€Dˆ$�Ø
×
Ñ
˜s¨tÐ
Ó
4€CØ
×
Ñ
˜s¨t¸sÐ
Ó
C€CØ
×
Ñ
˜s¨tÐ
Ó
4€CØ‡M�M�#ÔØ‡M�M�t $¨T¸€MÔ>à&ò 6ˆØ× Ñ  ¸Ð Ó>ˆØ
�‰˜$ T°ˆÕ5ñ6r0   c                  óX  — t        j                  «       } | j                  dd¬«      }| j                  dd|¬«      }|j                  ddgddgddg«       |j                  ddgddgddg«       |j	                  g d	¢«       |j                  «       d
k(  sJ ‚|j                  «       d
k(  sJ ‚y )NéÓ   r2   r3   éÔ   )r4   Úsharezr   r   r   )rW  r   r   ç      @)rW  ró  )rB   rC   rD   rt   rL   rà  )rG   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Ò$Ô%à�<‰<‹>˜[Ò(Ð(Ð(Ø�<‰<‹>˜[Ò(Ð(Ñ(r0   c            
      ó¨  — t        dg d¢«      } | j                  dk(  sJ ‚| j                  g d¢k(  j                  sJ ‚|  j                  dk(  sJ ‚|  j                  g d¢k(  j                  sJ ‚t        dg d¢«      }|j                  dk(  sJ ‚|j                  g d¢k(  j                  sJ ‚t        dg d¢«      }|j                  dk(  sJ ‚|j                  g d¢k(  j                  sJ ‚t        dg d¢«      }|j                  dk(  sJ ‚|j                  g d¢k(  j                  sJ ‚||z  |  k(  sJ ‚||z  |  k(  sJ ‚||z  |  k(  sJ ‚| |z  |k(  sJ ‚| |z  |k(  sJ ‚| |z  |k(  sJ ‚||z  |k(  sJ ‚||z  |k(  sJ ‚||z  |k(  sJ ‚||z  | k(  sJ ‚||z  | k(  sJ ‚||z  | k(  sJ ‚t        dg d	¢«      t        d
g d¢«      z  t        dg d¢«      k(  sJ ‚| |||fD ]®  }|j	                  «       j                  |j                  k(  sJ ‚|j	                  «       j                  |j                   k(  j                  sJ ‚|j	                  «       j	                  «       |k(  sJ ‚||j	                  «       z  j                  dk(  j                  rŒ®J ‚ t        dg d¢«      }|j
                  dk(  sJ ‚| j
                  dk(  sJ ‚|j
                  dk(  sJ ‚|j
                  dk(  sJ ‚|j
                  dk(  sJ ‚|| |||fD ].  }|j
                  ||j	                  «       z  j                  k(  rŒ.J ‚ t        dg d¢«      t        dg d¢«      t        dg d¢«      t        dg d¢«      t        d
g d¢«      fD ]!  }|j                  «       j
                  dk(  rŒ!J ‚ | |||fD ]2  }||j                  «       z  | k(  sJ ‚|j                  «       |z  | k(  rŒ2J ‚ |j                  g d¢«      t        j                  g d¢«      k(  j                  sJ ‚g d¢g d¢t        t        j                  d«      ddt        j                  d«      g«      fg d¢g d¢t        t        j                  d«      dt        j                  d«       dg«      fg d¢g d¢t        dg d¢«      ffD ]!  \  }}}t        j                  ||«      |k(  rŒ!J ‚ g d¢g d¢g d¢g d¢fD ]—  }t        j                  |«      }t        j                  t        «      5  t        j                  || «      }d d d «       t        j                   j
                  d«      sJ ‚t        j"                  |j                  |«      dk(  rŒ—J ‚ dD ]ð  \  }}	}
dD ]å  }t        j$                  t        j&                  |«      t        j&                  |	«      t        j&                  |
«      «      }t        j                   |j
                  d«      sJ ‚t        ||j                  z  ||j                  z  «      }t        j(                  j+                  t        j,                  t        j.                  |«      «      ||	|
fd¬«       Œç Œò y # 1 sw Y   �ŒIxY w)Nr   r»   rœ   r   ©r   r   r   r|  rq   r   rŸ   rn   )r;  r8  r³  iªÿÿÿ)r  é0   é,   )ri   r   r   )r   rk   r   )r   r   rŒ   ©r   r   ri   )r   r0  rY  rF  rž   )r»   )r¸   r   r   r¼   )r   r   r¸   )r   rÍ   rÍ   )rÍ   r   rÍ   )rÍ   rÍ   r   )é/   r¨   ièÿÿÿrß  ç�íµ ÷Æ°>©Úatol)Ú
QuaternionÚscalarÚvectorÚallÚ	conjugater  rb  Ú
reciprocalÚrotater    r!   rú  Úrotate_from_tord  ÚwarnsÚUserWarningÚiscloserË  Úfrom_cardan_anglesÚdeg2radr  rý  Úrad2degÚas_cardan_angles)Úq1ÚqiÚqjÚqkÚqÚq0Úr1Úr2rÁ   rÂ   rÃ   Úmags               r.   Útest_quaternionr  ±  s  € ä	�A’yÓ	!€BØ�9‰9˜Š>Ðˆ>Ø�I‰IšÑ"×'Ò'Ð'Ð'àˆC�<‰<˜2ÒÐÐØˆS�L‰LšIÑ%×*Ò*Ð*Ð*ä	�A’yÓ	!€BØ�9‰9˜Š>Ðˆ>Ø�I‰IšÑ"×'Ò'Ð'Ð'Ü	�A’yÓ	!€BØ�9‰9˜Š>Ðˆ>Ø�I‰IšÑ"×'Ò'Ð'Ð'Ü	�A’yÓ	!€BØ�9‰9˜Š>Ðˆ>Ø�I‰IšÑ"×'Ò'Ð'Ð'àˆb‰5�R�CŠ<Ðˆ<Øˆb‰5�R�CŠ<Ðˆ<Øˆb‰5�R�CŠ<Ðˆ<àˆb‰5�BŠ;Ðˆ;Øˆb‰5�BŠ;Ðˆ;Øˆb‰5�BŠ;Ðˆ;àˆb‰5�BŠ;Ðˆ;Øˆb‰5�BŠ;Ðˆ;Øˆb‰5�BŠ;Ðˆ;Øˆb‰5�R�CŠ<Ðˆ<Øˆb‰5�R�CŠ<Ðˆ<Øˆb‰5�R�CŠ<Ðˆ<ä�qš)Ó$¤z°!²YÓ'?Ñ?Ü˜#š|Ó,ò-ð .ð -ð �"�b˜"Ðò 3ˆØ�{‰{‹}×#Ñ# q§x¡xÒ/Ð/Ð/Ø—‘“×$Ñ$¨¯©¨	Ñ1×6Ò6Ð6Ð6Ø�{‰{‹}×&Ñ&Ó(¨AÒ-Ð-Ð-Ø�1—;‘;“=‘×(Ñ(¨AÑ-×2Ó2Ð2Ð2ð	3ô 
�A’yÓ	!€BØ�7‰7�aŠ<Ðˆ<Ø�7‰7�aŠ<Ðˆ<Ø�7‰7�aŠ<Ðˆ<Ø�7‰7�aŠ<Ðˆ<Ø�7‰7�aŠ<Ðˆ<Ø�"�b˜"˜bÐ!ò 2ˆØ�v‰v˜!˜AŸK™K›M™/×1Ñ1Ó1Ð1Ð1ð2ô 	�1’iÓ Ü�1’iÓ Ü�1’iÓ Ü�1’iÓ Ü�1’iÓ ðò 'ˆð �{‰{‹}×!Ñ! QÓ&Ð&Ð&ð'ð �"�b˜"Ðò &ˆØ�—‘“Ñ 2Ò%Ð%Ð%Ø�|‰|‹~˜aÑ 2Ó%Ð%Ð%ð&ð �I‰I’iÓ ¤B§H¡Hª[Ó$9Ñ9×>Ò>Ð>Ð>ò 
’Iœz¬"¯'©'°#«,¸¸A¼r¿w¹wÀs»|Ð8LÓMÐNÚ	’Iœz¬"¯'©'°#«,¸¼R¿W¹WÀS»\¸MÈ1Ð8MÓNÐOÚ	’Iœz¨!ªYÓ7Ð8ðò 6‰	ˆˆB�ô
 ×(Ñ(¨¨RÓ0°AÓ5Ð5Ð5ð6ò š)¢Y²	Ð:ò )ˆÜ�X‰X�b‹\ˆÜ�\‰\œ+Ó&ñ 	3Ü×)Ñ)¨"¨r¨cÓ2ˆA÷	3ä�z‰z˜!Ÿ&™& !Ô$Ð$Ð$Ü�v‰v�a—h‘h Ó# qÓ(Ð(Ð(ð)ð,ò 
FÑˆˆd�Dð ò 	FˆCÜ×-Ñ-Ü—
‘
˜4Ó ¤"§*¡*¨TÓ"2´B·J±J¸tÓ4DóFˆAä—:‘:˜aŸf™f aÔ(Ð(Ð(Ü˜3 §¡™>¨3°·±©>Ó:ˆAÜ�J‰J×&Ñ&¤r§z¡z´*×2MÑ2MÈaÓ2PÓ'QØ(,¨d°DÐ'9Àð 'õ Fñ	Fñ	
F÷	3ñ 	3ús   Ó(YÙY	r   )ÚazelÚ	trackballrk  Úarcballc                 ó^  — | dk(  rd}nt         j                  d   dz  }|dz  }dt         j                  d<   t        j                  d| i«      5  g d¢g d	¢g d
¢g d¢ddt        j                  d«      dz  gddt        j                  d«      dz  gg d¢fD �]  \  }}}t        j                  «       }|j                  dddd¬«      }|j                  dd|«       |j                  j                  j                  «        t        j                  d|dt        j                  «      j                  «        t        j                  d|||z  |j                   z  ||z  |j"                  z  ft        j                  «      j                  «        |j                  j                  j                  «        t        j                  d«      dz  }i dd“dd“ddd|fd“dd“dd“dd“ddd|fd “d!d"“d#d$“d%dd|fd&“d'dd(t        j$                  z  df“d)d*“d+d,“d%dd|fd-“d.d/“d0d1“d2dd|fd3“d4dd5d6d7d8d2dd|fd9d:d;d<d=d>dd|fd?d@dAdBdCdDdEd>dd|fdFi¥}|| |||f   \  }	}
}t        j&                  j)                  |j*                  |j,                  |j.                  f|	|
|fdG¬H«       �Œ 	 dIdIdI«       yI# 1 sw Y   yIxY w)Jz*Test rotating using the left mouse button.r  rF  zaxes3d.trackballsizer   r   zaxes3d.trackballborderúaxes3d.mouserotationstyler|  )rÍ   r   r   rq   )rÍ   r   r   ri   rÍ   )r   r   r   r   r2   r3   Úbutton_press_eventrn  Úmotion_notify_event)r  r   r   r   )r   r  r   )r  r   r   r   )r  r   r   )ç¢^ðiN|CÀç     €6Àr   )r  r   r   r   rº   )r  rÍ   r   r   )g     €6@r  rÍ   )r  rÍ   r   r   )r  r  rÍ   )r  r  rÍ   )r  r   r   r   )r   çËgyÜ¥<Àr   )r  r   r   r   )r   r   r   r  )çéEí~ˆ8Àço.2Ž.Àg«®C5%¹
@)r  r   r   r   iLÿÿÿ)r  rÍ   r   r   )gôüi£:½+@ç=Õ!7ÃQ9ÀgXç�½Þ:@)r  rÍ   r   r   )r!  r"  gë:TS’«@@)gôüi£:½+Àr#  gTŒó7¡�@@)rk  r   r   r   )r   rè   r   )rk  r   r   r   )rè   r   r   rk  )ç`#I®¨9Àç¸v¢$$0Àg! _B…@)rk  r   r   r   )rk  rÍ   r   r   )g&åîs|ô,@çu’­.§�:Àgu’­.§�:@)rk  rÍ   r   r   )r$  r%  gò%TØ@@)g&åîs|ô,Àr&  gÆ6©h¬·@@)r  r   r   r   )r   rç   r   )r  r   r   r   )rç   r   r   r  )ç’#��‘KHÀçx´qÄZrDÀg—wJ3@)r  r   r   r   r½   )r  rÍ   r   r   )g`#I®¨9@çðýÚ«'LÀg¸v¢$$0@)r  rÍ   r   r   )r'  r(  gˆKŽ;¥�H@)r$  r)  g¤Ä®ííòE@rû  rü  N)r  r  Ú
rc_contextr    rú  rB   rC   rD   rÆ   r‚   rƒ   r
   Ú_from_ax_coordsr	   ÚLEFTÚ_processÚ	_pseudo_wÚ	_pseudo_hrU  r  rý  rÁ   rÂ   rÃ   )r   rƒ  rÃ   rù   rú   rG   r(   rÏ   ÚexpectationsÚnew_elevÚnew_azimÚnew_rolls               r.   Útest_rotater4    sv  € ð �‚Ø‰ä�L‰LÐ/Ñ0°1Ñ4ˆØˆ�H€AØ-.„C‡L�LÐ)Ñ*Ü	�‰Ð4°eÐ<Ó	=ñ 9RâÚÚÚØ�CœŸ™ › A™Ð&Ø�Sœ"Ÿ'™' !›* Q™,Ð'Úðó 8	R‰LˆD�"�bô —*‘*“,ˆCØ—‘  A q°T�Ó:ˆBØ�L‰L˜˜A˜tÔ$Ø�I‰I×Ñ×!Ñ!Ô#ô ×&Ñ&Ø$ b¨&´+×2BÑ2BóDßDLÁHÄJÜ×&Ñ&Ø% r¨A¨b©D°·±Ñ,=¸qÀ¹tÀBÇLÁLÑ?PÐ+QÜ× Ñ ó"ç"*¡(¤*Ø�I‰I×Ñ×!Ñ!Ô#ä—‘˜“
˜1‘ˆAðNØ! ;ðNà! ;ðNð ˜˜C Ð#Ð%;ðNð " ;ð	Nð
 #Ð$:ðNð #Ð$;ðNð ˜˜S !Ð$Ð&=ðNð 'Ð(9ðNð 'Ð(9ðNð ˜a  aÐ(Ð*LðNð '¨¨D´·±©J¸Ð(:ðNð (Ð)JðNð (Ð)LðNð ˜b # qÐ)Ð+NðNð" $ [ð#Nð$ $ [ð%Nð& ˜1˜c 1Ð%Ð'Ið'Nð( $ [Ø$Ð&HØ$Ð&IØ˜2˜s AÐ&Ð(Kà$ kØ$ kØ˜A˜s AÐ&Ð(KØ$ kØ%Ð'IØ%Ð'JØ˜B  QÐ'Ð)Lñ?NˆLð@ ,8¸ÀÀbÈ"Ð8MÑ+NÑ(ˆH�h Ü�J‰J×&Ñ&¨¯©°·±¸"¿'¹'Ð'BØ(0°(¸HÐ'EÈDð 'ö Rño8	R÷9R÷ 9Rñ 9Rús   ÁIJ#Ê#J,c                  óÀ  — d„ } t        j                  «       }|j                  d¬«      }|j                  ddd«       |j                  j                  «         | |j                  «       Ž \  }} | |j                  «       Ž \  }} | |j                  «       Ž \  }}t        j                  d|dt        j                  «      j                  «        t        j                  d|dt        j                  «      j                  «         | |j                  «       Ž \  }	}
 | |j                  «       Ž \  }} | |j                  «       Ž \  }}|
t        j                  |«      k(  sJ ‚|t        j                  |«      k(  sJ ‚|t        j                  |«      k(  sJ ‚|	t        j                  |«      k7  sJ ‚|t        j                  |«      k7  sJ ‚|t        j                  |«      k7  sJ ‚y	)
z1Test mouse panning using the middle mouse button.c                 ó$   — | |z   dz  }|| z
  }||fS )z+Convert min/max limits to center and range.r   r@  )ÚdminÚdmaxÚcenterÚrange_s       r.   Úconvert_limztest_pan.<locals>.convert_limX  s#   € à˜‘+ Ñ"ˆØ˜‘ˆØ�vˆ~Ðr0   r2   r3   r   r  rn  r  ©r   r   N)rB   rC   rD   rŠ  r‚   rƒ   r�   r‘   r’   r
   r+  r	   ÚMIDDLEr-  rd  Úapprox)r;  rG   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_panrK  U  s˜  € òô �*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡J�Jˆq�!�QÔØ‡J�J‡O�OÔá% r§}¡}£Ð7Ñ€IˆxÙ% r§}¡}£Ð7Ñ€IˆxÙ% r§}¡}£Ð7Ñ€Iˆxô ×ÑØ˜b &¬+×*<Ñ*<ó>ß>F¹h¼jÜ×ÑØ˜r 6¬;×+=Ñ+=ó?ß?G¹x¼zá# R§]¡]£_Ð5Ñ€HˆgÙ# R§]¡]£_Ð5Ñ€HˆgÙ# R§]¡]£_Ð5Ñ€Hˆgð ”f—m‘m HÓ-Ò-Ð-Ð-Ø”f—m‘m HÓ-Ò-Ð-Ð-Ø”f—m‘m HÓ-Ò-Ð-Ð-ð ”v—}‘} YÓ/Ò/Ð/Ð/Ø”v—}‘} YÓ/Ò/Ð/Ð/Ø”v—}‘} YÓ/Ò/Ð/Ñ/r0   ztool,button,key,expectedrÐ  ))rp  ç¸…ëQ¸®?)ró   gìQ¸…ë±?)rC  ç{®Gáz´?rX   ))g{®Gáz„¿r2  )g¸…ëQ¸ž¿rM  ©g¸…ëQ¸®¿rL  rY   ))çìQ¸…ë±¿r  )g{®Gáz¤¿rM  )rp  g¸…ëQ¸¾?))g
×£p=
·¿r#  )g{®Gáz´¿gÃõ(\�ÂÅ?)rO  g
×£p=
Ç?Úpan))gffffffæ¿ç�Âõ(\�â¿)g¤p=
×£ð¿g…ëQ¸í¿©gR¸…ëQô¿gffffffò¿))g
×£p=
ï¿gáz®Gáê¿)rQ  gq=
×£pÝ¿rN  ))r4  g{®GázÔ?)gR¸…ëQà¿gö(\�ÂõØ¿rR  c                 ó�  — t        j                  «       }|j                  d¬«      }|j                  ddd«       |j                  j                  «        |j                  «       |j                  «       |j                  «       }}}d}	d}
|j                  j                  |	«      j                  t        «      }|j                  j                  |
«      j                  t        «      }t        d|j                  g|¢|‘­d|iŽ}t        d|j                  g|¢|‘­||hd	œŽ}t        d
|j                  g|¢|‘­d|iŽ}t        |j                  «      }| dk(  r|j                  «        n|j!                  «        |j#                  «        |j#                  «        |j#                  «        |\  }}}|j                  «       t%        j&                  |d¬«      k(  sJ ‚|j                  «       t%        j&                  |d¬«      k(  sJ ‚|j                  «       t%        j&                  |d¬«      k(  sJ ‚|j)                  «        |j                  «       t%        j&                  |«      k(  sJ ‚|j                  «       t%        j&                  |«      k(  sJ ‚|j                  «       t%        j&                  |«      k(  sJ ‚|j+                  «        |j                  «       t%        j&                  |d¬«      k(  sJ ‚|j                  «       t%        j&                  |d¬«      k(  sJ ‚|j                  «       t%        j&                  |d¬«      k(  sJ ‚|j-                  «        |j                  «       t%        j&                  |«      k(  sJ ‚|j                  «       t%        j&                  |«      k(  sJ ‚|j                  «       t%        j&                  |«      k(  sJ ‚y )Nr2   r3   r   rn  r<  r  Úkeyr  )rT  ÚbuttonsÚbutton_release_eventrÐ  ró   )r%   )rB   rC   rD   rŠ  r‚   rƒ   r�   r‘   r’   Ú	transDatar!  ÚastypeÚintr
   r   rÐ  rP  r-  rd  r>  ÚbackÚforwardÚhome)ÚtoolÚbuttonrT  ÚexpectedrG   r(   Úxlim0Úylim0Úzlim0Úd0Úd1Ús0Ús1Ústart_eventÚ
drag_eventÚ
stop_eventÚtbr”   r•   r–   s                       r.   Útest_toolbar_zoom_panrk  |  s  € ô( �*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡J�Jˆq�!�QÔØ‡J�J‡O�OÔØŸ-™-›/¨2¯=©=«?¸B¿M¹M»O�%ˆ5€Eð 
€BØ	€Bð 
�‰×	Ñ	 Ó	#×	*Ñ	*¬3Ó	/€BØ	�‰×	Ñ	 Ó	#×	*Ñ	*¬3Ó	/€Bô Ø˜cŸj™jð@Ø+-ð@Ø/5ò@Ø;>ñ@€KäØ˜sŸz™zðSØ,.ðSØ06ñSØ<?È&ÈòS€JäØ §
¡
ðBØ-/ðBØ17òBØ=@ñB€Jô 
˜CŸJ™JÓ	'€BØˆv‚~Ø
�‰�	à
�‰Œà×ÑÔØ×ÑÔØ×ÑÔð  Ñ€Dˆ$�Ø�=‰=‹?œfŸm™m¨D°dÔ;Ò;Ð;Ð;Ø�=‰=‹?œfŸm™m¨D°dÔ;Ò;Ð;Ð;Ø�=‰=‹?œfŸm™m¨D°dÔ;Ò;Ð;Ð;ð ‡G�G„IØ�=‰=‹?œfŸm™m¨EÓ2Ò2Ð2Ð2Ø�=‰=‹?œfŸm™m¨EÓ2Ò2Ð2Ð2Ø�=‰=‹?œfŸm™m¨EÓ2Ò2Ð2Ð2à‡J�J„LØ�=‰=‹?œfŸm™m¨D°dÔ;Ò;Ð;Ð;Ø�=‰=‹?œfŸm™m¨D°dÔ;Ò;Ð;Ð;Ø�=‰=‹?œfŸm™m¨D°dÔ;Ò;Ð;Ð;à‡G�G„IØ�=‰=‹?œfŸm™m¨EÓ2Ò2Ð2Ð2Ø�=‰=‹?œfŸm™m¨EÓ2Ò2Ð2Ð2Ø�=‰=‹?œfŸm™m¨EÓ2Ò2Ð2Ñ2r0   c                 ó  — t        j                  t        t        j                  t        j
                  ddd«      t        j
                  ddd«      t        j
                  ddd«      gŽ «      «      j                  \  }}}||z   }| j                  dd¬«      }|j                  ||||dd¬	«      }| j                  j                  «        |j                  «        |j                  dd¬«      }|j                  ||||dd¬	«      }	y )
Nr   rŒ   r   éo   r2   r3   r  Úviridis)rÏ   rƒ  r  )r    r!   r"   r   r#   r×   ÚTrD   rŠ  r‚   rƒ   Úchanged)
r;   r<   rX   rY   rZ   rÏ   rA  Úsc_testr@  Úsc_refs
             r.   Útest_scalarmap_updaters  È  só   € ô �h‰h”tœI×-Ñ-´·	±	¸!¸QÀÓ0BÜ02·	±	¸!¸QÀÓ0BÜ02·	±	¸!¸QÀÓ0Bð0Dð Eó Fó GçGHÁqñ €A€qˆ!ð 	
ˆA‰€Að ×"Ñ" 3°4Ð"Ó8€GØ�o‰o˜a  A¨¨b°yˆoÓA€Gà‡O�O×ÑÔà‡O�OÔð × Ñ  °Ð Ó6€FØ�^‰^˜A˜q ! q¨B°Yˆ^Ó?�Fr0   c                  ó²   — t        j                  «       } | j                  dd«      }|d   j                  dddd¬«      }|d   j                  ddddd¬«      }y )Nr   r   r   r2   r3   Úother)r4   r®   )rB   rC   Ú
subfiguresrD   )rG   Úsfr(   s      r.   Útest_subfigure_simplerx  Þ  sY   € ä
�*‰*‹,€CØ	�‰˜˜1Ó	€BØ	ˆA‰×	Ñ	˜1˜a ¨tÐ	Ó	4€BØ	ˆA‰×	Ñ	˜1˜a ¨t¸7Ð	Ó	C�Br0   zcomputed_zorder.pngc            
      óh  — dt         j                  d<   t        j                  «       } | j                  dd¬«      }| j                  dd¬«      }d|_        d}||fD ]�  }t        j                  |gd	d
d¬«      }|j                  |«       |j                  ddddd¬«       |j                  ddddd¬«       |j                  dd«       |j                  dd«       |j                  dd«       Œ‘ | j                  dd¬«      }| j                  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 �]  }|j)                  |||dddd¬«       |j                  ||dk     ||dk     ||dk     d d!d"d¬#«       |j)                  |	|
|dddd¬«       |j                  |t        j&                  |«      z  |t        j$                  |«      z  t        j                  |«      d d!d
d¬#«       |j)                  |||dddd$¬«       |j                  ||dkD     ||dkD     ||dkD     d d!d"d%¬#«       |j+                  d&d'd¬(«       |j-                  d)«       �Œ y )*NTr  éÝ   r2   r3   éÞ   F)r»   )r   rŒ   r   )rŒ   rŒ   r   )rŒ   r   r   ÚwhiteÚblackr   )rË  rÌ  r2  )r   r   )r   rk   rÞ   r   )rÏ   r2  )ri   ri   )r   ri   rm   r   rq  ró  éß   éà   rF  r;  rE  rà   rœ   )rÕ   rÖ   rx  r2  rŒ   z--rß   )rÁ  Ú	linestylerÕ   r2  ri   rk   rÎ   r&  rÀ   rÏ  )rB   r  rC   rD   Úcomputed_zorderr   r}  rw  rt   rŠ  r�   r)  r*  r    rí   r•  rN  rU  rW  rV  r{  rÆ   rQ   )rG   r^  r_  Úcornersr(   Útrirì  Úax4Údimr   r!  r"  ÚangleÚX2ÚY2ÚZ2ÚX3ÚY3ÚZ3r*   rÐ  ÚthrX   rY   rZ   s                            r.   Útest_computed_zorderrŽ  æ  sW  € à(,„C‡L�LÐ$Ñ%Ü
�*‰*‹,€CØ
�/‰/˜#¨$ˆ/Ó
/€CØ
�/‰/˜#¨$ˆ/Ó
/€CØ€CÔð ;€GØ�Cˆjò ˆÜ×$Ñ$ g YØ07Ø07Ø,-ô/ˆð 	×Ñ˜CÔ ð 	�‰�˜ ¨%¸ˆÔ:ð 	�
‰
�6˜6 6¨U¸2ˆ
Ô>à
�‰�A�sÔØ
�‰�A�sÔØ
�‰�A�sÕðð" �/‰/˜#¨$ˆ/Ó
/€CØ
�/‰/˜#¨$ˆ/Ó
/€CØ€CÔà
€CÜ�;‰;˜˜˜c�{ c T¨3 KÓ0�D€A€qÜ
�‰�Ó€Aà€EÜ�[‰[˜3˜$ ˜ q¨# hÓ/�F€BˆØ	ˆe‰€BÜ�[‰[˜3˜$ ˜¨ t¨Q iÓ0�F€BˆØ	ˆe‰€Bà	€AØ€AÜ	�‰�Q˜œBŸE™E™	 1Ó	%€BØ”"—&‘&˜“*‰n˜q¤2§6¡6¨"£:™~¨u°q©y¼2¿6¹6À"»:Ñ/Eˆ!€q€AØ�Cˆjó #ˆØ
�‰˜˜B Ø$Ø!Ø"#Ø!ð	 	ô 	#ð
 	�‰��!�a‘%‘˜!˜A ™E™( A a¨!¡e¡HØØØØð	 	ô 	ð 	�‰˜˜1˜aØ#Ø!Ø"#Ø ð	 	ô 	"ð 	�‰�”B—F‘F˜2“J‘ ¤B§F¡F¨2£J¡´·±¸³ØØØØð	 	ô 	ð 	�‰˜˜B Ø$Ø!Ø"#Ø ð	 	ô 	"ð 	�‰��!�a‘%‘˜!˜A ™E™( A a¨!¡e¡H°ØØØð 	ô 	ð 	�‰˜" 3¨QˆÔ/Ø
�‰�ŽñG#r0   c                  óD  — t        j                  «       } | j                  d¬«      }t        j                  d«      }|j                  |t        j                  |«      «       d}d}| j                  j                  «        |j                  ||«      dk(  sJ ‚|j                  dd¬«       | j                  j                  «        |j                  ||«      d	k(  sJ ‚|j                  «        | j                  j                  «        |j                  ||«      dk(  sJ ‚|j                  d
«       | j                  j                  «        |j                  ||«      dk(  sJ ‚|j                  dd¬«       | j                  j                  «        |j                  ||«      dk(  sJ ‚y )Nr2   r3   rm   r2  z"x=10.5227, y pane=1.0417, z=0.1444rÍ   rY   )rÃ   Úvertical_axisz!x pane=9.1875, y=0.9761, z=0.1291r¿   z"x=10.8869, y pane=1.0417, z=0.1528r  r  z!x=9.0620, y pane=1.0417, z=0.1110)rB   rC   rD   r    r×   rt   rV  r‚   rƒ   Úformat_coordrÆ   rÅ   )rG   r(   rX   ÚxvÚyvs        r.   Útest_format_coordr”  9	  sT  € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ
�	‰	�"‹€AØ‡G�GˆAŒr�v‰v�a‹yÔØ	€BØ	€BØ‡J�J‡O�OÔØ�?‰?˜2˜rÓ"Ð&JÒJÐJÐJð ‡L�L�b¨€LÔ,Ø‡J�J‡O�OÔØ�?‰?˜2˜rÓ"Ð&IÒIÐIÐIð ‡L�L„NØ‡J�J‡O�OÔØ�?‰?˜2˜rÓ"Ð&JÒJÐJÐJð ×Ñ�WÔØ‡J�J‡O�OÔØ�?‰?˜2˜rÓ"Ð&JÒJÐJÐJð ×Ñ�W¨3ÐÔ/Ø‡J�J‡O�OÔØ�?‰?˜2˜rÓ"Ð&IÒIÐIÑIr0   c                  ó"  — t        j                  «       } | j                  d¬«      }t        j                  d«      }|j                  |t        j                  |«      «       | j                  j                  «        |j                  «       dk(  sJ ‚y )Nr2   r3   rm   )FTF)
rB   rC   rD   r    r×   rt   rV  r‚   rƒ   Úget_axis_position)rG   r(   rX   s      r.   Útest_get_axis_positionr—  X	  sf   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ
�	‰	�"‹€AØ‡G�GˆAŒr�v‰v�a‹yÔØ‡J�J‡O�OÔØ×ÑÓ!Ð%9Ò9Ð9Ñ9r0   c                  óÖ  — t        j                  «       } | j                  d¬«      }|j                  d«       |j                  «       dk(  sJ ‚|j                  ddd«       |j                  «       dk(  sJ ‚|j                  d¬	«       |j                  «       d
k(  sJ ‚|j                  d¬«       |j                  «       dk(  sJ ‚|j                  d¬«       |j                  «       dk(  sJ ‚y )Nr2   r3   r4  )r4  r4  r4  r2  r¡  )r2  r4  r¡  r   )rX   )r   r4  r¡  )rY   )r   r2  r¡  ©rZ   )r   r2  r   )rB   rC   rD   r  rF   s     r.   Útest_marginsrš  a	  sÄ   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡J�Jˆs„OØ�:‰:‹<˜?Ò*Ð*Ð*Ø‡J�Jˆs�C˜ÔØ�:‰:‹<˜?Ò*Ð*Ð*Ø‡J�J�€J„OØ�:‰:‹<˜=Ò(Ð(Ð(Ø‡J�J�€JÔØ�:‰:‹<˜=Ò(Ð(Ð(Ø‡J�J�€J„OØ�:‰:‹<˜;Ò&Ð&Ñ&r0   c                  óô   — t        j                  «       } | j                  d¬«      }|j                  ddd«       |j	                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚y )Nr2   r3   r2  r4  r¡  )rB   rC   rD   r  Úget_xmarginÚget_ymarginÚget_zmarginrF   s     r.   Útest_margin_gettersrŸ  p	  sl   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡J�Jˆs�C˜ÔØ�>‰>Ó˜sÒ"Ð"Ð"Ø�>‰>Ó˜sÒ"Ð"Ð"Ø�>‰>Ó˜sÒ"Ð"Ñ"r0   zerr, args, kwargs, match)rœ   z!margin must be greater than -0\.5)r   rœ   r   )r   r   rœ   rœ   rZ   )r   z'Cannot pass both positional and keyword)rX   rY   r<  z*Must pass a single positional argument forc                 óÌ   — t        j                  | |¬«      5  t        j                  «       }|j	                  d¬«      } |j
                  |i |¤Ž d d d «       y # 1 sw Y   y xY w)Nrb  r2   r3   )rd  re  rB   rC   rD   r  )Úerrrç  rè  rc  rG   r(   s         r.   Útest_margins_errorsr¢  y	  sU   € ô  
�‰�s %Ô	(ñ $Ü�j‰j‹lˆØ�_‰_¨ˆ_Ó-ˆØˆ�
‰
�DÐ#˜FÒ#÷$÷ $ñ $ús   ˜9AÁA#c                 ó\  — |j                  d¬«      }t        ddd«      }t        j                  |d¬«       |j	                  |«       |j                  «       dk(  sJ ‚| j                  d¬«      }t        j                  dddd«      }|j	                  |«       |j                  «       dk(  sJ ‚y )Nr2   r3   rF  zFoo bar $\int$r   r™  r•  )rD   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à	×	Ñ	¨Ð	Ó	.€BÜ
�,‰,�s˜C Ð$5Ó
6€CØ‡M�M�#ÔØ×ÑÓ  MÒ1Ð1Ñ1r0   c                  óŽ   — t        j                  «       } | j                  d¬«      }|j                  dgdggdgdggdgdgg«       y )Nr2   r3   r   r   )rB   rC   rD   rt   rF   s     r.   Útest_draw_single_lines_from_Nx1r«  �	  sE   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡G�GˆaˆS�1�#ˆJ˜!˜˜q˜c˜
 a S¨1¨# JÕ/r0   c                 ó.  — |j                  d¬«      }t        j                  «       }t        |«      }t	        j
                  |dd¬«       |j                  |«       | j                  d¬«      }t	        j                  |dd¬«      }|j                  |«       y )Nr2   r3   )r   rF  r¢  r   r   rY   ©rZ   rÓ   rÚ  )rD   r   Úunit_rectangler   r   Úpathpatch_2d_to_3dr�  ÚPathPatch3D)r;   r<   r(   ÚpathÚpatchÚpp3ds         r.   Útest_pathpatch_3dr´  ¤	  s   € à	×	Ñ	¨Ð	Ó	-€BÜ×ÑÓ €DÜ�d‹O€EÜ	×Ñ˜UÐ&9ÀÕDØ‡M�M�%Ôà	×	Ñ	¨Ð	Ó	.€BÜ×Ñ˜TÐ&9ÀÔD€DØ‡M�M�$Õr0   zscatter_spiral.png)Úbaseline_imagesr   r   c                  óŠ  — dt         j                  d<   t        j                  «       } | j                  d¬«      }t	        j
                  ddt        j                  z  dz  d«      }|j                  t	        j                  |«      t	        j                  |«      |d	|d
z  z   |dz  ¬«      }| j                  j                  «        y )NTr  r2   r3   r   r   rn   é   r   rŒ   rÓ  )rB   r  rC   rD   r    rN  rU  rŠ  rV  rW  r‚   rƒ   )rG   r(   r�  Úscs       r.   Útest_scatter_spiralr¹  ±	  s�   € ð )-„C‡L�LÐ$Ñ%Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ	�‰�Q˜œBŸE™E™	 A™ sÓ	+€BØ	�‰”B—F‘F˜2“J¤§¡ r£
¨B°1°r¸A±v±:À"ÈÁ'ˆÓ	J€Bð ‡J�J‡O�OÕr0   c                  ó¾   — t        j                  ddi¬«      \  } }t        dd«      }|j                  |«       t	        j
                  |«       |j                  «        y )Nr4   r2   r5   rn  r/  )rB   r7   r   ro  r   r¯  Úget_path)rG   r(   Úps      r.   Útest_Poly3DCollection_get_pathr½  ¿	  sI   € ô �l‰l |°TÐ&:Ô;�G€CˆÜˆv�sÓ€AØ‡L�L�„OÜ	×Ñ˜QÔØ‡J�J…Lr0   c                  ó:  — t         j                  ddd…ddd…f   \  } }t        j                  |«      dz  t        j                  | «      dz  z
  }t	        j
                  «       }|j                  dd¬«      }|j                  || |d	¬
«      }|j                  «        y ©Nr   rm   y              Y@ri   r   rm  r2   r3   Úhot©r  )	r    ÚogridrW  rV  rB   rC   rD   r{  rr  ©rY   rX   rç  rG   r(   r*   s         r.   Ú#test_Poly3DCollection_get_facecolorrÄ  É	  ó†   € ô �8‰8�A�b˜�I˜q  D˜yÐ(Ñ)�D€A€qÜ	�‰�‹�a‰œ"Ÿ&™& ›) q™.Ñ	(€BÜ
�*‰*‹,€CØ	�‰˜¨ˆÓ	.€BØ
�‰˜˜1˜b uˆÓ-€AØ‡O�OÕr0   c                  ó:  — t         j                  ddd…ddd…f   \  } }t        j                  |«      dz  t        j                  | «      dz  z
  }t	        j
                  «       }|j                  dd¬«      }|j                  || |d	¬
«      }|j                  «        y r¿  )	r    rÂ  rW  rV  rB   rC   rD   r{  Úget_edgecolorrÃ  s         r.   Ú#test_Poly3DCollection_get_edgecolorrÈ  Ô	  rÅ  r0   zDvertical_axis, proj_expected, axis_lines_expected, tickdirs_expected)rp  ç#ðk$Iò?rp  ç.�_x%Iâ¿)rp  rp  çºÙ(·më?ç£å@µmÛ¿)rp  rp  rp  g      $À)ç#ðk$Iò¿rp  rp  çÓø…W’$%@gŽË—›˜Ã¬?gÞ2m Ù3°?gæº¾I²’¥¿g‰®°…ÅM¨¿gÞ2m Ù3°¿g‰®°…ÅM¨?rö  )rÉ  rp  rp  rÊ  )rp  rË  rp  rÌ  )rp  rp  rÍ  rÎ  gŽË—›˜Ã¬¿gæº¾I²’¥?)r   r   r   )rp  rp  rÉ  rÊ  )rË  rp  rp  rÌ  )rp  rÍ  rp  rÎ  ©r   r   r   c                 ó†  — d}t        j                  dddd¬«      }|j                  ddd| ¬«       |j                  «       j                  j                  «        |j                  «       }t        j                  j                  |||¬«       t        |j                  «       |j                  «       |j                  «       g«      D ]|  \  }}||   }	|j                  j                  «       }
t        j                  j                  |	|
|¬«       ||   }|j!                  d«      }t        j                  j#                  ||«       Œ~ y	)
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�íµ ÷ÆÀ>r   r2   r3   r   ©rÁ   rÂ   rÃ   r�  ©Úrtolr   N)rB   ÚsubplotrÆ   Ú
get_figurer‚   rƒ   Úget_projr    r  rý  r    Ú	get_xaxisÚ	get_yaxisÚ	get_zaxisrP   Úget_dataÚ_get_tickdirr  )r�  Úproj_expectedÚaxis_lines_expectedÚtickdirs_expectedrÓ  r(   Úproj_actualr¥   rQ   Úaxis_line_expectedÚaxis_line_actualÚtickdir_expectedÚtickdir_actuals                r.   Útest_view_init_vertical_axisrä  ß	  s  € ðH €DÜ	�‰�Q˜˜1¨Ô	.€BØ‡L�L�a˜a a°}€LÔEØ‡M�MƒO×Ñ×ÑÔ!ð —+‘+“-€KÜ‡J�J×Ñ˜}¨kÀÐÔEä˜bŸl™l›n¨b¯l©l«n¸b¿l¹l»nÐMÓNò 
H‰ˆˆ4à0°Ñ3ÐØŸ9™9×-Ñ-Ó/ÐÜ
�
‰
×"Ñ"Ð#5Ð7GØ(,ð 	#ô 	.ð -¨QÑ/ÐØ×*Ñ*¨9Ó5ˆÜ
�
‰
×%Ñ%Ð&6¸ÕGñ
Hr0   r�  Úreturnc                 ó�  — t        j                  dddd¬«      }|j                  ddd| ¬«       |j                  «       j                  j                  «        |j                  «       }t        j                  d|dt        j                  «      j                  «        t        j                  d|d	t        j                  «      j                  «        |j                  j                  | «      |j                  k(  sJ ‚|j                  «       }t        j                   j#                  t$        t        j                   j&                  ||«       y
)zO
    Test vertical axis is respected when rotating the plot interactively.
    r   r2   r3   r   rÑ  r  r5  r  )rF  rÑ   N)rB   rÔ  rÆ   rÕ  r‚   rƒ   rÖ  r
   r+  r	   r,  r-  Ú_axis_namesÚindexÚ_vertical_axisr    r  Úassert_raisesÚAssertionErrorrý  )r�  r(   Úproj_beforeÚ
proj_afters       r.   Útest_on_move_vertical_axisrî  9
  sì   € ô
 
�‰�Q˜˜1¨Ô	.€BØ‡L�L�a˜a a°}€LÔEØ‡M�MƒO×Ñ×ÑÔ!à—+‘+“-€KÜ×ÑØ˜b &¬+×*:Ñ*:ó<ß<D¹H¼JÜ×ÑØ˜r 8¬[×-=Ñ-=ó?ß?G¹x¼zà�>‰>×Ñ Ó.°"×2CÑ2CÒCÐCÐCð —‘“€JÜ‡J�J×ÑÜœŸ
™
×2Ñ2°KÀõr0   zvertical_axis, aspect_expected)ç/Äê�0ó?çF&à×H’ì?rï  )rð  rï  rï  )rï  rï  rð  c                 ó*  — t        j                  dddd¬«      }|j                  ddd| ¬«       |j                  «       j                  j                  «        |j                  d «       t        j                  j                  ||j                  d¬«       y )Nr   r2   r3   r   rÑ  rû  rÒ  )rB   rÔ  rÆ   rÕ  r‚   rƒ   r¢   r    r  rý  Ú_box_aspect)r�  Úaspect_expectedr(   s      r.   Ú!test_set_box_aspect_vertical_axisrô  Q
  so   € ô 
�‰�Q˜˜1¨Ô	.€BØ‡L�L�a˜a a°}€LÔEØ‡M�MƒO×Ñ×ÑÔ!à×Ñ�dÔä‡J�J×Ñ˜°·±ÀTÐÕJr0   zarc_pathpatch.pngc                  ó¾   — t        j                  dddd¬«      } t        j                  dddddd	¬
«      }| j	                  |«       t        j                  |dd¬«       y )Nr   r2   r3   )rF  rF  rF  çÍÌÌÌÌÌì?rÎ   rm   rÐ  )r  Úheightr†  Útheta1Útheta2r   rZ   r­  )rB   rÔ  ÚmpatchÚArcro  r   r¯  )r(   r¹  s     r.   Útest_arc_pathpatchrü  c
  sP   € ô 
�‰�Q˜˜1¨Ô	.€BÜ�
‰
�: S°Ø B¨sô	4€Aà‡L�L�„OÜ	×Ñ˜Q !¨#Ö.r0   zpanecolor_rcparams.pngc                  ó°   — t        j                  ddddœ«      5  t        j                  d¬«      } | j                  d¬«       d d d «       y # 1 sw Y   y xY w)	Nr*   rË   rÌ   )zaxes3d.xaxis.panecolorzaxes3d.yaxis.panecolorzaxes3d.zaxis.panecolorr<  rê   r2   r3   )rB   r*  rC   rD   )rG   s    r.   Útest_panecolor_rcparamsrþ  n
  sP   € ô 
�‰°3Ø36Ø36ñ8ó 
9ñ )ô �j‰j Ô(ˆØ�‰ 4ˆÔ(÷	)÷ )ñ )ús   š)AÁAc                 óì   — | j                  dd¬«      }g d¢}g d¢}g d¢}|j                  |||d«       g d¢|dd g d¢|dd |j                  dd¬«      }g d¢}g d¢}g d¢}|j                  |||d«       y)z~
    Test to see if the `z` axis does not get mutated
    after a call to `Axes3D.plot`

    test cases came from GH#8990
    rm  r2   r3   rù  )rp  rp  rp  zo-Nr\  )r;   r<   r^  rX   rY   rZ   r_  s          r.   Ú"test_mutating_input_arrays_y_and_zr   y
  s†   € ð ×
Ñ
˜s¨tÐ
Ó
4€CÚ€AÚ€AÚ€AØ‡H�HˆQ��1�dÔò €A�a€DÚ€A�a€Dð ×
Ñ
˜c¨dÐ
Ó
3€CÚ€AÚ€AÚ€AØ‡H�HˆQ��1�dÕr0   c                  óˆ  — t         j                  dddg} dt         j                  ddg}ddt         j                   dg}g d¢g d¢g d¢g d¢g}t        j                  «       }|j                  d¬«      }|j                  | |||¬«      }t        |j                  «       «      t        t        t        |«      |�/  «       «      k(  sJ ‚y)	zU
    Test color parameter usage with non-finite coordinate arrays.

    GH#26236
    r   r   r   )rp  rp  rp  r   r2   r3   râ   N)r    r–  r$  rB   rC   rD   rŠ  r«   Úget_offsetsÚsuperrZ  Úget_facecolors)rX   rY   rZ   r   rG   r(   Úpath3ds          r.   Útest_scatter_masked_colorr  “
  sº   € ô 
�‰��A˜Ð€AØ	
ŒB�F‰F�A˜Ð€AØ	
ˆA”—‘ˆw˜Ð€AâÚÚÚð	€Fô �*‰*‹,€CØ	�‰ DˆÓ	)€BØ�Z‰Z˜˜1˜a vˆZÓ.€Fô ˆv×!Ñ!Ó#Ó$ÜŒu”T˜&“\ 6Ñ9Ó;Ó<ò=ð =ñ =r0   zsurface3d_zsort_inf.pngc                  óÖ  — dt         j                  d<   t        j                  «       } | j                  d¬«      }t        j
                  ddd…ddd…f   \  }}t	        j                  |«      dz  t	        j                  |«      dz  z   }t        j                  ||j                  d   dz  d …|j                  d	   dz  d …f<   |j                  |||d
¬«       |j                  dd¬«       y )NTr  r2   r3   r0  r   r2  r   r   r3  rÁ  rÀ  é‘   )rÁ   rÂ   )rB   r  rC   rD   r    rÂ  rV  rW  r$  rÅ  r{  rÆ   r‹  s        r.   Útest_surface3d_zsort_infr	  ­
  sÆ   € à(,„C‡L�LÐ$Ñ%Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä�8‰8�B�q˜�H˜b  3˜hÐ&Ñ'�D€A€qÜ
�‰ˆq‹	�1‰”r—v‘v˜a“y !‘|Ñ#€AÜ,.¯F©F€A€a‡g�gˆa�j�A�oÑ˜Ÿ™ ™
 a™Ñ(Ð(Ñ)à‡O�O�A�q˜! %€OÔ(Ø‡L�L�b˜s€LÕ#r0   c                  óÚ   — t        j                  t        d¬«      5  t        j                  g d¢g d¢g d¢gt
        «      } t        j                  | gd¬«      }d d d «       y # 1 sw Y   y xY w)NzCYou must provide facecolors, edgecolors, or both for shade to work.rb  rq   rp   r»   Trë   )rd  re  rO  r    r!   rÈ  r   r}  )r~  rÏ   s     r.   Ú&test_Poly3DCollection_init_value_errorr  »
  sY   € ô 
�‰”zð5ô
6ñ 7ô �x‰xš¢IªyÐ9¼5ÓAˆÜ×"Ñ" D 6°Ô6ˆ÷	7÷ 7ñ 7ús   œ<A!Á!A*c            	      óÚ   — t        j                  «       } | j                  dd¬«      }|j                  dddt	        j
                  g d¢«      ¬«       | j                  j                  «        y )Nrm  r2   r3   r   r   rû  râ   )rB   rC   rD   rŠ  r    r!   r‚   rƒ   rF   s     r.   Ú%test_ndarray_color_kwargs_value_errorr  Å
  sL   € ô �*‰*‹,€CØ	�‰˜¨ˆÓ	.€BØ‡J�Jˆq�!�QœbŸh™h¢|Ó4€JÔ5Ø‡J�J‡O�OÕr0   c                  ó–  — t        j                  «       } | j                  d¬«      }g d¢ddgg d¢g}|j                  t	        j
                  |«      d¬«      }t        j                  |j                  «       d	«      sJ ‚t        j                  |j                  «       d
«      sJ ‚t        j                  |j                  «       d	«      sJ ‚y)zGTest Line3DCollection with autolim=True and lines of different lengths.r2   r3   )r»   rž   )r   r   r   r|  rÏ  ))r   r   r   )r   r   r   )ri   r   ri   )rk   ri   rk   Trƒ  r©  )g      °¿g     €@N)rB   rC   rD   rw  r   r«  r    r†   r�   r‘   r’   )rG   r(   ÚedgesÚcollectionss       r.   Ú$test_line3dcollection_autolim_raggedr  Î
  s©   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bò 	*Ø	�IÐÚ4ð€Eð ×%Ñ%¤e×&<Ñ&<¸UÓ&CÈTÐ%ÓR€Kô �;‰;�r—}‘}“Ð(QÔRÐRÐRÜ�;‰;�r—}‘}“Ð(9Ô:Ð:Ð:Ü�;‰;�r—}‘}“Ð(QÔRÐRÑRr0   c                  óª  — t        j                  «       } | j                  d¬«      }t        j                  t
        j                  d¬«      5  |j                  dd¬«       ddd«       t        j                  t
        j                  d	¬«      5  |j                  dd
¬«       ddd«       |j                  dd¬«       |j                  «       dk(  sJ ‚|j                  dd¬«       |j                  «       dk(  sJ ‚t        j                  t        d¬«      5  |j                  dd¬«       ddd«       y# 1 sw Y   ŒÒxY w# 1 sw Y   Œ�xY w# 1 sw Y   yxY w)zr
    Test that using the deprecated 'anchor' and 'share' kwargs in
    set_aspect raises the correct warning.
    r2   r3   z'anchor' parameterrb  r}   ÚC)ÚanchorNz'share' parameterT)rë  rª   r   r~   r€   Úinvalid_value)rB   rC   rD   rd  r  r   ÚMatplotlibDeprecationWarningr…   Úget_adjustablere  rO  rF   s     r.   Ú)test_axes3d_set_aspect_deperecated_paramsr  ä
  s  € ô
 �*‰*‹,€CØ	�‰ DˆÓ	)€Bô 
�‰”d×7Ñ7Ð?SÔ	Tñ +Ø
�‰�g cˆÔ*÷+ô 
�‰”d×7Ñ7Ð?RÔ	Sñ +Ø
�‰�g TˆÔ*÷+ð
 ‡M�M�' e€MÔ,Ø×ÑÓ %Ò'Ð'Ð'à‡M�M�' i€MÔ0Ø×ÑÓ )Ò+Ð+Ð+ä	�‰”z¨Ô	6ñ ;Ø
�‰�g¨/ˆÔ:÷;ð ;÷+ð +ú÷+ð +ú÷;ð ;ús$   ÁD1ÂD=ÄE	Ä1D:Ä=EÅ	Ec                  óš  — t        j                  «       } | j                  dd¬«      }t        j                  ddgddgg«      }|j
                  \  }}t        j                  |«      }t        j                  |«      }t        j                  ||«      \  }}|j                  |||«       | j                  j                  «        | j                  j                  «       }	|j                  }
|
j                  j                  «       �rI|
j                  j                  «       �r-|
j                  j!                  |	«      }|
j#                  |	«      }|€J ‚|€J ‚|j$                  |j$                  dz   k  s"J d|j$                  › d	|j$                  › d
�«       ‚|j&                  |j&                  dz   k  s"J d|j&                  › d|j&                  › d
�«       ‚|j(                  |j(                  dz
  k\  s"J d|j(                  › d|j(                  › d
�«       ‚|j*                  |j*                  dz
  k\  s"J d|j*                  › d|j*                  › d
�«       ‚y y y )Nrm  r2   r3   r2  g”å�™™¹?g³š™™™¹?rû  z	bbox.x0 (z) should be <= offset_bbox.x0 (ú)z	bbox.y0 (z) should be <= offset_bbox.y0 (z	bbox.x1 (z) should be >= offset_bbox.x1 (z	bbox.y1 (z) should be >= offset_bbox.y1 ()rB   rC   rD   r    r!   rÅ  r×   rí   r{  r‚   rƒ   Úget_rendererrO   Ú
offsetTextÚget_visibleÚget_textÚget_window_extentÚget_tightbboxÚx0Úy0râ  rã  )rG   r(   r"  rQ  rP  rX   rY   r   r!  ÚrendererrO   Úoffset_bboxÚbboxs                r.   Ú,test_axis_get_tightbbox_includes_offset_textr&     s*  € ô �*‰*‹,€CØ	�‰˜¨ˆÓ	.€Bô 	�‰�3˜Ð$ ~°{Ð&CÐDÓE€AØ�W‰W�F€BˆÜ
�	‰	�"‹€AÜ
�	‰	�"‹€AÜ�;‰;�q˜!Ó�D€A€qà‡O�O�A�q˜!Ôð ‡J�J‡O�OÔØ�z‰z×&Ñ&Ó(€Hð �H‰H€Eð
 	×Ñ×$Ñ$Õ&Ø×Ñ×!Ñ!Õ#Ø×&Ñ&×8Ñ8¸ÓBˆð ×"Ñ" 8Ó,ˆØÐÐÐØÐ&Ð&Ð&ð
 �w‰w˜+Ÿ.™.¨4Ñ/Ò/ð 	RØ˜Ÿ™�yÐ ?ÀÇÁÐ?OÈqÐQó	RÐ/à�w‰w˜+Ÿ.™.¨4Ñ/Ò/ð 	RØ˜Ÿ™�yÐ ?ÀÇÁÐ?OÈqÐQó	RÐ/à�w‰w˜+Ÿ.™.¨4Ñ/Ò/ð 	RØ˜Ÿ™�yÐ ?ÀÇÁÐ?OÈqÐQó	RÐ/à�w‰w˜+Ÿ.™.¨4Ñ/Ò/ð 	RØ˜Ÿ™�yÐ ?ÀÇÁÐ?OÈqÐQó	RÑ/ð# 	$ð 	'r0   c                  ó   — t        j                  «       } | j                  d¬«      }d} |j                  |Ž  | j                  j                  «        d}t         j                  d   }t        j                  ddi«      5  t        j                  d|d	t        j                  «      j                  «        t        j                  d
|||j                  z  ||j                  z  ft        j                  «      j                  «        d d d «       | j                  j                  «        |j                   }|j"                  }|j$                  } |j                  |Ž  | j                  j                  «        t        j                  ddi«      5  t        j                  d|d	t        j                  «      j                  «        t        j                  d
|||j                  z  ||j                  z  ft        j                  d¬«      j                  «        d d d «       | j                  j                  «        |t'        ||z  «      z  }|t'        ||z  «      z  }	|t'        ||z  «      z  }
|j                   t)        j*                  |«      k(  sJ ‚|j"                  t)        j*                  |	«      k(  sJ ‚|j$                  t)        j*                  |
«      k(  sJ ‚t        j,                  | «       y # 1 sw Y   �ŒæxY w# 1 sw Y   ŒåxY w)Nr2   r3   )gš™™™™™(@gš™™™™Ù@@gš™™™™™@r1  zaxes3d.snap_rotationr  r  r  rn  r  Úcontrol)rT  )rB   rC   rD   rÆ   r‚   rƒ   r  r  r*  r
   r+  r	   r,  r-  r.  r/  rÁ   rÂ   rÃ   Úroundrd  r>  Úclose)rG   r(   Úinitialrƒ  ÚstepÚrotated_elevÚrotated_azimÚrotated_rollÚexpected_elevÚexpected_azimÚexpected_rolls              r.   Ú test_ctrl_rotation_snaps_to_5degr3  /  sa  € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€Bà€GØ€B‡L�L�'ÑØ‡J�J‡O�OÔà€AÜ�<‰<Ð.Ñ/€Dô 
�‰Ð4°fÐ=Ó	>ñ 
Ü×"Ñ"Ø  " f¬k×.>Ñ.>ó	
ç
‰(Œ*ä×"Ñ"Ø!ØØ�—‘Ñ˜q 2§<¡<Ñ/Ð0Ü×Ñó		
÷
 ‰(Œ*÷
ð ‡J�J‡O�OÔà—7‘7€LØ—7‘7€LØ—7‘7€Lð €B‡L�L�'ÑØ‡J�J‡O�OÔô 
�‰Ð4°fÐ=Ó	>ñ Ü×"Ñ"Ø  " f¬k×.>Ñ.>ó	
ç
‰(Œ*ä×"Ñ"Ø!ØØ�—‘Ñ˜q 2§<¡<Ñ/Ð0Ü×ÑØô	
÷ ‰(Œ*÷ð ‡J�J‡O�OÔàœ5 °Ñ!4Ó5Ñ5€MØœ5 °Ñ!4Ó5Ñ5€MØœ5 °Ñ!4Ó5Ñ5€Mà�7‰7”f—m‘m MÓ2Ò2Ð2Ð2Ø�7‰7”f—m‘m MÓ2Ò2Ð2Ð2Ø�7‰7”f—m‘m MÓ2Ò2Ð2Ð2ä‡I�Iˆc…N÷]
ñ 
ú÷.ð ús   Á>BK'Æ	BK4Ë'K1Ë4K=c                  óä   — t        j                  ddt         j                  z  d«      } d| dz  z  }ddt        j                  | «      z   z  }dddt        j                  | «      dz  z   z  z  }|||fS )z'Data spanning 1 to ~1000 for log scale.r   r   rŽ   rm   r   )r    rN  rU  rV  rW  )rn  rX   rY   rZ   s       r.   Ú_make_log_datar5  p  sj   € ä
�‰�A�qœ2Ÿ5™5‘y "Ó%€AØ
ˆq�1‰u‰€AØ
ˆq”2—6‘6˜!“9‰}Ñ€AØ
ˆq�AœŸ™˜q›	 A™Ñ%Ñ&Ñ'€AØˆa�ˆ7€Nr0   c                  ó¤   — t        j                  ddd«      } t        j                  ddd«      }t        j                  | |«      \  }}||z  }|||fS )z&Grid data for surface with positive Z.r   rm   rÎ   )r    rN  rí   )rX   rY   r   r!  r"  s        r.   Ú_make_surface_log_datar7  y  sN   € ä
�‰�A�r˜2Ó€AÜ
�‰�A�r˜2Ó€AÜ�;‰;�q˜!Ó�D€A€qØ	ˆA‰€AØˆa�ˆ7€Nr0   c                  óÞ   — t         j                  j                  d«       t         j                  j                  ddd«      } t         j                  j                  ddd«      }| |z  dz  }| ||fS )z&Data for trisurf with positive values.é*   r   r  rm   )r    rG  rH  Úuniformr  s      r.   Ú_make_triangulation_datar;  ‚  sZ   € ä‡I�I‡N�N�2ÔÜ
�	‰	×Ñ˜!˜S #Ó&€AÜ
�	‰	×Ñ˜!˜S #Ó&€AØ	ˆA‰�‰
€AØˆa�ˆ7€Nr0   zscale3d_artists_log.pnggü©ñÒMb�?)r   r   r¶   c            	      ót  — t        j                  d¬«      } t        ddd¬«      }t        «       }t	        «       \  }}}| j                  dddd¬	«      } |j                  |Ž   |j                  d3i |¤d
di¤Ž | j                  dddd¬	«      }|j                  |||dd¬«        |j                  d3i |¤d
di¤Ž | j                  dddd¬	«      } |j                  ||d   ddœŽ  |j                  d3i |¤d
di¤Ž | j                  dddd¬	«      }t        j                  g d¢g d¢«      \  }}|j                  «       |j                  «       }}|j                  ||t        j                  |t        ¬«      |dz  |dz  ||z  dz  d¬«        |j                  d3i |¤d
di¤Ž | j                  dddd¬	«      }|j!                  |||dd¬«        |j                  d3i |¤d
di¤Ž | j                  dddd¬	«      }t#        «       }	 |j$                  |	dddœŽ  |j                  d3i |¤d
di¤Ž | j                  dddd¬	«      }|j'                  |||d¬«        |j                  d3i |¤d
d i¤Ž | j                  ddd!d¬	«      }|j)                  |||dd¬"«        |j                  d3i |¤d
d#i¤Ž | j                  ddd$d¬	«      }|j+                  g d¢g d¢g d%¢d¬&«        |j                  d3i |¤d
d'i¤Ž | j                  dddd¬	«      }t        j,                  g d¢«      }
|j/                  |
|
|
|
d(z  |
d(z  |
d(z  «        |j                  d3i |¤d
d)i¤Ž | j                  ddd*d¬	«      }|j1                  dddd+«       |j1                  dddd,«       |j1                  d-d-d-d.«        |j                  d3i |¤d/d0d0d0d1œ¤Ž y2)4z(Test all 3D artist types with log scale.)r  r   rê   Úlog©ÚxscaleÚyscaleÚzscaleri   rk   r   r2   r3   r_   rt   r   rŒ   r  Ú	wireframern  )rÏ   r  rŠ  ©r   rm   r  r½  r¡  rm   rÑ   )rÖ   rä   )r  rÖ   Úsurfacern   Útrisurfr;  )r4  r  r8  )r4  rÖ   r-  r³  )rm   r  rE  )r=  rÈ  rF  rZ  r¨   zPoint AzPoint Br  zPoint Cr„  )rF  rô  )r_   r”   r•   r–   Nr@  )rB   rC   r8   r5  r7  rD   rt   rc   rF  rŠ  r    rí   r`   rä   r¡  rÈ  r{  r;  r8  r  r-  rÈ  r!   rZ  r„  )rG   Úlog_kwÚ	line_dataÚsurf_XÚsurf_YÚsurf_Zr(   ÚbxÚbyÚtri_dataÚqxyzs              r.   Útest_scale3d_artists_logrO  ‹  s£  € ô �*‰*˜XÔ
&€CÜ˜ u°UÔ;€FÜÓ €IÜ3Ó5Ñ€FˆF�Fð 
�‰˜˜A˜q¨TˆÓ	2€BØ€B‡G�GˆYÑØ
€B‡F�FÑ"ˆVÑ"˜6Ó"à	�‰˜˜A˜q¨TˆÓ	2€BØ×Ñ�f˜f f°aÀÐÔCØ
€B‡F�FÑ'ˆVÑ'˜;Ó'à	�‰˜˜A˜q¨TˆÓ	2€BØ€B‡J�J�	˜Y q™\°	Ó:Ø
€B‡F�FÑ%ˆVÑ%˜9Ó%à	�‰˜˜A˜q¨TˆÓ	2€BÜ�[‰[š¢|Ó4�F€BˆØ�Z‰Z‹\˜2Ÿ:™:›<ˆ€BØ‡H�HˆR�”R—\‘\ "¬EÔ2Ø�#‰X�r˜C‘x  b¡¨2¡°Sð ô :à
€B‡F�FÑ#ˆVÑ#˜7Ó#ð 
�‰˜˜A˜q¨TˆÓ	2€BØ‡O�O�F˜F F°À#€OÔFØ
€B‡F�FÑ%ˆVÑ%˜9Ó%à	�‰˜˜A˜q¨TˆÓ	2€BÜ'Ó)€HØ€B‡O�O�X I°SÓ9Ø
€B‡F�FÑ%ˆVÑ%˜9Ó%à	�‰˜˜A˜q¨TˆÓ	2€BØ‡J�Jˆv�v˜v¨b€JÔ1Ø
€B‡F�FÑ%ˆVÑ%˜9Ó%à	�‰˜˜A˜q¨TˆÓ	2€BØ‡K�K�˜ ¨r¸€KÔ=Ø
€B‡F�FÑ&ˆVÑ&˜:Ó&ð 
�‰˜˜A˜q¨TˆÓ	2€BØ‡G�GŠLš,ªÀ€GÔBØ
€B‡F�FÑ"ˆVÑ"˜6Ó"à	�‰˜˜A˜r¨dˆÓ	3€BÜ�8‰8’LÓ!€DØ‡I�Iˆd�D˜$  s¡
¨D°3©J¸¸s¹
ÔCØ
€B‡F�FÑ$ˆVÑ$˜8Ó$à	�‰˜˜A˜r¨dˆÓ	3€BØ‡G�GˆAˆq�!�YÔØ‡G�GˆB��B˜	Ô"Ø‡G�GˆC��c˜9Ô%Ø
€B‡F�Fñ >ˆVð >˜6Ø °*õ>r0   zscale3d_all_scales.png)r   r   c                  ó¢  — t        j                  ddddid¬«      \  } }t        j                  ddd	«      }|d
z  }|dz
  dz  }|}|d   j	                  |||«       |d   j                  dddddd¬«       |d   j	                  |||«       |d   j                  d«       |d   j                  dd„ d„ f¬«       |d   j                  ddd¬«       y)z4Test all scale types with mixed scales on each axis.r   r   r4   r2   rl   r©   r2  rö  rÍ   r  rF  rÎ   r   r=  ÚsymlogÚlogit)r?  r@  rA  r\   r]   r^   ÚasinhÚfunctionc                 ó   — | dz  S )NrF  r@  ©r]  s    r.   ú<lambda>z)test_scale3d_all_scales.<locals>.<lambda>à  s
   € °q¸#±v€ r0   c                 ó   — | dz  S rl  r@  rV  s    r.   rW  z)test_scale3d_all_scales.<locals>.<lambda>à  s
   € ÈÈAÉ€ r0   )Ú	functionsr   )r\   r]   r^   N)rB   r7   r    rN  rŠ  rc   Ú
set_xscaleÚ
set_zscale)rG   re   rn  rX   rY   rZ   s         r.   Útest_scale3d_all_scalesr\  Ì  sã   € ô �|‰|˜A˜q¨l¸DÐ-AÈ7ÔS�H€Cˆô 	�‰�C˜˜bÓ!€Aà	ˆC‰€AØ	
ˆS‰�B‰€AØ	€Að ˆ�F‡N�N�1�a˜ÔØˆ�F‡J�J�e H°WØ H°Wð ô >ð ˆ�F‡N�N�1�a˜ÔØˆ�F×Ñ�gÔØˆ�F×Ñ�jÑ-=¹~Ð,NÐÔOØˆ�F‡J�J�g h°z€JÕBr0   zscale, expected_lims))r   r¯  )r=  )gr¤¹£¢?g¼Bm«ó?)rQ  r¯  )rR  )gÛ;í&Zž?g'–È.ï?)rS  r¯  c                 ó„  — t        j                  «       }|j                  d¬«      }|j                  | «       |j	                  | «       |j                  | «       |j                  j                  «        |j                  |j                  |j                  fD ]'  }t        j                  j                   |«       |«       Œ) y)zFDefault axis limits on an empty plot should be correct for each scale.r2   r3   N)rB   rC   rD   rZ  Ú
set_yscaler[  r‚   rƒ   Úget_xlimÚget_ylimrà  r    r  rý  )r)   Úexpected_limsrG   r(   r  s        r.   Útest_scale3d_default_limitsrb  ä  s‰   € ô �*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡M�M�%ÔØ‡M�M�%ÔØ‡M�M�%ÔØ‡J�J‡O�OÔà—K‘K §¡¨b¯k©kÐ:ò =ˆÜ
�
‰
×"Ñ"¡7£9¨mÕ<ñ=r0   z"ignore:Data has no positive valuesc                 ó4  — d}| j                  d¬«      |j                  d¬«      fD ]I  }|j                  d«       |j                  d«       |j                  d«       |j	                  |||¬«       ŒK | j
                  d   j                  g d¢g d¢g d	¢«       y
)zUFully clipped data (e.g. negative values on log) should look like an empty plot.
    )r2  rm   r2   r3   r=  r  r   )rœ   r0  rY  )rT  ru  r  )iùÿÿÿiøÿÿÿi÷ÿÿÿN)rD   rZ  r^  r[  rc   Úaxesrt   )r;   r<   Úlimsr(   s       r.   Útest_scale3d_all_clippedrf  ù  s�   € ð
 €DØ×#Ñ#¨tÐ#Ó4Ø×"Ñ"¨dÐ"Ó3ð5ò 0ˆà
�‰�eÔØ
�‰�eÔØ
�‰�eÔØ
�‰�D˜t¨$ˆÕ/ð0ð ‡M�M�!Ñ×Ñš,ª²lÕCr0   zscale3d_log_bases.pngc                  ó0  — t        j                  ddddid¬«      \  } }t        «       \  }}}|d   ddf|d	   dd
f|d   t        j                  dffD ]Î  \  }}}|j                  |||d¬«       |j                  d|¬«       |j                  d|¬«       |j                  d|¬«       |j                  |«       |t        j                  k(  sŒzdd„}|j                  j                  |«       |j                  j                  |«       |j                  j                  |«       ŒÐ |d   j                  |||d¬«       |d   j                  dddg¬«       |d   j                  dddg¬«       |d   j                  dddg¬«       |d   j                  d«       y)z-Test log scale with different bases and subs.r   r4   r2   )rm   r8  r©   rn  rm   zbase=10r5  zbase=2rÞ  zbase=er‚  r=  )ÚbaseNc                 ó”   — | dk  ryt        j                  | «      }t        j                  |t        |«      «      rdt        |«      z  S y)Nr   rs   z$e^{%d}$)r    r=  r  r)  )rX   rf   rm  s      r.   Úfmt_ez%test_scale3d_log_bases.<locals>.fmt_e  s=   € Ø˜’6ØÜ—f‘f˜Q“i�Ü—:‘:˜c¤5¨£:Ô.Ø&¬¨s«Ñ3Ð3Ør0   r<  rŒ   )Úsubsz
subs=[2,5]r¶  )rB   r7   r5  r    r-  rŠ  rZ  r^  r[  r¡   rM   Úset_major_formatterrN   rO   )	rG   re   rX   rY   rZ   r(   rh  r_   rj  s	            r.   Útest_scale3d_log_basesrm  
  sŽ  € ô �|‰|˜A˜q¨l¸DÐ-AÈ7ÔS�H€CˆÜÓ�G€A€qˆ!à  ™Y¨¨IÐ6Ø  ™Y¨¨8Ð4Ø  ™Y¬¯©¨hÐ7ð9ò 0‰ˆˆD�%ð 	�
‰
�1�a˜˜bˆ
Ô!Ø
�‰�e $ˆÔ'Ø
�‰�e $ˆÔ'Ø
�‰�e $ˆÔ'Ø
�‰�UÔØ”2—4‘4‹<óð �H‰H×(Ñ(¨Ô/Ø�H‰H×(Ñ(¨Ô/Ø�H‰H×(Ñ(¨Õ/ð'0ð, ˆ�I×Ñ�a˜˜A ÐÔ$Øˆ�I×Ñ˜ a¨ VÐÔ,Øˆ�I×Ñ˜ a¨ VÐÔ,Øˆ�I×Ñ˜ a¨ VÐÔ,Øˆ�I×Ñ˜Õ%r0   zscale3d_symlog_params.pngc            	      ó  — t        j                  ddddi¬«      \  } }t        j                  ddd«      }t        j                  |«      d	z  }|dz  }t        j
                  |«      t        j                  |«      dz  z  }|d
   df|d   d	ffD ]|  \  }}|j                  |||t        j                  |«      dd	¬«       |j                  d|¬«       |j                  d|¬«       |j                  d|¬«       |j                  d|› �«       Œ~ y)z2Test symlog scale with different linthresh values.r   r   r4   r2   r5   rY  ri   rŽ   rm   r   r2  rn  )rÏ   r  rƒ  rQ  )Ú	linthreshz
linthresh=N)rB   r7   r    rN  ÚsinhÚsignr%   rŠ  rZ  r^  r[  r¡   )rG   re   rn  rX   rY   rZ   r(   ro  s           r.   Útest_scale3d_symlog_paramsrr  -  sö   € ô �|‰|˜A˜q¨l¸DÐ-AÔB�H€Cˆô 	�‰�B˜˜2Ó€AÜ
�‰�‹
�R‰€AØ	ˆQ‰€AÜ
�‰�‹
”R—V‘V˜A“Y !‘^Ñ#€Aà˜q™6 3˜-¨#¨a©&°"¨Ð6ò /‰ˆˆIØ
�
‰
�1�a˜œbŸf™f Q›i¨i¸2ˆ
Ô>Ø
�‰�h¨)ˆÔ4Ø
�‰�h¨)ˆÔ4Ø
�‰�h¨)ˆÔ4Ø
�‰�z ) Ð-Õ.ñ/r0   zscale_type,kwargsr=  rh  rm   rk  rŒ   ÚnonpositiverÉ  rQ  ro  ÚlinscalerF  rS  Úlinear_widthrR  r5  c                 ó"  — t        j                  «       }|j                  d¬«      }|j                  |j                  |j
                  fD ]  } || fi |¤Ž Œ |j                  «       |j                  «       |j                  «       f| fdz  k(  sJ ‚y)z6Verify that scale keywords are accepted on all 3 axes.r2   r3   ri   N)	rB   rC   rD   rZ  r^  r[  Ú
get_xscaleÚ
get_yscaler  )Ú
scale_typerè  rG   r(   r9  s        r.   Útest_scale3d_keywords_acceptedrz  A  s}   € ô �*‰*‹,€CØ	�‰ DˆÓ	)€BØ—=‘= "§-¡-°·±Ð?ò %ˆÙˆzÑ$˜VÓ$ð%à�M‰M‹O˜RŸ]™]›_¨b¯m©m«oÐ>À:À-ÐRSÑBSÒSÐSÑSr0   c                 ó
  — t        j                  «       }|j                  d¬«      } t        |d| › d�«      d«       t	        j
                  t        d¬«      5   t        |d| › d�«      d	d
«       ddd«       y# 1 sw Y   yxY w)z7Log scale should warn when setting non-positive limits.r2   r3   r  r)   r=  znon-positiverb  r  r?  r  N)rB   rC   rD   r  rd  r  r  )rQ   rG   r(   s      r.   Útest_scale3d_limit_range_logr|  W  sz   € ô �*‰*‹,€CØ	�‰ DˆÓ	)€BØ#„GˆB�$�t�f˜EÐ"Ó# EÔ*ô 
�‰”k¨Ô	8ñ 0Ø%Œ��d˜4˜& Ð$Ó% c¨3Ô/÷0÷ 0ñ 0ús   ÁA9Á9Bc                  ó@  — t        j                  «       } | j                  d¬«      }|j                  dddddd¬«       d|j	                  «       fd|j                  «       fd|j                  «       ffD ])  \  }}|d	   d	kD  s
J |› d
�«       ‚|d   dk  rŒ!J |› d�«       ‚ y)z,Logit scale should constrain axis to (0, 1).r2   r3   rR  )rW  r1  )r?  r@  rA  r”   r•   r–   rX   rY   rZ   r   z$ lower limit should be > 0 for logitr   z$ upper limit should be < 1 for logitN)rB   rC   rD   rc   r_  r`  rà  ©rG   r(   rq  r  s       r.   Útest_scale3d_limit_range_logitr  c  s¸   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡F�F�' '°'Ø +°Kð ô Að ˜BŸK™K›MÐ*¨S°"·+±+³-Ð,@Ø˜BŸK™K›MÐ*ð,ò I‰	ˆˆcà�1‰v˜ŠzÐH˜d˜VÐ#GÐHÓHˆzØ�1‰v˜‹zÐH˜d˜VÐ#GÐHÓHˆzñIr0   ry  )r=  rQ  rR  rS  c                 ó  — t        j                  «       }|j                  d¬«      }|j                  | | | ¬«       g d¢g d¢g d¢g d¢dœ|    }t	        j
                  |«      }|j                  |j                  |j                  fD ]‚  }|j                  «       }|j                  |j                  dd	«      «      }|j                  «       j                  |«      }t        j                  j                  |j                  «       |d
¬«       Œ„ y)z1Forward/inverse transform should preserve values.r2   r3   r>  )r   rm   r  rE  )r  rœ   r   r   r  )ró   r2  rF  rö  g®Gáz®ï?)r=  rQ  rS  rR  rœ   r   g»½×Ùß|Û=rÒ  N)rB   rC   rD   rc   r    r!   rM   rN   rO   Úget_transformr!  rÄ  Úinvertedr  rý  r`   )ry  rG   r(   Útest_valuesrQ   Útransr[  Úinverses           r.   Ú test_scale3d_transform_roundtripr†  q  sæ   € ô �*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡F�F�* Z¸
€FÔCò "Ú'Ú&Ú,ñ	ð
 ñ€Kô —(‘(˜;Ó'€Kð —‘˜2Ÿ8™8 R§X¡XÐ.ò OˆØ×"Ñ"Ó$ˆØ—/‘/ +×"5Ñ"5°b¸!Ó"<Ó=ˆØ—.‘.Ó"×,Ñ,¨WÓ5ˆÜ
�
‰
×"Ñ" 7§?¡?Ó#4°kÈÐ"ÕNñ	Or0   c                  óÖ  — t        j                  «       } | j                  d¬«      }t        j                  t
        «      5  |j                  dd¬«       ddd«       t        j                  t
        «      5  |j                  dd¬«       ddd«       t        j                  t
        «      5  |j                  dd¬«       ddd«       y# 1 sw Y   ŒtxY w# 1 sw Y   ŒKxY w# 1 sw Y   yxY w)	z&Invalid kwargs should raise TypeError.r2   r3   r=  T)Úinvalid_kwargNrQ  rR  )	rB   rC   rD   rd  re  ro  rZ  r^  r[  rF   s     r.   Ú#test_scale3d_invalid_keywords_raiser‰  ‰  s¹   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä	�‰”yÓ	!ñ 1Ø
�‰�e¨4ˆÔ0÷1ô 
�‰”yÓ	!ñ 4Ø
�‰�h¨dˆÔ3÷4ô 
�‰”yÓ	!ñ 3Ø
�‰�g¨TˆÔ2÷3ð 3÷1ð 1ú÷4ð 4ú÷3ð 3ús$   Á CÁ5CÂ*CÃCÃCÃC(c                  ó  — t        j                  «       } | j                  d¬«      }|j                  ddd¬«        |j                  t        «       Ž  |j                  «       |j                  «       |j                  «       fdk(  sJ ‚y)z,Scale should persist after adding plot data.r2   r3   r=  r>  )r=  r=  r=  N)	rB   rC   rD   rc   rt   r5  rw  rx  r  rF   s     r.   Ú test_scale3d_persists_after_plotr‹  ˜  sg   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡F�F�% ¨e€FÔ4Ø€B‡G�GŒ^ÓÑØ�M‰M‹O˜RŸ]™]›_¨b¯m©m«oÐ>À,ÒNÐNÑNr0   c                  ól  — t        j                  «       } | j                  d¬«      }|j                  ddd¬«       |j	                  g d¢g d¢g d¢«       d|j                  «       fd|j                  «       fd|j                  «       ffD ])  \  }}|d	   d	kD  s
J |› d
�«       ‚|d   d	kD  rŒ!J |› d�«       ‚ y)z/Autoscale should work correctly with log scale.r2   r3   r=  r>  rC  rX   rY   rZ   r   z lower limit should be positiver   z upper limit should be positiveN)rB   rC   rD   rc   rŠ  r_  r`  rà  r~  s       r.   Útest_scale3d_autoscale_with_logr�  ¡  s»   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡F�F�% ¨e€FÔ4Ø‡J�JŠ|š\ª<Ô8ð ˜BŸK™K›MÐ*¨S°"·+±+³-Ð,@Ø˜BŸK™K›MÐ*ð,ò D‰	ˆˆcà�1‰v˜ŠzÐC˜d˜VÐ#BÐCÓCˆzØ�1‰v˜‹zÐC˜d˜VÐ#BÐCÓCˆzñDr0   c                  ór  — t        j                  «       } | j                  d¬«      }|j                  g d¢g d¢g d¢«       |j	                  ddd¬«       | j
                  j                  «        |j                  dd«      \  }}|dk(  sJ ‚||   t        j                  |j                  «       d   «      k(  sJ ‚y)	zD_calc_coord should return data coordinates with correct pane values.r2   r3   rC  r=  r>  rF  r   N)rB   rC   rD   rŠ  rc   r‚   rƒ   Ú_calc_coordrd  r>  r`  )rG   r(   ÚpointÚpane_idxs       r.   Útest_scale3d_calc_coordr’  ¯  s“   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡J�JŠ|š\ª<Ô8Ø‡F�F�% ¨e€FÔ4Ø‡J�J‡O�OÔà—n‘n S¨#Ó.�O€Eˆ8à�qŠ=Ðˆ=Ø�‰?œfŸm™m¨B¯K©K«M¸!Ñ,<Ó=Ò=Ð=Ñ=r0   c                  óÆ  — t        j                  «       } | j                  d¬«      }|j                  d«       t	        j
                  t	        j                  ddd«      t	        j                  ddd«      «      \  }}||z  dz
  }|j                  |||«       | j                  j                  «        |j                  «       \  }}d|cxk  r|cxk  rdk  sn J d	||f› �«       ‚y
)zCEnsure non-positive Z values on a log z-axis does not corrupt zlim.r2   r3   r=  r   ri   rk   gü©ñÒMbP?g     @�@zzlim corrupted: N)rB   rC   rD   r[  r    rí   rN  r{  r‚   rƒ   rà  )rG   r(   r   r!  r"  r  r  s          r.   Ú*test_plot_surface_log_scale_invalid_valuesr”  ½  sº   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡M�M�%ÔÜ�;‰;”r—{‘{ 1 a¨Ó+¬R¯[©[¸¸A¸qÓ-AÓB�D€A€qØ	ˆA‰�‰	€AØ‡O�O�A�q˜!ÔØ‡J�J‡O�OÔà—‘“�J€Dˆ$Ø�$Ô#˜Ô# Ô#ÐFÐ'7¸¸t¸°~Ð%FÓFÑ#r0   c                  óð  — t        j                  «       } | j                  d¬«      }|j                  dgdgdg«       | j	                  «        | j                  «       }|j                  |«      }|j                  d«       |j                  d«       |j                  d«       | j	                  «        |j                  |«      }|j                  |j                  kD  s|j                  |j                  kD  sJ ‚y y )Nr2   r3   r   r÷  rø  rù  )rB   rC   rD   rŠ  Údraw_without_renderingÚ_get_rendererr   r°   r±   r²   r  r÷  )rG   r(   r#  Úbb_no_labelsÚbb_fulls        r.   Ú*test_axes3d_tightbbox_includes_axis_labelsrš  Ë  sÎ   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡J�J�ˆs�Q�C˜!˜Ôà×ÑÔ Ø× Ñ Ó"€HØ×#Ñ# HÓ-€Là‡M�M�)ÔØ‡M�M�)ÔØ‡M�M�)Ôà×ÑÔ Ø×Ñ˜xÓ(€Gð �=‰=˜<×-Ñ-Ò-°·±À,×BUÑBUÒ1UÐUÐUÐ1UÐ-r0   )àÚ	functoolsr   rz  ry  Úpackaging.versionr   Úparse_versionrd  Úmpl_toolkits.mplot3dr   r   r   r   Úmpl_toolkits.mplot3d.axes3dr   rþ  Ú
matplotlibr  Úmatplotlib.backend_basesr	   r
   r   r   r   rý   r   rú  Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.collectionsr   r   Úmatplotlib.patchesr   r   Úmatplotlib.pathr   Úmatplotlib.textr   r   Úmatplotlib.pyplotÚpyplotrB   Únumpyr    Úpartialrx  r/   r=   rH   rR   rg   r{   rŠ   r—   r¦   r¬   r´   rÉ   rÜ   rå   rò   ÚversionÚmajorrõ   r	  Úmachiner#  r+  r.  r6  ÚmarkÚparametrizerB  rL  rR  rY  r`  ri  r€  r…  rŒ  r�  r’  r—  rœ  r«  rÏ  rÕ  rØ  rÛ  rè  rê  rò  rû  rý  r  r  r  r  r'  r+  r>  rA  rG  rI  rK  rM  rP  rR  r_  rc  rh  rl  rt  rz  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.  r7  r$  r–  rC  rE  r€  r‚  r‡  rŒ  rŸ  r¢  r«  r³  r¾  rÍ  rÔ  rÜ  rã  rå  rî  rô  r  r4  rK  r,  ÚRIGHTrk  r   Úcontextrs  rx  rŽ  r”  r—  rš  rŸ  rO  Útuplero  r¢  r©  r«  r´  r¹  r½  rÄ  rÈ  rä  Ústrrî  rô  rü  rþ  r   r  r	  r  r  r  r  r&  r3  r5  r7  r;  rO  r\  rb  Úfilterwarningsrf  rm  rr  rz  r|  r  r†  r‰  r‹  r�  r’  r”  rš  r@  r0   r.   ú<module>rµ     sÏ  ðÛ Û Û Û 
å 4Û ç >Ó >Ý AÛ ÷:ñ :å ß ;ß Oß Aß 0Ý  Ý  Ý å Û ð +˜×*Ñ*Ø $¨iô9Ð òHñ Óñó ðñ
 ˜Ð(°Ô8ñó 9ðñ Ð3Ð4¸GÔDñ%ó Eð%ñ Ð-Ð.¸EÈÔQñ@ó Rð@ñ Ð6Ð7ÀUØ%ô'ñ@ó'ð@ò.5ò2"ñ  ˜˜°UÀ'ÔJñ(ó Kð(ñ  Ð1Ð2Ø$)°ô:ñ4ó:ð4ò
Jñ Ð3Ð4¸GØ%(§\¡\°XÒ%=™EÀ1ôFñóFðñ( ˜˜¨WÔ5ñJó 6ðJò	/ñ Ð+Ð,°GÔ<ñó =ðñ& Ð.Ð/°wÙ$1°"·*±*×2DÑ2DÓ$E×$KÑ$KÈaÒ$O™DÐUVôXñ	óXð	òMñ6 ˜Ð)°Ø!1 ×!1Ñ!1Ó!3°xÒ!?™AÀUôLñGóLðGñ Ð1Ð2¸'ÔBñó Cðñ Ð)Ð*°'Ô:ñ
ó ;ð
ñ Ð.Ð/°wÔ?ñó @ðð ‡�×ÑÐ)¨V²YÐ,?Ø-2²LÐ,AØ-2²LÐ,Að,Có Dñ Óñó óDðñ" Ð)Ð*°¸GÔDñó Eðòñ ˜˜¨wÔ7ñó 8ðñ Óñó ðò$ñ" Ð+Ð,°GÔ<ñó =ðñ0 Óñ	*ó ð	*ñ ˜Ð)°Ô9ñ	.ó :ð	.ñ Ð.Ð/°wÔ?ñ&ó @ð&ñ Ð2Ð3¸7ÔCñ4ó Dð4ñ Óñ	*ó ð	*ñ Óñ
-ó ð
-ñ Óñ9ó ð9ñ( Óñ4Có ð4Cðn ‡�×Ñ˜ # s Ó,ÙÓñ,ó ó -ð,ñ& Óñ2ó ð2ñ. Ð.Ð/°UÀ'ÔJñ$ó Kð$ñ Ð0Ð1¸ÔAñHó BðHñ, Ð3Ð4¸GÔDñ=ó Eð=ñ$ ˜Ð)°Ô9ñ-ó :ð-ñ$ Ð=Ð>ÀgÔNñ	ó Oð	ñ Ð/Ð0¸Ô@ñó Aðñ Ð/Ð0¸Ô@ñó Aðñ4 Óñó ðñ" Óñ!ó ð!ñ Ð7Ð8ÀÔHñó Iðñ ˜˜°EÀÔIñó Jðñ0 ÓñHó ðHñ0 ˜Ð)¨u¸GÔDñ8ó Eð8ñ" Ð/Ð0°dÀ'ÔJñ?ó Kð?ñ" Ð*Ð+°7Ô;ñ5ó <ð5ñ Ð4Ð5¸WÔEñ4ó Fð4ñ Ð5Ð6¸gÔFñ4ó Gð4ñ Ð5Ð6¸gÔFñ6ó Gð6ò9ò8ñ ˜Ð(°¸UÔCñó Dðñ( ÓñIó ðIñ Ð.Ð/°wÔ?ñIó @ðIñ" Ð2Ð3¸7ÔCñ	ó Dð	ò
Dñ Óñó ðò6%ñ Ð6Ð7¸wÔGñ+ó Hð+òñ Ð5Ð6¸gÔFñ+ó Gð+ñ$ Ð8Ð9ÀÔIñó Jðñ8 Ð9Ð:À'ÔJñó Kðò4SòRñ Ð.Ð/¸UÈ'ÔRñ1ó Sð1ñ* Ð)Ð*¸ÀWÔMñó Nðñ Ð-Ð.Ø$)°ô:ñó:ðò	!ò
ò,ó ñ" Ð/Ð0¸Ô@ñó Aðñ, Ð5Ð6¸gÔFñó Gðò:	/ò9ð  ‡�×Ñ˜ Ó1Ø‡�×Ñ˜Ð!4Ó5ñ:ó 6ó 2ð:ñ( Óñ ó ð ò2ñ Ð2Ð3Ø$)°ô:ñ5ó:ð5ñ Ð+Ð,¸%ÀwÔOñó Pðñ Ð/Ð0¸Ô@ñó Aðñ Óñ#4ó ð#4ðL ‡�×Ñ˜ 2§6¢6¨2¯6ª6Ð"2Ó3Ø‡�×ÑÐ+ò .ó ñ&óó 4ð&÷y+ñ y+òxPñ$ Óñ<ó ð<ò#ò(.ñ" Óñ$Aó ð$AñN Óñ@ó ð@ñ Ð$Ð%¨WÔ5ñ-ó 6ð-ñ Ð4Ð5¸WÈ%ÔPñ"ó Qð"ñ" Ð)Ð*°'Ø!1 ×!1Ñ!1Ó!3°xÒ!?™AÀUôLñóLðñ �<�.¨Ø+˜8×+Ñ+Ó-°Ò9‘a¸uôFñ"óFð"ñ8 Ð)Ð*°'Ô:ñ".ó ;ð".òJ3ò %òB#ñ" Óñ
6ó ð
6ò	)ò[Fð| ‡�×Ñ˜ØCóEñARóEðARòH$0ðN ‡�×ÑÐ3Ø! ;×#3Ò#3°TØDðFà! ;×#3Ò#3°SØGðIà! ;×#3Ò#3°SØFðHà! ;×#4Ò#4°dØGðIà  +×"2Ò"2°DØJðLà  +×"2Ò"2°CØIðKà  +×"2Ò"2°CØHðJðKóLñ:3óLð:3ðz ‡‚×Ò�9ÓÙÓñ@ó ó ð@ò(Dñ Ð(Ð)°tÀ7ÔKñOó LðOòdJò>:ò'ò#ð ‡�×ÑÐ3Ø	�U˜BÐ DÐEØ	�Z Ð%IÐJØ	�Z Ð%IÐJØ	‘U“W˜s B˜iÐ)MÐNØ	‘U“W˜s B˜iÐ)MÐNØ	‘U“W˜s B˜iÐ)MÐNØ	�E˜C ˜8Ø	2ð	4à	�E ¨°Ñ3Ø	2ð	4à	�E ¨Ñ+Ø	2ð	4à	�F˜BÐ LÐMð6ó ñ$óð$ñ Óò
2ó ð
2ó0ñ Óò	ó ð	ñ Ñ#7Ð"8Ø"Øõ!òó!ðóóóð ‡�×ÑÙJð ã/Û/Û&Û0ð	ñ ™jÐ)©K¹Ð+EÐFÙ™zÐ*©[¹+Ð,FÐGÙ™{Ð+©k¹:Ð-FÐGðó
 ð	
ð  ã/Û/Û&Û0ð	ñ ™zÐ*©Z¹Ð,DÐEÙ™jÐ)©K¹Ð+DÐEÙ™{Ð+©j¹*Ð-EÐFðó
 ð	
ð  ã/Û/Û&Û0ð	ñ ™{Ð+©j¹+Ð-FÐGÙ™jÐ)©J¹
Ð+CÐDÙ™kÐ*©Z¹Ð,DÐEðó
 ð	
ð?.ó1òd%Hóe1ðd%HðP ‡�×Ñ™ª/Ó:ñ¨cñ °dó ó ;ðð. ‡�×ÑÙ$à	Ó,Ð-Ø	Ó,Ð-Ø	Ó,Ð-ðóòKóðKñ Ñ#6Ð"7Ø"Øõ!ò/ó!ð/ñ Ñ#;Ð"<Ø"Øõ!ò)ó!ð)ñ Óòó ðó2=ñ4 Ñ2Ð3¸7ÔCò
$ó Dð
$ó7óóSó,;ó8,Ró^:óBóóñ Ñ2Ð3¸7Ø$)©uõ6ò<>ó6ð<>ñ~ Ñ1Ð2¸'ÈuÕUòCó VðCð. ‡�×ÑÑ/ó 2ó ð ‡‚×Ò�9Óò
=ó óð
=ñ ÓØ‡�×ÒÑ@ÓAòDó Bó ðDñ Ñ0Ð1¸ÈeÕTò&ó Uð&ñD Ñ4Ð5¸WØ$)õ+ò/ó+ð/ð$ ‡�×ÑÑ,Ù
‰V‘RˆLÐÙ
‰V�QˆKÐÙ
‰V�a™�VÐÐÙ
‰]™FÐ#Ð$Ù‘˜ˆ{ÐÙ‘˜QÐÐ Ù‘
™CÐ Ð!Ù‘˜™A˜ÐÐ Ù‰~™sÐ#Ð$Ù‰v�qˆkÐÙ‰}™fÐ%Ð&ð/ó òTóðTð ‡�×Ñ˜¢Ó1ò0ó 2ð0óIð ‡�×Ñ™Ó'JÓKòOó LðOó.3óOóDó>óGôVr0   