Ë
    ´2Úi´* ã                   óâ  — d dl Z d dlZd dlZd dlZd dlmZmZmZmZ d dl	Z
d dlmZmZmZ d dl	mZ d dl	mZmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZmZ d d
lm Z  d dl!m"Z" d dl#m$Z% d dl&Z' e jP                  edd¬«      Z)d„ Z* edg¬«      d„ «       Z+ e)dgd¬«      d„ «       Z, e)dgd¬«      d„ «       Z- e)dgdd¬«      d„ «       Z. e)dgdd¬«      d„ «       Z/ e)dgdd¬«      d„ «       Z0d „ Z1 e)d!gd¬«      d"„ «       Z2 e)d#gd¬«      d$„ «       Z3d%„ Z4 e)d&gd¬«      d'„ «       Z5 e)d(gd¬«      d)„ «       Z6d*„ Z7 e)d+gd ejp                  «       d,v rd-nd ¬.«      d/„ «       Z9 e)d0gd¬«      d1„ «       Z: e)d2gd¬«      d3„ «       Z; e)d4gd¬«      d5„ «       Z<ejz                  j}                  d6d7g d8¢gd9g d:¢gd;g d<¢gg«       edg¬«      d=„ «       «       Z? e)d>gd?d¬@«      dA„ «       Z@dB„ ZA e)dCgd¬«      dD„ «       ZB edg¬«      dE„ «       ZCdF„ ZD e)dGgd¬«      dH„ «       ZE edg¬«      dI„ «       ZF e)dJgd¬«      dK„ «       ZG e)dLgd¬«      dM„ «       ZH e)dNgd¬«      dO„ «       ZI edg¬«      dP„ «       ZJ edg¬«      dQ„ «       ZKejz                  j}                  dRddg«       edg¬«      dS„ «       «       ZLejz                  j}                  dTdUdVg«       edg¬«      dW„ «       «       ZM edg¬«      dX„ «       ZN e)dYgdZd¬@«      d[„ «       ZO e)d\gd¬«      d]„ «       ZP ed^gd¬«      d_„ «       ZQ e)d`gd¬«      da„ «       ZR e)dbgd¬«      dc„ «       ZS edg¬«      dd„ «       ZT e)degd¬«      df„ «       ZU e)dggdd¬«      dh„ «       ZV edg¬«      di„ «       ZW e)djgdkd¬@«      dl„ «       ZX e)dmgdnd¬@«      do„ «       ZY e)dpgd¬«      dq„ «       ZZ e)drgd¬«      ds„ «       Z[ e)dtgd¬«      du„ «       Z\dv„ Z]dw„ Z^ e)dxgd¬«      dy„ «       Z_ edg¬«      dz„ «       Z` e)d{gd¬«      d|„ «       Zad}„ Zb edg¬«      d~„ «       Zcd„ Zd e)d€gd¬«      d�„ «       Zed‚„ Zf e)dƒgd¬«      d„„ «       Zg e)d…gd¬«      d†„ «       Zh e)d‡gd¬«      dˆ„ «       Zi e)d‰gdd¬«      dŠ„ «       Zj e)d‹gdd¬«      dŒ„ «       Zk e)d�gdd¬«      dŽ„ «       Zld�„ Zmd�„ Znd‘„ Zodßd“„Zp e)d”gd¬«      d•„ «       Zq e)d–gd¬«      d—„ «       Zrd˜„ Zsd™„ Ztejz                  j}                  dšd›«      ejz                  j}                  dœd�«      dž„ «       «       ZudŸ„ Zv e)d gdd¬«      d¡„ «       Zw e)d¢gdd¬«      d£„ «       Zx e)d¤gd¬«      d¥„ «       Zyejz                  j}                  d¦e'jô                  e'jö                  g«      ejz                  j}                  d§g d¨¢«      d©„ «       «       Z| G dª„ d««      Z}d¬„ Z~ edg¬«      d­„ «       Zd®„ Z€d¯„ Z� edg¬«      d°„ «       Z‚ edg¬«      d±„ «       Zƒ ed²gd¬«      d³„ «       Z„ e)d´gd¬«      dµ„ «       Z… e)d¶gd¬«      d·„ «       Z† ed¸gdd¹¬.«      dº„ «       Z‡ ed»gd¬«      d¼„ «       Zˆd½„ Z‰d¾„ ZŠd¿„ Z‹ edg¬«      dÀ„ «       ZŒdÁ„ Z�dÂ„ ZŽejz                  j}                  dÃdÄe�j                  ddÅfdÄe�j                  dÆdÇfdÄe�j                  dÈdÉfdÄe�j                   ddÊfdËe�j                  ddÌfdËe�j                  dÆdÍfdËe�j                  dÈdÎfg«      dÏ„ «       Z‘e
�j$                  �j'                  d«       edg¬«      dÐ„ «       «       Z”dÑ„ Z• edÒgddgd¬Ó«      dÔ„ «       Z–dÕ„ Z—dÖ„ Z˜d×„ Z™ejz                  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g¬«      då„ «       Zždæ„ ZŸ edg¬«      dç„ «       Z  edègdd¬é«      dê„ «       Z¡dë„ Z¢dì„ Z£ejz                  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�dgdd¬é«      �d„ «       Z¥ e�dgdd¬é«      �d„ «       Z¦ edg¬«      �d„ «       Z§�d	„ Z¨ e)�d
gd¬«      �d„ «       Z©�d„ Zª�d„ Z«y(  é    N)ÚAxes3DÚaxes3dÚproj3dÚart3d)ÚMouseButtonÚ
MouseEventÚNavigationToolbar2)Úcm)ÚcolorsÚpatches)Úimage_comparisonÚcheck_figures_equal)Ú
mock_event)ÚLineCollectionÚPolyCollection)ÚCircleÚ	PathPatch)ÚPath)ÚTextTÚdefault)Úremove_textÚ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         ú]/var/www/html/acx/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ó    Úpng)Ú
extensionsc                 ó^   — | 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Õr.   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…Nr.   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   2   su   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡M�M�"ÔØ‡M�M�"ÔØ‡M�M�"ÔØ—‘˜2Ÿ8™8 R§X¡XÐ.ò %ˆØ�	‰	×Ñ˜eÕ$ñ%r.   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_positionsrf   =   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¸ˆÕ?ñ@r.   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)ÚautoÚequalÚequalxyÚequalyzÚequalxzri   r   é   r4   r2   r5   r   éÿÿÿÿ)r   r   é   ©r'   r   ©r   r   r   ©rm   é   ro   Údatalim©Ú
adjustablezequal (cube))rB   r7   r_   r-   Ú	enumerateÚ	set_titleÚset_box_aspectÚ
set_aspect)ÚaspectsÚ_rd   r&   Úis        r,   Útest_aspectsr~   I   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×Ñ˜Õ'r.   zaspects_adjust_box.pngc                  óî   — d} t        j                  dt        | «      ddid¬«      \  }}t        |«      D ]>  \  }}t	        |g d¢¬«       |j                  | |   «       |j                  | |   d	¬
«       Œ@ y )N)rh   ri   rj   rk   rl   r   r4   r2   )é   rm   )r6   Úfigsize)rs   rm   ro   rp   Úboxru   )rB   r7   Úlenrw   r-   rx   rz   )r{   rG   rd   r}   r&   s        r,   Útest_aspects_adjust_boxr„   Z   su   € ð A€GÜ�|‰|˜Aœs 7›|¸ÀtÐ8LØ$+ô-�H€Cˆô ˜3“ò 4‰ˆˆ2Ü�BšiÕ(Ø
�‰�W˜Q‘ZÔ Ø
�‰�g˜a‘j¨UˆÕ3ñ4r.   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_labelrx   Ú
set_xlabelÚ
set_ylabelÚ
set_zlabelÚreprrF   s     r,   Útest_axes3d_reprrŒ   g   sx   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡L�L�ÔØ‡L�L�ÔØ‡M�M�#ÔØ‡M�M�#ÔØ‡M�M�#ÔÜ�‹8ð	IòJð Jñ Jr.   zaxes3d_primary_views.pngc                  ó|  — 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   rm   r4   r2   r5   rX   rY   rZ   Úorthor   r   ©ÚelevÚazimÚroll)
rB   r7   rw   Úflatrˆ   r‰   rŠ   Úset_proj_typeÚ	view_initÚtight_layout)ÚviewsrG   rd   r}   r&   s        r,   Útest_axes3d_primary_viewsrœ   t   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ô ×ÑÕr.   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   )é   é   é
   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r.   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ˆÕ.ñ/r.   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 )Nrs   ro   r   ))r    iÄÿÿÿr   )r    r    r    )éâÿÿÿr    r�   )é,  r»   r   ©r�   r2   r3   r5   r   T©Úshader“   )r   r«   ÚmeshgridÚravelrB   rC   Ú	figaspectrƒ   r7   r8   r%   r¸   r™   ÚcanvasÚdraw)rX   rY   Úx2dÚy2drZ   r›   rG   rd   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Õr.   zbar3d_notshaded.pngc            	      óŠ  — 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   rs   ro   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Õr.   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)rm   rs   T)	rX   rY   rZ   ÚdxÚdyÚdzr©   r¿   Úlightsourceé   rs   )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)Úaarch64Úppc64leÚs390xgü©ñÒMb`?)r   Útolc                  óŽ  — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}|j                  |||ddt        j                  ¬«       |j                  |||ddt        j                  ¬«       |j                  |||d	d
t        j                  ¬«       |j                  dd
dd
dd¬«       y )Nr2   r3   çš™™™™™©?rZ   éœÿÿÿ©r§   ÚoffsetÚcmaprX   éØÿÿÿrY   é(   éd   )ÚxminÚxmaxÚyminÚymaxÚzminÚzmax)	rB   rC   rD   r   Úget_test_dataÚcontourr
   rÕ   rQ   ©rG   r&   ÚXÚYÚZs        r,   Útest_contour3drø   Ý   s¡   € ô �*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø‡J�Jˆq�!�Q˜S¨´B·K±K€JÔ@Ø‡J�Jˆq�!�Q˜S¨´2·;±;€JÔ?Ø‡J�Jˆq�!�Q˜S¨´"·+±+€JÔ>Ø‡G�G�˜2 C¨b°tÀ#€GÕFr.   zcontour3d_extend3d.pngc            	      ó:  — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}|j                  |||ddt        j                  d¬«       |j                  dd	«       |j                  d
d«       |j                  dd«       y )Nr2   r3   rä   rZ   rå   T)r§   rç   rè   Úextend3dr»   r    éìÿÿÿrê   é°ÿÿÿéP   )rB   rC   rD   r   rò   ró   r
   rÕ   Úset_xlimÚset_ylimÚset_zlimrô   s        r,   Útest_contour3d_extend3dr  ê   s{   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø‡J�Jˆq�!�Q˜S¨´B·K±KÈ$€JÔOØ‡K�K��RÔØ‡K�K��RÔØ‡K�K��RÕr.   zcontourf3d.pngc                  óÌ  — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}|j                  |||ddt        j                  ¬«       |j                  |||ddt        j                  ¬«       |j                  |||d	d
t        j                  ¬«       |j                  dd
«       |j                  dd
«       |j                  dd«       y )Nr2   r3   rä   rZ   rå   ræ   rX   ré   rY   rê   rë   )rB   rC   rD   r   rò   Úcontourfr
   rÕ   rþ   rÿ   r   rô   s        r,   Útest_contourf3dr  õ   s±   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø‡K�K��1�a˜c¨$´R·[±[€KÔAØ‡K�K��1�a˜c¨#´B·K±K€KÔ@Ø‡K�K��1�a˜c¨"´2·;±;€KÔ?Ø‡K�K��RÔØ‡K�K��RÔØ‡K�K��cÕr.   zcontourf3d_fill.pngc                  óÎ  — t        j                  «       } | 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t        j                  ¬
«       |j                  dd«       |j                  dd«       |j                  dd«       y )Nr2   r3   éþÿÿÿr   ç      Ð?r   çš™™™™™¹?ro   çš™™™™™¹¿)rç   Úlevelsrè   rn   r   )rB   rC   rD   r   rÀ   r«   Úclipr  r
   rÕ   rþ   rÿ   r   rô   s        r,   Útest_contourf3d_fillr    s»   € ä
�*‰*‹,€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ÔFØ‡K�K��AÔØ‡K�K��AÔØ‡K�K��AÕr.   zextend, levelsrV   )r   rs   rÑ   Úmin)r   rs   rÑ   é   Úmax)r   r   rs   rÑ   c                 ór  — t        j                  t        j                  ddd«      t        j                  ddd«      «      \  }}|dz  |dz  z   }t        j                  d   j                  «       }|j                   |d«      «       |j                   |d«      «       dd|d	œ}|j                  d
¬«      }	 |	j                  |||fdg d¢i|¤Ž | j                  d
¬«      }
 |
j                  ||||fd|i|¤Ž |	|
fD ]8  }|j                  dd«       |j                  dd«       |j                  dd«       Œ: y )Nr  r   r  Úviridisr   éÿ   r   é   )ÚvminÚvmaxrè   r2   r3   r
  )r   r   rs   rÑ   r  Úextendéöÿÿÿr¢   )r   rÀ   r«   ÚmplÚ	colormapsÚcopyÚ	set_underÚset_overrD   r  rþ   rÿ   r   )r;   r<   r  r
  rõ   rö   r÷   rè   ÚkwargsÚax_refÚax_testr&   s               r,   Útest_contourf3d_extendr     s(  € ô
 �;‰;”r—y‘y  Q¨Ó-¬r¯y©y¸¸QÀÓ/EÓF�D€A€qà	ˆ1‰ˆq�!‰t‰€Aô �=‰=˜Ñ#×(Ñ(Ó*€DØ‡N�N‘4˜“7ÔØ‡M�M‘$�s“)Ôà ¨DÑ1€Fà× Ñ ¨DÐ Ó1€FØ€F‡O�O�A�q˜!Ñ>¢OÐ>°vÒ>à×"Ñ"¨dÐ"Ó3€GØ€G×Ñ�Q˜˜1˜fÑ>¨VÐ>°vÒ>à�wÐò ˆØ
�‰�B˜ÔØ
�‰�B˜ÔØ
�‰�C˜Õñr.   ztricontour.pngç{®Gáz”?)râ   r   c                  óª  — 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 )Ni!N,éè  ç      à?r   r   r2   r3   )	rB   rC   r   ÚrandomÚseedÚrandrD   Ú
tricontourÚtricontourf)rG   rX   rY   rZ   r&   s        r,   Útest_tricontourr*  -  sª   € ä
�*‰*‹,€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˜Õr.   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  r¢   r   r   r$  )rB   rC   rD   r   Úlinspacer%  Úrandintró   )rG   r&   ÚnxÚnyrX   rY   rZ   s          r,   Útest_contour3d_1d_inputr0  <  sz   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ�F€BˆÜ
�‰�C˜˜RÓ €AÜ
�‰�C˜˜RÓ €AÜ
�	‰	×Ñ˜!˜Q  R Ó)€AØ‡J�Jˆq�!�Q˜˜Õr.   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   éüÿÿÿrs   rë   r  r   r   )	rB   rC   rD   r   r,  ÚpiÚsinÚcosÚplot)rG   r&   ÚthetarZ   r(   rX   rY   s          r,   Útest_lines3dr8  G  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�!Õr.   c                 óœ   — | j                  d¬«      }|j                  dgdgd«       |j                  d¬«      }|j                  ddd«       y )Nr2   r3   r   Úo©rD   r6  ©r;   r<   Úax1Úax2s       r,   Útest_plot_scalarr?  S  sL   € à
×
Ñ
¨$Ð
Ó
/€CØ‡H�HˆaˆS�1�#�sÔØ
×
Ñ
¨Ð
Ó
.€CØ‡H�HˆQ��3Õr.   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_datarH  [  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«      }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   r5  r3  Úexp)Úts    r,   Úfztest_mixedsubplots.<locals>.fn  s,   € Ü�v‰v�aœŸ™‘g˜a‘iÓ ¤2§6¡6¨1¨"£:Ñ-Ð-r.   ç        ç      @r  r!  ç       @r½   r   r   Úbozk--r³   )ÚmarkerfacecolorTr2   r3   éûÿÿÿro   r  rê   r   F)ÚrcountÚccountÚ	linewidthÚantialiasedrn   )r   r«   rB   rC   rÂ   rD   r6  rE   rÀ   Úhypotr4  Úplot_surfaceÚ
set_zlim3d)	rM  Út1Út2rG   r&   rõ   rö   ÚRr÷   s	            r,   Útest_mixedsubplotsr^  l  s  € ò.ô 
�‰�3˜˜SÓ	!€BÜ	�‰�3˜˜TÓ	"€Bä
�*‰*œ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Õr.   c                 óà   — | j                  d¬«      }|j                  dddd¬«       | j                  «        |j                  d¬«      }|j                  «        |j                  dddd¬«       y )Nr2   r3   r$  zsome string©Ús)rD   Útextrš   r<  s       r,   Útest_tight_layout_textrc  „  sj   € ð ×
Ñ
¨$Ð
Ó
/€CØ‡H�HˆR��R˜=€HÔ)Ø×ÑÔà
×
Ñ
¨Ð
Ó
.€CØ×ÑÔØ‡H�HˆR��R˜=€HÕ)r.   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   r¢   r(   r:  )r£   Úmarkerr¡   rŸ   ú^r   rn   rõ   ©rB   rC   rD   Úscatterr   r«   ©rG   r&   rX   rY   rZ   s        r,   Útest_scatter3drj  ‘  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Õ-r.   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   r¢   r(   rW   r:  )Ú	facecolorÚ	edgecolorre  r¡   rŸ   ra  )r©   re  rg  rF   s     r,   Útest_scatter3d_colorrn  ž  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Ø ð õ &r.   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   r¢   r:  )re  rV  rg  rF   s     r,   Útest_scatter3d_linewidthrp  ®  s[   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bð ‡J�JŒr�y‰y˜‹}œbŸi™i¨›m¬R¯Y©Y°r«]Ø¤R§Y¡Y¨r£]ð õ 4r.   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   r¢   r:  ©re  )re  Ú
linewidths)rD   rh  r   r«   Úset_linewidths©r<   r;   r  r£   r  s        r,   Ú%test_scatter3d_linewidth_modificationrv  ¸  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ð õ -r.   c                 óà  — |j                  d¬«      }|j                  t        j                  d«      t        j                  d«      t        j                  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   r¢   r:  rr  ÚC1ÚC2ç333333Ó?çffffffæ?ro   FéK   rm   )re  rl  rm  rª   Ú
depthshadera  rs  )rD   rh  r   r«   Úset_facecolorÚset_edgecolorÚ	set_alphaÚget_depthshadeÚset_depthshadeÚ	set_sizesÚfullrt  ru  s        r,   Útest_scatter3d_modificationr…  Æ  s'  € ð ×"Ñ"¨dÐ"Ó3€GØ�‰œŸ	™	 "›¤r§y¡y°£}´b·i±iÀ³mØ"ð 	ó 	$€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ð õ 9r.   r}  c                 óÌ  — t         j                  dd…dd…f   \  }}t        j                  |j                  «      j	                  |j
                  «      }t        j                  |j
                  d«      }d|ddd…ddd…f<   d|ddd…ddd…f<   t        j                  |j
                  d«      }d	|dd
…dd
…f<   d|dd…dd…f<   d|dd…dd…f<   t        j                  |j
                  d«      }d|dd
…dd
…f<   d|d
d…dd
…f<   d|d
d…d
d…f<   t        j                  |j
                  d«      }	d
|	ddd…ddd…f<   d
|	ddd…ddd…f<   |||||||	fD �
cg c]  }
|
j                  «       ‘Œ c}
\  }}}}}}}	| 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c c}
w )z1Test that marker properties are correctly sorted.Nr¢   é   rë   r   r   r   ÚC0rx  ro   ry  rÑ   rs   ÚC3ÚC4ÚC5ÚC6é	   ÚC7r2   r3   c              3   óF   K  — | ]  }t        j                  |«      –— Œ y ­w©N)r   Úunique)Ú.0Úas     r,   ú	<genexpr>z)test_scatter3d_sorting.<locals>.<genexpr>û  s   è ø€ ÒN˜QŒB�I‰I�a�LÑNùs   ‚!©Údtype)ra  ÚfcÚecÚlwrª   r}  )r   Úmgridr«   ÚsizeÚreshapeÚshaper„  r_   rD   r   r!   ÚmaÚmasked_arrayÚfloatÚrepeatr"   Úmaskrh  )r<   r;   r}  rY   rX   rZ   ÚsizesÚ
facecolorsÚ
edgecolorsrs  r“  r  Úsetsra  r—  r˜  r™  Úsubsetr  s                      r,   Útest_scatter3d_sortingr¨  Û  sÓ  € ô
 �8‰8�C�R�C˜˜"˜�HÑ�D€A€qÜ
�	‰	�!—&‘&Ó×!Ñ! !§'¡'Ó*€Aä�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ùò5:s   ÅI!r•   iÎÿÿÿé‚   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.
    rn   r   r   rŸ   rY   r2   r3   é¬  ©ra  r£   r“   N)rD   rh  r™   ©r;   r<   r•   rX   rY   rZ   r©   r&   s           r,   Ú$test_marker_draw_order_data_reversedr®    s¾   € ð 
ˆQˆ€AØ	
ˆBˆ€AØ	
ˆAˆ€AØ�#ˆJ€EØ	×	Ñ	¨Ð	Ó	.€BØ‡J�Jˆq�!�Q˜$ %€JÔ(Ø‡L�L�a˜d¨€LÔ+Ø	×	Ñ	¨Ð	Ó	-€BØ‡J�Jˆq‘�2�‰w˜™$˜B˜$™ ¡4 R 4¡¨D°E¹$¸B¸$±K€JÔ@Ø‡L�L�a˜d¨€LÕ+r.   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©  rn   r   r   rŸ   rY   r2   r3   r«  r¬  r“   Nr‘   )rD   Úset_axis_offrh  r™   r­  s           r,   Ú#test_marker_draw_order_view_rotatedr±  (  sÃ   € ð €DØ	ˆQˆ€AØ	
ˆBˆ€AØ	
ˆAˆ€AØ�#ˆJ€EØ	×	Ñ	¨Ð	Ó	.€Bà‡O�OÔØ‡J�Jˆq�!�Q˜$ %€JÔ(Ø‡L�L�a˜d¨€LÔ+Ø	×	Ñ	¨Ð	Ó	-€BØ‡O�OÔØ‡J�Jˆq�!�Q˜$ %©¨"¨¡+€JÔ.Ø‡L�L�a˜d S™j¨q€LÕ1r.   zplot_3d_from_2d.pngg¸…ëQ¸Ž?c                  óü   — t        j                  «       } | j                  d¬«      }t        j                  dd«      }t        j                  dd«      }|j                  ||dd¬«       |j                  ||dd¬«       y )	Nr2   r3   r   ro   r¢   rX   ©r¦   r§   rY   )rB   rC   rD   r   r«   r6  )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Õ#r.   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t        j                  d	d¬
«      }|j                  dd«       | j                  |dd¬«       y )NFzpcolormesh.snapr2   r3   rS  ro   r  rê   r   )rT  rU  rè   r™  rW  ç)\�Âõ(ð¿ç)\�Âõ(ð?r$  )ÚshrinkÚaspect)rB   ÚrcParamsrC   rD   r   r«   rÀ   rX  r4  rY  r
   rÕ   r   Úcolorbar)rG   r&   rõ   rö   r]  r÷   Úsurfs          r,   Útest_surface3dr½  J  sÊ   € ð ',„C‡L�LÐ"Ñ#ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ
�	‰	�"�a˜Ó€AÜ
�	‰	�"�a˜Ó€AÜ�;‰;�q˜!Ó�D€A€qÜ
�‰��A‹€AÜ
�‰ˆq‹	€AØ�?‰?˜1˜a ¨2°b¼r¿{¹{Ø¨Uð ó 4€Dà‡K�K��tÔØ‡L�L�˜c¨!€LÕ,r.   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«       | j                  j                  j                  «        y )Nr2   r3   r   rÑ   r  rs   g     jø@g    €„.Ag    „×—AÚautumnr   )rè   ÚcstrideÚrstridezX labelzY labelzZ label)rB   rC   rD   r   rš  r3  Úsqrtr#   r5  rY  rˆ   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�)Ôà‡I�I×Ñ×ÑÕr.   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	¬
«       |j                  dd«       y )Nr2   r3   rS  ro   r  r   )r  r   r  r   F)rÁ  rÀ  r©   r™  rW  r¶  r·  )
rB   rC   rD   r   r«   rÀ   rÂ  r4  rY  r   )rG   r&   rõ   rö   r]  r÷   s         r,   Útest_surface3d_shadedrÅ  k  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à‡K�K��tÕr.   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   rm   rs   ro   rÑ   r  r  r�  r¢   r€   )r   r   rm   rs   ro   rÑ   r  r  )rn   r   r   r   r   r   r   r   r   r   r   )rn   r   r   rm   rs   rs   rs   rm   r   r   r   )rn   ç      ð¿rs   ro   rÑ   r  rÑ   ro   rs   rm   rÇ  )rn   rÇ  r  r  r€   é   r€   r  r  rÇ  rÇ  )rn   rÇ  r  r�  r¢   é   r¢   r�  r¢   r  rÇ  )rn   rÇ  rÇ  rÈ  rÉ  r¡   rÉ  rÈ  r€   rÇ  rÇ  )rn   rÇ  rÇ  rÇ  é   é   rÊ  r¡   é   rÇ  rÇ  )rn   rÇ  rÇ  rÇ  rÇ  é   é   r‡  rÇ  rÇ  rÇ  r   )r  r  Úplasma©r¤  r    rü   )rB   rC   rD   r   rÀ   r   rž  Úmasked_lessrÒ   Ú	Normalizer  r  r  r  rY  r™   )rG   r&   rX   rY   ÚmatrixrZ   Únormr   s           r,   Útest_surface3d_maskedrÕ  y  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˜!Õr.   c                 ó$  — t        j                  t        j                  d«      t        j                  d«      «      \  }}||z   }| j                  d¬«      }|j	                  |||d ¬«       |j                  d¬«      }|j	                  |||«       y )Nro   r2   r3   rÐ  )r   rÀ   r«   rD   rY  )r;   r<   rX   rY   rZ   r  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Õ r.   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   iúÿÿÿgffffff@r   r   rs   ©rÁ  rÀ  é<   éÓÿÿÿr   )	rB   rC   rD   r   rš  rž  rÑ  rY  r™   ri  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˜!Õr.   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                  ¬«       |j                  dd«       |j                  dd«       |j                  dd«       |j                  d«       |j                  d«       |j                  d«       y )Nr2   r3   ©NrX   rY   rZ   ©r   r   r   rq   ©r   rÑ   rs   r�  r  r   ©rÑ   rs   r  r  r   r   ©rs   r   ro   rÑ   r   r  z(%d, %d, %d), dir=%sr   r²   r¶   rä   gffffffî?z2D Text)Ú	transformr   r¢   zX axiszY axiszZ axis)rB   rC   rD   r%   rb  Útext2DÚ	transAxesÚ
set_xlim3dÚ
set_ylim3drZ  rˆ   r‰   rŠ   )rG   r&   Úzdirsr­   r®   r¦   r§   rX   rY   rZ   r†   s              r,   Útest_text3dré  ª  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Ô<Ø‡M�M�!�RÔØ‡M�M�!�RÔØ‡M�M�!�RÔØ‡M�M�(ÔØ‡M�M�(ÔØ‡M�M�(Õr.   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   r¢   ú(z, z), dir=)r§   )rD   ræ  rç  rZ  r%   rb  Úset_position_3d)r<   r;   rè  r­   r®   r¦   r  r§   rX   rY   rZ   rL  r  s                r,   Útest_text3d_modificationrí  Â  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r.   ztrisurf3d.pngg¬Zd;¯?c                  óÜ  — d} d}t        j                  dd|«      }t        j                  ddt         j                  z  | d¬«      }t        j                  |d	t         j                  f   |d
¬«      }|d d …d
d d…fxx   t         j                  | z  z  cc<   t        j
                  d|t        j                  |«      z  j                  «       «      }t        j
                  d|t        j                  |«      z  j                  «       «      }t        j                  | |z  «      }t        j                  «       }|j                  d¬«      }|j                  |||t        j                  d¬«       y )Né$   r  ç      À?ç      ð?r   r   F©Úendpoint.r   ©rQ   r2   r3   çš™™™™™É?)rè   rV  )r   r,  r3  r¡  ÚnewaxisÚappendr5  r_   r4  rB   rC   rD   Úplot_trisurfr
   Újet©	Ún_anglesÚn_radiiÚradiiÚanglesrX   rY   rZ   rG   r&   s	            r,   Útest_trisurf3drÿ  Û  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˜!¤"§&¡&°C€OÕ8r.   ztrisurf3d_shaded.pngç¸…ëQ¸ž?c                  óÄ  — d} d}t        j                  dd|«      }t        j                  ddt         j                  z  | d¬«      }t        j                  |d	t         j                  f   |d
¬«      }|d d …d
d d…fxx   t         j                  | z  z  cc<   t        j
                  d|t        j                  |«      z  j                  «       «      }t        j
                  d|t        j                  |«      z  j                  «       «      }t        j                  | |z  «      }t        j                  «       }|j                  d¬«      }|j                  |||g d¢d¬«       y )Nrï  r  rð  rñ  r   r   Frò  .r   rô  r2   r3   )r   r$  r   rõ  )r©   rV  )r   r,  r3  r¡  rö  r÷  r5  r_   r4  rB   rC   rD   rø  rú  s	            r,   Útest_trisurf3d_shadedr  í  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Õ>r.   zwireframe3d.pngc                  ó®   — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}|j                  |||dd¬«       y )Nr2   r3   rä   é   ©rT  rU  ©rB   rC   rD   r   rò   Úplot_wireframerô   s        r,   Útest_wireframe3dr  ÿ  sL   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø×Ñ�a˜˜A b°ÐÕ4r.   zwireframe3dzerocstride.pngc                  ó®   — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}|j                  |||dd¬«       y )Nr2   r3   rä   r  r   r  r  rô   s        r,   Útest_wireframe3dzerocstrider
    sL   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø×Ñ�a˜˜A b°ÐÕ3r.   zwireframe3dzerorstride.pngc                  ó®   — t        j                  «       } | j                  d¬«      }t        j                  d«      \  }}}|j                  |||dd¬«       y )Nr2   r3   rä   r   r¢   rÙ  r  rô   s        r,   Útest_wireframe3dzerorstrider    sL   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ×"Ñ" 4Ó(�G€A€qˆ!Ø×Ñ�a˜˜A q°"ÐÕ5r.   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ò   rC  rD  Ú
ValueErrorr  rô   s        r,   Ú test_wireframe3dzerostrideraisesr    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ä   r¢   é2   )rÁ  rU  )rÀ  rT  )
rB   rC   rD   r   rò   rC  rD  r  r  rY  rô   s        r,   Útest_mixedsamplesraisesr    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.pngc                  óÎ  — 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ç      à¿r$  r   r   )rÚ   Úpivotr©   r¶   éýÿÿÿrm   rn   ro   )rB   rC   rD   rw   r%   r   rÀ   Úquiverrh  rþ   rÿ   r   )rG   r&   Úpivotsr   r}   r  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Õr.   c                 ó˜   — |j                  d¬«       g x}x}x}x}x}}| j                  d¬«      }|j                  ||||||ddd¬«	       y )Nr2   r3   r  r  T©rÚ   r  Ú	normalize)rD   r  )	r;   r<   rX   rY   rZ   r  r  r  r&   s	            r,   Útest_quiver3d_emptyr#  >  sb   € à×Ñ 4ÐÔ(ØÐ€AÐˆÐˆAÐ�Ð�A˜Ø	×	Ñ	¨Ð	Ó	.€BØ‡I�Iˆa��A�q˜!˜Q s°%À4€IÕHr.   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   rn   r¥   y              $@g333333ã?y              @g>,p½ ê?çš™™™™™Ù¿r  F)r  r{  r  Tr!  )rB   rC   rD   r   rš  r4  r3  r5  rž  Úmasked_wherer  )rG   r&   rX   rY   rZ   r  r  r  s           r,   Útest_quiver3d_maskedr'  F  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ÕHr.   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ñ  rN  rN  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_modificationr/  X  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ÑCr.   c                 ó˜  — t        dd«      }t        dd«      }t        j                  g d¢g d¢g«      }t        j                  ||g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 )Nr)  rä   )r  r  r   )rN  r$  rN  rñ  )r$  rN  rN  r$  rm   )rs  r2   r3   ry  r{  F)rs  rm  rl  rª   r}  )r   r   r   r   ÚPatch3DCollectionrD   Úadd_collection3dr  r~  r€  r�  r‚  )r;   r<   Úpatch1Úpatch2r¤  r£   r  r  s           r,   Ú"test_patch_collection_modificationr5  e  s2  € ô �F˜DÓ!€FÜ�J Ó%€FÜ—‘Ò,Ò.@ÐAÓB€JÜ×Ñ ¨Ð 0¸QÔ?€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Õr.   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)N©r   r   r   ©r   r   r   )r   r   r   r�   zlist of \(N, 3\) array-likerA  r•  )rC  rD  r  r   ÚPoly3DCollectionr   r   r   )Úpolys    r,   Ú&test_poly3dcollection_verts_validationr;  �  s‹   € Ú’y¢)ªYÐ7€DÜ	�‰”zÐ)GÔ	Hñ %Ü×Ñ˜tÔ$÷%ô �8‰8�D¤Ô&€DÜ	�‰”zÐ)GÔ	Hñ %Ü×Ñ˜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                  |«       |j                  |«       y )Nr2   r3   r7  r8  r�   rq   rß  rm   Úk)r$  r$  r   r$  T©rs  rm  rl  Úclosed)r   r$  r$  r$  F)	rB   rC   rD   r   r   r   r   r9  r2  ©rG   r&   Úpoly1Úpoly2Úc1Úc2s         r,   Útest_poly3dcollection_closedrE  ‹  s£   € ä
�*‰*‹,€CØ	�‰ DˆÓ	)€Bä�H‰H’i¢ªIÐ6¼Ó>€EÜ�H‰H’i¢ªIÐ6¼Ó>€EÜ	×	Ñ	  °AÀØ*<ÀTô
K€Bä	×	Ñ	  °AÀØ*<ÀUô
L€Bà×Ñ˜ÔØ×Ñ˜Õr.   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Ú
isinstancer9  Ú	get_pathsrB   r7   r8   Ú
add_artistÚdo_3d_projectionr   ÚisnanrÃ   rÄ   )r:  rG   r&   Úminzs       r,   Ú#test_poly_collection_2d_to_3d_emptyrN  š  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Õr.   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                  |«       |j                  |«       y )Nr2   r3   r7  r8  r�   rq   rß  rm   r=  ©r$  r$  r   Tr>  r$  F)rs  r?  )r   r$  r$  )rB   rC   rD   r   r   r   r   r9  r€  r~  r  r2  r@  s         r,   Útest_poly3dcollection_alpharQ  ©  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�ÔØ×Ñ˜ÔØ×Ñ˜Õr.   zadd_collection3d_zs_array.pngc                  óŒ  — t        j                  dt         j                  z  dt         j                  z  d«      } t        j                  ddd«      }|dz  dz   }|t        j                  | «      z  }|t        j                  | «      z  }t        j
                  |||g«      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 ‚|j!                  dd«       |j#                  dd«       |j%                  dd«       y )Nr2  rs   rë   r  r   r   rn   rm   rô  r2   r3   r   Útwilight©rè   rÔ  ©r¦   rS  ro   rÑ   )r   r,  r3  r4  r5  Úcolumn_stackrœ  ÚconcatenaterB   rC   rD   rÒ  r   Ú	set_arrayÚmodr2  rþ   rÿ   r   ©r7  rZ   r(   rX   rY   ÚpointsÚsegmentsrG   r&   rÔ  ÚlcrP   s               r,   Útest_add_collection3d_zs_arrayr^  ¼  sp  € ä�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àÐÐÐà‡K�K��AÔØ‡K�K��AÔØ‡K�K��AÕr.   zadd_collection3d_zs_scalar.pngc                  óÈ  — t        j                  ddt         j                  z  d«      } d}|dz  dz   }|t        j                  | «      z  }|t        j                  | «      z  }t        j
                  ||g«      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 ‚|j                  dd«       |j!                  dd«       |j#                  dd«       y )Nr   r   rë   r   rn   rô  r2   r3   rS  rT  rU  rS  ro   r2  rÑ   )r   r,  r3  r4  r5  rV  rœ  rW  rB   rC   rD   rÒ  r   rX  r2  rþ   rÿ   r   rZ  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àÐÐÐà‡K�K��AÔØ‡K�K��AÔØ‡K�K��1Õr.   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  z
  «       Œ, y )
Nzaxes.labelpadzX LABELr¢   )ÚlabelpadzY LABELzZ LABELr¡   ré   ro   )rB   rC   Úadd_axesr   rM   rb  r  rº  rˆ   r‰   rŠ   rO   Ú
get_zlabelrN   rw   Úget_major_ticksÚset_padÚget_pad)rG   r&   r}   Úticks       r,   Útest_axes3d_labelpadri  ò  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ò -‰ˆˆ4Ø�‰�T—\‘\“^ a¨!¡eÑ+Õ,ñ-r.   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_clarl  	  s8   € ô �*‰*‹,€CØ	�‰˜˜A˜q¨TˆÓ	2€BØ‡O�OÔØ‡F�F…Hr.   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_rotatedro    s5   € ô �*‰*‹,€CØ	�‰˜˜A˜q¨TˆÓ	2€BØ‡L�L��R˜Õr.   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)Nr$  r¢   rë   )Únum)é   rÑ   r½   r   r   r2   r3   )r   r,  rÀ   r%  ÚrandnrB   rC   rD   rC  rD  r  rY  )rX   rY   rõ   rö   rZ   rG   r&   s          r,   Útest_plotsurface_1d_raisesrt    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)r#  iüÿÿiÐ  )rë   rë   rë   r7  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Ø€Hr.   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‘  3  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¨Õ+r.   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                  |«       t        ||g d¢«      D ]  \  }}}|j                  |||«       Œ ||fS )Nr   )r:  rX   rY   rZ   )r   r‡  r%   rB   r7   r   Úadd_collectionrb  )r~  ra  Úargsr  r­   r®   r¦   r‹  rŒ  r�  r:  r&   ÚayÚazÚlinesrG   ÚlinecrX   rY   rL  s                       r,   Ú_test_proj_draw_axesr™  C  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ÔÜ�s˜CÒ!5Ó6ò ‰ˆˆ1ˆaØ
�‰��1�aÕðð �ˆ7€Nr.   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                  |
||«       Œ |	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(   çš™™™™™É¿rõ  )r  Úsplitr   r   r   r‡  r™  rh  r6  r%   rb  rþ   rÿ   )r~  Útsr­   r®   r¦   r‹  rŒ  r�  rG   r&   rX   rY   rL  s                r,   Útest_proj_axes_cuber   T  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Õðð ‡K�K��cÔØ‡K�K��cÕr.   zproj3d_axes_cube_ortho.pngc                  óV  — 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                  |||«       Œ |j                  dd«       |j                  dd«       y )N)éÈ   rë   rë   r�   r7  r   rn   r   r›  r�  rë   rƒ  r„  é–   r`  r¼   r(   rœ  i8ÿÿÿr¢  )r   r   r   rv  rw  Ú_ortho_transformationry  rž  r‡  r™  rh  r6  r%   rb  rþ   rÿ   )rz  r]  r{  r–   r  r  r  r|  ÚorthoMr~  rŸ  r­   r®   r¦   r‹  rŒ  r�  rG   r&   rX   rY   rL  s                         r,   Útest_proj_axes_cube_orthor¦  j  so  € ä
�‰’Ó!€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Õðð ‡K�K��cÔØ‡K�K��cÕr.   c                  ó®   — d\  } }d\  }}d\  }}t        j                  | |||||«      }t        j                  j	                  |g d¢g d¢g d¢g d¢g«       y )N)rë   éx   )rå   rë   )r  rõ  )rä   r   r   rS  )r   g{®Gázt?r   r$  )r   r   g      $@rn   ©r   r   r   r   )r   Úworld_transformationr   rÖ   Úassert_allclose)rì   rí   rî   rï   rð   rñ   r~  s          r,   Ú
test_worldr¬  ‡  s\   € Ø�J€Dˆ$Ø�J€Dˆ$Ø�J€Dˆ$Ü×#Ñ# D¨$°°d¸DÀ$ÓG€AÜ‡J�J×Ñ˜qÚ 0Ú 2Ú /Ú ,ð .õ/r.   c                  ó  — t        j                  ddi¬«      \  } }|j                  «       dk(  sJ ‚|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   r  rõ  ©rX   rY   rZ   r   )r   r   r	  çš™™™™™ñ?r�  g333333ó?FTr   )r   r   r	  r°  r%  ç333333@rX   rô  )r   r   r	  r°  r%  r±  )rB   r7   Ú
get_zscaleÚmarginsr6  Ú
get_w_limsÚ	autoscaleÚset_autoscalez_onrF   s     r,   Útest_autoscaler·  “  sú   € Ü�l‰l |°TÐ&:Ô;�G€CˆØ�=‰=‹?˜hÒ&Ð&Ð&Ø‡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Ñ8r.   rQ   r¯  rh   )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ë   r	  r  Úget_autoscaleÚ_onÚset_ÚlimÚget_)r  r$  )rh   )rB   rC   rD   r   r«   r,  rh  ÚgetattrrÃ   rÄ   rÖ   Úassert_array_equal)
rQ   rh   rG   r&   rX   rY   Úget_autoscale_onÚset_limÚget_limÚ	post_autos
             r,   Útest_unautoscalerÄ  ¢  sÛ   € ô �*‰*‹,€CØ	�‰ DˆÓ	)€Bä
