§
    ‡ÛgHd  ã                   ó 	  — d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dl	Z
d dlmZ d dl	mZmZmZ d dlmZmZ d dlZd„ Zd„ Zej                             d ej        d	¦  «         ej        d	¦  «         ej        d
¦  «        fdf ej        d¦  «         ej        d¦  «         ej        d
¦  «        fdf ej        d¦  «         ej        d¦  «         ej        d
¦  «        fdf ej        d¦  «         ej        d¦  «         ej        d
¦  «        fdf ej        d¦  «         ej        d
¦  «         ej        d
¦  «        fdf ej        d
¦  «         ej        d¦  «         ej        d
¦  «        fdf ej        d¦  «         ej        d¦  «         ej        d
¦  «        fdf ej        d¦  «         ej        d¦  «         ej        d¦  «        fdfd ggfdfd gd gd ggfdfg
¦  «        d„ ¦   «         Zd„ Zd„ Z edgdd¬¦  «        d„ ¦   «         Z ed gd¬!¦  «        d"„ ¦   «         Z ed#gdd$¬%¦  «        d&„ ¦   «         Z  ed'gd¬(¦  «        d)„ ¦   «         Z! ed*gdd ej"        ¦   «         d+k    rd nd,¬-¦  «        d.„ ¦   «         Z# ed/d0gd¬!¦  «        d1„ ¦   «         Z$d2„ Z%d3„ Z&d4„ Z'ej                             d5g d6¢¦  «        d7„ ¦   «         Z( ed8gddd9¬-¦  «        d:„ ¦   «         Z) ed;gdd ej"        ¦   «         d<v rd=nd>¬-¦  «        d?„ ¦   «         Z* ed@gdAgdd¬B¦  «        dC„ ¦   «         Z+ej                             dDg dE¢¦  «        dF„ ¦   «         Z,ej         -                    dG¦  «        dH„ ¦   «         Z. edIgdAgd¬J¦  «        dK„ ¦   «         Z/dL„ Z0 edMgdAgd¬J¦  «        dN„ ¦   «         Z1 edOgdAgd¬J¦  «        dP„ ¦   «         Z2dQ„ Z3dR„ Z4e
j5         6                    dS¦  «        dT„ ¦   «         Z7dU„ Z8dV„ Z9ej                             dWdXej:        fdYej;        fdZej<        fd[ej=        fd\g¦  «        d]„ ¦   «         Z>ej                             d^g d_¢¦  «        d`„ ¦   «         Z? edagdAgd¬J¦  «        db„ ¦   «         Z@dc„ ZAej                             ddg de¢¦  «        df„ ¦   «         ZBej                             ddg de¢¦  «        dg„ ¦   «         ZCdh„ ZDdi„ ZEdS )jé    N)Úassert_array_almost_equalÚassert_array_almost_equal_nulp)Úimage_comparison)ÚpyplotÚ
rc_contextÚticker)ÚLogNormÚ
same_colorc                  óî   — t          j        d¦  «        } t          j        d¦  «        }t           j                             d¦  «        }t          j        ¦   «         \  }}|                     | ||¦  «         d S ©Né
   é	   ©r   r   )ÚnpÚarangeÚrandomÚpltÚsubplotsÚcontour)ÚxÚyÚzÚfigÚaxs        úS/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/tests/test_contour.pyÚtest_contour_shape_1d_validr      s\   € å
Œ	�"‰Œ€AÝ
Œ	�!‰Œ€AÝ
Œ	×Ò˜Ñ!Ô!€AåŒl‰nŒn�G€CˆØ‡J‚Jˆq�!�QÑÔÐÐÐó    c                  ó  — t          j        d¦  «        } t          j        d¦  «        }t          j        | |¦  «        \  }}t           j                             d¦  «        }t	          j        ¦   «         \  }}|                     |||¦  «         d S r   )r   r   Úmeshgridr   r   r   r   )r   r   ÚxgÚygr   r   r   s          r   Útest_contour_shape_2d_validr"      sq   € å
Œ	�"‰Œ€AÝ
Œ	�!‰Œ€AÝŒ[˜˜AÑÔ�F€BˆÝ
Œ	×Ò˜Ñ!Ô!€AåŒl‰nŒn�G€CˆØ‡J‚Jˆr�2�qÑÔÐÐÐr   zargs, messager   r   z6Length of x (9) must match number of columns in z (10)r   z3Length of y (10) must match number of rows in z (9))r   r   z4Number of dimensions of x (2) and y (1) do not matchz4Number of dimensions of x (1) and y (2) do not match©r   r   z-Shapes of x (9, 9) and z (9, 10) do not matchz-Shapes of y (9, 9) and z (9, 10) do not match)é   r$   r$   z'Inputs x and y must be 1D or 2D, not 3DzInput z must be 2D, not 3DzDInput z must be at least a (2, 2) shaped array, but has shape (1, 1)c                 óÒ   — t          j        ¦   «         \  }}t          j        t          t          j        |¦  «        ¬¦  «        5   |j        | Ž  d d d ¦  «         d S # 1 swxY w Y   d S )N©Úmatch)r   r   ÚpytestÚraisesÚ	TypeErrorÚreÚescaper   )ÚargsÚmessager   r   s       r   Útest_contour_shape_errorr/   %   s¥   € õ. Œl‰nŒn�G€CˆÝ	Œ•y­¬	°'Ñ(:Ô(:Ð	;Ñ	;Ô	;ð ð ØˆŒ
�DÐÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁAÁA Á#A c                  ó–  — t          j        ¦   «         \  } }|                     t          j                             dd¦  «        g ¬¦  «         |                     t          j        d¦  «                             d¦  «        dg¬¦  «        }|                     |ddi¬¦  «         |                     t          j	        d¦  «        ¦  «         d S )Nr   ©ÚlevelséQ   r#   éd   z%1.2f)Úfmt)
r   r   r   r   r   Úrandr   ÚreshapeÚclabelÚones)r   r   Úcss      r   Útest_contour_no_valid_levelsr;   A   sž   € ÝŒl‰nŒn�G€Cˆà‡J‚J�rŒy�~Š~˜a Ñ#Ô#¨B€JÑ/Ô/Ð/à	�Š•B”I˜b‘M”M×)Ò)¨&Ñ1Ô1¸3¸%ˆÑ	@Ô	@€Bà‡I‚Iˆb�s˜G�n€IÑ%Ô%Ð%à‡J‚J�rŒw�v‰ŒÑÔÐÐÐr   c                  óV  — t          j        d¦  «                             d¦  «        } t          j        ¦   «         \  }}|                     | d¦  «        }t          |j        ¦  «        dk    sJ ‚|                     | d¬¦  «        }|j        |j        k                         ¦   «         sJ ‚d S )Né   ©r$   é   é   é   r1   )	r   r   r7   r   r   r   Úlenr2   Úall)r   r   r   Úcs1Úcs2s        r   Útest_contour_NlevelsrF   M   s–   € õ 	Œ	�"‰Œ×Ò˜fÑ%Ô%€AÝŒl‰nŒn�G€CˆØ
�*Š*�Q˜Ñ
Ô
€CÝˆsŒz‰?Œ?˜QÒÐÐÐØ
�*Š*�Q˜qˆ*Ñ
!Ô
!€CØŒJ˜#œ*Ò$×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+r   Úcontour_manual_labelsTÚmpl20)Úremove_textÚstylec                  ó  — t          j        t          j        dd¦  «        t          j        dd¦  «        ¦  «        \  } }t          j        t          j        t          | ¦  «        t          |¦  «        g¦  «        d¦  «        }t          j        dd¬¦  «         t          j        | ||¦  «        }t          j	        g d¢¦  «        }t          j
        ||¬¦  «         t          j	        g d	¢¦  «        }t          j
        ||d
d¬¦  «         d S )Nr   r   é   )é   rL   éÈ   )ÚfigsizeÚdpi))ç      ð?ç      @)rQ   çš™™™™™@)rQ   ç      @)Úmanual))ç       @rR   )rV   rS   )rV   rT   Úsmall)ÚrÚg)rU   ÚfontsizeÚcolors)r   r   r   ÚmaxÚdstackÚabsr   Úfigurer   Úarrayr8   )r   r   r   r:   Úptss        r   Útest_contour_manual_labelsrb   X   sã   € åŒ;•r”y  BÑ'Ô'­¬°1°bÑ)9Ô)9Ñ:Ô:�D€A€qÝ
Œ�rŒy�#˜a™&œ&¥# a¡&¤&Ð)Ñ*Ô*¨AÑ.Ô.€Aå„J�v 3Ð'Ñ'Ô'Ð'Ý	Œ�Q˜˜1Ñ	Ô	€BÝ
Œ(Ð7Ð7Ð7Ñ
8Ô
8€CÝ„Jˆr˜#ÐÑÔÐÝ
Œ(Ð7Ð7Ð7Ñ
8Ô
8€CÝ„Jˆr˜#¨¸
ÐCÑCÔCÐCÐCÐCr   z$contour_manual_colors_and_levels.png)rI   c                  óê  — dt           j        d<   t          j        dd¦  «        \  } }t          j        d¦  «                             dd¦  «        }g d¢}g d¢}t          |j        ¦  «        D ]†\  }}|dz  d	k    }g d
¢|dz           }|r2|dv rdnd }	|dv rdnd }
|                     |||	|
…         ||¬¦  «        }n!| 	                    ||d d…         ||¬¦  «        }t          j
        ||¬¦  «         Œ‡d S )NFúpcolormesh.snaprL   r?   r=   r$   )ÚredÚyellowÚpinkÚblueÚblack)rL   r?   é   r   ç        )ÚneitherÚminr\   Úboth)r\   rl   rA   )rm   rl   éÿÿÿÿ)r[   r2   Úextend©r   )r   ÚrcParamsr   r   r   r7   Ú	enumerateÚflatÚcontourfr   Úcolorbar)Ú_ÚaxsÚdatar[   r2   Úir   Úfilledrp   Úfirst_colorÚ
last_colorÚcs               r   Ú$test_given_colors_levels_and_extendsr   e   sC  € ð ',…C„LÐ"Ñ#åŒ\˜!˜QÑÔ�F€A€såŒ9�R‰=Œ=× Ò   AÑ&Ô&€Dà7Ð7Ð7€FØˆ]ˆ]€Få˜3œ8Ñ$Ô$ð ð ‰ˆˆ2Ø�Q‘˜"’ˆØ2Ð2Ð2°1¸±6Ô:ˆàð 
	9ð  &Ð);Ð;Ð;˜!˜!ÀˆKØ%Ð);Ð;Ð;˜˜ÀˆJØ—’˜D¨°¸JÐ0FÔ)GØ#)°&ð ñ :ô :ˆAˆAð —
’
˜4¨¨s°¨s¬Ø"(°ð ñ 9ô 9ˆAõ 	Œ�Q˜2ÐÑÔÐÐð!ð r   zcontour_log_locator.svgF)rJ   rI   c            
      óž  — t          j        ¦   «         \  } }d}t          j        dd|¦  «        }t          j        dd|¦  «        }t          j        ||¦  «        \  }}t          j        |dz   |dz  z
  ¦  «        }t          j        |dz  dz   |dz  dz  z
  ¦  «        }|d|z  z   }	|                     |	t          j        ¦   «         ¬	¦  «        }
t          |
j
        t          j        d
t          j        dd¦  «        ¦  «        ¦  «         |                      |
|¬¦  «        }t          |j                             ¦   «         |
j
        ¦  «         d S )Nr4   ç      ÀrR   ç       ÀrV   rL   r   é2   ©Úlocatorç      $@iúÿÿÿr$   rq   )r   r   r   Úlinspacer   Úexpru   r   Ú
LogLocatorr   r2   Úpowerr   rv   r   Ú
get_yticks)r   r   ÚNr   r   ÚXÚYÚZ1ÚZ2ry   r~   Úcbs               r   Útest_log_locator_levelsr’   „   s&  € õ Œl‰nŒn�G€Cˆà€AÝ
Œ�D˜#˜qÑ!Ô!€AÝ
Œ�D˜#˜qÑ!Ô!€AåŒ;�q˜!ÑÔ�D€A€qå	Œ��A‘�˜˜1™‘Ñ	Ô	€BÝ	Œ�!�b‘&˜1‘�  B¡¨™{Ñ*Ñ	+Ô	+€BØ��R‘‰<€Dà
�Š�D¥&Ô"3Ñ"5Ô"5ˆÑ6Ô6€AÝ˜aœh­¬°µr´yÀÀQÑ7GÔ7GÑ(HÔ(HÑIÔIÐIØ	�Š�a˜BˆÑ	Ô	€BÝ˜bœe×.Ò.Ñ0Ô0°!´(Ñ;Ô;Ð;Ð;Ð;r   zcontour_datetime_axis.png)rJ   c                  ó2  ‡— t          j        ¦   «         } |                      ddd¬¦  «         t          j        ddd¦  «        Št	          j        ˆfd„t          d¦  «        D ¦   «         ¦  «        }t	          j        d¦  «        }t	          j        t	          j        d¦  «        t	          j        d¦  «        ¦  «        \  }}||z  }t          j	        d	¦  «         t          j
        |||¦  «         t          j	        d
¦  «         t          j        |||¦  «         t	          j        |t          j                 dd¬¦  «        }t	          j        |d d …t          j        f         dd¬¦  «        }t          j	        d¦  «         t          j
        |||¦  «         t          j	        d¦  «         t          j        |||¦  «         |                      ¦   «         D ]C}|                     ¦   «         D ],}|                     d¦  «         |                     d¦  «         Œ-ŒDd S )Ngš™™™™™Ù?g\�Âõ(\ï?ç333333Ã?)ÚhspaceÚtopÚbottomiÝ  rA   c                 ó@   •— g | ]}‰t          j        |¬ ¦  «        z   ‘ŒS ))Údays)ÚdatetimeÚ	timedelta)Ú.0ÚdÚbases     €r   ú
<listcomp>z.test_contour_datetime_axis.<locals>.<listcomp>Ÿ   s,   ø€ ÐGÐGÐG¸�$�Ô+°Ð3Ñ3Ô3Ñ3ÐGÐGÐGr   é   éÝ   éÞ   r   )Úaxiséß   éà   Úrighté   )r   r_   Úsubplots_adjustrš   r   r`   Úranger   r   Úsubplotr   ru   ÚrepeatÚnewaxisÚget_axesÚget_xticklabelsÚset_haÚset_rotation)	r   r   r   Úz1Úz2r   r   Úlabelrž   s	           @r   Útest_contour_datetime_axisr´   š   sÝ  ø€ å
Œ*‰,Œ,€CØ×Ò˜s¨°SÐÑ9Ô9Ð9ÝÔ˜T 1 aÑ(Ô(€DÝ
ŒÐGÐGÐGÐG½UÀ2¹Y¼YÐGÑGÔGÑHÔH€AÝ
Œ	�"‰Œ€AÝŒ[�œ 2™œ­¬	°"©¬Ñ6Ô6�F€BˆØ
ˆR‰€AÝ„K�ÑÔÐÝ„K��1�aÑÔÐÝ„K�ÑÔÐÝ„L��A�qÑÔÐÝ
Œ	�!•B”J”- ¨!Ð,Ñ,Ô,€AÝ
Œ	�!�A�A�A•r”z�MÔ" B¨QÐ/Ñ/Ô/€AÝ„K�ÑÔÐÝ„K��1�aÑÔÐÝ„K�ÑÔÐÝ„L��A�qÑÔÐØ�lŠl‰nŒnð #ð #ˆØ×'Ò'Ñ)Ô)ð 	#ð 	#ˆEØ�LŠL˜Ñ!Ô!Ð!Ø×Ò˜rÑ"Ô"Ð"Ð"ð	#ð#ð #r   z!contour_test_label_transforms.pngÚx86_64g{®Gáz´?)rI   rJ   Útolc                  ó¤  — d} t          j        dd| ¦  «        }t          j        dd| ¦  «        }t          j        ||¦  «        \  }}t          j        |dz  |dz  z    dz  ¦  «        dt           j        z  z  }t          j        |dz
  dz  dz  |dz
  d	z  dz  z    dz  ¦  «        dt           j        z  d	z  dz  z  }d
||z
  z  }t          j        dd¦  «        \  }}	|	                     |||¦  «        }
