§
    ‡Ûgâ%  ã                   ó,  — d dl Z d dlZd dlZd dlmZmZ d dlmZ	 d dl
mZmZ d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Z edg¦  «        d„ ¦   «         Zej                             dddg¦  «        ej                             dddg¦  «        ej                             dddg¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Zej                             dddg¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zej                             ddg d¢g¦  «        ej                             ddddgg¦  «         edg¬¦  «        d „ ¦   «         ¦   «         ¦   «         Zej                             ddg d¢g¦  «        ej                             ddddgg¦  «         edg¬¦  «        d!„ ¦   «         ¦   «         ¦   «         Zej                             d"d#d$g¦  «        d%„ ¦   «         Zd&„ ZdS )'é    N)ÚAxesÚSubplotBase)Úcheck_figures_equalÚimage_comparisonc                 ót  — t          j        t          | ¦  «        t          | ¦  «        t          t          d||g¦  «        ¦  «        ¦  «        D ]i\  \  }}\  }}\  }\  }}	||k    rŒ| d         j        |                              ||¦  «        |	||f         k    sJ d|||	||f         rdnd|fz  ¦   «         ‚ŒjdS )z–
    x_shared and y_shared are n x n boolean matrices; entry (i, j) indicates
    whether the x (or y) axes of subplots i and j should be shared.
    Úxyr   z,axes %i and %i incorrectly %ssharing %s axisznot Ú N)Ú	itertoolsÚproductÚ	enumerateÚzipÚ_shared_axesÚjoined)
ÚaxsÚx_sharedÚy_sharedÚi1Úax1Úi2Úax2Úi3ÚnameÚshareds
             úT/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/tests/test_subplots.pyÚcheck_sharedr      së   € õ
 7@Ô6GÝ�c‰NŒNÝ�c‰NŒNÝ•c˜$ ¨8Ð 4Ñ5Ô5Ñ6Ô6ñ78ô 78ð @ð @Ñ2‰	ˆˆS‘9�B˜Ñ2˜r¡> D¨&ð �Š8ˆ8ØØ�1ŒvÔ" 4Ô(×/Ò/°°SÑ9Ô9¸VÀBÈÀF¼^ÒKÐKÐKØ:Ø�B &¨¨R¨¤.Ð8˜˜°b¸$ð>@ñ @ñ LÔKÐKÐKð@ð @ó    c                 óú  — t          t          | ||¦  «        ¦  «        D ]Û\  }\  }}}|                     ¦   «         |j        j        gz   D ]*}|                     ¦   «         |k    sJ d|› d|› �¦   «         ‚Œ+|                     ¦   «         |j        j        gz   D ]*}|                     ¦   «         |k    sJ d|› d|› �¦   «         ‚Œ+|s|                     ¦   «         dk    sJ ‚|s| 	                    ¦   «         dk    sJ ‚ŒÜd S )NzVisibility of x axis #z is incorrectly zVisibility of y axis #r	   )