�	‰	�#‹€AÜ
�‰�D˜#˜sÓ#€AØ‡J�Jˆq�!Ôä˜r ]°4°&¸Ð#<Ó=ÐÜ�b˜D   cÐ*Ó+€GÜ�b˜D   cÐ*Ó+€Gà&* lÑ Ô"¸€IáˆK˜dÕ#ØÑ(Ó*Ò*Ð*Ð*Ø‡J�J‡O�OÔÜ‡J�J×!Ñ!¡'£)¨[Õ9r.   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   rC  rD  r  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   rd   s     r,   Útest_axes3d_focal_lengthrÍ  Á  sQ   € ô �|‰|˜A˜q¨l¸DÐ-AÔB�H€CˆØˆ�F×Ñ˜¬r¯v©vÐÔ6Øˆ�F×Ñ˜¨tÐÕ4r.   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Õr.   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’   )rs   rs   rs   )r4   Ú	proj_typeÚ
box_aspectr5   )rn   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(   ra  Ú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…Mr.   Úvalue)ÚsetterÚside))ræ  Úleft)ræ  Úright)rç  Úbottom)rç  Útop)rZ  rÜ  )rZ  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   rC  rD  r  r¾  )rØ  rÙ  r×  ÚlimitrG   Úobjs         r,   Útest_invalid_axes_limitsrâ  à  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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   )ro   rs   rm   )rB   r7   r   ÚindicesÚvoxels)ÚselfrG   r&   rX   rY   rZ   rç  s          r,   Útest_simplezTestVoxels.test_simpleò  sK   € ä—,‘,¨<¸Ð*>Ô?‰ˆˆRä—*‘*˜YÓ'‰ˆˆ1ˆaØ�q‘&˜Q !™VÑ$ˆØ
�	‰	�&Õr.   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   )ro   ro   rs   r   g      ø?g]�Âõ(\@rm   rx  )rs  rm  ry  )rB   r7   r   ræ  rç  r  Úkeysr  )rè  rG   r&   rX   rY   rZ   rç  r  s           r,   Útest_edge_stylezTestVoxels.test_edge_styleú  sŒ   € ä—,‘,¨<¸Ð*>Ô?‰ˆˆRä—*‘*˜YÓ'‰ˆˆ1ˆaØ�q‘5˜1‘*  A¡¨™zÑ)¨Q¨s©U°Q©JÑ6¸&Ñ@ˆØ�I‰I�f¨°dˆIÓ;ˆð 	
Œ#ˆa�f‰f‹h‹-Ñ×&Ñ& tÕ,r.   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   ©r¢   r¢   r¢   r   rˆ  r•  z0.25ro   Úcyanr¢   rÐ  N)rB   r7   r   ræ  r„  Úobject_rç  ©rè  rG   r&   rX   rY   rZ   rç  r   s           r,   Útest_named_colorszTestVoxels.test_named_colors  s©   € ô —,‘,¨<¸Ð*>Ô?‰ˆˆRä—*‘*˜\Ó*‰ˆˆ1ˆaØ�q‘&˜Q !™VÑ$ˆØ˜A ™E A™I¨™MÐ*Ñ*ˆÜ—‘˜ t´2·:±:Ô>ˆØ$*ˆ��A‘˜!˜a™%Ñ Ñ!Ø%ˆ��A‘˜‰|ÑØ
�	‰	�& Vˆ	Õ,r.   zvoxels-rgb-data.pngc                 ó  — t        j                  ddi¬«      \  }}t        j                  d«      \  }}}||k(  ||k(  z  }t        j                  d«      }|dz  |d<   |dz  |d<   |dz  |d	<   |j                  ||¬
«       y)z5Test with colors set to a 4d float array of rgb data.r4   r2   r5   rî  )r¢   r¢   r¢   rm   r�  ©.r   ©.r   ©.r   rÐ  N)rB   r7   r   ræ  Úzerosrç  rñ  s           r,   Útest_rgb_datazTestVoxels.test_rgb_data  s†   € ô —,‘,¨<¸Ð*>Ô?‰ˆˆRä—*‘*˜\Ó*‰ˆˆ1ˆaØ�q‘&˜Q !™VÑ$ˆÜ—‘˜/Ó*ˆØ˜Q™ˆˆv‰Ø˜Q™ˆˆv‰Ø˜Q™ˆˆv‰Ø
�	‰	�& Vˆ	Õ,r.   zvoxels-alpha.pngc                 óÈ  — t        j                  ddi¬«      \  }}t        j                  d«      \  }}}||k(  }t        j                  ||z
  «      dk  }||z  }t        j
                  d«      }	g d¢|	|<   g d¢|	|<   |j                  ||	¬	«      }