g d¢}g d¢}|
                     ¦   «          |D ]\  }}|
 	                    ||dd ¬¦  «         Œ|D ]\  }}|
 	                    ||dd¬¦  «         Œd S )Nçš™™™™™™?r�   rR   r‚   rV   rL   rA   g      ø?ç      à?r†   ))éØ   é±   )ig  i"  )i	  i–  ))éþÿÿÿr¹   )r   g      ø¿)gffffff@rA   T)ÚinlineÚ	transformF)
r   r   r   rˆ   Úpir   r   r   r8   Úadd_label_near)Údeltar   r   r�   rŽ   r�   r�   ÚZr   r   ÚCSÚ
disp_unitsÚ
data_unitss                r   Útest_labelsrÆ   ³   s‹  € ð €EÝ
Œ	�$˜˜UÑ#Ô#€AÝ
Œ	�$˜˜UÑ#Ô#€AÝŒ;�q˜!ÑÔ�D€A€qÝ	Œ�!�Q‘$˜˜A™‘+� Ñ"Ñ	#Ô	# q­2¬5¡yÑ	1€BÝ
Œ&�Q˜‘U˜c‘M AÑ%¨!¨a©%°3©¸Ñ(:Ñ:Ð;¸aÑ?Ñ
@Ô
@Ø�rŒu‰9�s‰?˜SÑ ñ"€Bð 	��R‘Ñ€AåŒl˜1˜aÑ Ô �G€CˆØ	�Š�A�q˜!Ñ	Ô	€BØ5Ð5Ð5€JØ0Ð0Ð0€Jà‡I‚I�K„K€Kàð =ð =‰ˆˆ1Ø
×Ò˜!˜Q t°tÐÑ<Ô<Ð<Ð<àð >ð >‰ˆˆ1Ø
×Ò˜!˜Q t°uÐÑ=Ô=Ð=Ð=ð>ð >r   zcontour_corner_mask_False.pngzcontour_corner_mask_True.pngc                  ó^  — d} d}d}t           j                             dg¦  «         t          j        t          j        dd| ¦  «        t          j        dd| ¦  «        ¦  «        \  }}t          j        d|z  ¦  «        t          j        d|z  ¦  «        z  |t           j                             | | ¦  «        z  z   }t           j                             | | ¦  «        |k    }t           j         	                    ||¬	¦  «        }d
D ]+}t          j        ¦   «          t          j        ||¬¦  «         Œ,d S )Né<   çffffffî?rQ   rA   r   rV   é   rj   ©Úmask)FT©Úcorner_mask)r   r   Úseedr   r‡   ÚcosÚsinr6   Úmar`   r   r_   ru   )ÚnÚ
mask_levelÚ	noise_ampr   r   r   rÌ   rÎ   s           r   Útest_corner_maskrÖ   Ò   s  € ð 	€AØ€JØ€IÝ„I‡N‚N�A�3ÑÔÐÝŒ;•r”{ 1 c¨1Ñ-Ô-­r¬{¸1¸cÀ1Ñ/EÔ/EÑFÔF�D€A€qÝ
Œˆq�‰s‰Œ•B”F˜1˜Q™3‘K”KÑ )­B¬I¯NªN¸1¸aÑ,@Ô,@Ñ"@Ñ@€AÝŒ9�>Š>˜!˜QÑÔ :Ò-€DÝ
Œ�Š�A˜DˆÑ!Ô!€Aà$ð 1ð 1ˆÝŒ
‰ŒˆÝŒ�Q KÐ0Ñ0Ô0Ð0Ð0ð1ð 1r   c                  óÎ   — ddgddgg} t          j        ¦   «          t          j        t          ¦  «        5  t          j        | ddg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ngš™™™™™¹?g333333Ó?r¹   çffffffæ?rQ   rk   )r   r_   r(   r)   Ú
ValueErrorru   )r   s    r   Útest_contourf_decreasing_levelsrÚ   ä   s©   € à
ˆsˆ�c˜3�ZÐ €AÝ„J�L„L€LÝ	Œ•zÑ	"Ô	"ð $ð $ÝŒ�Q˜˜c˜
Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   µAÁAÁ!Ac                  óþ   — t          j        d¦  «                             d¦  «        } t          j        dd¬¦  «        }t          j        | |¬¦  «        }t          |j        t          j        ddd¦  «        ¦  «         d S )	Nr=   r>   r?   T)ÚnbinsÚ	symmetricr„   iôÿÿÿr@   )	r   r   r7   r   ÚMaxNLocatorru   r   r2   r‡   )r   r…   r:   s      r   Útest_contourf_symmetric_locatorrß   ì   sk   € å
Œ	�"‰Œ×Ò˜fÑ%Ô%€AÝŒo A°Ð6Ñ6Ô6€GÝ	Œ�a Ð	)Ñ	)Ô	)€BÝ˜bœi­¬°S¸"¸aÑ)@Ô)@ÑAÔAÐAÐAÐAr   c                  ó*  — t          j        t          j        ddd¦  «        t          j        ddd¦  «        ¦  «        \  } }t          j        | |¦  «        }t	          j        ¦   «          t	          j        | ||¦  «        }t	          j        |¦  «         d S )Nr¼   rL   r?   )r   r   r‡   Úhypotr   r_   r   r8   )r   r   rX   r:   s       r   Útest_circular_contour_warningrâ   ô   sq   € åŒ;•r”{ 2 q¨!Ñ,Ô,­b¬k¸"¸aÀÑ.CÔ.CÑDÔD�D€A€qÝ
Œ��A‰Œ€AÝ„J�L„L€LÝ	Œ�Q˜˜1Ñ	Ô	€BÝ„Jˆr�N„N€N€N€Nr   z-use_clabeltext, contour_zorder, clabel_zorder))Té{   éÒ  )Frã   rä   )Trã   N)Frã   Nc                 óŽ  — t          j        t          j        dd¦  «        t          j        dd¦  «        ¦  «        \  }}t          j        t          j        t          |¦  «        t          |¦  «        g¦  «        d¦  «        }t          j        d¬¦  «        \  }\  }}|                     ||||¬¦  «        }	| 	                    ||||¬¦  «        }
|	 
                    || ¬¦  «        }|
 
                    || ¬¦  «        }|€d|z   }n|}|D ]}|                     ¦   «         |k    sJ ‚Œ|D ]}|                     ¦   «         |k    sJ ‚Œd S )Nr   r   rL   )Úncols)Úzorder)rç   Úuse_clabeltext)r   r   r   r\   r]   r^   r   r   r   ru   r8   Ú
get_zorder)rè   Úcontour_zorderÚclabel_zorderr   r   r   r   Úax1Úax2r:   Ú	cs_filledÚclabels1Úclabels2Úexpected_clabel_zorderr8   s                  r   Útest_clabel_zorderrò   ý   sc  € õ Œ;•r”y  BÑ'Ô'­¬°1°bÑ)9Ô)9Ñ:Ô:�D€A€qÝ
Œ�rŒy�#˜a™&œ&¥# a¡&¤&Ð)Ñ*Ô*¨AÑ.Ô.€Aå”l¨Ð+Ñ+Ô+�O€C‰ˆ#ˆsØ	�Š�Q˜˜1 ^ˆÑ	4Ô	4€BØ—’˜Q  1¨^�Ñ<Ô<€IØ�yŠy ¸nˆyÑMÔM€HØ×Ò }Ø/=ð  ñ ?ô ?€Hð ÐØ!" >Ñ!1ÐÐà!.Ðàð =ð =ˆØ× Ò Ñ"Ô"Ð&<Ò<Ð<Ð<Ð<Ð<Øð =ð =ˆØ× Ò Ñ"Ô"Ð&<Ò<Ð<Ð<Ð<Ð<ð=ð =r   zcontour_log_extension.pngg´Èv¾Ÿ÷?c            	      óX  — dt           j        d<   t          j        ddd¬¦  «        \  } \  }}}|                      dd¬	¦  «         t	          j        d
dd¦  «        }t	          j        d|¦  «                             dd¦  «        }t	          j        dd¦  «        }t	          j        d|¦  «        }| 	                    |t          |                     ¦   «         |                     ¦   «         ¬¦  «        ¬¦  «        }| 	                    ||t          |                     ¦   «         |                     ¦   «         ¬¦  «        d¬¦  «        }	| 	                    ||t          |                     ¦   «         |                     ¦   «         ¬¦  «        d¬¦  «        }
t          j        ||¬¦  «        }|j                             ¦   «         dk    sJ ‚t          j        |	|¬¦  «        }t!          |j                             ¦   «         t	          j        d¦  «        ¦  «         t          j        |
|¬¦  «        }d S )NFrd   rA   r$   )r   r@   ©rO   gš™™™™™©?rÉ   )Úleftr¦   g      Àg      #@i°  r   r§   é(   g      Àg      @r†   )ÚvminÚvmax)Únormrl   )r2   rù   rp   rn   rq   )g:Œ0âŽyE>g    _ B)ç-Cëâ6?g    €„.A)r   rr   r   r¨   r   r‡   rŠ   r7   r   ru   r	   rm   r\   rv   r   Úget_ylimr   r`   )r   rì   rí   Úax3Údata_expry   Ú
levels_expr2   Úc1Úc2Úc3r‘   s               r   Útest_contourf_log_extensionr    sê  € ð
 ',…C„LÐ"Ñ#õ œ<¨¨1°gÐ>Ñ>Ô>Ñ€C‰ˆ#ˆs�CØ×Ò˜T¨ÐÑ.Ô.Ð.õ Œ{˜4  dÑ+Ô+€HÝŒ8�B˜Ñ!Ô!×)Ò)¨"¨bÑ1Ô1€Då”˜3 Ñ#Ô#€JÝŒX�c˜:Ñ&Ô&€Fð 