r   r   Úget_xticklabelsÚxaxisÚ
offsetTextÚget_visibleÚget_yticklabelsÚyaxisÚ
get_xlabelÚ
get_ylabel)r   Ú	x_visibleÚ	y_visibleÚiÚaxÚvxÚvyÚls           r   Úcheck_visibler-      s@  € Ý$¥S¨¨i¸Ñ%CÔ%CÑDÔDð )ð )‰ˆ‰<ˆB��BØ×#Ò#Ñ%Ô%¨¬Ô)<Ð(=Ñ=ð 	Eð 	EˆAØ—=’=‘?”? bÒ(Ð(Ð(ØD¨QÐDÐDÀÐDÐDñ )Ô(Ð(Ð(à×#Ò#Ñ%Ô%¨¬Ô)<Ð(=Ñ=ð 	Eð 	EˆAØ—=’=‘?”? bÒ(Ð(Ð(ØD¨QÐDÐDÀÐDÐDñ )Ô(Ð(Ð(ð ð 	)Ø—=’=‘?”? bÒ(Ð(Ð(Ð(Øð 	)Ø—=’=‘?”? bÒ(Ð(Ð(Ð(øð)ð )r   c            
      ó`  — d} t          j        | d d…         t          ¬¦  «        t          j        | d d…         t          ¬¦  «        t          j        g d¢g d¢g d¢g d¢g¦  «        t          j        g d¢g d¢g d¢g d¢g¦  «        dœ}g d	¢g d	¢d
gdz  d
gdz  d
gdz  g d	¢dœg d¢d
gdz  g d¢d
gdz  d
gdz  g d¢dœdœ}|d         |d<   |d         |d
<   t          j        dd¦  «        \  }\  \  }}\  }}||||g}t          ||d         |d         ¦  «         t          j        |¦  «         g d¢}	|	D ]‹}
|	D ]†}t          j        dd|
|¬¦  «        \  }\  \  }}\  }}||||g}t          |||
         ||         ¦  «         t          ||d         |
         |d         |         ¦  «         t          j        |¦  «         Œ‡ŒŒt          j        ddd
d
¬¦  «        \  }\  \  }}\  }}||||g}|D ]-}| 
                    dd¬¦  «         |                     ¦   «          Œ.t          |g d	¢g d¢¦  «         d S )N)é   r/   é   r0   )Údtype)FTFF)TFFF)FFFT)FFTF)ÚallÚnoneÚrowÚcol)FFTTTr/   )r2   r5   r4   r3   FT)TFTF)ÚxÚyr3   Fr2   )FTr2   r3   r4   r5   r   é   ©ÚsharexÚshareyr6   r7   ÚfooÚbar©ÚxlabelÚylabel)ÚnpÚonesÚboolÚzerosÚarrayÚpltÚsubplotsr   Úcloser-   ÚsetÚlabel_outer)ÚrdimÚshareÚvisibleÚfÚa1Úa2Úa3Úa4r   ÚopsÚxoÚyor)   s                r   Útest_sharedrV   +   s  € Ø€Då”7˜4   œ8­4Ð0Ñ0Ô0Ý”H˜T " 1 "œX­TÐ2Ñ2Ô2Ý”8Ø+Ð+Ð+Ø+Ð+Ð+Ø+Ð+Ð+Ø+Ð+Ð+ð	-ñ .ô .õ
 ”8Ø+Ð+Ð+Ø+Ð+Ð+Ø+Ð+Ð+Ø+Ð+Ð+ð	-ñ .ô .ðð €Eð  2Ð1Ð1Ø1Ð1Ð1Ø�v ‘zØ˜ ™
Ø�v ‘zØ0Ð0Ð0ðð ð 2Ð1Ð1Ø�v ‘zØ1Ð1Ð1Ø˜ ™
Ø�v ‘zØ0Ð0Ð0ðð ðð €Gð$ ˜”=€Eˆ%�LØ˜”,€Eˆ$�Kõ "œl¨1¨aÑ0Ô0Ñ€AÑ‰ˆˆR‘(�2�rØˆr�2�rÐ
€CÝ��e˜F”m U¨6¤]Ñ3Ô3Ð3Ý„Iˆa�L„L€Lð ;Ð
:Ð
:€CØð ð ˆØð 	ð 	ˆBÝ&)¤l°1°aÀÈ2Ð&NÑ&NÔ&NÑ#ˆAÑ#‘��R™(˜2˜rØ�r˜2˜rÐ"ˆCÝ˜˜e Bœi¨¨r¬Ñ3Ô3Ð3Ý˜#˜w sœ|¨BÔ/°¸´¸bÔ1AÑBÔBÐBÝŒI�a‰LŒLˆLˆLð	õ "œl¨1¨a¸ÀTÐJÑJÔJÑ€AÑ‰ˆˆR‘(�2�rØˆr�2�rÐ
€CØð ð ˆØ
�Š�e EˆÑ*Ô*Ð*Ø
�ŠÑÔÐÐÝ�#Ð1Ð1Ð1Ð3MÐ3MÐ3MÑNÔNÐNÐNÐNr   c                  ó°  — t          j        ¦   «         } |                      dd¦  «        }|                      |ddd…f         ¦  «        }|                      |dd…df         ¦  «        }|                      |d         ¦  «        }|                      |d         ¦  «        }| j        D ]}|                     ¦   «          Œt          | j        g d¢g d¢¦  «         d S )	Né   r   r0   r8   )r8   r0   )r0   r8   )FTFT)TTFF)rF   ÚfigureÚadd_gridspecÚadd_subplotÚaxesrJ   r-   )ÚfigÚgsrO   rP   rQ   rR   r)   s          r   Útest_label_outer_spanr_   i   sä   € Ý
Œ*‰,Œ,€CØ	×	Ò	˜!˜QÑ	Ô	€Bð 
�Š˜˜A˜q ˜s˜FœÑ	$Ô	$€BØ	�Š˜˜A˜a˜C ˜FœÑ	$Ô	$€BØ	�Š˜˜DœÑ	"Ô	"€BØ	�Š˜˜DœÑ	"Ô	"€BØŒhð ð ˆØ
�ŠÑÔÐÐÝØŒÐ,Ð,Ð,Ð.HÐ.HÐ.HñJô Jð Jð Jð Jr   c                  ó‚   — t          j        g d¢¦  «        } |                      ¦   «          t          | gdgdg¦  «         d S )N©r   r   r8   r8   T)rF   r\   rJ   r-   )r)   s    r   Útest_label_outer_non_gridspecrb   }   sC   € Ý	Œ�,�,�,Ñ	Ô	€BØ‡N‚NÑÔÐÝ�2�$˜˜  Ñ'Ô'Ð'Ð'Ð'r   c                  ó~  — t          j        ddd¬¦  «        \  } \  }}t          |gdgdg¦  «         |j                             ¦   «          t          |gdgdg¦  «         t          j        ddd¬¦  «        \  } \  }}t          |gdgdg¦  «         |j                             ¦   «          t          |gdgdg¦  «         d S )Nr8   r0   T©r;   F©r:   )rF   rG   r-   r#   Ú	tick_leftr   Útick_bottom)rN   rO   rP   s      r   Útest_shared_and_movedrh   ƒ   sÎ   € õ ”,˜q !¨DÐ1Ñ1Ô1�K€A�xˆˆBÝ�2�$˜˜  Ñ(Ô(Ð(Ø„H×ÒÑÔÐÝ�2�$˜˜  Ñ(Ô(Ð(å”,˜q !¨DÐ1Ñ1Ô1�K€A�xˆˆBÝ�2�$˜˜ $ Ñ(Ô(Ð(Ø„H×ÒÑÔÐÝ�2�$˜˜ $ Ñ(Ô(Ð(Ð(Ð(r   c                  ó(  — t          j        t          ¦  «        5  t          j        ddd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        ddd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr0   Úblahre   rd   )ÚpytestÚraisesÚ
ValueErrorrF   rG   © r   r   Útest_exceptionsro   ‘   s	  € å	Œ•zÑ	"Ô	"ð *ð *ÝŒ�Q˜ &Ð)Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *å	Œ•zÑ	"Ô	"ð *ð *ÝŒ�Q˜ &Ð)Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s!   š>¾AÁAÁ"BÂBÂBÚsubplots_offset_textc                  óz  — t          j        ddd¦  «        } t          j        ddd¦  «        dz   }t          j        dddd	¬
¦  «        \  }}|d                              | | ¦  «         |d                              | | ¦  «         |d                              || ¦  «         |d                              || ¦  «         d S )Nr   g    _ Bg    eÍÍAéd   é
   g     ˆÃ@r0   r5   r2   r9   )r   r   )r8   r   )r   r8   )r8   r8   )rA   ÚarangerF   rG   Úplot)r6   r7   r]   r   s       r   Útest_subplots_offsettextrv   ™   s¯   € å
Œ	�!�T˜3ÑÔ€AÝ
Œ	�!�S˜"ÑÔ˜cÑ!€AÝŒ|˜A˜q¨°uÐ=Ñ=Ô=�H€CˆØˆ„I‡N‚N�1�aÑÔÐØˆ„I‡N‚N�1�aÑÔÐØˆ„I‡N‚N�1�aÑÔÐØˆ„I‡N‚N�1�aÑÔÐÐÐr   ÚtopTFÚbottomÚleftÚrightc                 óö  — t          j        | |||dœ¦  «        5  t          j        ¦   «                              dddd¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t	          j        |¦  «        D ]ˆ\  \  }}}|j        j        d         }|j        j        d         }	|j        j        d         }
|j        j        d         }|| o|dk    k    sJ ‚|	|o|dk    k    sJ ‚|
|o|dk    k    sJ ‚||o|dk    k    sJ ‚Œ‰d S )	N)zxtick.labeltopzxtick.labelbottomzytick.labelleftzytick.labelrightrX   Tr9   Úlabel2OnÚlabel1Onr   r0   )	rF   Ú
rc_contextrY   rG   rA   Úndenumerater   Ú_major_tick_kwr#   )rw   rx   ry   rz   r   r(   Újr)   ÚxtopÚxbottomÚyleftÚyrights               r   Útest_subplots_hide_ticklabelsr†   ¤   s‡  € õ 
Œ¨3ÀVØ,0ÀeðMð Mñ 
Nô 
Nð Dð DåŒj‰lŒl×#Ò# A q°¸dÐ#ÑCÔCˆðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dõ ”n SÑ)Ô)ð ,ð ,‰
‰ˆˆA�ØŒxÔ& zÔ2ˆØ”(Ô)¨*Ô5ˆØ”Ô'¨
Ô3ˆØ”Ô(¨Ô4ˆØ˜˜  Q¢Ò'Ð'Ð'Ð'Ø˜6Ð, a¨1¢fÒ-Ð-Ð-Ð-Ø˜˜ ! q¢&Ò)Ð)Ð)Ð)Ø˜%Ð* A¨¢FÒ+Ð+Ð+Ð+Ð+ð,ð ,s   š+AÁAÁAÚxlabel_positionÚylabel_positionc                 óF  — t          j        ¦   «                              dddd¬¦  «        }t          j        |¦  «        D ]á\  \  }}}|                     dd¬¦  «         |j                             | ¦  «         |j                             |¦  «         | 	                    ¦   «          t          |                     ¦   «         ¦  «        | dk    r|dk    p| d	k    o|d
k    k    sJ ‚t          |                     ¦   «         ¦  «        |dk    r|d
k    p|dk    o|dk    k    sJ ‚Œâd S )NrX   Tr9   r<   r=   r>   rx   r0   rw   r   ry   rz   )rF   rY   rG   rA   r   rI   r   Úset_label_positionr#   rJ   rC   r$   r%   )r‡   rˆ   r   r(   r�   r)   s         r   Útest_subplots_hide_axislabelsr‹   º   sF  € õ Œ*‰,Œ,×
Ò
  1¨T¸$Ð
Ñ
?Ô
?€CÝ”n SÑ)Ô)ð 
6ð 
6‰
‰ˆˆA�Ø
�Š�e EˆÑ*Ô*Ð*Ø
Œ×#Ò# OÑ4Ô4Ð4Ø
Œ×#Ò# OÑ4Ô4Ð4Ø
�ŠÑÔÐÝ�B—M’M‘O”OÑ$Ô$Ø˜xÒ'Ð2¨A°ªFð 3Ø %Ò'Ð2¨A°ªFò4ð 4ð 4ð 4õ �B—M’M‘O”OÑ$Ô$Ø˜vÒ%Ð0¨!¨qª&ð 5Ø 'Ò)Ð4¨a°1ªfò6ð 6ð 6ð 6ð 6ð
6ð 
6r   c                  ó®   — t          j        ¦   «         \  } }|                     ¦   «                              ¦   «         |                     ¦   «         k    sJ ‚d S )N)rF   rG   Úget_subplotspecÚget_gridspec)r]   r)   s     r   Útest_get_gridspecr�   Ë   sJ   € åŒl‰nŒn�G€CˆØ×ÒÑÔ×,Ò,Ñ.Ô.°"·/²/Ñ2CÔ2CÒCÐCÐCÐCÐCÐCr   c                  ó|   — ddi} dddgi}t          j        dd| |¬¦  «        \  }}| ddik    sJ ‚|dddgik    sJ ‚d S )Nr:   r2   Úwidth_ratiosr8   r0   )Ú
subplot_kwÚgridspec_kw)rF   rG   )r’   r“   r]   r)   s       r   Útest_dont_mutate_kwargsr”   Ñ   ss   € Ø˜EÐ"€JØ! A q 6Ð*€KÝŒl˜1˜a¨JØ'2ð4ñ 4ô 4�G€Cˆà˜( EÐ*Ò*Ð*Ð*Ð*Ø˜>¨A¨q¨6Ð2Ò2Ð2Ð2Ð2Ð2Ð2r   r‘   )r8   rX   r0   Úheight_ratiosr8   r0   Úpng)Ú
extensionsc                 ón   — |                       dd||¬¦  «         |                      dd||dœ¬¦  «         d S )Nr0   rX   ©r•   r‘   ©r“   )rG   )Úfig_testÚfig_refr•   r‘   s       r   Útest_width_and_height_ratiosr�   Ú   sc   € ð
 ×Ò�a˜¨-Ø#/ð ñ 1ô 1ð 1à×Ò�Q˜Ø&3Ø%1ð(3ð (3Ðñ 4ô 4ð 4ð 4ð 4r   c                 óz   — g d¢g d¢g}|                       |||¬¦  «         |                      |||dœ¬¦  «         d S )N)ÚAÚBr    )rŸ   ÚCÚDr™   rš   )Úsubplot_mosaic)r›   rœ   r•   r‘   Úmosaic_specs        r   Ú#test_width_and_height_ratios_mosaicr¥   æ   sq   € ð
 #�?�? O O OÐ4€KØ×Ò˜K°}Ø)5ð ñ 7ô 7ð 7à×Ò˜;Ø,9Ø+7ð59ð 59Ðñ :ô :ð :ð :ð :r   zmethod,args)rG   )r0   rX   )r£   )zabc;defc                 ó\  — t          j        t          d¬¦  «        5   t          t          | ¦  «        |ddgdddgidœŽ d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5   t          t          | ¦  «        |g d¢dg d¢idœŽ d d d ¦  «         d S # 1 swxY w Y   d S )	Nr•   )Úmatchr8   r0   )r•   r“   r‘   )r8   r0   rX   )r‘   r“   )rk   rl   rm   ÚgetattrrF   )ÚmethodÚargss     r   Útest_ratio_overlapping_kwsr«   ó   s„  € õ 
Œ•z¨Ð	9Ñ	9Ô	9ð Dð DØ�•�VÑÔ˜d°1°a°&Ø*9¸A¸q¸6Ð)Bð	Dð 	Dð 	Dð 	DðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dõ 
Œ•z¨Ð	8Ñ	8Ô	8ð Fð FØ�•�VÑÔ˜d°°°Ø*8¸)¸)¸)Ð)Dð	Fð 	Fð 	Fð 	FðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fs#   œ#AÁAÁAÁ1#B!Â!B%Â(B%c                  óh  — t          j        ¦   «         } t          |                      ¦   «         t          ¦  «        sJ ‚t          |                      g d¢¬¦  «        t          ¦  «        rJ ‚t          j        t          ¦  «        5  t          | g d¢g d¢¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nra   )Úrect)
rF   rY   Ú
isinstancer[   r   Úadd_axesrk   rl   Ú	TypeErrorr   )r]   s    r   Útest_old_subplot_compatr±     sæ   € Ý
Œ*‰,Œ,€CÝ�c—o’oÑ'Ô'­Ñ5Ô5Ð5Ð5Ð5Ý˜#Ÿ,š,¨L¨L¨L˜,Ñ9Ô9½;ÑGÔGÐGÐGÐGÝ	Œ•yÑ	!Ô	!ð 3ð 3ÝˆS�,�,�, \ \ \Ð2Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s   ÂB'Â'B+Â.B+)r
   ÚnumpyrA   rk   Úmatplotlib.axesr   r   Úmatplotlib.pyplotÚpyplotrF   Úmatplotlib.testing.decoratorsr   r   r   r-   rV   r_   rb   rh   ro   rv   ÚmarkÚparametrizer†   r‹   r�   r”   r�   r¥   r«   r±   rn   r   r   ú<module>r¹      sZ  ðØ Ð Ð Ð à Ð Ð Ð Ø €€€à -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oð@ð @ð @ð )ð )ð )ð ;Oð ;Oð ;Oð|Jð Jð Jð((ð (ð (ð)ð )ð )ð*ð *ð *ð ÐÐ)Ð*Ñ+Ô+ðð ñ ,Ô+ðð „×Ò˜  u Ñ.Ô.Ø„×Ò˜ D¨% =Ñ1Ô1Ø„×Ò˜ $¨ Ñ/Ô/Ø„×Ò˜ 4¨ -Ñ0Ô0ð,ð ,ñ 1Ô0ñ 0Ô/ñ 2Ô1ñ /Ô.ð,ð$ „×ÒÐ*¨X°uÐ,=Ñ>Ô>Ø„×ÒÐ*¨V°WÐ,=Ñ>Ô>ð6ð 6ñ ?Ô>ñ ?Ô>ð6ðDð Dð Dð3ð 3ð 3ð „×Ò˜¨$°	°	°	Ð):Ñ;Ô;Ø„×Ò˜¨4°!°Q°¨.Ñ9Ô9ØÐ  Ð(Ñ(Ô(ð4ð 4ñ )Ô(ñ :Ô9ñ <Ô;ð4ð „×Ò˜¨$°	°	°	Ð):Ñ;Ô;Ø„×Ò˜¨4°!°Q°¨.Ñ9Ô9ØÐ  Ð(Ñ(Ô(ð:ð :ñ )Ô(ñ :Ô9ñ <Ô;ð:ð „×Ò˜ØØ%ð)ñ ô ð
Fð Fñô ð
Fð3ð 3ð 3ð 3ð 3r   