Ë
    ¨eh¾  ã                   óT  — 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
 d dlmZ d dlmZ d dlmZ d dlmZmZmZmZ d dlmZ d dlmZmZ d dlmZ  G d„ d	«      Z G d
„ d«      Z d„ Z!d„ Z" edgddd¬«      d„ «       Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z* G d„ dejV                  «      Z, G d„ d«      Z- G d„ d «      Z.d!„ Z/d"„ Z0d#„ Z1d$„ Z2d%„ Z3d&„ Z4d'„ Z5d(„ Z6d)„ Z7d*„ Z8d+„ Z9d,„ Z:ejv                  jy                  d-g d.¢«      d/„ «       Z=d0„ Z> ed1g¬2«      d3„ «       Z?d4„ Z@d5„ ZAd6„ ZBd7„ ZCd8„ ZDd9„ ZEy):é    N)Úassert_allcloseÚassert_almost_equalÚassert_array_equalÚassert_array_almost_equal)Úscale)ÚAffine2DÚBboxÚTransformedBboxÚ_ScaledRotation)ÚPath)Úimage_comparisonÚcheck_figures_equal)Ú	MagicMockc                   ó”   — e Zd ZddgZddgddgddggZeZd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestAffine2Dç      ð?ç        ç       @ç      @ç      @c                 óÜ   — t        g d¢g d¢g d¢g«       t        t        j                  g d¢g d¢g d¢gt        «      «       t        t        j                  g d¢g d¢g d¢gt        «      «       y )N©é   é   é   )é   é   é   )é   é   é	   )r   ÚnpÚarrayÚintÚfloat©Úselfs    ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/tests/test_transforms.pyÚ	test_initzTestAffine2D.test_init   sE   € Ü’)šYª	Ð2Ô3Ü”—‘š9¢i²Ð;¼SÓAÔBÜ”—‘š9¢i²Ð;¼UÓCÕDó    c                 óÔ   — t         j                  j                  d«       t         j                  j                  d«      }t        t	        j
                  |Ž j                  «       |«       y )Né!N,r   )r"   ÚrandomÚseedr   r   Úfrom_valuesÚ	to_values©r'   Úvaluess     r(   Útest_valueszTestAffine2D.test_values   sD   € Ü
�	‰	�‰�xÔ Ü—‘×!Ñ! !Ó$ˆÜœ8×/Ñ/°Ð8×BÑBÓDÀfÕMr*   c                 óˆ   — t        «       }|j                  «       }d|d<   t        |j                  «       g d¢g d¢g d¢g«       y )Né*   ©r   r   )r5   r   r   ©r   r   r   ©r   r   r   )r   Ú
get_matrixr   )r'   ÚtransÚmtxs      r(   Útest_modify_inplacez TestAffine2D.test_modify_inplace!   s:   € ä“
ˆØ×ÑÓ ˆØˆˆD‰	Ü˜5×+Ñ+Ó-²
ºIÂyÐ/QÕRr*   c                 óÂ   — t        t        j                  j                  dd«      dz   «      }|j	                  «        t        |j                  «       g d¢g d¢g d¢g«       y )Nr   r   )r   r   r   r7   r8   )r   r"   r-   ÚrandÚclearr   r9   )r'   Úas     r(   Ú
test_clearzTestAffine2D.test_clear(   s@   € Ü”R—Y‘Y—^‘^ A qÓ)¨AÑ-Ó.ˆØ	�‰Œ	Ü˜1Ÿ<™<›>ªI²yÂ)Ð+LÕMr*   c                 ó0  — t        «       j                  t        j                  dz  «      }t        «       j	                  d«      }t        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgdd	gg«       t        «       j                  t        j                  «      }t        «       j	                  d
«      }t        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgddgg«       t        «       j                  dt        j                  z  dz  «      }t        «       j	                  d«      }t        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgddgg«       t        ||z   j                  «       |j                  «       «       t        ||z   j                  «       |j                  «       «       y )Nr   éZ   éÿÿÿÿr   éþÿÿÿr   éýÿÿÿr   r   é´   éüÿÿÿé  )r   Úrotater"   ÚpiÚ
rotate_degr   r9   r   Ú	transformÚsingle_pointÚmultiple_points©r'   Úr_pi_2Úr90Úr_piÚr180Úr_pi_3_2Úr270s          r(   Útest_rotatezTestAffine2D.test_rotate-   sù  € Ü“×"Ñ"¤2§5¡5¨1¡9Ó-ˆÜ‹j×#Ñ# BÓ'ˆÜ˜6×,Ñ,Ó.°·±Ó0@ÔAÜ! #§-¡-°×0AÑ0AÓ"BÀRÈÀGÔLÜ! #§-¡-°×0DÑ0DÓ"EØ$&¨ 7¨R°¨G°a¸°VÐ"<ô	>ô ‹z× Ñ ¤§¡Ó'ˆÜ‹z×$Ñ$ SÓ)ˆÜ˜4Ÿ?™?Ó,¨d¯o©oÓ.?Ô@Ü! $§.¡.°×1BÑ1BÓ"CÀbÈ"ÀXÔNÜ! $§.¡.°×1EÑ1EÓ"FØ$% r 7¨R°¨H°r¸1°gÐ">ô	@ô “:×$Ñ$ Q¬¯©¡Y°¡]Ó3ˆÜ‹z×$Ñ$ SÓ)ˆÜ˜8×.Ñ.Ó0°$·/±/Ó2CÔDÜ! $§.¡.°×1BÑ1BÓ"CÀaÈÀWÔMÜ! $§.¡.°×1EÑ1EÓ"FØ$% q 6¨A¨r¨7°Q¸°GÐ"<ô	>ô 	˜C #™I×1Ñ1Ó3°T·_±_Ó5FÔGÜ˜C $™J×2Ñ2Ó4°d·o±oÓ6GÕHr*   c                 óÌ  —  t        «       j                  g | j                  ¢t        j                  dz  ‘­Ž } t        «       j
                  g | j                  ¢d‘­Ž }t        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgddgg«        t        «       j                  g | j                  ¢t        j                  ‘­Ž } t        «       j
                  g | j                  ¢d‘­Ž }t        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgd	dgg«        t        «       j                  g | j                  ¢dt        j                  z  dz  ‘­Ž } t        «       j
                  g | j                  ¢d
‘­Ž }t        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgdd	gg«       t        ||z   j                  «       |j                  «       «       t        ||z   j                  «       |j                  «       «       y )Nr   rC   r   r   rD   r   r   rG   rE   rI   )r   Úrotate_aroundÚpivotr"   rK   Úrotate_deg_aroundr   r9   r   rM   rN   rO   rP   s          r(   Útest_rotate_aroundzTestAffine2D.test_rotate_aroundF   sL  € Ø)”“×)Ñ)ÐA¨4¯:©:ÐA´r·u±u¸q±yÒAˆØ*Œh‹j×*Ñ*Ð;¨D¯J©JÐ;¸Ò;ˆÜ˜6×,Ñ,Ó.°·±Ó0@ÔAÜ! #§-¡-°×0AÑ0AÓ"BÀQÈÀFÔKÜ! #§-¡-°×0DÑ0DÓ"EØ$% q 6¨B°¨7°Q¸°FÐ";ô	=ð (Œx‹z×'Ñ'Ð;¨¯©Ð;´R·U±UÒ;ˆØ+Œx‹z×+Ñ+Ð=¨T¯Z©ZÐ=¸Ò=ˆÜ˜4Ÿ?™?Ó,¨d¯o©oÓ.?Ô@Ü! $§.¡.°×1BÑ1BÓ"CÀaÈÀVÔLÜ! $§.¡.°×1EÑ1EÓ"FØ$% q 6¨B°¨8°b¸!°WÐ"=ô	?ð ,”8“:×+Ñ+ÐG¨T¯Z©ZÐG¸¼R¿U¹U¹ÀQ¹ÒGˆØ+Œx‹z×+Ñ+Ð=¨T¯Z©ZÐ=¸Ò=ˆÜ˜8×.Ñ.Ó0°$·/±/Ó2CÔDÜ! $§.¡.°×1BÑ1BÓ"CÀaÈÀVÔLÜ! $§.¡.°×1EÑ1EÓ"FØ$% q 6¨A¨r¨7°Q¸°GÐ"<ô	>ô 	" 3¨¡9×"8Ñ"8Ó":¸D¿O¹OÓ<MÔNÜ! 3¨¡:×"9Ñ"9Ó";¸T¿_¹_Ó=NÕOr*   c                 ó   — t        «       j                  dd«      }t        «       j                  dd«      }t        «       j                  dd«      }t        ||z   j                  «       |j                  «       «       t        |j	                  | j
                  «      ddg«       t        |j	                  | j                  «      ddgddgddgg«       y )	Nr   r   rE   r   rH   r!   éúÿÿÿé   )r   r   r   r9   rM   rN   rO   )r'   ÚsxÚsyr:   s       r(   Ú
test_scalezTestAffine2D.test_scale_   sª   € Ü‹Z×Ñ˜a Ó#ˆÜ‹Z×Ñ˜a Ó$ˆÜ“
× Ñ   BÓ'ˆÜ˜B ™G×/Ñ/Ó1°5×3CÑ3CÓ3EÔFÜ˜5Ÿ?™?¨4×+<Ñ+<Ó=ÀÀ2¸wÔGÜ˜5Ÿ?™?¨4×+?Ñ+?Ó@Ø ˜G a¨ W¨r°1¨gÐ6õ	8r*   c                 óÞ  — t        «       j                  t        j                  dz  t        j                  dz  «      }t        «       j	                  dd«      }t        |j                  «       |j                  «       «       t        «       j	                  dd«      }t        |j                  | j                  «      ddg«       t        |j                  | j                  «      d	d
gddgdd	gg«       y )Nr    r_   g     €6@é   çÈ�2§�:@ç™b‚Ž,@ç      ø?ç      ô?r   r   ç      @g      @r   )r   Úskewr"   rK   Úskew_degr   r9   r   rM   rN   rO   )r'   Ú	trans_radÚ	trans_degr:   s       r(   Ú	test_skewzTestAffine2D.test_skewh   sµ   € Ü“J—O‘O¤B§E¡E¨A¡I¬r¯u©u°r©zÓ:ˆ	Ü“J×'Ñ'¨¨bÓ1ˆ	Ü˜9×/Ñ/Ó1°9×3GÑ3GÓ3IÔJä“
×#Ñ# J°
Ó;ˆÜ! %§/¡/°$×2CÑ2CÓ"DÀsÈDÀkÔRÜ! %§/¡/°$×2FÑ2FÓ"GØ$% q 6¨C°¨;¸¸A¸Ð"?õ	Ar*   c                 ó   — t        «       j                  dd«      }t        «       j                  dd«      }t        «       j                  dd«      }t        ||z   j                  «       |j                  «       «       t        |j	                  | j
                  «      ddg«       t        |j	                  | j                  «      ddgddgd	dgg«       y )