�Š�dÝ"¨¯ª©
¬
¸¿º¹¼ÐDÑDÔDð 
ñ 
Fô 
F€Bð 
�Š�d 6Ý"¨¯
ª
©¬¸6¿:º:¹<¼<ÐHÑHÔHØ&ð 
ñ 
(ô 
(€Bð 
�Š�d 6Ý"¨¯
ª
©¬¸6¿:º:¹<¼<ÐHÑHÔHØ#ð 
ñ 
%ô 
%€Bõ 
Œ�b˜SÐ	!Ñ	!Ô	!€BØŒ5�>Š>ÑÔ˜|Ò+Ð+Ð+Ð+Ý	Œ�b˜SÐ	!Ñ	!Ô	!€BÝ" 2¤5§>¢>Ñ#3Ô#3µR´X¸kÑ5JÔ5JÑKÔKÐKÝ	Œ�b˜SÐ	!Ñ	!Ô	!€B€B€Br   zcontour_addlines.png)Úaarch64Úppc64leÚs390xr”   g¸…ëQ¸ž?c                  óÖ  — dt           j        d<   t          j        ¦   «         \  } }t          j                             d¦  «         t          j                             dd¦  «        dz  }|                     |¦  «        }|                     |dz   ¦  «        }|  	                    |¦  «        }| 
                    |¦  «         t          |j                             ¦   «         ddgd	¦  «         d S )
NFrd   i,N,r   i'  iè  gdÌ]KÈ“\@g6«>W'zÃ@r$   )r   rr   r   r   r   rÏ   r6   Ú
pcolormeshr   rv   Ú	add_linesr   r   rû   )r   r   r�   ÚpcmÚcontr‘   s         r   Útest_contour_addlinesr  =  sÀ   € ð ',…C„LÐ"Ñ#åŒl‰nŒn�G€CˆÝ„I‡N‚N�8ÑÔÐÝ
Œ	�Š�r˜2ÑÔ˜uÑ$€AØ
�-Š-˜Ñ
Ô
€Cà�:Š:�a˜‘fÑÔ€DØ	�Š�cÑ	Ô	€BØ‡L‚L�ÑÔÐÝ˜bœeŸnšnÑ.Ô.°¸:Ð0FÈÑJÔJÐJÐJÐJr   Úcontour_unevenÚpng)Úbaseline_imagesÚ
extensionsrI   rJ   c                  óˆ  — dt           j        d<   t          j        d¦  «                             dd¦  «        } t          j        dd¦  «        \  }}|d         }|                     | g d	¢¬
¦  «        }|                     ||d¬¦  «         |d         }|                     | g d	¢¬
¦  «        }|                     ||d¬¦  «         d S )NFrd   é   r?   rM   rA   rL   r   )rL   r?   rM   r   r    r1   Úproportional)r   ÚspacingÚuniform)r   rr   r   r   r7   r   ru   rv   )r   r   rx   r   r:   s        r   Útest_contour_unevenr  R  sÃ   € ð ',…C„LÐ"Ñ#å
Œ	�"‰Œ×Ò˜a Ñ#Ô#€AÝŒ|˜A˜qÑ!Ô!�H€CˆØ	ˆQŒ€BØ	�Š�QÐ0Ð0Ð0ˆÑ	1Ô	1€BØ‡L‚L�˜ N€LÑ3Ô3Ð3Ø	ˆQŒ€BØ	�Š�QÐ0Ð0Ð0ˆÑ	1Ô	1€BØ‡L‚L�˜ I€LÑ.Ô.Ð.Ð.Ð.r   zCrc_lines_linewidth, rc_contour_linewidth, call_linewidths, expected))ç®Gáz®ó?NNr  )r  çö(\�Âõ@Nr  )r  r  ç®Gáz@r  c                 ó<  — t          | |dœ¬¦  «        5  t          j        ¦   «         \  }}t          j        d¦  «                             dd¦  «        }|                     ||¬¦  «        }|j        d         d         |k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )N)zlines.linewidthzcontour.linewidth)Úrcr=   r?   r$   )Ú
linewidthsr   )r   r   r   r   r   r7   r   Útlinewidths)Úrc_lines_linewidthÚrc_contour_linewidthÚcall_linewidthsÚexpectedr   r   r�   r:   s           r   Útest_contour_linewidthr!  b  só   € õ 
Ð+=Ø-AðCð Cð 
Dñ 
Dô 
Dð 0ð 0å”,‘.”.‰ˆˆRÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�ZŠZ˜ oˆZÑ6Ô6ˆØŒ~˜aÔ  Ô# xÒ/Ð/Ð/Ð/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s   ”A/BÂBÂBÚpdfc                  ó^   — t          j        t          j        ddgddgg¦  «        ¦  «         d S )NrA   rL   r$   r?   )r   r8   r   © r   r   Útest_label_nonaggr%  s  s1   € õ „J�sŒ{˜Q ˜F Q¨ FÐ+Ñ,Ô,Ñ-Ô-Ð-Ð-Ð-r   Úcontour_closed_line_loop)r  r  rI   c                  óà   — g d¢g d¢g d¢g d¢g} t          j        d¬¦  «        \  }}|                     | dgdgd¬	¦  «         |                     d
d¦  «         |                     d
d¦  «         d S )N)r   r   r   )r   rL   r   )rL   rA   rL   )rL   rL   rô   r¹   r    rØ   )r  Úalphagš™™™™™¹¿gÍÌÌÌÌÌ @gÍÌÌÌÌÌ@)r   r   r   Úset_xlimÚset_ylim)r   r   r   s      r   Útest_contour_closed_line_loopr+  y  s„   € ð 
ˆˆ�I�I�I˜y˜y˜y¨)¨)¨)Ð4€AåŒl 6Ð*Ñ*Ô*�G€CˆØ‡J‚Jˆq�3�% R D°€JÑ4Ô4Ð4Ø‡K‚K��cÑÔÐØ‡K‚K��cÑÔÐÐÐr   c                  óD  — t          j        ddgddg¦  «        \  } }| |z   }t          j        ¦   «         \  }}|                     | ||¦  «        }|                     | ||¦  «        }|j        |j        k    sJ ‚|                     ||¦  «        }|j        |j        k    sJ ‚d S )Nrk   rQ   )r   r   r   r   ru   r   Ú_contour_generator)r   r   r   r   r   Úqcs1Úqcs2Úqcs3s           r   Útest_quadcontourset_reuser1  …  sª   € õ Œ;˜˜S�z C¨ :Ñ.Ô.�D€A€qØ	ˆA‰€AÝŒl‰nŒn�G€CˆØ�;Š;�q˜!˜QÑÔ€DØ�:Š:�a˜˜AÑÔ€DØÔ" dÔ&=Ò=Ð=Ð=Ð=Ø�:Š:�d˜AÑÔ€DØÔ" dÔ&=Ò=Ð=Ð=Ð=Ð=Ð=r   Úcontour_manualc                  óÌ  — ddl m}  t          j        d¬¦  «        \  }}d}ddgddgddggg}ddgddggddgdd	ggg}ddgdd	gddgddgddggg}ddgddgddgddgddggdd	gdd	gddggg} | |g d
¢||gd|¬¦  «          | |ddg||gdddg¬¦  «         d	dgddgddgd	dgd	dgddgddgddgddgddgg
g}g d¢g}	 | |ddg|g|	gd|¬¦  «          | |dg|g|	gdd¬¦  «         d S )Nr   )Ú
ContourSet©r?   r?   rô   ÚviridisrL   rA   r$   r?   ©r   rA   rL   T)r{   ÚcmaprX   Úk)r  r[   rÊ   r@   rM   )
rA   rL   rL   rL   éO   rA   rL   rL   rL   r:  )r[   r  )Úmatplotlib.contourr4  r   r   )
r4  r   r   r8  Úlines0Úlines1Úfilled01Úfilled12ÚsegsÚkindss
             r   Útest_contour_manualrB  ’  sÌ  € ð .Ð-Ð-Ð-Ð-Ð-åŒl 6Ð*Ñ*Ô*�G€CˆØ€Dð �1ˆv˜˜1�v  1˜vÐ&Ð'€FØ�1ˆv˜˜1�vÐ ! Q ¨!¨Q¨Ð 0Ð1€FØ�Q�˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°Ð8Ð9€HØ�Q�˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°Ð8Ø�Q�˜!˜Q˜ ! Q Ð(ð*€Hà€Jˆr�9�9�9˜x¨Ð2¸4ÀdÐKÑKÔKÐKØ€Jˆr�A�q�6˜F FÐ+¸À3ÈÀ*ÐMÑMÔMÐMð �ˆV�a˜�V˜a ˜V a¨ V¨a°¨VØ�ˆV�a˜�V˜a ˜V a¨ V¨a°¨Vð5ð 6€Dà-Ð-Ð-Ð.€EØ€Jˆr�A�q�6˜D˜6 E 7°4¸dÐCÑCÔCÐCØ€Jˆr�A�3˜˜  °ÀÐBÑBÔBÐBÐBÐBr   Ú!contour_line_start_on_corner_edgec                  óÜ  — t          j        d¬¦  «        \  } }t          j        g d¢g d¢¦  «        \  }}d|dz
  dz  z
  |dz
  dz  z   }t          j        |t
          ¬¦  «        }d	x|d