t        |
«      t        u sJ ‚|
j                  «       D ]-  \  }}||   sJ d
«       ‚t        |t        j                  «      rŒ-J ‚ y )Nr4   r2   r5   rî  r   )r¢   r¢   r¢   rs   )r   r   r   r$  )r   r   r   r$  rÐ  zfaces returned for absent voxel)rB   r7   r   ræ  r#   r÷  rç  Útyper8   ÚitemsrH  r   r9  )rè  rG   r&   rX   rY   rZ   Úv1Úv2rç  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×$:Ñ$:Õ;Ð;Ð;ñ	<r.   zvoxels-xyz.pngç{®Gáz„?F)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ß  rn   r   rP  )rÔ   Úndimr   Ú	index_exp)rX   Úslr}   s      r,   Ú	midpointsz&TestVoxels.test_xyz.<locals>.midpoints6  sv   € ØˆBÜ˜1Ÿ6™6“]ò &�Ø�rœBŸL™L¨¨"Ð-Ñ-Ñ.Ø�rœBŸL™L¨¨Ð,Ñ,Ñ-ñ.Ø14ñ5�à”b—l‘l¡1�oÑ%‘ð&ð ˆHr.   )é   r  r  g      0@r$  r   r  )rm   rô  rõ  rö  r   r   )r¤  r¥  rV  )rB   r7   r   ræ  r÷  r�  rç  r  )rè  rG   r&   r  r(   rž   rŸ   ÚrcÚgcÚbcÚspherer   s               r,   Útest_xyzzTestVoxels.test_xyz1  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¸Ó:Øð 	õ 	!r.   c                 ó
  — 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        «      5  |j                  ||||¬«       d d d «       y # 1 sw Y   ŒwxY w# 1 sw Y   ŒMxY w# 1 sw Y   y xY w)Nrr   )r   rm   rs   r4   r2   r5   r=  )rm  Úfilledrç  rA  )r  )r  rX   rY   rZ   rß  )r   ræ  ÚonesrB   r7   r8   rç  rC  rD  Ú	TypeErrorÚAttributeError)rè  rX   rY   rZ   r  rG   r&   Úkws           r,   Útest_calling_conventionsz#TestVoxels.test_calling_conventionsS  s_  € Ü—*‘*˜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÷	ô �]‰]œ>Ó*ñ 	4Ø�I‰I˜V q¨A°ˆIÔ3÷	4ð 	4÷	6ð 	6ú÷	ð 	ú÷	4ð 	4ús$   ÃE!ÄE-ÅE9Å!E*Å-E6Å9FN)Ú__name__Ú