Né   r   r5   é   é+   é,   é   é-   é   )r   Ú	translater   r9   rM   rN   rO   )r'   ÚtxÚtyr:   s       r(   Útest_translatezTestAffine2D.test_translater   sª   € Ü‹Z×!Ñ! " aÓ(ˆÜ‹Z×!Ñ! ! RÓ(ˆÜ“
×$Ñ$ R¨Ó,ˆÜ˜B ™G×/Ñ/Ó1°5×3CÑ3CÓ3EÔFÜ˜5Ÿ?™?¨4×+<Ñ+<Ó=ÀÀB¸xÔHÜ˜5Ÿ?™?¨4×+?Ñ+?Ó@Ø ˜H r¨2 h°°R°Ð9õ	;r*   c                 ó  —  t        «       j                  d«      j                  g | j                  ¢d‘­Ž }t        «       j                  d«       t        «       j                  g | j                  ¢d‘­Ž z   }t	        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgdd	gg«       t        «       j                  d«      j                  dd	«      }t        «       j                  d«      t        «       j                  dd	«      z   }t	        |j                  «       |j                  «       «       t        |j                  | j                  «      d
d	g«       t        |j                  | j                  «      ddgddgddgg«       t        «       j                  d«      j                  dd«      }t        «       j                  d«      t        «       j                  dd«      z   }t	        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      d	dgddgddgg«       t        «       j                  d«      j                  dd«      }t        «       j                  d«      t        «       j                  dd«      z   }t	        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgddgg«       y )NrC   rG   r   r   r   r   r   rD   rE   rF   r^   r   i÷ÿÿÿéøÿÿÿre   rf   g      à¿ç      è?g      ø¿g      @rp   r5   é   rr   é   é   ru   é.   )r   rL   r[   rZ   r   r9   r   rM   rN   rO   r   rk   rw   ©r'   r:   Útrans_addeds      r(   Útest_rotate_plus_otherz#TestAffine2D.test_rotate_plus_other{   sá  € Ø;”“
×%Ñ% bÓ)×;Ñ;ÐM¸T¿Z¹ZÐMÈÒMˆÜ“z×,Ñ,¨RÓ0Ø3”x“z×3Ñ3ÐE°T·Z±ZÐEÀÒEñFˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀqÈ!ÀfÔMÜ! %§/¡/°$×2FÑ2FÓ"GØ$% q 6¨A¨r¨7°Q¸°GÐ"<ô	>ô “
×%Ñ% bÓ)×/Ñ/°°2Ó6ˆÜ“j×+Ñ+¨BÓ/´(³*×2BÑ2BÀ1ÀbÓ2IÑIˆÜ˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀrÈ2ÀhÔOÜ! %§/¡/°$×2FÑ2FÓ"GØ$&¨ 8¨b°"¨X¸¸2°wÐ"?ô	Aô “×&Ñ& rÓ*ß‘(˜: zÓ2ð 	ä“z×,Ñ,¨RÓ0Ü“z×*Ñ*¨:°zÓBñCˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀtÈTÀlÔSÜ! %§/¡/°$×2FÑ2FÓ"GØ$&¨ :°°d¨|¸aÀ¸VÐ"Dô	Fô “
×%Ñ% bÓ)×3Ñ3°B¸Ó;ˆÜ“j×+Ñ+¨BÓ/´(³*×2FÑ2FÀrÈ2Ó2NÑNˆÜ˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀrÈ2ÀhÔOÜ! %§/¡/°$×2FÑ2FÓ"GØ$&¨ 8¨b°"¨X¸¸B°xÐ"@õ	Br*   c                 ó   —  t        «       j                  g | j                  ¢d‘­Ž j                  d«      } t        «       j                  g | j                  ¢d‘­Ž t        «       j                  d«      z   }t	        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgddgg«        t        «       j                  g | j                  ¢d‘­Ž j                  d	d«      } t        «       j                  g | j                  ¢d‘­Ž t        «       j                  d	d«      z   }t	        |j                  «       |j                  «       «       t        |j                  | j                  «      d	dg«       t        |j                  | j                  «      ddgdd
gddgg«        t        «       j                  g | j                  ¢d‘­Ž j                  dd«      } t        «       j                  g | j                  ¢d‘­Ž t        «       j                  dd«      z   }t	        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgddgg«        t        «       j                  g | j                  ¢d‘­Ž j                  dd«      } t        «       j                  g | j                  ¢d‘­Ž t        «       j                  dd«      z   }t	        |j                  «       |j                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgddgg«       y )NrC   rG   rD   r   r   rF   rE   rH   r   r^   r   r|   re   rf   rg   rh   ç      à?g      @r   ri   rp   r5   rq   rr   r~   ru   é   r�   )r   r[   rZ   rL   r   r9   r   rM   rN   rO   r   rk   rw   r‚   s      r(   Útest_rotate_around_plus_otherz*TestAffine2D.test_rotate_around_plus_other›   s9  € Ø,”“
×,Ñ,Ð=¨d¯j©jÐ=¸"Ò=×HÑHÈÓMˆØ3”x“z×3Ñ3ÐD°T·Z±ZÐDÀÒDÜ“z×,Ñ,¨SÓ1ñ2ˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀrÈ2ÀhÔOÜ! %§/¡/°$×2FÑ2FÓ"GØ$% q 6¨A¨r¨7°R¸°HÐ"=ô	?ð -”“
×,Ñ,Ð=¨d¯j©jÐ=¸"Ò=×CÑCÀAÀrÓJˆØ3”x“z×3Ñ3ÐD°T·Z±ZÐDÀÒDÜ“z×'Ñ'¨¨2Ó.ñ/ˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀqÈ"ÀgÔNÜ! %§/¡/°$×2FÑ2FÓ"GØ$% q 6¨B°¨8°a¸°WÐ"=ô	?ð .”“×-Ñ-Ð>¨t¯z©zÐ>¸2Ò>ß‘(˜: zÓ2ð 	à3”x“z×3Ñ3ÐD°T·Z±ZÐDÀÒDÜ“z×*Ñ*¨:°zÓBñCˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀsÈDÀkÔRÜ! %§/¡/°$×2FÑ2FÓ"GØ$% q 6¨C°¨;¸¸C¸Ð"Aô	Cð -”“
×,Ñ,Ð=¨d¯j©jÐ=¸"Ò=×GÑGÈÈBÓOˆØ3”x“z×3Ñ3ÐD°T·Z±ZÐDÀÒDÜ“z×+Ñ+¨B°Ó3ñ4ˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀrÈ2ÀhÔOÜ! %§/¡/°$×2FÑ2FÓ"GØ$&¨ 8¨b°"¨X¸¸B°xÐ"@õ	Br*   c                 ó  — t        «       j                  dd«      j                  d«      }t        «       j                  dd«      t        «       j                  d«      z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgdd	gg«        t        «       j                  dd«      j                  g | j                  ¢d‘­Ž }t        «       j                  dd«       t        «       j                  g | j                  ¢d‘­Ž z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgd
dgdd	gg«       t        «       j                  dd«      j                  dd«      }t        «       j                  dd«      t        «       j                  dd«      z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgd	dgg«       t        «       j                  dd«      j                  dd«      }t        «       j                  dd«      t        «       j                  dd«      z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgddgg«       y )Nr   rE   rC   r   r   r   r   r!   r_   r    re   rf   ç      ô¿rH   ç      Àrp   r5   rt   é(   é&   é    é$   é#   )r   r   rL   r   r9   rM   rN   r   rO   r[   rZ   rk   rw   r‚   s      r(   Útest_scale_plus_otherz"TestAffine2D.test_scale_plus_other½   së  € Ü“
× Ñ   BÓ'×2Ñ2°2Ó6ˆÜ“j×&Ñ& q¨"Ó-´³
×0EÑ0EÀbÓ0IÑIˆÜ˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ˜5Ÿ?™?¨4×+<Ñ+<Ó=ÀÀ1¸vÔFÜ! %§/¡/°$×2FÑ2FÓ"GØ$% q 6¨A¨q¨6°A°r°7Ð";ô	=ð :”“
× Ñ   BÓ'×9Ñ9ÐJ¸4¿:¹:ÐJÀrÒJˆÜ“z×'Ñ'¨¨2Ó.Ø3”x“z×3Ñ3ÐD°T·Z±ZÐDÀÒDñEˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ˜5Ÿ?™?¨4×+<Ñ+<Ó=ÀÀ1¸vÔFÜ! %§/¡/°$×2FÑ2FÓ"GØ$% q 6¨A¨q¨6°A°r°7Ð";ô	=ô “×!Ñ! ! RÓ(ß‘(˜: zÓ2ð 	ä“z×'Ñ'¨¨2Ó.Ü“z×*Ñ*¨:°zÓBñCˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀqÈ%ÀjÔQÜ! %§/¡/°$×2FÑ2FÓ"GØ$&¨ 8¨a°¨Z¸"¸a¸Ð"Aô	Cô “
× Ñ   BÓ'×1Ñ1°"°bÓ9ˆÜ“j×&Ñ& q¨"Ó-´³
×0DÑ0DÀRÈÓ0LÑLˆÜ˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ˜5Ÿ?™?¨4×+<Ñ+<Ó=ÀÀB¸xÔHÜ˜5Ÿ?™?¨4×+?Ñ+?Ó@Ø ˜H r¨2 h°°R°Ð9õ	;r*   c                 ó  — t        «       j                  dd«      j                  d«      }t        «       j                  dd«      t        «       j                  d«      z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgdd	gd
dgg«        t        «       j                  dd«      j                  g | j                  ¢d‘­Ž }t        «       j                  dd«       t        «       j                  g | j                  ¢d‘­Ž z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgdd	gddgg«       t        «       j                  dd«      j                  dd«      }t        «       j                  dd«      t        «       j                  dd«      z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      d	dg«       t        |j                  | j                  «      ddgddgddgg«       t        «       j                  dd«      j                  dd«      }t        «       j                  dd«      t        «       j                  dd«      z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgddgg«       y )Nre   rf   rC   rŠ   rg   rE   r   r‹   ri   rD   r   r}   r   g      ü¿r   g      ÀrH   g      +@g      Àr_   rp   r5   g     €8@g      E@rq   rs   g     €;@g     àF@rv   rr   )r   rk   rL   r   r9   r   rM   rN   rO   r[   rZ   r   rw   r‚   s      r(   Útest_skew_plus_otherz!TestAffine2D.test_skew_plus_otherÝ   sù  € ä“
×#Ñ# J°
Ó;×FÑFÀrÓJˆÜ“z×*Ñ*¨:°zÓBÜ“z×,Ñ,¨RÓ0ñ1ˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀuÈcÀlÔSÜ! %§/¡/°$×2FÑ2FÓ"GØ$&¨ 7¨U°C¨L¸2¸q¸'Ð"Bô	Dð$”“×$Ñ$ Z°Ó<ß#Ñ#ð5Ø%)§Z¡Zð5Ø13ò5ˆä“z×*Ñ*¨:°zÓBØ3”x“z×3Ñ3ÐD°T·Z±ZÐDÀÒDñEˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀtÈSÀkÔRÜ! %§/¡/°$×2FÑ2FÓ"GØ$% q 6¨E°3¨<¸!¸Q¸Ð"@ô	Bô “
×#Ñ# J°
Ó;×AÑAÀ!ÀRÓHˆÜ“z×*Ñ*¨:°zÓBÜ“z×'Ñ'¨¨2Ó.ñ/ˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀsÈDÀkÔRÜ! %§/¡/°$×2FÑ2FÓ"GØ$% r 7¨T°4¨L¸2¸r¸(Ð"Cô	Eô “
×#Ñ# J°
Ó;×EÑEÀbÈ"ÓMˆÜ“z×*Ñ*¨:°zÓBÜ“z×+Ñ+¨B°Ó3ñ4ˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀtÈUÀmÔTÜ! %§/¡/°$×2FÑ2FÓ"GØ$&¨ 8¨d°E¨]¸RÀ¸HÐ"Eõ	Gr*   c                 ó  — t        «       j                  dd«      j                  d«      }t        «       j                  dd«      t        «       j                  d«      z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgd	d
gg«        t        «       j                  dd«      j                  g | j                  ¢d‘­Ž }t        «       j                  dd«       t        «       j                  g | j                  ¢d‘­Ž z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      d	dgddgdd
gg«       t        «       j                  dd«      j                  dd«      }t        «       j                  dd«      t        «       j                  dd«      z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgddgg«       t        «       j                  dd«      j                  dd«      }t        «       j                  dd«      t        «       j                  dd«      z   }t        |j	                  «       |j	                  «       «       t        |j                  | j                  «      ddg«       t        |j                  | j                  «      ddgddgdd gg«       y )!Nrp   r5   rC   iÕÿÿÿrq   iÔÿÿÿiÓÿÿÿrt   iÖÿÿÿrv   i×ÿÿÿiØÿÿÿr   rE   éH   iªÿÿÿéE   i¨ÿÿÿéN   i¦ÿÿÿéQ   i¬ÿÿÿre   rf   g     ÀF@é1   ru   g     àH@g     @H@g     ÀI@é0   g     `H@)r   rw   rL   r   r9   r   rM   rN   rO   r[   rZ   r   rk   r‚   s      r(   Útest_translate_plus_otherz&TestAffine2D.test_translate_plus_other   sî  € Ü“
×$Ñ$ R¨Ó,×7Ñ7¸Ó;ˆÜ“j×*Ñ*¨2¨rÓ2´X³Z×5JÑ5JÈ2Ó5NÑNˆÜ˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀsÈBÀiÔPÜ! %§/¡/°$×2FÑ2FÓ"GØ$'¨ 9¨s°B¨i¸#¸r¸Ð"Cô	Eð ?”“
×$Ñ$ R¨Ó,×>Ñ>ÐOÀÇ
Á
ÐOÈBÒOˆÜ“z×+Ñ+¨B°Ó3Ø3”x“z×3Ñ3ÐD°T·Z±ZÐDÀÒDñEˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀsÈBÀiÔPÜ! %§/¡/°$×2FÑ2FÓ"GØ$'¨ 9¨s°B¨i¸#¸r¸Ð"Cô	Eô “
×$Ñ$ R¨Ó,×2Ñ2°1°bÓ9ˆÜ“j×*Ñ*¨2¨rÓ2´X³Z×5EÑ5EÀaÈÓ5LÑLˆÜ˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀrÈ3ÀiÔPÜ! %§/¡/°$×2FÑ2FÓ"GØ$&¨ 9¨r°3¨i¸"¸c¸Ð"Cô	Eô “×%Ñ% b¨"Ó-ß‘(˜: zÓ2ð 	ä“z×+Ñ+¨B°Ó3Ü“z×*Ñ*¨:°zÓBñCˆä˜5×+Ñ+Ó-¨{×/EÑ/EÓ/GÔHÜ! %§/¡/°$×2CÑ2CÓ"DÀtÈRÀjÔQÜ! %§/¡/°$×2FÑ2FÓ"GØ$&¨ ;°°t°¸rÀ5¸kÐ"Jõ	Lr*   c                 ó4  — t        j                  «       }t        j                  t        «      5  |j                  d«       d d d «       t        j                  t        «      5  |j                  dggg«       d d d «       t        j                  t        «      5  |j                  g «       d d d «       t        j                  t        «      5  |j                  dg«       d d d «       t        j                  t        «      5  |j                  dgg«       d d d «       t        j                  t        «      5  |j                  g d¢g«       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   ŒqxY w# 1 sw Y   y xY w)Nr   r   )Úmtransformsr   ÚpytestÚraisesÚ
ValueErrorrM   ÚRuntimeError)r'   Úts     r(   Útest_invalid_transformz#TestAffine2D.test_invalid_transform   s1  € Ü× Ñ Ó"ˆô �]‰]œ:Ó&ñ 	Ø�K‰K˜ŒN÷	ä�]‰]œ:Ó&ñ 	!Ø�K‰K˜1˜#˜˜Ô ÷	!ä�]‰]œ<Ó(ñ 	Ø�K‰K˜ŒO÷	ä�]‰]œ<Ó(ñ 	Ø�K‰K˜˜Ô÷	ä�]‰]œ:Ó&ñ 	Ø�K‰K˜!˜˜Ô÷	ä�]‰]œ:Ó&ñ 	%Ø�K‰Kš˜Ô$÷	%ð 	%÷	ñ 	ú÷	!ð 	!ú÷	ð 	ú÷	ð 	ú÷	ð 	ú÷	%ð 	%úsG   ®EÁ!EÂE*Ã
E6Ã>FÄ3FÅEÅE'Å*E3Å6E?ÆFÆFc                 óp  — t        j                  «       }t        j                  «       }||z   }|j                  «        t        j                  |«      }|j                  s|j                  rJ ‚|j                  dd«       |j                  r|j                  sJ ‚|j                  «       |j                  «       k(  j                  «       sJ ‚|j                  «        t        j                  |«      }|j                  dd«       |j                  rJ ‚t        |j                  «       |j                  «       «       y ©Nr   r   r   r   )r�   r   r9   ÚcopyÚ_invalidrw   Úallr   ©r'   r@   ÚbÚsÚs1Úb1s         r(   Ú	test_copyzTestAffine2D.test_copy4  sÚ   € Ü× Ñ Ó"ˆÜ× Ñ Ó"ˆØ�‰Eˆà	�‰ŒÜ�Y‰Y�q‹\ˆØ—:’: b§k¢kÐ1Ð1Ø	�‰�A�qÔØ�zŠz˜bŸkškÐ)Ð)Ø—‘“ 1§<¡<£>Ñ1×6Ñ6Ô8Ð8Ð8à	�‰ŒÜ�Y‰Y�q‹\ˆØ
�‰�Q˜ÔØ—:’:Ðˆ~Ü˜1Ÿ<™<›>¨1¯<©<«>Õ:r*   c                 ó‚  — t        j                  «       }t        j                  «       }||z   }|j                  «        t        j                  |«      }|j
                  s|j
                  rJ ‚|j                  dd«       |j
                  r|j
                  rJ ‚t        |j                  «       t        j                  «       j                  «       «       |j                  «        t        j                  |«      }|j                  dd«       |j
                  rJ ‚t        |j                  «       |j                  «       «       y r¥   )r�   r   r9   r¦   Údeepcopyr§   rw   r   r©   s         r(   Útest_deepcopyzTestAffine2D.test_deepcopyF  sÛ   € Ü× Ñ Ó"ˆÜ× Ñ Ó"ˆØ�‰Eˆà	�‰ŒÜ�]‰]˜1ÓˆØ—:’: b§k¢kÐ1Ð1Ø	�‰�A�qÔØ�zŠz "§+¢+Ð-Ð-Ü˜2Ÿ=™=›?¬K×,@Ñ,@Ó,B×,MÑ,MÓ,OÔPà	�‰ŒÜ�]‰]˜1ÓˆØ
�‰�Q˜ÔØ—:’:Ðˆ~Ü˜1Ÿ<™<›>¨1¯<©<«>Õ:r*   N)Ú__name__Ú
__module__Ú__qualname__rN   rO   rZ   r)   r3   r<   rA   rW   r\   rb   rn   rz   r„   rˆ   r‘   r“   r›   r£   r®   r±   © r*   r(   r   r      s�   „ Ø˜�:€LØ˜S�z C¨ :°°S¨zÐ:€OØ€EòEò
Nò
SòNò
Iò2Pò28òAò;òBò@ BòD;ò@!GòFLò@%ò(;ó$;r*   r   c                   ó   — e Zd Zd„ Zy)ÚTestAffineDeltaTransformc                 óØ  — t        j                  g d¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g«      }t        j                  j	                  dddddd	«      }t        j
                  |«      }t        |j                  «       |«       d	|j                  «       d
dd …f<   t        |j                  «       |«       |j                  «        t        |j                  «       |«       y )N)r   r   r   )g      @r   r   )r   r   r   )r   r   r   r   r   r   r   r   r   )	r"   r#   r�   r   r/   ÚAffineDeltaTransformr   r9   Ú
invalidate)r'   ÚbeforeÚafterÚbaser¢   s        r(   Útest_invalidatez(TestAffineDeltaTransform.test_invalidateZ  sÁ   € Ü—‘š?Ú*Ú*ð,ó -ˆô —‘š/Ú)Ú)ð+ó ,ˆô
 ×#Ñ#×/Ñ/°°1°a¸¸A¸qÓAˆÜ×,Ñ,¨TÓ2ˆÜ˜1Ÿ<™<›>¨6Ô2ð
 $%ˆ�‰Ó˜!˜Q™R˜%Ñ Ü˜1Ÿ<™<›>¨5Ô1ð 	�‰ÔÜ˜1Ÿ<™<›>¨5Õ1r*   N)r²   r³   r´   r¾   rµ   r*   r(   r·   r·   Y  s   „ ó2r*   r·   c                  ól  —  G d„ dt         j                  «      }  | «       }t        j                  «       }t        j                  t        j                  d«      ||j                  z   ¬«       t        j                  «        d|_	        |j                  j                  «        t        j                  «        y )Nc                   óB   ‡ — e Zd ZdZdxZZdZˆ fd„Zd„ ZeZ	d„ Z
e
Zˆ xZS )ú<test_non_affine_caching.<locals>.AssertingNonAffineTransformz�
        This transform raises an assertion error when called when it
        shouldn't be and ``self.raise_on_transform`` is True.

        r   Fc                 ó„   •— t        ‰| �  |i |¤Ž d| _        t        j                  «       j                  dd«      | _        y )NFé
   )ÚsuperÚ__init__Úraise_on_transformr�   r   r   Úunderlying_transform)r'   ÚargsÚkwargsÚ	__class__s      €r(   rÅ   zEtest_non_affine_caching.<locals>.AssertingNonAffineTransform.__init__|  s;   ø€ Ü‰GÑ˜dÐ- fÒ-Ø&+ˆDÔ#Ü(3×(<Ñ(<Ó(>×(DÑ(DÀRÈÓ(LˆDÕ%r*   c                 ó^   — | j                   rJ d«       ‚| j                  j                  |«      S ©Nz3Invalidated affine part of transform unnecessarily.)rÆ   rÇ   Útransform_path©r'   Úpaths     r(   Útransform_path_non_affinezVtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_path_non_affine�  s4   € Ø×.Ò.ð FØEóFÐ.à×,Ñ,×;Ñ;¸DÓAÐAr*   c                 ó^   — | j                   rJ d«       ‚| j                  j                  |«      S rÌ   )rÆ   rÇ   rM   rÎ   s     r(   Útransform_non_affinezQtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_non_affine‡  s4   € Ø×.Ò.ð FØEóFÐ.à×,Ñ,×6Ñ6°tÓ<Ð<r*   )r²   r³   r´   Ú__doc__Ú
input_dimsÚoutput_dimsÚ	is_affinerÅ   rÐ   rÍ   rÒ   rM   Ú__classcell__©rÊ   s   @r(   ÚAssertingNonAffineTransformrÁ   s  s8   ø„ ñ	ð
 $%Ð$ˆ
�[Øˆ	ô	Mò
	Bð 3ˆò	=ð )Œ	r*   rÙ   rÃ   ©rM   T)r�   Ú	TransformÚpltÚaxesÚplotr"   ÚarangeÚ	transDataÚdrawrÆ   Ú	transAxesrº   )rÙ   Úmy_transÚaxs      r(   Útest_non_affine_cachingrå   r  st   € ô)¤k×&;Ñ&;ô )ñ4 +Ó,€HÜ	�‰‹€BÜ‡H�HŒR�Y‰Y�r‹] h°·±Ñ&=Õ>Ü‡H�H„Jð #'€HÔØ‡L�L×ÑÔÜ‡H�H…Jr*   c                  ó®  —  G d„ d«      } t        j                  «       }t        j                  t        j                  d«       | d«      ¬«      \  }|j                  dd«       |j                  dd«       t        |j                  «       j                  j                  «       t        j                  «       j                  d«      j                  «       «       y )Nc                   ó   — e Zd Zd„ Zd„ Zy)ú-test_external_transform_api.<locals>.ScaledByc                 ó   — || _         y ©N)Ú_scale_factor)r'   Úscale_factors     r(   rÅ   z6test_external_transform_api.<locals>.ScaledBy.__init__š  s
   € Ø!-ˆDÕr*   c                 óv   — t        j                  «       j                  | j                  «      |j                  z   S rê   )r�   r   r   rë   rà   )r'   rÝ   s     r(   Ú_as_mpl_transformz?test_external_transform_api.<locals>.ScaledBy._as_mpl_transform�  s0   € Ü×(Ñ(Ó*×0Ñ0°×1CÑ1CÓDØ—n‘nñ%ð &r*   N)r²   r³   r´   rÅ   rî   rµ   r*   r(   ÚScaledByrè   ™  s   „ ò	.ó	&r*   rï   rÃ   rÚ   r   éd   )rÜ   rÝ   rÞ   r"   rß   Úset_xlimÚset_ylimr   Úget_transformÚ_ar9   r�   r   r   )rï   rä   Úlines      r(   Útest_external_transform_apirö   ˜  s–   € ÷&ñ &ô 
�‰‹€BÜ�H‰H”R—Y‘Y˜r“]©h°r«lÔ;�E€DØ‡K�K��3ÔØ‡K�K��3Ôä�D×&Ñ&Ó(×+Ñ+×6Ñ6Ó8Ü×(Ñ(Ó*×0Ñ0°Ó4×?Ñ?ÓAõCr*   Úpre_transform_dataTÚmpl20gš™™™™™©?)Úremove_textÚstyleÚtolc                  ó8  — t        j                  «       } t        j                  «       j	                  d«      }| j                  t        j                  d«      j                  dd«      || j                  z   ¬«       | j                  t        j                  ddd«      t        j                  d	dd
«      t        j                  d«      j                  dd«      || j                  z   ¬«       | j                  t        j                  dd«      t        j                  dd«      || j                  z   ¬«       t        j                  ddd«      }t        j                  ddd«      }dt        j                  |«      z  t        j                  |d d …t        j                  f   «      z   }t        j                  |«      t        j                  |d d …t        j                  f   «      z
  }| j!                  |||||| j                  z   t        j"                  ||«      ¬«       |d d d…   |d d d…   }}|d d d…d d d…f   |d d d…d d d…f   }}| j%                  ||dz   |||| j                  z   ¬«       | j'                  |dz
  |dz   |dz  |dz  || j                  z   ¬«       y )NrÃ   rš   r   r    rÚ   r   r   r   g      @r!   r€   r   r   r   )rM   Ú	linewidthr   )rÜ   rÝ   r�   r   r   Úcontourfr"   rß   Úreshaperà   Ú
pcolormeshÚlinspaceÚscatterÚsinÚcosÚnewaxisÚ
streamplotÚhypotÚquiverÚbarbs)rä   Útimes10ÚxÚyÚuÚvs         r(   Útest_pre_transform_plottingr  ª  s$  € ô 
�‰‹€BÜ×"Ñ"Ó$×*Ñ*¨2Ó.€Gà‡K�K”—	‘	˜"“×%Ñ% a¨Ó+°wÀÇÁÑ7M€KÔNà‡M�M”"—+‘+˜a  AÓ&Ü—+‘+˜c 1 aÓ(Ü—)‘)˜B“-×'Ñ'¨¨1Ó-Ø# b§l¡lÑ2ð ô 4ð
 ‡J�JŒr�{‰{˜1˜bÓ!¤2§;¡;¨r°1Ó#5Ø  2§<¡<Ñ/ð ô 1ô 	�‰�A�r˜2Ó€AÜ
�‰�A�q˜"Ó€AØ	Œ"�&‰&�‹)‰”b—f‘f˜Qšq¤"§*¡*˜}Ñ-Ó.Ñ.€AÜ
�‰ˆq‹	”B—F‘F˜1šQ¤§
¡
˜]Ñ+Ó,Ñ,€Aà‡M�M�!�Q˜˜1¨°"·,±,Ñ(>ÜŸH™H Q¨›Nð ô ,ð ‰SˆqˆS‰6�1‘S�q�S‘6€q€AØ‰SˆqˆS‘#�A�#ˆX‰;˜™#˜A˜#™s ˜s˜(™€q€Aà‡I�Iˆa��Q‘˜˜1¨°"·,±,Ñ(>€IÔ?à‡H�HˆQ�‰U�A˜‘E˜1˜a™4  A¡°¸2¿<¹<Ñ1G€HÕHr*   c                  óâ  — t        j                  «       } t        j                  t        j                  ddd«      t        j                  ddd«      «      \  }}| j                  ||t        j                  ||z  «      t        j                  «       j                  d«      | j                  z   ¬«       t        j                  ddgd	d
gg«      }t        || j                  j                  «       «       y )Nrd   r€   çÍÌÌÌÌÌ(@ç      )@çš™™™™™¹?rÚ   rg   ç×£p=
×ó?r   rh   )rÜ   rÝ   r"   Úmeshgridr  rþ   Úlogr�   r   r   rà   r#   r   ÚdataLimÚ
get_points©rä   ÚxsÚysÚexpecteds       r(   Ú!test_contour_pre_transform_limitsr  Ï  s¸   € Ü	�‰‹€BÜ�[‰[œŸ™ R¨¨RÓ0´"·+±+¸dÀDÈ"Ó2MÓN�F€BˆØ‡K�K��BœŸ™˜r B™w›Ü%×.Ñ.Ó0×6Ñ6°sÓ;¸b¿l¹lÑJð ô Lô �x‰x˜#˜t˜Ø˜d˜ð%ó &€Hä˜ "§*¡*×"7Ñ"7Ó"9Õ:r*   c                  óô  — t        j                  «       } t        j                  t        j                  ddd«      t        j                  ddd«      «      \  }}| j                  ||t        j                  ||z  «      d d…d d…f   t        j                  «       j                  d«      | j                  z   ¬«       t        j                  dd	gd
dgg«      }t        || j                  j                  «       «       y ©Nrd   r€   r  r  rD   r  rÚ   rg   r  r   rh   )rÜ   rÝ   r"   r  r  Úpcolorr  r�   r   r   rà   r#   r   r  r  r  s       r(   Ú test_pcolor_pre_transform_limitsr!  Ú  sÉ   € ä	�‰‹€BÜ�[‰[œŸ™ R¨¨RÓ0´"·+±+¸dÀDÈ"Ó2MÓN�F€BˆØ‡I�Iˆb�"”b—f‘f˜R "™W“o c r c¨3¨B¨3 hÑ/Ü#×,Ñ,Ó.×4Ñ4°SÓ9¸B¿L¹LÑHð ô Jô �x‰x˜#˜t˜Ø˜d˜ð%ó &€Hä˜ "§*¡*×"7Ñ"7Ó"9Õ:r*   c                  óô  — t        j                  «       } t        j                  t        j                  ddd«      t        j                  ddd«      «      \  }}| j                  ||t        j                  ||z  «      d d…d d…f   t        j                  «       j                  d«      | j                  z   ¬«       t        j                  dd	gd
dgg«      }t        || j                  j                  «       «       y r  )rÜ   rÝ   r"   r  r  r   r  r�   r   r   rà   r#   r   r  r  r  s       r(   Ú$test_pcolormesh_pre_transform_limitsr#  æ  sÉ   € ä	�‰‹€BÜ�[‰[œŸ™ R¨¨RÓ0´"·+±+¸dÀDÈ"Ó2MÓN�F€BˆØ‡M�M�"�bœ"Ÿ&™&  b¡›/¨#¨2¨#¨s°¨s¨(Ñ3Ü'×0Ñ0Ó2×8Ñ8¸Ó=ÀÇÁÑLð ô Nô �x‰x˜#˜t˜Ø˜d˜ð%ó &€Hä˜ "§*¡*×"7Ñ"7Ó"9Õ:r*   c                  ó  — t         j                  j                  d«       t        j                  ddd«      } t        j                  ddd«      }t        j                  | |«      \  }}t        j
                  t        j                  j                  |j                  Ž dz  «      }t        j                  «       }|j                  dd	¬
«      }|j                  dd«       |j                  |||d¬«       |j                  j                  «        y )Nr,   r   rG   r   rð   iè  rÃ   éo   Úpolar©Ú
projectionée   Úgouraud)Úshading)r"   r-   r.   r  r  Úradiansr>   ÚshaperÜ   ÚfigureÚadd_subplotÚset_rlimr   Úcanvasrá   )r2   ÚradiiÚzr  r  Úfigrä   s          r(   Útest_pcolormesh_gouraud_nansr5  ò  s½   € Ü‡I�I‡N�N�8Ôä�[‰[˜˜C Ó#€FÜ�K‰K˜˜T 2Ó&€EÜ�;‰;�v˜uÓ%�D€A€qÜ
�
‰
”2—9‘9—>‘> 1§7¡7Ð+¨cÑ1Ó2€Aä
�*‰*‹,€CØ	�‰˜¨ˆÓ	1€Bð ‡K�K��TÔØ‡M�M�!�Q˜ 9€MÔ-à‡J�J‡O�OÕr*   c                  ó´  — t        j                  ddgddgddgg«      } t        j                  j	                  dddddd«      }|j                  | «      }t        j                  ddgddgddgg«      }t        ||«       t        j                  j	                  dddddd«      }|j                  | «      }t        j                  ddgddgddgg«      }t        ||«       t        j                  j	                  dddddd«      }|j                  | «      }t        j                  ddgd	dgddgg«      }t        ||«       t        j                  j	                  dddd
dd«      }|j                  | «      }t        j                  ddgddgddgg«      }t        ||«       t        j                  j	                  dddddd«      }|j                  | «      }t        j                  ddgddgddgg«      }t        ||«       t        j                  j	                  dddddd«      }|j                  | «      }t        j                  ddgddgddgg«      }t        ||«       y )Nr   rÃ   r€   rD   r   r   rE   r   é<   r   éP   r   r   )r"   r#   r�   r   r/   rM   r   )Úpointsr¢   Úactualr  s       r(   Útest_Affine2D_from_valuesr;    sA  € Ü�X‰X˜˜1�vØ˜B�xØ˜A�wðó €Fô
 	×Ñ×(Ñ(¨¨A¨q°!°Q¸Ó:€AØ�[‰[˜Ó €FÜ�x‰x˜!˜Q˜ " a ¨2¨q¨'Ð2Ó3€HÜ˜ Ô)ä×Ñ×(Ñ(¨¨A¨q°!°Q¸Ó:€AØ�[‰[˜Ó €FÜ�x‰x˜!˜Q˜ ! R ¨1¨b¨'Ð2Ó3€HÜ˜ Ô)ä×Ñ×(Ñ(¨¨A¨q°!°Q¸Ó:€AØ�[‰[˜Ó €FÜ�x‰x˜!˜Q˜ " a ¨1¨a¨&Ð1Ó2€HÜ˜ Ô)ä×Ñ×(Ñ(¨¨A¨q°!°Q¸Ó:€AØ�[‰[˜Ó €FÜ�x‰x˜!˜Q˜ ! R ¨1¨a¨&Ð1Ó2€HÜ˜ Ô)ä×Ñ×(Ñ(¨¨A¨q°!°Q¸Ó:€AØ�[‰[˜Ó €FÜ�x‰x˜!˜Q˜ ! Q ¨!¨Q¨Ð0Ó1€HÜ˜ Ô)ä×Ñ×(Ñ(¨¨A¨q°!°Q¸Ó:€AØ�[‰[˜Ó €FÜ�x‰x˜!˜Q˜ ! Q ¨!¨Q¨Ð0Ó1€HÜ˜ Õ)r*   c                  óT  — ddg} t        j                  «       }t        | |j                  |j	                  «       j                  | «      «      «       |j                  dd«      j                  «        t        | |j                  |j	                  «       j                  | «      «      «       y )Nr   )r�   r   r   rM   Úinvertedrw   r9   )Úpointr¢   s     r(   Ú test_affine_inverted_invalidatedr?  *  sx   € à�#ˆJ€EÜ×ÑÓ€Aä˜˜qŸ{™{¨1¯:©:«<×+AÑ+AÀ%Ó+HÓIÔJà‡K�K��SÓ×$Ñ$Ô&Ü˜˜qŸ{™{¨1¯:©:«<×+AÑ+AÀ%Ó+HÓIÕJr*   c                  óX  — t        j                  g d¢«      } t        j                  t        j                  «       t        j                  dd«      «      }|j                  | «      }|j                  |j                  «       dd¬«      }t        |Ž \  }}t        || j                  d d «       y )N))çš™™™™™É?é�ÿÿÿ)çš™™™™™Ù?rB  )rC  r€   )rA  r€   rÃ   Úclip)r   r   rð   rð   F)rD  ÚsimplifyrD   )r   Ú_create_closedr�   ÚBlendedGenericTransformr   r   ÚLogTransformrÐ   Úiter_segmentsÚ
get_affineÚzipr   Úcodes)rÏ   r:   ÚtpathÚresultÚtpointsÚtcodess         r(   Útest_clipping_of_logrQ  5  s˜   € ä×ÑÒMÓN€Dä×/Ñ/Ü×ÑÓ¤× 2Ñ 2°2°vÓ >ó@€Eà×+Ñ+¨DÓ1€EØ× Ñ  ×!1Ñ!1Ó!3Ø&6Ø*/ð !ó 1€Fô ˜6�l�O€GˆVÜ�F˜DŸJ™J s¨˜OÕ,r*   c                   ó:   ‡ — e Zd ZdZdZdZdZˆ fd„Zd„ Zd„ Z	ˆ xZ
S )ÚNonAffineForTestzÚ
    A class which looks like a non affine transform, but does whatever
    the given transform does (even if it is affine). This is very useful
    for testing NonAffine behaviour with a simple Affine transform.

    Fr   c                 ó2   •— || _         t        ‰| �  |i |¤Ž y rê   )Ú
real_transrÄ   rÅ   )r'   rU  rÈ   rÉ   rÊ   s       €r(   rÅ   zNonAffineForTest.__init__N  s   ø€ Ø$ˆŒÜ‰Ñ˜$Ð) &Ó)r*   c                 ó8   — | j                   j                  |«      S rê   )rU  rM   r1   s     r(   rÒ   z%NonAffineForTest.transform_non_affineR  s   € Ø�‰×(Ñ(¨Ó0Ð0r*   c                 ó8   — | j                   j                  |«      S rê   )rU  rÍ   rÎ   s     r(   rÐ   z*NonAffineForTest.transform_path_non_affineU  s   € Ø�‰×-Ñ-¨dÓ3Ð3r*   )r²   r³   r´   rÓ   rÖ   rÕ   rÔ   rÅ   rÒ   rÐ   r×   rØ   s   @r(   rS  rS  C  s(   ø„ ñð €IØ€KØ€Jô*ò1ö4r*   rS  c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestBasicTransformc                 ó”  — t        j                  d¬«      j                  t        j                  dz  «      | _        t        j                  d¬«      j                  dd«      | _        t        j                  d¬«      j                  dd«      | _	        t        t        j                  «       j                  dd«      d	¬«      | _        t        t        j                  «       j                  dd«      d
¬«      | _        t        t        j                  «       j                  dd«      d¬«      | _        | j
                  | j                  | j                  z   z   | j                  z   | _        | j
                  | j                  z   | j                  z   | j                  z   | _        | j                  | j                  z   | j                  z   | _        y )NÚta1)Úshorthand_namer   Úta2rÃ   r   Úta3r   Útn1Útn2Útn3)r�   r   rJ   r"   rK   r[  rw   r]  r   r^  rS  r_  r`  ra  Ústack1Ústack2Ústack2_subsetr&   s    r(   Úsetup_methodzTestBasicTransform.setup_methodZ  sF  € ä×'Ñ'°uÔ=×DÑDÄRÇUÁUÈQÁYÓOˆŒÜ×'Ñ'°uÔ=×GÑGÈÈAÓNˆŒÜ×'Ñ'°uÔ=×CÑCÀAÀqÓIˆŒä#¤K×$8Ñ$8Ó$:×$DÑ$DÀQÈÓ$JØ38ô:ˆŒä#¤K×$8Ñ$8Ó$:×$DÑ$DÀQÈÓ$JØ38ô:ˆŒä#¤K×$8Ñ$8Ó$:×$DÑ$DÀQÈÓ$JØ38ô:ˆŒð —x‘x 4§8¡8¨d¯h©hÑ#6Ñ7¸4¿8¹8ÑCˆŒà—h‘h §¡Ñ)¨D¯H©HÑ4°t·x±xÑ?ˆŒà!ŸX™X¨¯©Ñ0°4·8±8Ñ;ˆÕr*   c                 ó¦   — | j                   j                  dk(  sJ ‚| j                  j                  dk(  sJ ‚| j                  j                  dk(  sJ ‚y )Nr   r   )rb  Údepthrc  rd  r&   s    r(   Útest_transform_depthz'TestBasicTransform.test_transform_depths  sL   € Ø�{‰{× Ñ  AÒ%Ð%Ð%Ø�{‰{× Ñ  AÒ%Ð%Ð%Ø×!Ñ!×'Ñ'¨1Ò,Ð,Ñ,r*   c                 ó6  — | j                   | j                  | j                  | j                  z   z   z   | j                  z   }|| j                  | j                  | j                  z   z   | j                  z   | j                  | j                  z   | j                  z   | j                  | j                  z   | j                  g}|j                  «       D ��cg c]  \  }}|‘Œ	 }}}t        |«      t        |«      k(  sJ ‚t        ||«      D ]  \  }}||k(  rŒJ ‚ y c c}}w rê   )r[  r_  r]  r`  r^  Ú_iter_break_from_left_to_rightÚlenrK  )r'   Ústack3Útarget_transformsÚ_ÚrhÚrÚtarget_stackÚstacks           r(   Útest_left_to_right_iterationz/TestBasicTransform.test_left_to_right_iterationx  sø   € Ø—(‘(˜dŸh™h¨$¯(©(°T·X±XÑ*=Ñ>Ñ?À4Ç8Á8ÑKˆð $Ø"Ÿh™h¨$¯(©(°T·X±XÑ*=Ñ>À$Ç(Á(ÑJØ"Ÿh™h¨¯©Ñ1°T·X±XÑ=Ø!ŸX™X¨¯©Ñ0Ø!ŸX™Xð	Ðð $×BÑBÓD×E‘E�A�rŠRÐEˆÑEÜ�1‹vœÐ.Ó/Ò/Ð/Ð/ä#&Ð'8¸!Ó#<ò 	)ÑˆL˜%Ø 5Ó(Ð(Ð(ñ	)ùó Fs   ÃDc                 óš  — | j                   | j                  z
  | j                  k(  sJ ‚| j                  | j                  z
  | j                  k(  sJ ‚| j                  | j                  z
  | j                  j	                  «       k(  sJ ‚| j                  | j                  z
  j
                  dk(  sJ ‚t        j                  t        «      5  | j                   | j                  z
   d d d «       | j                  | j                  | j                  z   z   }| j                  | j                  z   }||z
  | j                  k(  sJ ‚|| j                  z
  || j                  j	                  «       z   k(  sJ ‚| j                   | j                  z
  | j                  | j                  | j                  z   z   k(  sJ ‚| j                  | j                  z
  | j                  | j                  z   | j                  z   k(  sJ ‚| j                  | j                  z   | j                  z
  | j                  z   | j                  | j                  z   k(  sJ ‚y # 1 sw Y   �Œ`xY w)Nr   )rb  rd  r[  rc  r=  rg  rž   rŸ   r    r]  r^  r_  )r'   Úaff1Úaff2s      r(   Útest_transform_shortcutsz+TestBasicTransform.test_transform_shortcutsˆ  sÒ  € Ø�{‰{˜T×/Ñ/Ñ/°4·8±8Ò;Ð;Ð;Ø�{‰{˜T×/Ñ/Ñ/°4·8±8Ò;Ð;Ð;à×!Ñ! D§K¡KÑ/°4·8±8×3DÑ3DÓ3FÒFÐFÐFØ×"Ñ" T§[¡[Ñ0×7Ñ7¸1Ò<Ð<Ð<ä�]‰]œ:Ó&ñ 	&Ø�K‰K˜$Ÿ+™+Ò%÷	&ð �x‰x˜4Ÿ8™8 d§h¡hÑ.Ñ/ˆØ�x‰x˜$Ÿ(™(Ñ"ˆà�d‰{˜dŸh™hÒ&Ð&Ð&Ø�d—h‘h‰ $¨¯©×):Ñ):Ó)<Ñ"<Ò<Ð<Ð<à�{‰{˜TŸX™XÑ%¨¯©°T·X±XÀÇÁÑ5HÑ)IÒIÐIÐIØ�{‰{˜TŸX™XÑ%¨¯©°D·H±HÑ)<¸t¿x¹xÑ)GÒGÐGÐGà—‘˜DŸH™HÑ$¨¯©Ñ0°4·8±8Ñ;Ø—‘˜4Ÿ8™8Ñ#ò$ð 	%ñ $÷	&ñ 	&ús   ÃI É I
c                 óÂ  — | j                   | j                  z   }| j                   | j                  z   }||k(  sJ ‚|| j                  k7  sJ ‚|j                  |«      sJ ‚|j                  | j                  «      sJ ‚|j                  | j                   «      rJ ‚|j                  | j                   | j                   z   «      rJ ‚||k(  sJ ‚| j                  j                  | j                  «      sJ ‚| j
                  j                  | j                  «      sJ ‚| j                  j                  | j                  «      sJ ‚| j
                  j                  | j                  «      sJ ‚| j                  j                  | j                  «      rJ ‚| j                  j                  | j
                  «      rJ ‚| j                  j                  | j                   | j                  z   «      sJ ‚| j
                  j                  | j                   | j                  z   «      sJ ‚| j                  j                  | j                  | j                   z   «      rJ ‚t        j                  | j                  | j
                  «      }|j                  | j                  «      \  }}| j                  |z   }|j                  | j                  «      \  }}||cxu rdu sJ ‚ J ‚||cxu rdu sJ ‚ J ‚y )NFT)r]  r[  Úcontains_branchrb  r^  rc  rd  r_  r�   rG  r`  Úcontains_branch_seperatelyra  )	r'   Úr1Úr2Úblendr  r  Ústack_blendr`   ra   s	            r(   Útest_contains_branchz'TestBasicTransform.test_contains_branchž  sZ  € Ø�h‰h˜Ÿ™Ñ!ˆØ�h‰h˜Ÿ™Ñ!ˆØ�RŠxˆˆxØ�T—X‘XŠ~Ðˆ~Ø×!Ñ! "Ô%Ð%Ð%Ø×!Ñ! $§(¡(Ô+Ð+Ð+Ø×%Ñ% d§h¡hÔ/Ð/Ð/Ø×%Ñ% d§h¡h°·±Ñ&9Ô:Ð:Ð:à�RŠxˆˆxà�{‰{×*Ñ*¨4¯8©8Ô4Ð4Ð4Ø�{‰{×*Ñ*¨4¯8©8Ô4Ð4Ð4à�{‰{×*Ñ*¨4×+=Ñ+=Ô>Ð>Ð>Ø�{‰{×*Ñ*¨4×+=Ñ+=Ô>Ð>Ð>à×%Ñ%×5Ñ5°d·k±kÔBÐBÐBØ×%Ñ%×5Ñ5°d·k±kÔBÐBÐBà�{‰{×*Ñ*¨4¯8©8°d·h±hÑ+>Ô?Ð?Ð?Ø�{‰{×*Ñ*¨4¯8©8°d·h±hÑ+>Ô?Ð?Ð?à—;‘;×.Ñ.¨t¯x©x¸$¿(¹(Ñ/BÔCÐCÐCä×3Ñ3°D·H±H¸d¿k¹kÓJˆØ×/Ñ/°×0BÑ0BÓC‰ˆˆ1Ø—h‘h Ñ&ˆØ×7Ñ7¸×8JÑ8JÓK‰ˆˆBØ�BÓ˜%ÑÐÑÐÐØ�B‹˜$‰Ð‰Ð‰r*   c                 ó   — t        j                  ddgddgt         j                  dgddggt         j                  ¬«      }| j                  j                  |«      }| j                  j                  |«      }t        j                  ddgd	d
gt         j                  t         j                  gddggt         j                  ¬«      }t        j                  ddgddgt         j                  t         j                  gddggt         j                  ¬«      }t        ||«       t        ||«       t        | j                  j                  |«      |«       t        | j                  j                  «       j                  |«      |«       | j                  | j                  z   j                  «       }| j                  j                  «       j                  «       }t        ||«       | j                  j                  «       j                  «       }t        ||«       y )Nr   rÃ   r€   r   rD   )Údtyper   r   g      3Àç      (@g      &@r   g      "Àg      8@)r"   r#   ÚnanÚfloat64rb  rÒ   rM   r   Útransform_affinerJ  r]  r^  r9   r   rc  )r'   r9  Úna_ptsÚall_ptsÚna_expectedÚall_expectedÚexpected_resultrN  s           r(   Útest_affine_simplificationz-TestBasicTransform.test_affine_simplification¿  s›  € ô —‘˜A˜q˜6 B¨ 8¬b¯f©f°a¨[¸2¸q¸'ÐBÜ "§
¡
ô,ˆà—‘×1Ñ1°&Ó9ˆØ—+‘+×'Ñ'¨Ó/ˆä—h‘h  R ¨4°¨+Ü!#§¡¬¯©Ð 0°2°r°(ð <ÜCEÇ:Á:ôOˆä—x‘x # r ¨S°#¨JÜ"$§&¡&¬"¯&©&Ð!1°C¸°9ð!>ä&(§j¡jô2ˆô
 	" &¨+Ô6ä! '¨<Ô8ô 	" $§+¡+×">Ñ">¸vÓ"FØ".ô	0ô 	" $§+¡+×"8Ñ"8Ó":×"DÑ"DÀVÓ"LØ".ô	0ð
  Ÿ8™8 d§h¡hÑ.×:Ñ:Ó<ˆØ—‘×'Ñ'Ó)×4Ñ4Ó6ˆÜ˜?¨FÔ3à—‘×'Ñ'Ó)×4Ñ4Ó6ˆÜ˜?¨FÕ3r*   N)	r²   r³   r´   re  rh  rs  rw  r  r‹  rµ   r*   r(   rY  rY  Y  s!   „ ò<ò2-ò
)ò %ò,óB#4r*   rY  c                   óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚTestTransformPlotInterfacec                 ó^  — t        j                  «       }|j                  g d¢g d¢|j                  ¬«       t	        |j
                  j                  «       t        j                  t        j                  t        j                  gt        j                   t        j                   gg«      «       y )N©r  ç333333ó?çš™™™™™é?©çÍÌÌÌÌÌì?r†   r‘  rÚ   )