<   |d<   t          j                             ||¬¦  «        }|                     |||d	¬¦  «        }|  	                    |¦  «        }| 
                    |||d	d¬¦  «        }|                     |¦  «         d S )N)rM   r@   rô   )r   rA   rL   r$   r?   r7  g333333ó?rL   rA   ©ÚdtypeT)rA   rA   )rA   r$   rË   rÍ   r9  )rÎ   r[   )r   r   r   r   Ú
zeros_likeÚboolrÒ   r`   ru   rv   r   r  )	r   r   r   r   r   rÌ   r{   ÚcbarÚliness	            r   Ú&test_contour_line_start_on_corner_edgerK  ¬  sð   € õ Œl 6Ð*Ñ*Ô*�G€CˆåŒ;���¨	¨	¨	Ñ2Ô2�D€A€qØˆq�1‰u�q‰jÑ˜A ™E A™:Ñ%€AÝŒ=˜¥$Ð'Ñ'Ô'€DØ"Ð"€Dˆ�J��d‘Ý
Œ�Š�A˜DˆÑ!Ô!€Aà�[Š[˜˜A˜q¨dˆ[Ñ3Ô3€FØ�<Š<˜ÑÔ€DØ�JŠJ�q˜!˜Q¨D¸ˆJÑ=Ô=€EØ‡N‚N�5ÑÔÐÐÐr   c                  ó&  — t          j        d¦  «        } t          j        t           j         t          j        | dz
  dz  d¦  «        dz  z  ¦  «        }t          j        |d¦  «        }|                     ddd¬	¦  «        }d
}t          ||¦  «         |                     ddd¬	¦  «        }d}t          ||¦  «         |                     ddd¬	¦  «        }d}t          ||¦  «         |                     dddd¬¦  «        }d}t          ||¦  «         d S )N©é   rN  r@   rL   r   ç      9@r   rA   F©Úpixel)rA   r   é!   çYÄ°Ã˜tÿ?rS  gbž•´âÛý?rj   )rA   r   r@   gŸ‘�`3@gDl°p’fù?gö—Ý“‡…á?)r$   r   é   gÍ°QÖo&þ?g�hW!å@g|ïoÐ^}Œ?©r@   rÊ   ©ÚindicesrQ  )r@   r   é   gA*ÅŽ@g      @g÷�ð½¿AÙ?)	r   rW  rˆ   r¿   Úsumr   r   Úfind_nearest_contourr   )ÚxyÚimgr:   Únearest_contourÚexpected_nearests        r   Útest_find_nearest_contourr_  ½  s)  € Ý	Œ�HÑ	Ô	€BÝ
Œ&•"”%��2œ6 2¨¡6¨A¡+¨qÑ1Ô1°%Ñ7Ñ8Ñ
9Ô
9€CÝ	Œ�S˜"Ñ	Ô	€Bà×-Ò-¨a°¸%Ð-Ñ@Ô@€OØ?ÐÝ˜oÐ/?Ñ@Ô@Ð@à×-Ò-¨a°¸%Ð-Ñ@Ô@€OØ>ÐÝ˜oÐ/?Ñ@Ô@Ð@à×-Ò-¨a°¸%Ð-Ñ@Ô@€OØ?ÐÝ˜oÐ/?Ñ@Ô@Ð@à×-Ò-¨a°Ø6<Ø49ð .ñ ;ô ;€Oð ;ÐÝ˜oÐ/?Ñ@Ô@Ð@Ð@Ð@r   c                  óœ  — t          j        d¦  «        } t          j        t           j         t          j        | dz
  dz  d¦  «        dz  z  ¦  «        }t          j        |d¦  «        }t          j        t          d¬¦  «        5  | 
                    d	d	d
¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  | 
                    d	ddd
¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  | 
                    dddd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrM  r@   rL   r   rO  r   z(Method does not support filled contours.r&   rA   FrP  rU  rV  )rL   rÊ   T)r   rW  rˆ   r¿   rY  r   ru   r(   r)   rÙ   rZ  )r[  r\  r:   s      r   Ú#test_find_nearest_contour_no_filledra  Õ  s<  € Ý	Œ�HÑ	Ô	€BÝ
Œ&•"”%��2œ6 2¨¡6¨A¡+¨qÑ1Ô1°%Ñ7Ñ8Ñ
9Ô
9€CÝ	Œ�c˜2Ñ	Ô	€Bå	Œ•zØGð
Iñ 
Iô 
Ið 3ð 3à
×Ò  1¨EÐÑ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3õ 
Œ•zØGð
Iñ 
Iô 
Ið Dð Dà
×Ò  2¨v¸UÐÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dõ 
Œ•zØGð
Iñ 
Iô 
Ið Bð Bà
×Ò  1¨f¸DÐÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs6   ÂB(Â(B,Â/B,ÃC4Ã4C8Ã;C8ÄEÅEÅEÚdefaultc                  ó,  — t          j        ¦   «                              ¦   «         } t          j        t	          j        ddd¦  «                             dd¦  «        g d¢¬¦  «        }|                      |¦  «         d„ | j        D ¦   «         h d£k    sJ ‚d S )	Ng�íµ ÷Æ°>rú   r4   r   )gñhãˆµøÄ>gñhãˆµøä>gñhãˆµø?r1   c                 ó6   — h | ]}|                      ¦   «         ’ŒS r$  )Úget_text)rœ   Útexts     r   ú	<setcomp>z<test_contour_autolabel_beyond_powerlimits.<locals>.<setcomp>î  s    € Ð1Ð1Ð1 ˆD�MŠM‰OŒOÐ1Ð1Ð1r   >   ú0.25ú1.00ú4.00)	r   r_   Úadd_subplotr   r   Ú	geomspacer7   r8   Útexts)r   r:   s     r   Ú)test_contour_autolabel_beyond_powerlimitsrn  ç  s•   € å	Œ‰Œ×	!Ò	!Ñ	#Ô	#€BÝ	Œ•R”\ $¨¨cÑ2Ô2×:Ò:¸2¸rÑBÔBØ0Ð0Ð0ð
2ñ 
2ô 
2€Bà‡I‚Iˆb�M„M€Mà1Ð1¨¬Ð1Ñ1Ô1Ð5MÐ5MÐ5MÒMÐMÐMÐMÐMÐMr   c                  ó  ‡— ddl mŠ t          j        dd¦  «        } |                      dd¦  «        }| |z  }t          j        |g d¢g d¢d¬	¦  «        }|j                             d
¦  «         |j         	                    d¦  «         | 
                    ¦   «          |                     ¦   «         \  }}|g d¢k    sJ ‚d}t          ˆfd„|D ¦   «         ¦  «        sJ ‚t          d„ t          ||¦  «        D ¦   «         ¦  «        sJ ‚d S )Nr   )Ú	RectanglerA   r   ro   ©r   r§   rƒ   )ú#FFFF00ú#FF00FFz#00FFFFrn   ©r2   r[   rp   re   rh   )z$x \leq -1e+250s$z$10.0 < x \leq 30.0$z$30.0 < x \leq 50.0$z$x > 1e+250s$)rh   rr  rs  re   c              3   ó8   •K  — | ]}t          |‰¦  «        V — Œd S ©N©Ú