__module__Ú__qualname__Úmpl3d_image_comparisonré  rì  rò  rø  rÿ  r  r  rß  r.   r,   rä  rä  ñ  sÎ   „ ÙÐ0Ð1¸ÔAñó Bðñ Ð4Ð5¸WÔEñ-ó Fð-ñ Ð6Ð7¸wÔGñ
-ó Hð
-ñ Ð2Ð3¸7ÔCñ
-ó Dð
-ñ Ð/Ð0¸Ô@ñ<ó Að<ñ" Ð-Ð.Ø $°%¸wôHñ!óHð!ó@4r.   rä  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   rm   rs   ro   rÑ   r  r  r�  r¢   r€   r2   r3   rZ   r³  )rB   rC   rD   r6  r   rÖ   r¿  Úget_data_3drG  Ú	set_xdataÚ	set_ydataÚset_3d_propertiesr·   )
rX   rY   rZ   Úx2Úy2Úz2rG   r&   r—  rP   s
             r,   Útest_line3d_set_get_data_3dr   l  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ÕOr.   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   r¢   r¢   )r   r¢   r¢   r¢   )r   r   r   r¢   )rD   r6  Úinvert_yaxisr:   s      r,   Útest_invertedr#  ~  s^   € ð 
×	Ñ	¨Ð	Ó	.€BØ‡G�GŠNšOª]Ô;Ø‡O�OÔà	×	Ñ	¨Ð	Ó	-€BØ‡O�OÔØ‡G�GŠNšOª]Õ;r.   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   rk  rF   s     r,   Útest_inverted_clar(  Š  só   € ô �l‰l |°TÐ&:Ô;�G€Cˆà× Ñ Ô"Ð"Ð"Ø× Ñ Ô"Ð"Ð"Ø× Ñ Ô"Ð"Ð"Ø‡K�K��1ÔØ‡K�K��1ÔØ‡K�K��1ÔØ×ÑÔÐÐØ×ÑÔÐÐØ×ÑÔÐÐØ‡F�F„HØ× Ñ Ô"Ð"Ð"Ø× Ñ Ô"Ð"Ð"Ø× Ñ Ô"Ð"Ð"Ð"r.   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   re  Ú	tick1lineÚ_colorrN   rO   )rG   r&   rh  s      r,   Útest_ax3d_tickcolourr-  ž  sð   € Ü
�*‰*‹,€CÜ	�‹€Bà‡N�N˜ E€NÔ*Ø‡N�N˜ E€NÔ*Ø‡N�N˜ E€NÔ*Ø‡J�J‡O�OÔà—‘×(Ñ(Ó*ò .ˆØ�~‰~×$Ñ$¨Ó-Ð-Ð-ð.à—‘×(Ñ(Ó*ò .ˆØ�~‰~×$Ñ$¨Ó-Ð-Ð-ð.à—‘×(Ñ(Ó*ò .ˆØ�~‰~×$Ñ$¨Ó-Ð-Ð-ñ.r.   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 )Nrs   ro   r4   r2   r5   g    ÐcAg   @ÑcA)rX   rY   rZ   rV   r   Úplain)rQ   r   r   )r  r   )rQ   Ú	scilimitsr   zaxes.formatter.useoffset)rQ   Ú	useOffsetrm   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&   ÚnamesÚnames      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<   rd   r&   Úrowr7  r8  r6  Úfmts	            r,   Útest_ticklabel_formatrA  ¯  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r.   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 )
Nr  gš™™™™™é¿r   rõ  r¥   )r   rñ  r2   r3   )rÚ   r  )r   rÀ   r«   Ú	ones_liker%   rD   r  )r;   r<   r  rX   rY   rZ   r  r  r  rG   rÚ   r&   s               r,   Útest_quiver3D_smokerD  ×  s±   € à€Eä�k‰kÜ
�	‰	�$˜˜3ÓÜ
�	‰	�$˜˜3ÓÜ
�	‰	�$˜˜3Óó�G€A€qˆ!ô
 —‘˜Q“Ð€AÐˆˆAä˜G XÐ.°Ó9ò @‰ˆˆVØ�_‰_¨ˆ_Ó-ˆØ