rÜ   rÝ   rÞ   râ   r   r  r  r"   r#   Úinf©r'   rä   s     r(   Útest_line_extent_axes_coordsz7TestTransformPlotInterface.test_line_extent_axes_coordsæ  sn   € ä�X‰X‹ZˆØ
�‰’¢¸B¿L¹LˆÔIÜ˜2Ÿ:™:×0Ñ0Ó2ÜŸ8™8¤b§f¡f¬b¯f©fÐ%5Ü')§v¡v g´·±¨wÐ%7ð%9ó :õ	;r*   c                 óê   — t        j                  «       }|j                  g d¢g d¢|j                  ¬«       t	        |j
                  j                  «       t        j                  ddgddgg«      «       y )Nr�  r’  rÚ   r  r†   r�  r“  )	rÜ   rÝ   rÞ   rà   r   r  r  r"   r#   r•  s     r(   Útest_line_extent_data_coordsz7TestTransformPlotInterface.test_line_extent_data_coordsî  sT   € ä�X‰X‹ZˆØ
�‰’¢¸B¿L¹LˆÔIÜ˜2Ÿ:™:×0Ñ0Ó2ÜŸ8™8 c¨C [°3¸°+Ð$>Ó?õ	Ar*   c                 ód  — t        j                  «       }t        j                  |j                  |j
                  «      }|j                  g d¢g d¢|¬«       t        |j                  j                  «       t        j                  t        j                  dgt        j                   dgg«      «       y )Nr�  ©r�   éûÿÿÿé   rÚ   g      Àg     €A@)rÜ   rÝ   r�   Úblended_transform_factoryrâ   rà   rÞ   r   r  r  r"   r#   r”  ©r'   rä   r:   s      r(   Ú!test_line_extent_compound_coords1z<TestTransformPlotInterface.test_line_extent_compound_coords1õ  s~   € ô �X‰X‹ZˆÜ×5Ñ5°b·l±lØ68·l±lóDˆà