isinstance)rœ   Úarp  s     €r   ú	<genexpr>z0test_contourf_legend_elements.<locals>.<genexpr>  s-   øè è € Ð9Ð9¨A�z˜!˜YÑ'Ô'Ð9Ð9Ð9Ð9Ð9Ð9r   c              3   ó`   K  — | ])\  }}t          |                     ¦   «         |¦  «        V — Œ*d S rv  )r
   Úget_facecolor©rœ   ry  r~   s      r   rz  z0test_contourf_legend_elements.<locals>.<genexpr>  sN   è è € ð :ð :Ù�1�aõ ˜!Ÿ/š/Ñ+Ô+¨QÑ/Ô/ð :ð :ð :ð :ð :ð :r   )Úmatplotlib.patchesrp  r   r   r7   r   ru   r8  Úset_overÚ	set_underÚchangedÚlegend_elementsrC   Úzip)r   r   Úhr:   ÚartistsÚlabelsÚexpected_colorsrp  s          @r   Útest_contourf_legend_elementsrˆ  ñ  s^  ø€ Ø,Ð,Ð,Ð,Ð,Ð,Ý
Œ	�!�RÑÔ€AØ	�	Š	�"�aÑÔ€AØ	ˆA‰€Aå	Œ�a   Ø>Ð>Ð>Ø#ð
%ñ 
%ô 
%€Bð „G×Ò�UÑÔÐØ„G×Ò�fÑÔÐØ‡J‚J�L„L€LØ×(Ò(Ñ*Ô*�O€GˆVØð 'ð 'ð 'ò 'ð 'ð 'ð 'ð <€OÝÐ9Ð9Ð9Ð9°Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ýð :ð :Ý˜w¨Ñ8Ô8ð:ñ :ô :ñ :ô :ð :ð :ð :ð :ð :r   c                  ó~  ‡— ddl mŠ t          j        dd¦  «        } |                      dd¦  «        }| |z  }g d¢}t          j        |g d¢|d¬	¦  «        }|                     ¦   «         \  }}|g d
¢k    sJ ‚t          ˆfd„|D ¦   «         ¦  «        sJ ‚t          d„ t          ||¦  «        D ¦   «         ¦  «        sJ ‚d S )Nr   )ÚLineCollectionrA   r   ro   )rh   z#00FF00re   rq  rn   rt  )z
$x = 10.0$z
$x = 30.0$z
$x = 50.0$c              3   ó8   •K  — | ]}t          |‰¦  «        V — Œd S rv  rw  )rœ   ry  rŠ  s     €r   rz  z/test_contour_legend_elements.<locals>.<genexpr>  s-   øè è € Ð>Ð>°�z˜!˜^Ñ,Ô,Ð>Ð>Ð>Ð>Ð>Ð>r   c              3   ó`   K  — | ])\  }}t          |                     ¦   «         |¦  «        V — Œ*d S rv  )r
   Ú	get_colorr}  s      r   rz  z/test_contour_legend_elements.<locals>.<genexpr>  sL   è è € ð 1ð 1Ù�1�aõ ˜!Ÿ+š+™-œ-¨Ñ+Ô+ð 1ð 1ð 1ð 1ð 1ð 1r   )