�	‰	�!�Q˜˜1˜a ¨6¸ˆ	Õ?ñ@r.   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   r  T)ÚminorÚquarterg…ëQ¸Õ?Úthirdr$  Úhalf)	rB   rC   rD   rJ   Úset_xticklabelsrK   Úset_yticklabelsrL   Úset_zticklabels)r&   s    r,   Útest_minor_ticksrM  ç  s�   € ä	�‰‹×	!Ñ	!¨TÐ	!Ó	2€BØ‡M�M�4�& €MÔ%Ø×Ñ˜	�{¨$ÐÔ/Ø‡M�M�4�& €MÔ%Ø×Ñ˜�y¨ÐÔ-Ø‡M�M�4�& €MÔ%Ø×Ñ˜�x tÐÕ,r.   zerrorbar3d_errorevery.pngc            	      óò  — t        j                  ddt         j                  z  dz   d«      } t        j                  | «      t        j                  d| z  «      t        j                  d| z  «      }}}t        j                  «       }|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   r  r   rm   ro   r2   r3   é   rõ  )ÚzuplimsÚzlolimsÚ
erroreveryN)
r   r«   r3  r4  r5  rB   rC   rD   r›  Úerrorbar)
rL  rX   rY   rZ   rG   r&   Úestepr}   rP  rQ  s
             r,   Útest_errorbar3d_erroreveryrU  ò  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Ø ð õ "r.   zerrorbar3d.pngc                  óÂ   — 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   rm   rs   ro   )r$  r$  r$  r$  r$  rm   )FTFTT)TFFTFTÚpurplezError lines)rX   rY   rZ   ÚxerrÚyerrÚzerrÚcapsizerP  rQ  ÚyuplimsÚecolorr†   N)rB   rC   rD   rS  Ú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…Kr.   z