�‰’¢¸ˆÔ?Ü˜2Ÿ:™:×0Ñ0Ó2ÜŸ8™8¤b§f¡f¨c ]Ü')§v¡v g¨s ^ð%5ó 6õ	7r*   c                 ó6  — t        j                  «       }t        j                  «       j	                  d«      |j
                  z   }|j                  g d¢g d¢|¬«       t        |j                  j                  «       t        j                  ddgddgg«      «       y )	NrÃ   r�  rš  rÚ   r   ç      IÀr‚  ç     àu@)rÜ   rÝ   r�   r   r   rà   rÞ   r   r  r  r"   r#   rž  s      r(   Ú)test_line_extent_predata_transform_coordszDTestTransformPlotInterface.test_line_extent_predata_transform_coords   sr   € ä�X‰X‹ZˆÜ×$Ñ$Ó&×,Ñ,¨RÓ0°2·<±<Ñ?ˆØ
�‰’¢¸ˆÔ?Ü˜2Ÿ:™:×0Ñ0Ó2ÜŸ8™8 b¨$ Z°#°t°Ð$=Ó>õ	@r*   c                 ó¬  — t        j                  «       }t        j                  |j                  t        j
                  «       j                  d«      |j                  z   «      }|j                  g d¢g d¢|¬«       t        |j                  j                  «       t        j                  t        j                  dgt        j                   dgg«      «       y )NrÃ   r�  rš  rÚ   r¡  r¢  )rÜ   rÝ   r�   r�  râ   r   r   rà   rÞ   r   r  r  r"   r#   r”  rž  s      r(   Ú!test_line_extent_compound_coords2z<TestTransformPlotInterface.test_line_extent_compound_coords2  s“   € ô �X‰X‹ZˆÜ×5Ñ5Ø�L‰Lœ+×.Ñ.Ó0×6Ñ6°rÓ:¸R¿\¹\ÑIóKˆà