Úmatplotlib.collectionsrŠ  r   r   r7   r   r   r‚  rC   rƒ  )r   r   r„  r[   r:   r…  r†  rŠ  s          @r   Útest_contour_legend_elementsr�    s  ø€ Ø5Ð5Ð5Ð5Ð5Ð5Ý
Œ	�!�RÑÔ€AØ	�	Š	�"�aÑÔ€AØ	ˆA‰€Aà'Ð'Ð'€FÝ	Œ�Q˜|˜|˜|Ø"Ø"ð
$ñ 
$ô 
$€Bð ×(Ò(Ñ*Ô*�O€GˆVØÐ?Ð?Ð?Ò?Ð?Ð?Ð?ÝÐ>Ð>Ð>Ð>°gÐ>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ýð 1ð 1Ý˜w¨Ñ/Ô/ð1ñ 1ô 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1r   zalgorithm, klassÚmpl2005Úmpl2014ÚserialÚthreaded)ÚinvalidNc                 ó,  — t          j        ddgddgg¦  «        }|�/t          j        || ¬¦  «        }t	          |j        |¦  «        sJ ‚d S t          j        t          ¦  «        5  t          j        || ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrQ   rV   rR   ç      @©Ú	algorithm)	r   r`   r   ru   rx  r-  r(   r)   rÙ   )r˜  Úklassr   r:   s       r   Útest_algorithm_namerš    sâ   € õ 	Œ�3˜�*˜s C˜jÐ)Ñ*Ô*€AØÐÝŒ\˜! yÐ1Ñ1Ô1ˆÝ˜"Ô/°Ñ7Ô7Ð7Ð7Ð7Ð7Ð7åŒ]�:Ñ&Ô&ð 	1ð 	1ÝŒL˜ iÐ0Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   Á%B	Â	BÂBr˜  ©r�  r‘  r’  r“  c                 ó8  — t          j        ddgddgg¦  «        }t          j        || d¬¦  «         | dk    rt          j        || d¬¦  «         d S t	          j        t          ¦  «        5  t          j        || d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrQ   rV   rR   r–  F)r˜  rÎ   r�  T)r   r`   r   ru   r(   r)   rÙ   )r˜  r   s     r   Ú#test_algorithm_supports_corner_maskr�  *  s  € õ 	Œ�3˜�*˜s C˜jÐ)Ñ*Ô*€Aõ „L�˜i°UÐ;Ñ;Ô;Ð;ð �IÒÐÝŒ�Q )¸Ð>Ñ>Ô>Ð>Ð>Ð>åŒ]�:Ñ&Ô&ð 	Cð 	CÝŒL˜ i¸TÐBÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cs   Á*BÂBÂBÚcontour_all_algorithmsc                  óì  — g d¢} t           j                             d¦  «        }t          j        t          j        ddd¦  «        t          j        ddd¦  «        ¦  «        \  }}t          j        d|z  ¦  «        t          j        d|z  ¦  «        z  |                     dd	¬
¦  «        z   }t          j        |t          ¬¦  «        }d|d<   t           j
                             ||¬¦  «        }t          j        dd¦  «        \  }}t          |                     ¦   «         | ¦  «        D ]M\  }}	|                     ||||	¬¦  «         |                     ||||	d¬¦  «         |                     |	¦  «         ŒNd S )Nr›  i¥  rk   rQ   r   rM   rN  r¹   )rM   r   )ÚscaleÚsizerE  T)r$   rÊ   rË   rL   r—  r9  )r˜  r[   )r   r   Údefault_rngr   r‡   rÑ   rÐ   ÚnormalrG  rH  rÒ   r`   r   r   rƒ  Úravelru   r   Ú	set_title)
Ú
algorithmsÚrngr   r   r   rÌ   rw   rx   r   r˜  s
             r   Útest_all_algorithmsr¨  :  sO  € ð >Ð=Ð=€Jå
Œ)×
Ò
 Ñ
%Ô
%€CÝŒ;•r”{ 3¨¨RÑ0Ô0µ"´+¸cÀ3ÈÑ2JÔ2JÑKÔK�D€A€qÝ
Œˆr�!‰t‰Œ•R”V˜B˜q™D‘\”\Ñ! C§J¢J°S¸w JÑ$GÔ$GÑG€AÝŒ=˜¥$Ð'Ñ'Ô'€DØ€Dˆ�JÝ
Œ�Š�A˜DˆÑ!Ô!€AåŒ\˜!˜QÑÔ�F€A€sÝ˜SŸYšY™[œ[¨*Ñ5Ô5ð  ð  ‰ˆˆIØ
�Š�A�q˜! yˆÑ1Ô1Ð1Ø
�
Š
�1�a˜ i¸ˆ
Ñ<Ô<Ð<Ø
�Š�YÑÔÐÐð ð  r   c                  ó4  — d} t          j        dd| ¦  «        }t          j        dd| ¦  «        }t          j        ||¦  «        \  }}t          j        |dz   |dz  z
  ¦  «        }t          j        |dz
  dz   |dz
  dz  z
  ¦  «        }||z
  dz  }t	          j        ¦   «         }|                     dd¬¦  «        }	|	D ]Z}
|
                     ¦   «         }|                     |||¦  «        }| 	                    |d	d
¬¦  «         | 
                    d¦  «         Œ[d S )Nr¸   r�   rR   r‚   rV   rL   rA   )Únrowsræ   Tr   )r½   rZ   zSimplest default with labels)r   r   r   rˆ   r   r_   Ú
subfiguresr   r   r8   r¥  )rÁ   r   r   r�   rŽ   r�   r�   rÂ   r   ÚfigsÚfr   rÃ   s                r   Útest_subfigure_clabelr®  M  s  € à€EÝ
Œ	�$˜˜UÑ#Ô#€AÝ
Œ	�$˜˜UÑ#Ô#€AÝŒ;�q˜!ÑÔ�D€A€qÝ	Œ�!�Q‘$�˜!˜Q™$‘Ñ	Ô	€BÝ	Œ�1�q‘5˜Q‘,� 1 q¡5¨Q¡,Ñ.Ñ	/Ô	/€BØ	ˆb‰�A‰€Aå
Œ*‰,Œ,€CØ�>Š> ¨ˆ>Ñ+Ô+€Dàð 5ð 5ˆØ�ZŠZ‰\Œ\ˆØ�ZŠZ˜˜1˜aÑ Ô ˆØ
�	Š	�"˜T¨Bˆ	Ñ/Ô/Ð/Ø
�ŠÐ3Ñ4Ô4Ð4Ð4ð	5ð 5r   rJ   )ÚsolidÚdashedÚdashdotÚdottedc           	      ó¬  — d}t          j        dd|¦  «        }t          j        dd|¦  «        }t          j        ||¦  «        \  }}t          j        |dz   |dz  z
  ¦  «        }t          j        |dz
  dz   |dz
  dz  z
  ¦  «        }||z
  dz  }t	          j        ¦   «         \  }	}
|
                     |||dd	¬
¦  «        }|
                     |dd¬¦  «         |
                     d¦  «         |j	        �J ‚t	          j        ¦   «         \  }}|                     |||dd	| ¬¦  «        }|                     |dd¬¦  «         |                     d| › �¦  «         |j	        | k    sJ ‚t	          j        ¦   «         \  }}|                     |||dd	| d¬¦  «        }|                     |dd¬¦  «         |                     d| › �¦  «         |j	        | k    sJ ‚d S )Nr¸   r�   rR   r‚   rV   rL   rA   rM   r9  ©r[   r   T©rZ   r½   z0Single color - positive contours solid (default))r[   Ú
linestylesz!Single color - positive contours r±  ©r[   r¶  Únegative_linestyles)
r   r   r   rˆ   r   r   r   r8   r¥  r¶  )rJ   rÁ   r   r   r�   rŽ   r�   r�   rÂ   Úfig1rì   ÚCS1Úfig2rí   ÚCS2Úfig3rü   ÚCS3s                     r   Útest_linestylesr¿  a  sñ  € ð €EÝ
Œ	�$˜˜UÑ#Ô#€AÝ
Œ	�$˜˜UÑ#Ô#€AÝŒ;�q˜!ÑÔ�D€A€qÝ	Œ��A‘�˜˜1™‘Ñ	Ô	€BÝ	Œ�!�a‘%˜!‘�˜q 1™u q™jÑ(Ñ	)Ô	)€BØ	ˆb‰�A‰€Aõ ”‘”�I€Dˆ#Ø
�+Š+�a˜˜A˜q¨ˆ+Ñ
-Ô
-€CØ‡J‚Jˆs˜Q t€JÑ,Ô,Ð,Ø‡M‚MÐDÑEÔEÐEØŒ>Ð!Ð!Ð!õ ”‘”�I€Dˆ#Ø
�+Š+�a˜˜A˜q¨¸ˆ+Ñ
?Ô
?€CØ‡J‚Jˆs˜Q t€JÑ,Ô,Ð,Ø‡M‚MÐ=°eÐ=Ð=Ñ>Ô>Ð>ØŒ>˜UÒ"Ð"Ð"Ð"õ ”‘”�I€Dˆ#Ø
�+Š+�a˜˜A˜q¨¸Ø*3ð ñ 5ô 5€Cà‡J‚Jˆs˜Q t€JÑ,Ô,Ð,Ø‡M‚MÐ=°eÐ=Ð=Ñ>Ô>Ð>ØŒ>˜UÒ"Ð"Ð"Ð"Ð"Ð"r   c           	      ó®  — d}t          j        dd|¦  «        }t          j        dd|¦  «        }t          j        ||¦  «        \  }}t          j        |dz   |dz  z
  ¦  «        }t          j        |dz
  dz   |dz
  dz  z
  ¦  «        }||z
  dz  }t	          j        ¦   «         \  }	}
|
                     |||dd	¬
¦  «        }|
                     |dd¬¦  «         |
                     d¦  «         |j	        dk    sJ ‚| t          j
        d<   t	          j        ¦   «         \  }}|                     |||dd	¬
¦  «        }|                     |dd¬¦  «         |                     d| › d�¦  «         |j	        | k    sJ ‚t	          j        ¦   «         \  }}|                     |||dd	| ¬¦  «        }|                     |dd¬¦  «         |                     d| › �¦  «         |j	        | k    sJ ‚t	          j        ¦   «         \  }}|                     |||dd	d| ¬¦  «        }|                     |dd¬¦  «         |                     d| › �¦  «         |j	        | k    sJ ‚d S )Nr¸   r�   rR   r‚   rV   rL   rA   rM   r9  r´  r   Trµ  z1Single color - negative contours dashed (default)r°  zcontour.negative_linestylez!Single color - negative contours z(using rcParams))r[   r¸  r±  r·  )r   r   r   rˆ   r   r   r   r8   r¥  r¸  rr   )rJ   rÁ   r   r   r�   rŽ   r�   r�   rÂ   r¹  rì   rº  r»  rí   r¼  r½  rü   r¾  Úfig4Úax4ÚCS4s                        r   Útest_negative_linestylesrÄ  ƒ  sŠ  € ð €EÝ
Œ	�$˜˜UÑ#Ô#€AÝ
Œ	�$˜˜UÑ#Ô#€AÝŒ;�q˜!ÑÔ�D€A€qÝ	Œ��A‘�˜˜1™‘Ñ	Ô	€BÝ	Œ�!�a‘%˜!‘�˜q 1™u q™jÑ(Ñ	)Ô	)€BØ	ˆb‰�A‰€Aõ ”‘”�I€Dˆ#Ø
�+Š+�a˜˜A˜q¨ˆ+Ñ
-Ô
-€CØ‡J‚Jˆs˜Q t€JÑ,Ô,Ð,Ø‡M‚MÐEÑFÔFÐFØÔ" hÒ.Ð.Ð.Ð.ð 27…C„LÐ-Ñ.Ý”‘”�I€Dˆ#Ø
�+Š+�a˜˜A˜q¨ˆ+Ñ
-Ô
-€CØ‡J‚Jˆs˜Q t€JÑ,Ô,Ð,Ø‡M‚Mð &°eð &ð &ð &ñ 'ô 'ð 'àÔ" eÒ+Ð+Ð+Ð+õ ”‘”�I€Dˆ#Ø
�+Š+�a˜˜A˜q¨À%ˆ+Ñ
HÔ
H€CØ‡J‚Jˆs˜Q t€JÑ,Ô,Ð,Ø‡M‚MÐ=°eÐ=Ð=Ñ>Ô>Ð>ØÔ" eÒ+Ð+Ð+Ð+õ ”‘”�I€Dˆ#Ø
�+Š+�a˜˜A˜q¨¸Ø*/ð ñ 1ô 1€Cà‡J‚Jˆs˜Q t€JÑ,Ô,Ð,Ø‡M‚MÐ=°eÐ=Ð=Ñ>Ô>Ð>ØÔ" eÒ+Ð+Ð+Ð+Ð+Ð+r   c                  ó¤  — t          j        ¦   «                              ¦   «         } |                      ¦   «         }|                      t          j        d¦  «                             d¦  «        ¦  «        }|                     ¦   «          |                      ¦   «         |k    sJ ‚| 	                    ¦   «          |                      ¦   «         |k    sJ ‚d S )NrX  r5  )
r   r_   rk  Úget_childrenr   r   r   r7   r8   Úremove)r   Úorig_childrenr:   s      r   Útest_contour_removerÉ  ®  s¥   € Ý	Œ‰Œ×	!Ò	!Ñ	#Ô	#€BØ—O’OÑ%Ô%€MØ	�Š•B”I˜b‘M”M×)Ò)¨&Ñ1Ô1Ñ	2Ô	2€BØ‡I‚I�K„K€KØ�?Š?ÑÔ Ò-Ð-Ð-Ð-Ø‡I‚I�K„K€KØ�?Š?ÑÔ Ò-Ð-Ð-Ð-Ð-Ð-r   c                  ó  — t           j                             dd¦  «        \  } }t          j        d¦  «        dz                       d¦  «                             t          ¦  «        }g d¢g d¢g d¢g}t          j        | 	                    ¦   «         ¦  «        j
         	                    ¦   «         dgk    sJ ‚t          j        |¦  «        j
         	                    ¦   «         dgk    sJ ‚t          j        t           j                             ||¬¦  «        ¦  «        j
         	                    ¦   «         dgk    sJ ‚t          j        | 	                    ¦   «         ¦  «        j
         	                    ¦   «         g d¢k    sJ ‚t          j        |¦  «        j
         	                    ¦   «         g d¢k    sJ ‚t          j        t           j                             ||¬¦  «        ¦  «        j
         	                    ¦   «         g d¢k    sJ ‚|                     ¦   «         }t          j        | || 	                    ¦   «         ¦  «        j
         	                    ¦   «         dgk    sJ ‚t          j        | ||¦  «        j
         	                    ¦   «         dgk    sJ ‚t          j        | || 	                    ¦   «         ¦  «        j
         	                    ¦   «         g d¢k    sJ ‚t          j        | ||¦  «        j
         	                    ¦   «         g d¢k    sJ ‚d S )	NrL   r   )r$   r$   )FFF)FTFr¹   rË   )r   r¹   rA   )r   r   r6   r   r7   ÚastyperH  r   r   Útolistr2   rÒ   r`   ru   r¤  Ú