stem3d.pnggú~j¼t“h?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   rm   )r  rÑ   Tr4   r2   ©r�   Úconstrained_layoutr6   r   r¯  )Úorientationzorientation=r¡   r   zC4-.ÚC1Dry  )ÚlinefmtÚ	markerfmtÚbasefmtrd  rW   )rR  Úmarkeredgewidth)rB   r7   r   r,  r3  r5  r4  r%   Ústemrx   rC  rb   Úset_linewidth)rG   rd   r7  rX   rY   rZ   r&   r§   Ú
markerlineÚ	stemlinesÚbaselines              r,   Útest_stem3dro    sy  € ä�|‰|˜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Õ!ñ"r.   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ë   rn   r   r©   rŸ   Úoffrq   zArgument zoom =rA  )Úzoom)"r   r!   r   rB   rC   rD   r   r,  r3  Úouterr5  r4  rC  rY  r   r    r"   r#   r$   r%   rV  Ú
get_xlim3dÚ
get_ylim3dÚ
get_zlim3dr  r  ræ  rç  rZ  rQ   ry   rC  rD  r  )r!   r   rG   r&   r  r  rX   rY   rZ   r(   ra  rÕ  ÚxyzlimÚXYZlims                 r,   Útest_equal_box_aspectry  1  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   )rs   ro   Tr4   r2   rb  ro   Ú
horizontal)r&   rd  rõ  )rB   r7   rø  r   r%  rs  r»  rÃ   rÄ   r&   Úget_positionÚextents)Ú	num_plotsrG   rd   r&   Úp_triÚcbars         r,   Útest_colorbar_posr�  W  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Ñ2r.   c                  ó2  — t        j                  «       } | j                  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   ©r   r   )r   r   r   )rT   )r   r   r   )rU   )r   r   ©r   r   )rB   rC   rD   r'  Úget_zlimÚ
get_zboundÚ
set_zboundÚinvert_zaxisrF   s     r,   Útest_inverted_zaxisrŠ  g  sy  € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ× Ñ Ô"Ð"Ð"Ø�;‰;‹=˜FÒ"Ð"Ð"Ø�=‰=‹?˜fÒ$Ð$Ð$ð ‡M�M�&ÔØ× Ñ Ô"Ð"Ð"Ø�;‰;‹=˜FÒ"Ð"Ð"Ø�=‰=‹?˜fÒ$Ð$Ð$ð ‡O�OÔØ×ÑÔÐÐØ�;‰;‹=˜FÒ"Ð"Ð"Ø�=‰=‹?˜fÒ$Ð$Ð$ð ‡M�M˜€MÔØ×ÑÔÐÐØ�;‰;‹=˜FÒ"Ð"Ð"Ø�=‰=‹?˜fÒ$Ð$Ð$ð ‡M�M˜€MÔØ×ÑÔÐÐØ�;‰;‹=˜FÒ"Ð"Ð"Ø�=‰=‹?˜fÒ$Ð$Ñ$r.   c                  ó"  — t        j                  «       } | j                  d¬«      }|j                  «       dk(  sJ ‚|j	                  d¬«       |j                  «       dk(  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…  z$Cannot pass both 'bottom' and 'zmin'rA  r   )rÜ  rð   z!Cannot pass both 'top' and 'zmax')rÝ  rñ   )rB   rC   rD   r†  r   rC  rD  r  rF   s     r,   Útest_set_zlimrŒ  ‡  sì   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ�;‰;‹=˜FÒ"Ð"Ð"Ø‡K�K�Q€KÔØ�;‰;‹=˜FÒ"Ð"Ð"Ø‡K�K�Q€KÔØ�;‰;‹=˜FÒ"Ð"Ð"ä	�‰ÜÐCô
Eñ &à
�‰˜1 1ˆÔ%÷&ô 
�‰ÜÐ@ô
Bñ #à
�‰˜ ˆÔ"÷#ð #÷&ð &ú÷#ð #ús   Â%C9ÃDÃ9DÄDc                 ó,  — d\  }}}| j                  dd¬«      }| j                  dd|¬«      }| j                  dd¬«      }|j                  |«       |j                  |||d¬	«       d
D ])  }|j                  |d¬«      }	|	j                  |||¬«       Œ+ y )N)ro   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ñ6r.   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   )r  r   r   ç      @)r  rš  )rB   rC   rD   r6  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Ò$Ô%à�<‰<‹>˜[Ò(Ð(Ð(Ø�<‰<‹>˜[Ò(Ð(Ñ(r.   c                  ó°  — d„ } t        j                  «       j                  d¬«      }|j                  ddd«       |j                  j                  j                  «         | |j                  «       Ž \  }} | |j                  «       Ž \  }} | |j                  «       Ž \  }}|j                  t        |t        j                  dd¬«      «       |j                  t        |t        j                  dd¬«      «        | |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_limµ  s#   € à˜‘+ Ñ"ˆØ˜‘ˆØ�vˆ~Ðr.   r2   r3   r   )ÚbuttonÚxdataÚydatar   N)rB   rC   rD   rh  rÃ   rÄ   rt  ru  rv  Ú_button_pressr   r   ÚMIDDLEÚ_on_moverC  Úapprox)r¢  r&   Ú	x_center0Úx_range0Ú	y_center0Úy_range0Ú	z_center0Úz_range0Úx_centerÚx_rangeÚy_centerÚy_rangeÚz_centerÚz_ranges                 r,   Útest_panr¶  ²  sœ  € òô 
�‰‹×	!Ñ	!¨TÐ	!Ó	2€BØ‡J�Jˆq�!�QÔØ‡I�I×Ñ×ÑÔá% r§}¡}£Ð7Ñ€IˆxÙ% r§}¡}£Ð7Ñ€IˆxÙ% r§}¡}£Ð7Ñ€Iˆxð ×ÑÜ�2œk×0Ñ0¸ÀÔCôEà‡K�KÜ�2œk×0Ñ0¸ÀÔCôEñ $ 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Ó/Ò/Ð/Ñ/r.   ztool,button,key,expectedrr  ))rN  ç¸…ëQ¸®?)r   gìQ¸…ë±?)r!  ç{®Gáz´?rX   ))g{®Gáz„¿r  ©g¸…ëQ¸ž¿r¸  ©ç¸…ëQ¸®¿r·  rY   ))çìQ¸…ë±¿g{®Gáz¤?r¹  )rN  g)\�Âõ(¼?))g
×£p=
·¿rË  )r¼  gÃõ(\�ÂÅ?)r»  g
×£p=
Ç?Úpan))gffffffæ¿ç�Âõ(\�â¿)g{®Gázð¿g…ëQ¸í¿©gR¸…ëQô¿gffffffò¿))g¸…ëQ¸î¿gáz®Gáê¿)r¾  gq=
×£pÝ¿rº  ))rõ  g{®GázÔ?)gR¸…ëQà¿gö(\�ÂõØ¿r¿  c                 óÀ  — t        j                  «       }|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|¢|‘­d|iŽ}t        |j                  «      }| d	k(  rD|j                  «        |j!                  |«       |j#                  |«       |j%                  |«       nC|j'                  «        |j)                  |«       |j+                  |«       |j-                  |«       |\  }}}|j                  «       t/        j0                  |d
¬«      k(  sJ ‚|j                  «       t/        j0                  |d
¬«      k(  sJ ‚|j                  «       t/        j0                  |d
¬«      k(  sJ ‚|j3                  «        |j                  «       t/        j0                  |«      k(  sJ ‚|j                  «       t/        j0                  |«      k(  sJ ‚|j                  «       t/        j0                  |«      k(  sJ ‚|j5                  «        |j                  «       t/        j0                  |d
¬«      k(  sJ ‚|j                  «       t/        j0                  |d
¬«      k(  sJ ‚|j                  «       t/        j0                  |d
¬«      k(  sJ ‚|j7                  «        |j                  «       t/        j0                  |«      k(  sJ ‚|j                  «       t/        j0                  |«      k(  sJ ‚|j                  «       t/        j0                  |«      k(  sJ ‚y )Nr2   r3   r   r)  ©r   r   Úbutton_press_eventÚkeyÚbutton_release_eventrr  r   )r#   )rB   rC   rD   rh  rÃ   rÄ   rt  ru  rv  Ú	transDatarã  ÚastypeÚintr   r	   rr  Ú
press_zoomÚ	drag_zoomÚrelease_zoomr½  Ú	press_panÚdrag_panÚrelease_panrC  r©  ÚbackÚforwardÚhome)Útoolr£  rÃ  ÚexpectedrG   r&   Úxlim0Úylim0Úzlim0Úd0Úd1Ús0Ús1Ústart_eventÚ
stop_eventÚtbÚxlimÚylimÚzlims                      r,   Útest_toolbar_zoom_panrà  Ø  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äØ §
¡
ðBØ-/ðBØ17òBØ=@ñB€Jô 
˜CŸJ™JÓ	'€BØˆv‚~Ø
�‰Œ	Ø
�‰�kÔ"Ø
�‰�ZÔ Ø
�‰˜
Õ#à
�‰ŒØ
�‰�[Ô!Ø
�‰�JÔØ
�‰�zÔ"ð  Ñ€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Ñ2r.   c                 ó  — t        j                  t        t        j                  t        j
                  ddd«      t        j
                  ddd«      t        j
                  ddd«      gŽ «      «      j                  \  }}}||z   }| j                  dd¬«      }|j                  ||||dd¬	«      }| j                  j                  «        |j                  «        |j                  dd¬«      }|j                  ||||dd¬	«      }	y )
Nr   ro   r   éo   r2   r3   rê   r  )r£   ra  rè   )r   r   r    r   r!   r«   ÚTrD   rh  rÃ   rÄ   Úchanged)
r;   r<   rX   rY   rZ   r£   r  Úsc_testr  Úsc_refs
             r,   Útest_scalarmap_updaterç  $  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ˆ^Ó?�Fr.   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_simplerì  :  sY   € ä