�‰’¢¸ˆÔ?Ü˜2Ÿ:™:×0Ñ0Ó2ÜŸ8™8¤b§f¡f¨d ^´r·v±v°g¸t°_Ð$EÓFõ	Hr*   c                 óf  — t        j                  «       }t        j                  «       j	                  dd«      }t        j
                  t        j                  d«      ||j                  z   ¬«       t        j                  ddgddgg«      dz   }t        |j                  j                  «       |«       y )NrÃ   rÚ   r   ç      "@©rÜ   rÝ   r�   r   rw   rÞ   r"   rß   rà   r#   r   r  r  ©r'   rä   ÚoffsetÚexpected_data_lims       r(   Útest_line_extents_affinez3TestTransformPlotInterface.test_line_extents_affine  s€   € Ü�X‰X‹ZˆÜ×%Ñ%Ó'×1Ñ1°"°bÓ9ˆÜ�‰”—‘˜2“¨&°2·<±<Ñ*?Õ@ÜŸH™H r¨2 h°°b°	Ð%:Ó;¸bÑ@ÐÜ! "§*¡*×"7Ñ"7Ó"9Ð;LÕMr*   c                 óÆ  — t        j                  «       }t        j                  «       j	                  dd«      }t        t        j                  «       j	                  dd«      «      }t        j                  t        j                  d«      ||z   |j                  z   ¬«       t        j                  ddgddgg«      dz   }t        |j                  j                  «       |«       y )NrÃ   rÚ   r   r§  r€   )rÜ   rÝ   r�   r   rw   rS  rÞ   r"   rß   rà   r#   r   r  r  )r'   rä   rª  Ú	na_offsetr«  s        r(   Útest_line_extents_non_affinez7TestTransformPlotInterface.test_line_extents_non_affine  s¥   € Ü�X‰X‹ZˆÜ×%Ñ%Ó'×1Ñ1°"°bÓ9ˆÜ$¤[×%9Ñ%9Ó%;×%EÑ%EÀbÈ"Ó%MÓNˆ	Ü�‰”—‘˜2“¨&°9Ñ*<¸r¿|¹|Ñ*KÕLÜŸH™H r¨2 h°°b°	Ð%:Ó;¸bÑ@ÐÜ! "§*¡*×"7Ñ"7Ó"9Ð;LÕMr*   c                 óð  — t        j                  «       }t        j                  «       j	                  dd«      }t        t        j                  «       j	                  dd«      «      }t        ddgddgddgddgg«      }t        j                  |||z   |j                  z   ¬«      }|j                  |«       t        j                  ddgddgg«      dz   }t        |j                  j                  «       |«       y )NrÃ   r   rÚ   r   ç      $@r€   )rÜ   rÝ   r�   r   rw   rS  r   ÚmpatchesÚ	PathPatchrà   Ú	add_patchr"   r#   r   r  r  )r'   rä   rª  r®  ÚpthÚpatchr«  s          r(   Útest_pathc_extents_non_affinez8TestTransformPlotInterface.test_pathc_extents_non_affine!  sÔ   € Ü�X‰X‹ZˆÜ×%Ñ%Ó'×1Ñ1°"°bÓ9ˆÜ$¤[×%9Ñ%9Ó%;×%EÑ%EÀbÈ"Ó%MÓNˆ	Ü�Q˜�F˜Q ˜G b¨" X°°A¨wÐ7Ó8ˆÜ×"Ñ" 3Ø-3°iÑ-?À"Ç,Á,Ñ-NôPˆà