tricontourÚtricontourf)r   r   r   Úms       r   Útest_bool_autolevelrÐ  ¸  sŽ  € ÝŒ9�>Š>˜!˜QÑÔ�D€A€qÝ	Œ�1‰Œ˜Ñ	×"Ò" 6Ñ*Ô*×1Ò1µ$Ñ7Ô7€AØ	Ð	Ð	Ð 4Ð 4Ð 4Ð6KÐ6KÐ6KÐL€AÝŒ;�q—x’x‘z”zÑ"Ô"Ô)×0Ò0Ñ2Ô2°r°dÒ:Ð:Ð:Ð:ÝŒ;�q‰>Œ>Ô ×'Ò'Ñ)Ô)¨b¨TÒ1Ð1Ð1Ð1ÝŒ;•r”u—{’{ 1¨1�{Ñ-Ô-Ñ.Ô.Ô5×<Ò<Ñ>Ô>À2À$ÒFÐFÐFÐFÝŒ<˜Ÿš™
œ
Ñ#Ô#Ô*×1Ò1Ñ3Ô3°z°z°zÒAÐAÐAÐAÝŒ<˜‰?Œ?Ô!×(Ò(Ñ*Ô*¨j¨j¨jÒ8Ð8Ð8Ð8ÝŒ<�œŸš A¨A˜Ñ.Ô.Ñ/Ô/Ô6×=Ò=Ñ?Ô?À:À:À:ÒMÐMÐMÐMØ	�Š‰	Œ	€AÝŒ>˜!˜Q §¢¡
¤
Ñ+Ô+Ô2×9Ò9Ñ;Ô;À¸tÒCÐCÐCÐCÝŒ>˜!˜Q Ñ"Ô"Ô)×0Ò0Ñ2Ô2°r°dÒ:Ð:Ð:Ð:ÝŒ?˜1˜a §¢¡¤Ñ,Ô,Ô3×:Ò:Ñ<Ô<À
À
À
ÒJÐJÐJÐJÝŒ?˜1˜a Ñ#Ô#Ô*×1Ò1Ñ3Ô3°z°z°zÒAÐAÐAÐAÐAÐAr   )Frš   Úplatformr+   Ú	contourpyÚnumpyr   Únumpy.testingr   r   Ú
matplotlibÚmplÚmatplotlib.testing.decoratorsr   r   r   r   r   Úmatplotlib.colorsr	   r
   r(   r   r"   ÚmarkÚparametrizer   Úemptyr/   r;   rF   rb   r   r’   r´   ÚmachinerÆ   rÖ   rÚ   rß   râ   rò   r  r  r  r!  Úbackendr%  r+  r1  rB  rK  r_  ra  rJ   Úcontextrn  rˆ  r�  ÚMpl2005ContourGeneratorÚMpl2014ContourGeneratorÚSerialContourGeneratorÚThreadedContourGeneratorrš  r�  r¨  r®  r¿  rÄ  rÉ  rÐ  r$  r   r   ú<module>rã     s		  ðØ €€€Ø €€€Ø 	€	€	€	à Ð Ð Ð Ø Ð Ð Ð ð?ð ?ð ?ð ?ð ?ð ?ð ?ð ?à Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø €€€ðð ð ðð ð ð „×Ò˜Ø€b„i��l„l�I�B”I˜a‘L”L ( "¤(¨7Ñ"3Ô"3Ð4Ø=ð?à€b„i��m„m�Y�R”Y˜r‘]”] H B¤H¨WÑ$5Ô$5Ð6Ø:ð<à€b„hˆxÑÔ˜)˜"œ) B™-œ-¨¨¬°'Ñ):Ô):Ð;Ø;ð=à€b„i��m„m�X�R”X˜hÑ'Ô'¨¨¬°'Ñ):Ô):Ð;Ø;ð=à€b„hˆvÑÔ˜˜œ Ñ)Ô)¨8¨2¬8°GÑ+<Ô+<Ð=Ø4ð6à€b„hˆwÑÔ˜˜œ &Ñ)Ô)¨8¨2¬8°GÑ+<Ô+<Ð=Ø4ð6à€b„hˆyÑÔ˜8˜2œ8 IÑ.Ô.°°´¸Ñ0AÔ0AÐBØ.ð0à€b„hˆyÑÔ˜8˜2œ8 IÑ.Ô.°°´¸Ñ0CÔ0CÐDØ!ð#à	€s€e€XØKðMà€cˆAˆ3�!��ÐØKðMð'+ñ ô ð,ð ñ-ô ð,ð	 ð 	 ð 	 ð,ð ,ð ,ð ÐÐ*Ð+¸ÀWÐMÑMÔMð	Dð 	Dñ NÔMð	Dð ÐÐ9Ð:ÈÐMÑMÔMðð ñ NÔMðð< ÐÐ,Ð-°WØ#ð%ñ %ô %ð<ð <ñ%ô %ð<ð( ÐÐ.Ð/°wÐ?Ñ?Ô?ð#ð #ñ @Ô?ð#ð0 ÐÐ6Ð7Ø"¨'Ø+˜8Ô+Ñ-Ô-°Ò9Ð9�a�a¸tðEñ Eô Eð>ð >ñEô Eð>ð8 ÐÐ2Ø1ð3à"ð$ñ $ô $ð1ð 1ñ$ô $ð1ð$ð $ð $ðBð Bð Bðð ð ð „×ÒÐHðAð Að AñBô Bð=ð =ñBô Bð=ð2 ÐÐ.Ð/Ø"¨'Øðñ ô ð"ð "ñô ð"ðB ÐØÐ¨$°gØ �Ô Ñ"Ô"Ð&EÐEÐEˆˆØðñ ô ðKð Kñô ðKð ÐÐ#3Ð"4Ø#˜W°$¸gðGñ Gô Gð/ð /ñGô Gð/ð „×ÒØIð L
ð L
ð L
ñô ð0ð 0ñô ð0ð „×Ò�UÑÔð.ð .ñ Ôð.ð
 ÐÐ#=Ð">Ø#˜W°$ð8ñ 8ô 8ðð ñ8ô 8ðð
>ð 
>ð 
>ð ÐÐ#3Ð"4Ø#˜W°$ð8ñ 8ô 8ðCð Cñ8ô 8ðCð0 ÐÐ#FÐ"GØ#˜W°$ð8ñ 8ô 8ðð ñ8ô 8ððAð Að Að0Bð Bð Bð$ „×Ò�9ÑÔðNð Nñ ÔðNð:ð :ð :ð.1ð 1ð 1ð" „×ÒØØ�Ô2Ð3Ø�Ô2Ð3Ø�	Ô0Ð1Ø�)Ô4Ð5Øð	ñô ð1ð 1ñô ð1ð „×ÒØÐ=Ð=Ð=ñ?ô ?ðCð Cñ?ô ?ðCð ÐÐ#;Ð"<Ø#˜W°$ð8ñ 8ô 8ð ð  ñ8ô 8ð ð"5ð 5ð 5ð( „×ÒØÐ5Ð5Ð5ñ7ô 7ð#ð #ñ7ô 7ð#ð@ „×ÒØÐ5Ð5Ð5ñ7ô 7ð&,ð &,ñ7ô 7ð&,ðR.ð .ð .ðBð Bð Bð Bð Br   