�*‰*‹,€CØ	�‰˜˜1Ó	€BØ	ˆA‰×	Ñ	˜1˜a ¨tÐ	Ó	4€BØ	ˆA‰×	Ñ	˜1˜a ¨t¸7Ð	Ó	C�Br.   Úcomputed_zorder)Úbaseline_imagesr   r0   r   c            
      ó<  — 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«       |j                  d«       |j                  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 )(NéÝ   r2   r3   éÞ   F)r�   )r   ro   r   )ro   ro   r   )ro   r   r   ÚwhiteÚblackr   )r¤  r¥  Úzorder)r   r   )r   rs   r²   r   )r£   rô  )rm   rm   )r   rm   r¢   )r   rO  )r   rš  éß   éà   r$  r   r  r#  r´   rn   )r©   rª   rV  rô  ro   z--r³   )r™  Ú	linestyler©   rô  rm   rs   r¡   rû   r“   rq  )rB   rC   rD   rí  r   r9  r2  r6  rh  rþ   rÿ   r   r   rÀ   r÷  r,  r3  r5  r4  rY  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  C  sD  € ô �*‰*‹,€CØ
�/‰/˜#¨$ˆ/Ó
/€CØ
�/‰/˜#¨$ˆ/Ó
/€CØ€CÔð ;€GØ�Cˆjò ˆÜ×$Ñ$ g YØ07Ø07Ø,-ô/ˆð 	×Ñ˜CÔ ð 	�‰�˜ ¨%¸ˆÔ:ð 	�
‰
�6˜6 6¨U¸2ˆ
Ô>à
�‰�HÔØ
�‰�HÔØ
�‰�HÕðð" �/‰/˜#¨$ˆ/Ó
/€CØ
�/‰/˜#¨$ˆ/Ó
/€CØ€CÔà
€CÜ�;‰;˜˜˜c�{ c T¨3 KÓ0�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#r.   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   r¢   r  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«   r6  r4  rÃ   rÄ   Úformat_coordr™   r˜   )rG   r&   rX   ÚxvÚyvs        r,   Útest_format_coordr
  –  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ÑIr.   c                  ó"  — t        j                  «       } | j                  d¬«      }t        j                  d«      }|j                  |t        j                  |«      «       | j                  j                  «        |j                  «       dk(  sJ ‚y )Nr2   r3   r¢   )FTF)
rB   rC   rD   r   r«   r6  r4  rÃ   rÄ   Úget_axis_position)rG   r&   rX   s      r,   Útest_get_axis_positionr  µ  sf   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BÜ
�	‰	�"‹€AØ‡G�GˆAŒr�v‰v�a‹yÔØ‡J�J‡O�OÔØ×ÑÓ!Ð%9Ò9Ð9Ñ9r.   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   rõ  )rõ  rõ  rõ  r  rz  )r  rõ  rz  r   )rX   )r   rõ  rz  )rY   )r   r  rz  ©rZ   )r   r  r   )rB   rC   rD   r³  rF   s     r,   Útest_marginsr  ¾  sÄ   € Ü
�*‰*‹,€CØ	�‰ DˆÓ	)€BØ‡J�Jˆs„OØ�:‰:‹<˜?Ò*Ð*Ð*Ø‡J�Jˆs�C˜ÔØ�:‰:‹<˜?Ò*Ð*Ð*Ø‡J�J�€J„OØ�:‰:‹<˜=Ò(Ð(Ð(Ø‡J�J�€JÔØ�:‰:‹<˜=Ò(Ð(Ð(Ø‡J�J�€J„OØ�:‰:‹<˜;Ò&Ð&Ñ&r.   zerr, args, kwargs, match)rn   z!margin must be greater than -0\.5)r   rn   r   )r   r   rn   rn   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)NrA  r2   r3   )rC  rD  rB   rC   rD   r³  )Úerrr”  r  rB  rG   r&   s         r,   Útest_margins_errorsr  Í  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   r$  zFoo bar $\int$r   r  rP  )rD   r   r   Útext_2d_to_3drJ  Ú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Ñ1r.   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   r6  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Õ/r.   c                 ó.  — |j                  d¬«      }t        j                  «       }t        |«      }t	        j
                  |dd¬«       |j                  |«       | j                  d¬«      }t	        j                  |dd¬«      }|j                  |«       y )Nr2   r3   )r   r$  r{  r   r   rY   ©rZ   r§   r³  )rD   r   Úunit_rectangler   r   Úpathpatch_2d_to_3drJ  Ú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�$Õr.   zscatter_spiral.png)rî  r   r   c                  ó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 )