�‰�UÔÜŸH™H r¨2 h°°s°Ð%<Ó=ÀÑBÐÜ! "§*¡*×"7Ñ"7Ó"9Ð;LÕMr*   c                 ó�  — t        j                  «       }t        j                  «       j	                  dd«      }t        ddgddgddgddgg«      }t        j                  |||j                  z   ¬«      }|j                  |«       t        j                  ddgddgg«      dz   }t        |j                  j                  «       |«       y )NrÃ   r   rÚ   r   r±  )rÜ   rÝ   r�   r   rw   r   r²  r³  rà   r´  r"   r#   r   r  r  )r'   rä   rª  rµ  r¶  r«  s         r(   Útest_pathc_extents_affinez4TestTransformPlotInterface.test_pathc_extents_affine,  s«   € Ü�X‰X‹ZˆÜ×%Ñ%Ó'×1Ñ1°"°bÓ9ˆÜ�Q˜�F˜Q ˜G b¨" X°°A¨wÐ7Ó8ˆÜ×"Ñ" 3°&¸2¿<¹<Ñ2GÔHˆØ
�‰�UÔÜŸH™H r¨2 h°°s°Ð%<Ó=ÀÑBÐÜ! "§*¡*×"7Ñ"7Ó"9Ð;LÕMr*   c                 ón  — t        j                  d¬«      }t        j                  «       j	                  dd«      }t        j
                  t        j                  d«      ||j                  z   ¬«       t        j                  ddgddgg«      ddgz   }t        |j                  j                  «       |«       y )Nr&  r'  r   rÃ   rÚ   r   r§  r¨  r©  s       r(   Ú*test_line_extents_for_non_affine_transDatazETestTransformPlotInterface.test_line_extents_for_non_affine_transData5  s‰   € Ü�X‰X Ô)ˆä×%Ñ%Ó'×1Ñ1°!°RÓ8ˆä�‰”—‘˜2“¨&°2·<±<Ñ*?Õ@ô ŸH™H r¨2 h°°b°	Ð%:Ó;¸qÀ"¸gÑEÐÜ! "§*¡*×"7Ñ"7Ó"9Ð;LÕMr*   N)r²   r³   r´   r–  r˜  rŸ  r£  r¥  r¬  r¯  r·  r¹  r»  rµ   r*   r(   r�  r�  å  s<   „ ò;òAò	7ò@òHòNòNò	NòNó
Nr*   r�  c                 óD   — t        | j                  |j                  «       y rê   )r   Úbounds)Úbbox1Úbbox2s     r(   Úassert_bbox_eqrÀ  B  s   € Ü�u—|‘| U§\¡\Õ2r*   c                  ó¬   — t         j                  j                  ddddd¬«      } | j                  «       }t	        |j
                  | j
                  «       y )Nr   r   )Úminpos)r�   r	   Úfrom_extentsÚfrozenr   rÂ  )ÚbboxrÄ  s     r(   Útest_bbox_frozen_copies_minposrÆ  F  s@   € Ü×Ñ×(Ñ(¨¨c°3¸ÀCÐ(ÓH€DØ�[‰[‹]€FÜ�v—}‘} d§k¡kÕ2r*   c            	      ó¬  — t         j                  j                  } t         j                  j                  } | dddd«      } | dddd«      } | dddd«      } | dddd«      } | dddd«      }t	         |||«      |«       t	         |||«       | dddd«      «       t	         |||«      |«        |||«      �J ‚t	         |||«       | dddd«      «       y )Nr   r   r†   rg   r}   g      @r   )r�   r	   rÃ  ÚintersectionrÀ  )Úbbox_from_extÚinterr{  r|  Úr3Úr4Úr5s          r(   Útest_bbox_intersectionrÎ  L  sÞ   € Ü×$Ñ$×1Ñ1€MÜ×Ñ×)Ñ)€Eá	�q˜!˜Q Ó	"€BÙ	�s˜C  cÓ	*€BÙ	�s˜A˜t TÓ	*€BÙ	�s˜C  CÓ	(€BÙ	�q˜!˜Q Ó	"€Bô ‘5˜˜R“= "Ô%ä‘5˜˜R“=¡-°°S¸!¸QÓ"?Ô@ä‘5˜˜R“= "Ô%á��R‹=Ð Ð Ð ä‘5˜˜R“=¡-°°1°a¸Ó";Õ<r*   c            	      óÔ  — t        j                  ddgddgg«      } t        | t        t	        | «      dt         j                  i«      «       t        t        | «      dt        i«      }|j                  «       D ]  \  }}t        | |«      |k(  rŒJ ‚ d}t        t        | |«      dt        i«      }|j                  «       D ])  \  }}t        t        t        | |«      |«      «      |k(  rŒ)J ‚ y )Nr†   r   r}   r	   z.1f)
r�   r	   rÀ  ÚevalÚreprÚstrÚdictÚitemsÚgetattrÚformat)rª   ÚasdictÚkr  Úfmts        r(   Útest_bbox_as_stringsrÚ  b  sÔ   € Ü×Ñ˜2˜q˜' C¨ :Ð.Ó/€AÜ�1”dœ4 ›7 V¬[×-=Ñ-=Ð$>Ó?Ô@Ü”#�a“&˜6¤4˜.Ó)€FØ—‘“ò "‰ˆˆ1Ü�q˜!‹} Ó!Ð!Ð!ð"à
€CÜ”&˜˜C“. 6¬4 .Ó1€FØ—‘“ò 5‰ˆˆ1Ü”Fœ7 1 a›=¨#Ó.Ó/°1Ó4Ð4Ð4ñ5r*   c                  ó`   — t        t        j                  d¬«      j                  «      dk(  sJ ‚y )Nr&  r'  a×  CompositeGenericTransform(
    CompositeGenericTransform(
        CompositeGenericTransform(
            TransformWrapper(
                BlendedAffine2D(
                    IdentityTransform(),
                    IdentityTransform())),
            CompositeAffine2D(
                Affine2D().scale(1.0),
                Affine2D().scale(1.0))),
        PolarTransform(
            PolarAxes(0.125,0.1;0.775x0.8),
            use_rmin=True,
            apply_theta_transforms=False)),
    CompositeGenericTransform(
        CompositeGenericTransform(
            PolarAffine(
                TransformWrapper(
                    BlendedAffine2D(
                        IdentityTransform(),
                        IdentityTransform())),
                LockableBbox(
                    Bbox(x0=0.0, y0=0.0, x1=6.283185307179586, y1=1.0),
                    [[-- --]
                     [-- --]])),
            BboxTransformFrom(
                _WedgeBbox(
                    (0.5, 0.5),
                    TransformedBbox(
                        Bbox(x0=0.0, y0=0.0, x1=6.283185307179586, y1=1.0),
                        CompositeAffine2D(
                            Affine2D().scale(1.0),
                            Affine2D().scale(1.0))),
                    LockableBbox(
                        Bbox(x0=0.0, y0=0.0, x1=6.283185307179586, y1=1.0),
                        [[-- --]
                         [-- --]])))),
        BboxTransformTo(
            TransformedBbox(
                Bbox(x0=0.125, y0=0.09999999999999998, x1=0.9, y1=0.9),
                BboxTransformTo(
                    TransformedBbox(
                        Bbox(x0=0.0, y0=0.0, x1=8.0, y1=6.0),
                        Affine2D().scale(80.0))))))))rÒ  rÜ   Úsubplotrà   rµ   r*   r(   Útest_str_transformrÝ  n  s/   € ô Œs�{‰{ gÔ.×8Ñ8Ó9ð ,>8ò ,8ð ,8ñ ,8r*   c                  óp   — t        j                  «       } | j                  d«      }|j                  dk(  sJ ‚y )N©r   r   )r   )r�   r   r…  r-  )r¢   rp  s     r(   Útest_transform_single_pointrà     s0   € Ü×ÑÓ€AØ	×Ñ˜6Ó"€AØ�7‰7�dŠ?Ð‰?r*   c                  óŠ   — t        j                  «       \  } }|j                  d«       |j                  j	                  d«       y )Nr  rß  )rÜ   ÚsubplotsÚ
set_yscalerà   rM   )r4  rä   s     r(   Útest_log_transformrä  ¦  s1   € ô �l‰l‹n�G€CˆØ‡M�M�%ÔØ‡L�L×Ñ˜6Õ"r*   c                  ó²   — t        j                  ddgddgg«      } t        j                  ddgdt        j                  gg«      }| j	                  |«      rJ ‚y )Nr   r   )r�   r	   r"   rƒ  Úoverlaps)r@   rª   s     r(   Útest_nan_overlaprç  ®  sS   € Ü×Ñ˜1˜a˜& 1 a &Ð)Ó*€AÜ×Ñ˜1˜a˜& 1¤b§f¡f +Ð.Ó/€AØ�z‰z˜!Œ}ÐÐˆ}r*   c                  óö  — t        j                  «       } t        j                  g d¢«      }t        j                  ddgddgddgg«      }| j	                  ||«      }t        ||«       t        j                  t        «      5  | j	                  ||dd…dd…f   «       d d d «       t        j                  t        «      5  | j	                  ||dd…d d …f   «       d d d «       y # 1 sw Y   ŒGxY w# 1 sw Y   y xY w)N)r€   ru   r7  r   r   r   )	r�   r   r"   r#   Útransform_anglesr   rž   rŸ   r    )r¢   Úanglesr9  Ú
new_angless       r(   Útest_transform_anglesrì  ´  så   € Ü×ÑÓ€AÜ�X‰X’lÓ#€FÜ�X‰X˜˜1�v  1˜v¨¨1 vÐ.Ó/€Fð ×#Ñ# F¨FÓ3€JÜ˜f jÔ1ô 
�‰”zÓ	"ñ 5Ø	×Ñ˜6 6¨!¨A¨#¨q°¨s¨(Ñ#3Ô4÷5ô 
�‰”zÓ	"ñ 3Ø	×Ñ˜6 6¨!¨A¨#ªq¨&¡>Ô2÷3ð 3÷	5ð 5ú÷3ð 3ús   ÂC#Â>C/Ã#C,Ã/C8c                  óÌ   — t        j                  ddg«      } dt         j                  fddg}|D ]3  }t        j                  t        j                  |Ž «      }t        || «       Œ5 y )Ngü©ñÒMbP¿gü©ñÒMbP?r   r6   )r   güó     )r"   r#   rƒ  r�   Únonsingularr   )Úzero_expansionÚcasesrÈ   Úouts       r(   Útest_nonsingularrò  Æ  sZ   € ä—X‘X˜v u˜oÓ.€NØ”—‘ˆ[˜& -Ð0€EØò 0ˆÜ�h‰h”{×.Ñ.°Ð5Ó6ˆÜ˜3 Õ/ñ0r*   c                  ó  — g d¢} t        | d¬«      }t        j                  «       }t        j                  ||«      }t	        |j                  «       j                  | «       dt        j                  d«      z  }|j                  t        j                  dz  «       t	        |j                  «       j                  d||fdd|z  f| |fgd	¬
«       dgdz  |_        t	        |j                  «       j                  d||fdd|z  f| |fgd	¬
«       y )N)r6   ©r   r   rß  ©r   r   T)Úclosedr   r   r   r6   r   çVçž¯Ò<©Úatol)r   r�   r   ÚTransformedPathr   Úget_fully_transformed_pathÚverticesr"   ÚsqrtrJ   rK   r9  )r9  rÏ   r:   Ú
trans_pathr|  s        r(   Útest_transformed_pathrÿ  Ï  sö   € Ú-€FÜ�˜tÔ$€Dä× Ñ Ó"€EÜ×,Ñ,¨T°5Ó9€JÜ�J×9Ñ9Ó;×DÑDÀfÔMð 
ŒR�W‰W�Q‹Z‰€BØ	‡L�L”—‘˜‘ÔÜ�J×9Ñ9Ó;×DÑDØ˜b "˜X¨¨1¨r©6 {°b°S¸"°IÐ>Øõ ð
 �(˜Q‘,€D„KÜ�J×9Ñ9Ó;×DÑDØ˜b "˜X¨¨1¨r©6 {°b°S¸"°IÐ>Øö r*   c                  ó˜  — t        j                  «       } t        j                  dddd| ¬«      }t        j                  |«      }|j                  «       j                  }| j                  d«       t        |j                  «       j                  |dz  «       |j                  d«       t        |j                  «       j                  |«       y )Nr6   r   ru   é‡   rÚ   r   r†   )