Nr2   r3   r   r   rÑ   é   r   ro   r¬  )rB   rC   rD   r   r,  r3  rh  r4  r5  rÃ   rÄ   )rG   r&   r  Úscs       r,   Útest_scatter_spiralr)    s�   € ô �*‰*‹,€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Õr.   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   r¢   y              Y@rm   r   râ  r2   r3   Úhot©rè   )	r   Úogridr5  r4  rB   rC   rD   rY  r-  ©rY   rX   r  rG   r&   r(   s         r,   Ú#test_Poly3DCollection_get_facecolorr0    ó†   € ô �8‰8�A�b˜�I˜q  D˜yÐ(Ñ)�D€A€qÜ	�‰�‹�a‰œ"Ÿ&™& ›) q™.Ñ	(€BÜ
�*‰*‹,€CØ	�‰˜¨ˆÓ	.€BØ
�‰˜˜1˜b uˆÓ-€AØ‡O�OÕr.   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.  r5  r4  rB   rC   rD   rY  Úget_edgecolorr/  s         r,   Ú#test_Poly3DCollection_get_edgecolorr4    r1  r.   zDvertical_axis, proj_expected, axis_lines_expected, tickdirs_expected)rN  ç#ðk$Iò?rN  ç.�_x%Iâ¿)rN  rN  çºÙ(·më?ç£å@µmÛ¿)rN  rN  rN  g      $À)ç#ðk$Iò¿rN  rN  çÓø…W’$%@gŽË—›˜Ã¬?gÞ2m Ù3°?gæº¾I²’¥¿g‰®°…ÅM¨¿gÞ2m Ù3°¿g‰®°…ÅM¨?)r   r   r   )r5  rN  rN  r6  )rN  r7  rN  r8  )rN  rN  r9  r:  gŽË—›˜Ã¬¿gæº¾I²’¥?)r   r   r   )rN  rN  r5  r6  )r7  rN  rN  r8  )rN  r9  rN  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™   rC   rÃ   rÄ   Úget_projr   rÖ   r«  rw   Ú	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_axisrL  (  s  € ðH €DÜ	�‰�Q˜˜1¨Ô	.€BØ‡L�L�a˜a a°}€LÔEØ‡I�I×Ñ×ÑÔð —+‘+“-€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r.   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   )r$  r$  r$  gÍÌÌÌÌÌì?r¡   r¢   r©  )rÛ   Úheightrü  Útheta1Útheta2r   rZ   r  )rB   r=  ÚmpatchÚArcr*  r   r   )r&   r“  s     r,   Útest_arc_pathpatchrS  ‚  sP   € ô 
�‰�Q˜˜1¨Ô	.€BÜ�
‰
�: S°Ø B¨sô	4€Aà‡L�L�„OÜ	×Ñ˜Q !¨#Ö.r.   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   Ú
rc_contextrC   rD   )rG   s    r,   Útest_panecolor_rcparamsrV  �  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
    râ  r2   r3   )r   r   rm   )rN  rN  rN  zo-Nr;  )r;   r<   r=  rX   rY   rZ   r>  s          r,   Ú"test_mutating_input_arrays_y_and_zrX  ˜  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Õr.   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   )rN  rN  rN  r   r2   r3   r¶   N)r   ÚnanrÌ  rB   rC   rD   rh  rƒ   Úget_offsetsÚsuperrú  Ú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Ó;Ó<ò=ð =ñ =r.   zsurface3d_zsort_inf.pngc                  ó°  — 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 )Nr2   r3   r  r   r  r   r   rù  r-  rn  é‘   )r”   r•   )rB   rC   rD   r   rš  r4  r5  rÌ  r�  rY  r™   ri  s        r,   Útest_surface3d_zsort_infrb  Ì  s·   € ä
�*‰*‹,€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Õ#r.   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.rA  r7  r8  r�   Tr¾   )rC  rD  r  r   r   r   r   r9  )r:  r£   s     r,   Ú&test_Poly3DCollection_init_value_errorrd  Ù  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 )Nrâ  r2   r3   r   r   r©  r¶   )rB   rC   rD   rh  r   r   rÃ   rÄ   rF   s     r,   Ú%test_ndarray_color_kwargs_value_errorrf  ã  sL   € ô �*‰*‹,€CØ	�‰˜¨ˆÓ	.€BØ‡J�Jˆq�!�QœbŸh™h¢|Ó4€JÔ5Ø‡J�J‡O�OÕr.   )¬Ú	functoolsr   ÚplatformrC  Úmpl_toolkits.mplot3dr   r   r   r   Ú
matplotlibr  Úmatplotlib.backend_basesr   r   r	   r
   r   rÒ   r   rQ  Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.testing.widgetsr   Úmatplotlib.collectionsr   r   Úmatplotlib.patchesr   r   Úmatplotlib.pathr   Úmatplotlib.textr   Úmatplotlib.pyplotÚpyplotrB   Únumpyr   Úpartialr  r-   r=   rH   rR   rf   r~   r„   rŒ   rœ   r°   r¹   rÇ   rÉ   rÞ   Úmachinerø   r  r  r  ÚmarkÚparametrizer   r*  r0  r8  r?  rH  r^  rc  rj  rn  rp  rv  r…  r¨  r®  r±  r´  r½  rÃ  rÅ  rÕ  r×  rÜ  ré  rí  rÿ  r  r  r
  r  r  r  r  r#  r'  r/  r5  r;  rE  rN  rQ  r^  r`  ri  rl  ro  rt  r  r‘  r™  r   r¦  r¬  r·  rÄ  rÉ  rÍ  rÏ  rÖ  rÌ  rZ  râ  rä  r   r#  r(  r-  rA  rD  rM  rU  r`  ro  ry  r�  rŠ  rŒ  r•  r›  r¶  ÚLEFTÚRIGHTrà  r   Úcontextrç  rì  r  r
  r  r  r  Útupler  r  r  r  r%  r)  r0  r4  rL  rS  rV  rX  r_  rb  rd  rf  rß  r.   r,   ú<module>r}     s”  ðÛ Û Û ã ç >Ó >Û ÷:ñ :å ß ;ß OÝ 1ß Aß 0Ý  Ý  å Û ð +˜×*Ñ*Ø $¨iô9Ð òHñ   Ô(ñó )ðñ
 ˜Ð(°Ô8ñó 9ðñ Ð3Ð4¸GÔDñ%ó Eð%ñ Ð-Ð.¸EÈÔQñ@ó Rð@ñ ˜˜°UÀ'ÔJñ(ó Kð(ñ  Ð1Ð2Ø$)°ô:ñ4ó:ð4ò
Jñ Ð3Ð4¸GÔDñó Eðñ( ˜˜¨WÔ5ñJó 6ðJò	/ñ Ð+Ð,°GÔ<ñó =ðñ& Ð.Ð/°wÔ?ñ	ó @ð	òMñ6 ØÐ˜WØ!�×!Ñ!Ó#Ð'FÑF‰ÈAôOñGóOðGñ Ð1Ð2¸'ÔBñó Cðñ Ð)Ð*°'Ô:ñ	ó ;ð	ñ Ð.Ð/°wÔ?ñó @ðð ‡�×ÑÐ)¨V²YÐ,?Ø-2²LÐ,AØ-2²LÐ,Að,Có Dñ   Ô(ñó )óDðñ0 Ð)Ð*°¸GÔDñó Eðòñ ˜˜¨wÔ7ñó 8ðñ   Ô(ñó )ðò$ñ" Ð+Ð,°GÔ<ñó =ðñ.   Ô(ñ	*ó )ð	*ñ ˜Ð)°Ô9ñ	.ó :ð	.ñ Ð.Ð/°wÔ?ñ&ó @ð&ñ Ð2Ð3¸7ÔCñ4ó Dð4ñ   Ô(ñ
-ó )ð
-ñ   Ô(ñ9ó )ð9ð( ‡�×Ñ˜¨¨e }Ó5Ù  Ô(ñ3Có )ó 6ð3Cðl ‡�×Ñ˜ # s Ó,Ù  Ô(ñ,ó )ó -ð,ñ&   Ô(ñ2ó )ð2ñ. Ð.Ð/°UÀ'ÔJñ$ó Kð$ñ ˜Ð)°Ô9ñ-ó :ð-ñ" Ð=Ð>ÀgÔNñó Oðñ Ð/Ð0¸Ô@ñ
ó Að
ñ Ð/Ð0¸Ô@ñó Aðñ4   Ô(ñ!ó )ð!ñ Ð7Ð8ÀÔHñó Iðñ ˜˜°EÀÔIñó Jðñ.   Ô(ñHó )ðHñ0 ˜Ð)¨u¸GÔDñ9ó Eð9ñ" Ð/Ð0°dÀ'ÔJñ?ó Kð?ñ" Ð*Ð+°7Ô;ñ5ó <ð5ñ Ð5Ð6¸gÔFñ4ó Gð4ñ Ð5Ð6¸gÔFñ6ó Gð6ò9ò8ñ ˜Ð(°Ô8ñó 9ðñ(   Ô(ñIó )ðIñ Ð.Ð/°wÔ?ñIó @ðIò"
Dñ   Ô(ñó )ðò6%ñ Ð6Ð7¸wÔGñó Hðòñ Ð5Ð6¸gÔFñó Gðñ$ Ð8Ð9ÀÔIñó Jðñ6 Ð9Ð:À'ÔJñó Kðñ2 Ð.Ð/Ø$)°ô:ñ-ó:ð-ñ* Ð)Ð*¸ÀWÔMñó Nðñ Ð-Ð.Ø$)°ô:ñó:ðò	!ò
ò,ó ñ" Ð/Ð0¸Ô@ñó Aðñ* Ð5Ð6¸gÔFñó Gðò8	/ò9ð ‡�×Ñ˜ Ó1Ø‡�×Ñ˜Ð!4Ó5ñ:ó 6ó 2ð:ò(2ñ Ð2Ð3Ø$)°ô:ñ5ó:ð5ñ Ð+Ð,¸%ÀwÔOñó Pðñ Ð/Ð0¸Ô@ñó Aðð ‡�×Ñ˜ 2§6¡6¨2¯6©6Ð"2Ó3Ø‡�×ÑÐ+ò .ó ñ&óó 4ð&÷x4ñ x4òvPñ$   Ô(ñ<ó )ð<ò#ò(.ñ"   Ô(ñ$Aó )ð$AñN   Ô(ñ@ó )ð@ñ Ð$Ð%¨WÔ5ñ-ó 6ð-ñ Ð4Ð5¸WÔEñ"ó Fð"ñ" Ð)Ð*°'Ô:ñó ;ðñ �<�.¨°UÔ;ñ"ó <ð"ñ8 Ð)Ð*°'Ô:ñ".ó ;ð".òJ3ò %ò@#ñ"   Ô(ñ
6ó )ð
6ò	)ò#0ðL ‡�×ÑÐ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ñ Ð#4Ð"5À4Ø#˜W¨Wô7ñNó7ðNòb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 Ñ#6Ð"7Ø"Øô!ò/ó!ð/ñ Ñ#;Ð"<Ø"Øô!ò)ó!ð)ñ   Ô(òó )ðó2=ñ4 Ñ2Ð3¸7ÔCò	$ó Dð	$ó7ôr.   