r�   r   r²  ÚWedgeÚTransformedPatchPathrû  rü  r   r   Ú
set_radius)r:   r¶  Útpatchr9  s       r(   Útest_transformed_patch_pathr  å  s�   € Ü× Ñ Ó"€EÜ�N‰N˜6 1 b¨#¸Ô?€Eä×-Ñ-¨eÓ4€FØ×.Ñ.Ó0×9Ñ9€Fð 
‡K�K�„NÜ�F×5Ñ5Ó7×@Ñ@À&È1Á*ÔMð 
×Ñ�SÔÜ�F×5Ñ5Ó7×@Ñ@À&ÕIr*   Úlocked_element©Úx0Úy0Úx1Úy1c                 óV  — g d¢}|j                  | «       t        j                  j                  «       }t        j                  |fi | di¤Ž}t        || «      dk(  sJ ‚t        |d| z   «      dk(  sJ ‚|D ]  }t        ||«      t        ||«      k(  rŒJ ‚ |j                  |j                  «       dz   «       t        || «      dk(  sJ ‚t        |d| z   «      dk(  sJ ‚|D ]  }t        ||«      t        ||«      k(  rŒJ ‚ t        |d| z   d «       t        |d| z   «      �J ‚t        j                  |j                  «       |j                  «       k(  «      sJ ‚t        |d| z   d«       t        || «      dk(  sJ ‚t        |d| z   «      dk(  sJ ‚|D ]  }t        ||«      t        ||«      k(  rŒJ ‚ y )Nr  r   Úlocked_rÃ   r   )Úremover�   r	   ÚunitÚLockableBboxrÕ  Ú
set_pointsr  Úsetattrr"   r¨   )r  Úother_elementsÚorigÚlockedÚelems        r(   Útest_lockable_bboxr  ö  sÒ  € â-€NØ×Ñ˜.Ô)ä×Ñ× Ñ Ó"€DÜ×%Ñ% dÑB¨~¸qÐ.AÑB€Fô �6˜>Ó*¨aÒ/Ð/Ð/Ü�6˜9 ~Ñ5Ó6¸!Ò;Ð;Ð;Øò <ˆÜ�v˜tÓ$¬°°dÓ(;Ó;Ð;Ð;ð<ð 	‡O�O�D—O‘OÓ%¨Ñ*Ô+Ü�6˜>Ó*¨aÒ/Ð/Ð/Ü�6˜9 ~Ñ5Ó6¸!Ò;Ð;Ð;Øò <ˆÜ�v˜tÓ$¬°°dÓ(;Ó;Ð;Ð;ð<ô ˆF�I Ñ.°Ô5Ü�6˜9 ~Ñ5Ó6Ð>Ð>Ð>Ü�6‰6�$—/‘/Ó# v×'8Ñ'8Ó':Ñ:Ô;Ð;Ð;ô ˆF�I Ñ.°Ô2Ü�6˜>Ó*¨aÒ/Ð/Ð/Ü�6˜9 ~Ñ5Ó6¸!Ò;Ð;Ð;Øò <ˆÜ�v˜tÓ$¬°°dÓ(;Ó;Ð;Ð;ñ<r*   c                  óú   — t        j                  t        j                  «       «      } t        j                  t
        d¬«      5  | j                  t        j                  d«      «       d d d «       y # 1 sw Y   y xY w)Nz`The input and output dims of the new child \(1, 1\) do not match those of current child \(2, 2\)©ÚmatchrÃ   )	r�   ÚTransformWrapperr   rž   rŸ   r    Úsetr   rH  )r¢   s    r(   Útest_transformwrapperr    s\   € Ü×$Ñ$¤[×%9Ñ%9Ó%;Ó<€AÜ	�‰”zð<ô
>ñ &ð 	
�‰Œe× Ñ  Ó$Ô%÷&÷ &ñ &ús   Á%A1Á1A:Úpng)Ú
extensionsc           	      ó$  — t         j                  j                  d«       t         j                  j                  d¬«      }t        j                  ddd«      }t        | |gddg«      D ]§  \  }}|j                  «       }|j                  ||d¬«       |j                  |t        j                  |d	z   d	z  «      t        j                  d	t         j                  z  «      z  «       |j                  j                  «        |j                  d
«       Œ© y )Nr,   rÃ   )Úsizer›  r   TF)r  Údensityr   Úlinear)r"   r-   r.   Únormalr  rK  râ  ÚhistrÞ   Úexprý  rK   r1  rá   rã  )Úfig_testÚfig_refÚsamplesr  r4  Ú	log_staterä   s          r(   Útest_scale_swappingr,     sÌ   € ä‡I�I‡N�N�8ÔÜ�i‰i×Ñ BÐÓ'€GÜ
�‰�B˜˜2Ó€Aä˜x¨Ð1°D¸%°=ÓAò  ‰ˆˆYØ�\‰\‹^ˆØ
�‰�˜Y°ˆÔ5Ø
�‰�”2—6‘6˜A˜q™D˜' A™+Ó&¬¯©°´R·U±U±Ó);Ñ;Ô<Ø�
‰
�‰ÔØ
�‰�hÕñ r*   c                  ó   — t        j                  t        d¬«      5  t        j                  d d¬«       d d d «       t        j                  t        d¬«      5  t        j                  d d¬«       d d d «       y # 1 sw Y   ŒExY w# 1 sw Y   y xY w)NzZ'fontsize' is not a valid value for units; supported values are 'dots', 'points', 'inches'r  Úfontsize)Úunitsz3For units of inches or points a fig kwarg is neededÚinches)rž   rŸ   r    r�   Úoffset_copyrµ   r*   r(   Útest_offset_copy_errorsr2  .  s|   € Ü	�‰”zðPô
Qñ 8ô 	×Ñ ¨JÕ7÷8ô
 
�‰”zØRô
Tñ 6ä×Ñ ¨HÕ5÷6ð 6÷8ð 8ú÷
6ð 6ús   œA8ÁBÁ8BÂBc                  óÊ  — t        t        j                  «       t        «       j	                  d«      «      } | j                  dd«      sJ ‚| j                  dd«      sJ ‚| j                  dd«      rJ ‚t        t        j                  «       t        «       j                  dd«      «      } | j                  dd	«      sJ ‚| j                  dd	«      rJ ‚| j                  d
d
«      rJ ‚y )Né   r‘  r†   gš™™™™™Ù¿g333333ë?r“  g      Ð?rh   rg   r  )r
   r	   r  r   rL   Úcontainsrw   Úfully_contains)Úbbs    r(   Útest_transformedbbox_containsr8  9  sÁ   € Ü	œŸ™›¤h£j×&;Ñ&;¸BÓ&?Ó	@€BØ�;‰;�r˜2ÔÐÐØ�;‰;�s˜CÔ Ð Ð Ø�{‰{˜2˜rÔ"Ð"Ð"Ü	œŸ™›¤h£j×&:Ñ&:¸3ÀÓ&CÓ	D€BØ�;‰;�t˜SÔ!Ð!Ð!Ø× Ñ   sÔ+Ð+Ð+Ø× Ñ   RÔ(Ð(Ð(Ð(r*   c                  ó$  — t        j                  dd«      sJ ‚t        j                  dd«      sJ ‚t        j                  dd«      sJ ‚t        j                  dd«      rJ ‚t        j                  dd«      rJ ‚t        j                  dd«      sJ ‚y ©Nrõ  r†   r   r   rD   r   rô  )r�   Úinterval_containsrµ   r*   r(   Útest_interval_containsr<  D  s†   € Ü×(Ñ(¨°Ô5Ð5Ð5Ü×(Ñ(¨°Ô3Ð3Ð3Ü×(Ñ(¨°Ô3Ð3Ð3Ü×,Ñ,¨V°RÔ8Ð8Ð8Ü×,Ñ,¨V°QÔ7Ð7Ð7Ü×(Ñ(¨°Ô5Ð5Ñ5r*   c                  ó$  — t        j                  dd«      sJ ‚t        j                  dd«      rJ ‚t        j                  dd«      rJ ‚t        j                  dd«      rJ ‚t        j                  dd«      rJ ‚t        j                  dd«      sJ ‚y r:  )r�   Úinterval_contains_openrµ   r*   r(   Útest_interval_contains_openr?  M  s†   € Ü×-Ñ-¨f°cÔ:Ð:Ð:Ü×1Ñ1°&¸!Ô<Ð<Ð<Ü×1Ñ1°&¸!Ô<Ð<Ð<Ü×1Ñ1°&¸"Ô=Ð=Ð=Ü×1Ñ1°&¸!Ô<Ð<Ð<Ü×-Ñ-¨f°cÔ:Ð:Ñ:r*   c                  ó”   — d} t        «       }t        | |«      }|j                  | k(  sJ ‚|j                  |k(  sJ ‚|j                  �J ‚y)z=Test that the ScaledRotation object is initialized correctly.r   N)r   r   Ú_thetaÚ_trans_shiftÚ_mtx)ÚthetaÚtrans_shiftÚ
scaled_rots      r(   Ú"test_scaledrotation_initializationrG  V  sR   € à€EÜ“+€KÜ  ¨Ó4€JØ×Ñ Ò%Ð%Ð%Ø×"Ñ" kÒ1Ð1Ð1Ø�?‰?Ð"Ð"Ñ"r*   c                  óJ  — t         j                  dz  } t        t        | dgg¬«      ¬«      }t        | |«      }d|_        |j                  «       }|j                  j                  | dgg«       t        j                  ddgddgg«      }|€J ‚t        |dd…dd…f   |d	¬
«       y)zCTest get_matrix when the matrix is invalid and needs recalculation.r   r   )Úreturn_valuerÚ   TrD   r   Nr÷  rø  )
r"   rK   r   r   r§   r9   rM   Úassert_called_once_withr#   r   )rD  rE  rF  ÚmatrixÚexpected_rotations        r(   Ú&test_scaledrotation_get_matrix_invalidrM  `  sª   € ä�E‰E�A‰I€EÜ¤i¸uÀa¸j¸\Ô&JÔK€KÜ  ¨Ó4€JØ€JÔØ×"Ñ"Ó$€FØ×Ñ×1Ñ1°E¸1°:°,Ô?ÜŸ™ 1 b 'Ø#$ q 'ð"+ó ,ÐàÐÐÐÜ�F˜2˜A˜2˜r ˜r˜6‘NÐ$5¸EÖBr*   )Fr¦   Únumpyr"   Únumpy.testingr   r   r   r   rž   Ú
matplotlibr   Úmatplotlib.pyplotÚpyplotrÜ   Úmatplotlib.patchesÚpatchesr²  Úmatplotlib.transformsÚ
transformsr�   r   r	   r
   r   Úmatplotlib.pathr   Úmatplotlib.testing.decoratorsr   r   Úunittest.mockr   r   r·   rå   rö   r  r  r!  r#  r5  r;  r?  rQ  rÛ   rS  rY  r�  rÀ  rÆ  rÎ  rÚ  rÝ  rà  rä  rç  rì  rò  rÿ  r  ÚmarkÚparametrizer  r  r,  r2  r8  r<  r?  rG  rM  rµ   r*   r(   ú<module>r\     sz  ðÛ ã ÷Jó Jã å Ý Ý %Ý +ß RÓ RÝ  ß OÝ #÷D;ñ D;÷N
2ñ 2ò2#òLCñ$ Ð'Ð(°dÀ'Øôñ Ióð IòF;ò	;ò	;òò&"*òJKò-ô4�{×,Ñ,ô 4÷,I4ñ I4÷XZNñ ZNòz3ò3ò=ò,	5ò/8òdò#òò3ò$0ò ò,Jð" ‡�×ÑÐ)Ò+CÓDñ<ó Eð<òB&ñ   Ô(ñ
 ó )ð
 ò6ò)ò6ò;ò#óCr*   