ó
    [h¾  ã                   óH  • S SK r S SKrS SKJrJrJrJr  S SKrS SK	J
r
  S SKJr  S SKJr  S SKJr  S SKJrJrJrJr  S SKJr  S SKJrJr  S SKJr   " S S	5      r " S
 S5      r S r!S r"\" S/SSSS9S 5       r#S r$S r%S r&S r'S r(S r)S r* " S S\RV                  5      r, " S S5      r- " S S 5      r.S! r/S" r0S# r1S$ r2S% r3S& r4S' r5S( r6S) r7S* r8S+ r9S, r:\Rv                  Ry                  S-/ S.Q5      S/ 5       r=S0 r>\" S1/S29S3 5       r?S4 r@S5 rAS6 rBS7 rCS8 rDS9 rEg):é    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                   óœ   • \ rS rSrSS/rSS/SS/SS//r\rS rS rS	 r	S
 r
S rS rS rS rS rS rS rS rS rS rS rS rS rSrg)ÚTestAffine2Dé   ç      ð?ç        ç       @ç      @ç      @c                 óà   • [        / SQ/ SQ/ SQ/5        [        [        R                  " / SQ/ SQ/ SQ/[        5      5        [        [        R                  " / SQ/ SQ/ SQ/[        5      5        g )N©é   é   é   )é   é   é   )é   é   é	   )r   ÚnpÚarrayÚintÚfloat©Úselfs    Úo/home/gothic/public_html/Fooocus/fooocus_env/lib64/python3.13/site-packages/matplotlib/tests/test_transforms.pyÚ	test_initÚTestAffine2D.test_init   sE   € Ü’)šYª	Ð2Ô3Ü”—’š9¢i²Ð;¼SÓAÔBÜ”—’š9¢i²Ð;¼UÓCÕDó    c                 óÖ   • [         R                  R                  S5        [         R                  R                  S5      n[        [        R
                  " U6 R                  5       U5        g )Né!N,r   )r#   ÚrandomÚseedr   r   Úfrom_valuesÚ	to_values©r(   Úvaluess     r)   Útest_valuesÚTestAffine2D.test_values   sD   € Ü
�	‰	�‰�xÔ Ü—‘×!Ñ! !Ó$ˆÜœ8×/Ò/°Ð8×BÑBÓDÀfÕMr,   c                 óˆ   • [        5       nUR                  5       nSUS'   [        UR                  5       / SQ/ SQ/ SQ/5        g )Né*   ©r   r   )r8   r   r   ©r   r   r   ©r   r   r   )r   Ú
get_matrixr   )r(   ÚtransÚmtxs      r)   Útest_modify_inplaceÚ TestAffine2D.test_modify_inplace!   s:   € ä“
ˆØ×ÑÓ ˆØˆˆD‰	Ü˜5×+Ñ+Ó-²
ºIÂyÐ/QÕRr,   c                 óÂ   • [        [        R                  R                  SS5      S-   5      nUR	                  5         [        UR                  5       / SQ/ SQ/ SQ/5        g )Nr   r   )r   r   r   r:   r;   )r   r#   r/   ÚrandÚclearr   r<   )r(   Úas     r)   Ú
test_clearÚTestAffine2D.test_clear(   s@   € Ü”R—Y‘Y—^‘^ A qÓ)¨AÑ-Ó.ˆØ	�‰Œ	Ü˜1Ÿ<™<›>ªI²yÂ)Ð+LÕMr,   c                 ó,  • [        5       R                  [        R                  S-  5      n[        5       R	                  S5      n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS	//5        [        5       R                  [        R                  5      n[        5       R	                  S
5      n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  S[        R                  -  S-  5      n[        5       R	                  S5      n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        X"-   R                  5       UR                  5       5        [        X$-   R                  5       UR                  5       5        g )Nr   éZ   éÿÿÿÿr   éþÿÿÿr   éýÿÿÿr   r   é´   éüÿÿÿé  )r   Úrotater#   ÚpiÚ
rotate_degr   r<   r   Ú	transformÚsingle_pointÚmultiple_points©r(   Úr_pi_2Úr90Úr_piÚr180Úr_pi_3_2Úr270s          r)   Útest_rotateÚ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                 óÈ  • [        5       R                  " / U R                  Q[        R                  S-  P76 n[        5       R
                  " / U R                  QSP76 n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  " / U R                  Q[        R                  P76 n[        5       R
                  " / U R                  QSP76 n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/S	S//5        [        5       R                  " / U R                  QS[        R                  -  S-  P76 n[        5       R
                  " / U R                  QS
P76 n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS	//5        [        X"-   R                  5       UR                  5       5        [        X$-   R                  5       UR                  5       5        g )Nr   rH   r   r   rI   r   r   rL   rJ   rN   )r   Úrotate_aroundÚpivotr#   rP   Úrotate_deg_aroundr   r<   r   rR   rS   rT   rU   s          r)   Útest_rotate_aroundÚTestAffine2D.test_rotate_aroundF   s<  € Ü“×)Ò)ÐA¨4¯:©:ÐA´r·u±u¸q±yÒAˆÜ‹j×*Ò*Ð;¨D¯J©JÐ;¸Ò;ˆÜ˜6×,Ñ,Ó.°·±Ó0@ÔAÜ! #§-¡-°×0AÑ0AÓ"BÀQÈÀFÔKÜ! #§-¡-°×0DÑ0DÓ"EØ$% q 6¨B°¨7°Q¸°FÐ";ô	=ô ‹z×'Ò'Ð;¨¯©Ð;´R·U±UÒ;ˆÜ‹z×+Ò+Ð=¨T¯Z©ZÐ=¸Ò=ˆÜ˜4Ÿ?™?Ó,¨d¯o©oÓ.?Ô@Ü! $§.¡.°×1BÑ1BÓ"CÀaÈÀVÔLÜ! $§.¡.°×1EÑ1EÓ"FØ$% q 6¨B°¨8°b¸!°WÐ"=ô	?ô “:×+Ò+ÐG¨T¯Z©ZÐG¸¼R¿U¹U¹ÀQ¹ÒGˆÜ‹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                 óž  • [        5       R                  SS5      n[        5       R                  SS5      n[        5       R                  SS5      n[        X-   R                  5       UR                  5       5        [        UR	                  U R
                  5      SS/5        [        UR	                  U R                  5      SS/SS/SS//5        g )	Nr   r   rJ   r   rM   r"   éúÿÿÿé   )r   r   r   r<   rR   rS   rT   )r(   ÚsxÚsyr=   s       r)   Ú
test_scaleÚ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                 óÞ  • [        5       R                  [        R                  S-  [        R                  S-  5      n[        5       R	                  SS5      n[        UR                  5       UR                  5       5        [        5       R	                  SS5      n[        UR                  U R                  5      SS/5        [        UR                  U R                  5      S	S
/SS/SS	//5        g )Nr!   rf   g     €6@é   çÈ�2§�:@ç™b‚Ž,@ç      ø?ç      ô?r   r   ç      @g      @r   )r   Úskewr#   rP   Úskew_degr   r<   r   rR   rS   rT   )r(   Ú	trans_radÚ	trans_degr=   s       r)   Ú	test_skewÚ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                 óž  • [        5       R                  SS5      n[        5       R                  SS5      n[        5       R                  SS5      n[        X-   R                  5       UR                  5       5        [        UR	                  U R
                  5      SS/5        [        UR	                  U R                  5      SS/SS/S	S//5        g )
Né   r   r8   é   é+   é,   é   é-   é   )r   Ú	translater   r<   rR   rS   rT   )r(   ÚtxÚtyr=   s       r)   Útest_translateÚ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                 ó  • [        5       R                  S5      R                  " / U R                  QSP76 n[        5       R                  S5      [        5       R                  " / U R                  QSP76 -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS	//5        [        5       R                  S5      R                  SS	5      n[        5       R                  S5      [        5       R                  SS	5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      S
S	/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  S5      R                  SS5      n[        5       R                  S5      [        5       R                  SS5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      S	S/SS/SS//5        [        5       R                  S5      R                  SS5      n[        5       R                  S5      [        5       R                  SS5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        g )NrH   rL   r   r   r   r   r   rI   rJ   rK   re   r   i÷ÿÿÿéøÿÿÿrm   rn   g      à¿ç      è?g      ø¿g      @ry   r8   é   r{   é   é   r~   é.   )r   rQ   ra   r`   r   r<   r   rR   rS   rT   r   rs   r€   ©r(   r=   Útrans_addeds      r)   Útest_rotate_plus_otherÚ#TestAffine2D.test_rotate_plus_other{   sÝ  € Ü“
×%Ñ% bÓ)×;Ò;ÐM¸T¿Z¹ZÐMÈÒMˆÜ“z×,Ñ,¨RÓ0Ü“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                 ó   • [        5       R                  " / U R                  QSP76 R                  S5      n[        5       R                  " / U R                  QSP76 [        5       R                  S5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  " / U R                  QSP76 R                  S	S5      n[        5       R                  " / U R                  QSP76 [        5       R                  S	S5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      S	S/5        [        UR                  U R                  5      SS/SS
/SS//5        [        5       R                  " / U R                  QSP76 R                  SS5      n[        5       R                  " / U R                  QSP76 [        5       R                  SS5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  " / U R                  QSP76 R                  SS5      n[        5       R                  " / U R                  QSP76 [        5       R                  SS5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        g )NrH   rL   rI   r   r   rK   rJ   rM   r   re   r   r†   rm   rn   ro   rp   ç      à?g      @r   rq   ry   r8   rz   r{   rˆ   r~   é   r‹   )r   ra   r`   rQ   r   r<   r   rR   rS   rT   r   rs   r€   rŒ   s      r)   Útest_rotate_around_plus_otherÚ*TestAffine2D.test_rotate_around_plus_other›   s)  € Ü“
×,Ò,Ð=¨d¯j©jÐ=¸"Ò=×HÑHÈÓMˆÜ“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ˆÜ“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ð 	ä“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ˆÜ“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                 ó  • [        5       R                  SS5      R                  S5      n[        5       R                  SS5      [        5       R                  S5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS	//5        [        5       R                  SS5      R                  " / U R                  QSP76 n[        5       R                  SS5      [        5       R                  " / U R                  QSP76 -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/S
S/SS	//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/S	S//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        g )Nr   rJ   rH   r   r   r   r   r"   rf   r!   rm   rn   ç      ô¿rM   ç      Àry   r8   r}   é(   é&   é    é$   é#   )r   r   rQ   r   r<   rR   rS   r   rT   ra   r`   rs   r€   rŒ   s      r)   Útest_scale_plus_otherÚ"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Ó.Ü“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                 ó  • [        5       R                  SS5      R                  S5      n[        5       R                  SS5      [        5       R                  S5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS	/S
S//5        [        5       R                  SS5      R                  " / U R                  QSP76 n[        5       R                  SS5      [        5       R                  " / U R                  QSP76 -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS	/SS//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      S	S/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        g )Nrm   rn   rH   r–   ro   rJ   r   r—   rq   rI   r   r‡   r   g      ü¿r   g      ÀrM   g      +@g      Àrf   ry   r8   g     €8@g      E@rz   r|   g     €;@g     àF@r   r{   )r   rs   rQ   r   r<   r   rR   rS   rT   ra   r`   r   r€   rŒ   s      r)   Útest_skew_plus_otherÚ!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Ü“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                 ó  • [        5       R                  SS5      R                  S5      n[        5       R                  SS5      [        5       R                  S5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/S	S
//5        [        5       R                  SS5      R                  " / U R                  QSP76 n[        5       R                  SS5      [        5       R                  " / U R                  QSP76 -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      S	S/SS/SS
//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS //5        g )!Nry   r8   rH   iÕÿÿÿrz   iÔÿÿÿiÓÿÿÿr}   iÖÿÿÿr   i×ÿÿÿiØÿÿÿr   rJ   éH   iªÿÿÿéE   i¨ÿÿÿéN   i¦ÿÿÿéQ   i¬ÿÿÿrm   rn   g     ÀF@é1   r~   g     àH@g     @H@g     ÀI@é0   g     `H@)r   r€   rQ   r   r<   r   rR   rS   rT   ra   r`   r   rs   rŒ   s      r)   Útest_translate_plus_otherÚ&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Ü“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                 ó~  • [         R                  " 5       n[        R                  " [        5         UR                  S5        S S S 5        [        R                  " [        5         UR                  S///5        S S S 5        [        R                  " [        5         UR                  / 5        S S S 5        [        R                  " [        5         UR                  S/5        S S S 5        [        R                  " [        5         UR                  S//5        S S S 5        [        R                  " [        5         UR                  / SQ/5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N÷= f! , (       d  f       NÔ= f! , (       d  f       N°= f! , (       d  f       N‹= f! , (       d  f       g = f)Nr   r   )Úmtransformsr   ÚpytestÚraisesÚ
ValueErrorrR   ÚRuntimeError)r(   Úts     r)   Útest_invalid_transformÚ#TestAffine2D.test_invalid_transform   sû   € Ü× Ò Ó"ˆô �]Š]œ:Õ&Ø�K‰K˜ŒN÷ 'ä�]Š]œ:Õ&Ø�K‰K˜1˜#˜˜Ô ÷ 'ä�]Š]œ<Õ(Ø�K‰K˜ŒO÷ )ä�]Š]œ<Õ(Ø�K‰K˜˜Ô÷ )ä�]Š]œ:Õ&Ø�K‰K˜!˜˜Ô÷ 'ä�]Š]œ:Õ&Ø�K‰Kš˜Ô$÷ 'Ð&÷ 'Ö&úç&Õ&úç(Õ(úç(Õ(úç&Õ&úç&Õ&úsG   °EÁ$E*ÂE;ÃFÄFÄ:F.Å
E'Å*
E8Å;
F	Æ
FÆ
F+Æ.
F<c                 ó²  • [         R                  " 5       n[         R                  " 5       nX-   nUR                  5         [        R                  " U5      nUR                  (       d  UR                  (       a   eUR                  SS5        UR                  (       a  UR                  (       d   eUR                  5       UR                  5       :H  R                  5       (       d   eUR                  5         [        R                  " U5      nUR                  SS5        UR                  (       a   e[        UR                  5       UR                  5       5        g ©Nr   r   r   r   )r¬   r   r<   ÚcopyÚ_invalidr€   Úallr   ©r(   rD   ÚbÚsÚs1Úb1s         r)   Ú	test_copyÚ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Ð8à	�‰ŒÜ�YŠY�q‹\ˆØ
�‰�Q˜ÔØ—:—:Ðˆ~Ü˜1Ÿ<™<›>¨1¯<©<«>Õ:r,   c                 ó¼  • [         R                  " 5       n[         R                  " 5       nX-   nUR                  5         [        R                  " U5      nUR
                  (       d  UR
                  (       a   eUR                  SS5        UR
                  (       a  UR
                  (       a   e[        UR                  5       [         R                  " 5       R                  5       5        UR                  5         [        R                  " U5      nUR                  SS5        UR
                  (       a   e[        UR                  5       UR                  5       5        g rµ   )r¬   r   r<   r¶   Údeepcopyr·   r€   r   r¹   s         r)   Útest_deepcopyÚ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__Ú__firstlineno__rS   rT   r`   r*   r5   r?   rE   r\   rb   ri   rv   rƒ   rŽ   r“   r�   r    r©   r²   r¾   rÂ   Ú__static_attributes__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                   ó   • \ rS rSrS rSrg)ÚTestAffineDeltaTransformiY  c                 óÞ  • [         R                  " / SQ/ SQ/ SQ/5      n[         R                  " / SQ/ SQ/ SQ/5      n[        R                  R	                  SSSSSS	5      n[        R
                  " U5      n[        UR                  5       U5        S	UR                  5       S
SS 24'   [        UR                  5       U5        UR                  5         [        UR                  5       U5        g )N)r   r   r   )g      @r   r   )r   r   r   )r   r   r   r   r   r   r   r   r   )	r#   r$   r¬   r   r1   ÚAffineDeltaTransformr   r<   Ú
invalidate)r(   ÚbeforeÚafterÚbaser±   s        r)   Útest_invalidateÚ(TestAffineDeltaTransform.test_invalidateZ  sÁ   € Ü—’š?Ú*Ú*ð,ó -ˆô —’š/Ú)Ú)ð+ó ,ˆô
 ×#Ñ#×/Ñ/°°1°a¸¸A¸qÓAˆÜ×,Ò,¨TÓ2ˆÜ˜1Ÿ<™<›>¨6Ô2ð
 $%ˆ�‰Ó˜!˜Q™R˜%Ñ Ü˜1Ÿ<™<›>¨5Ô1ð 	�‰ÔÜ˜1Ÿ<™<›>¨5Õ1r,   rÄ   N)rÅ   rÆ   rÇ   rÈ   rÒ   rÉ   rÄ   r,   r)   rË   rË   Y  s   † õ2r,   rË   c                  ón  •  " S S[         R                  5      n U " 5       n[        R                  " 5       n[        R                  " [
        R                  " S5      XR                  -   S9  [        R                  " 5         SUl	        UR                  R                  5         [        R                  " 5         g )Nc                   óL   ^ • \ rS rSrSrS=rrSrU 4S jrS r	\	r
S r\rSrU =r$ )	Ú<test_non_affine_caching.<locals>.AssertingNonAffineTransformis  zu
This transform raises an assertion error when called when it
shouldn't be and ``self.raise_on_transform`` is True.

r   Fc                 óˆ   >• [         TU ]  " U0 UD6  SU l        [        R                  " 5       R                  SS5      U l        g )NFé
   )ÚsuperÚ__init__Úraise_on_transformr¬   r   r   Úunderlying_transform)r(   ÚargsÚkwargsÚ	__class__s      €r)   rÚ   ÚEtest_non_affine_caching.<locals>.AssertingNonAffineTransform.__init__|  s;   ø€ Ü‰GÒ˜dÐ- fÒ-Ø&+ˆDÔ#Ü(3×(<Ò(<Ó(>×(DÑ(DÀRÈÓ(LˆDÕ%r,   c                 óh   • U R                   (       a   S5       eU R                  R                  U5      $ ©Nz3Invalidated affine part of transform unnecessarily.)rÛ   rÜ   Útransform_path©r(   Úpaths     r)   Útransform_path_non_affineÚVtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_path_non_affine�  s4   € Ø×.×.ð FØEóFÐ.à×,Ñ,×;Ñ;¸DÓAÐAr,   c                 óh   • U R                   (       a   S5       eU R                  R                  U5      $ râ   )rÛ   rÜ   rR   rä   s     r)   Útransform_non_affineÚQtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_non_affine‡  s4   € Ø×.×.ð FØEóFÐ.à×,Ñ,×6Ñ6°tÓ<Ð<r,   )rÛ   rÜ   )rÅ   rÆ   rÇ   rÈ   Ú__doc__Ú
input_dimsÚoutput_dimsÚ	is_affinerÚ   ræ   rã   ré   rR   rÉ   Ú__classcell__©rß   s   @r)   ÚAssertingNonAffineTransformrÖ   s  s8   ø† ñ	ð
 $%Ð$ˆ
�[Øˆ	õ	Mò
	Bð 3ˆò	=ð )Ž	r,   rñ   rØ   ©rR   T)r¬   Ú	TransformÚpltÚaxesÚplotr#   ÚarangeÚ	transDataÚdrawrÛ   Ú	transAxesrÎ   )rñ   Úmy_transÚaxs      r)   Útest_non_affine_cachingrý   r  sr   € ô)¤k×&;Ñ&;ô )ñ4 +Ó,€HÜ	�Š‹€BÜ‡H‚HŒR�YŠY�r‹] h·±Ñ&=Ò>Ü‡H‚H„Jð #'€HÔØ‡L�L×ÑÔÜ‡H‚H…Jr,   c                  ó°  •  " S S5      n [         R                  " 5       n[         R                  " [        R                  " S5      U " S5      S9u  nUR                  SS5        UR                  SS5        [        UR                  5       R                  R                  5       [        R                  " 5       R                  S5      R                  5       5        g )Nc                   ó    • \ rS rSrS rS rSrg)Ú-test_external_transform_api.<locals>.ScaledByi™  c                 ó   • Xl         g ©N©Ú_scale_factor)r(   Úscale_factors     r)   rÚ   Ú6test_external_transform_api.<locals>.ScaledBy.__init__š  s   € Ø!-Õr,   c                 óx   • [         R                  " 5       R                  U R                  5      UR                  -   $ r  )r¬   r   r   r  rø   )r(   rõ   s     r)   Ú_as_mpl_transformÚ?test_external_transform_api.<locals>.ScaledBy._as_mpl_transform�  s0   € Ü×(Ò(Ó*×0Ñ0°×1CÑ1CÓDØ—n‘nñ%ð &r,   r  N)rÅ   rÆ   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Ú_ar<   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                  ó  • [         R                  " 5       n [        R                  " 5       R	                  S5      nU R                  [        R                  " S5      R                  SS5      XR                  -   S9  U R                  [        R                  " SSS5      [        R                  " S	SS
5      [        R                  " S5      R                  SS5      XR                  -   S9  U R                  [        R                  " SS5      [        R                  " SS5      XR                  -   S9  [        R                  " SSS5      n[        R                  " SSS5      nS[        R                  " U5      -  [        R                  " US S 2[        R                  4   5      -   n[        R                  " U5      [        R                  " US S 2[        R                  4   5      -
  nU R!                  X#XEXR                  -   [        R"                  " XE5      S9  US S S2   US S S2   p2US S S2S S S24   US S S2S S S24   pTU R%                  X#S-   XEXR                  -   S9  U R'                  US-
  US-   US-  US-  XR                  -   S9  g )NrØ   r¨   r   r!   rò   r   r   r    g      @r"   rŠ   r   r   r   )rR   Ú	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Ó-Ø#§l¡lÑ2ð ñ 4ð
 ‡J�JŒr�{Š{˜1˜bÓ!¤2§;¢;¨r°1Ó#5Ø §<¡<Ñ/ð ñ 1ô 	�Š�A�r˜2Ó€AÜ
�Š�A�q˜"Ó€AØ	Œ"�&Š&�‹)‰”b—f’f˜Qšq¤"§*¡*˜}Ñ-Ó.Ñ.€AÜ
�Šˆq‹	”B—F’F˜1šQ¤§
¡
˜]Ñ+Ó,Ñ,€Aà‡M�M�!˜¨·,±,Ñ(>ÜŸHšH Q›Nð ñ ,ð ‰SˆqˆS‰6�1‘S�q�S‘6€qØ‰SˆqˆS‘#�A�#ˆX‰;˜™#˜A˜#™s ˜s˜(™€qà‡I�Iˆa�Q‘˜¨·,±,Ñ(>€IÑ?à‡H�HˆQ�‰U�A˜‘E˜1˜a™4  A¡°¿<¹<Ñ1G€HÒHr,   c                  óâ  • [         R                  " 5       n [        R                  " [        R                  " SSS5      [        R                  " SSS5      5      u  pU R                  X[        R                  " X-  5      [        R                  " 5       R                  S5      U R                  -   S9  [        R                  " SS/S	S
//5      n[        X0R                  R                  5       5        g )Nrl   rŠ   çÍÌÌÌÌÌ(@ç      )@çš™™™™™¹?rò   ro   ç×£p=
×ó?r   rp   )rô   rõ   r#   Úmeshgridr  r  Úlogr¬   r   r   rø   r$   r   ÚdataLimÚ
get_points©rü   ÚxsÚysÚexpecteds       r)   Ú!test_contour_pre_transform_limitsr8  Ï  s°   € Ü	�Š‹€BÜ�[Š[œŸš R¨¨RÓ0´"·+²+¸dÀDÈ"Ó2MÓN�F€BØ‡K�K�œŸš˜r™w›Ü%×.Ò.Ó0×6Ñ6°sÓ;¸b¿l¹lÑJð ñ Lô �xŠx˜#˜t˜Ø˜d˜ð%ó &€Hä˜§*¡*×"7Ñ"7Ó"9Õ:r,   c                  óô  • [         R                  " 5       n [        R                  " [        R                  " SSS5      [        R                  " SSS5      5      u  pU R                  X[        R                  " X-  5      S S2S S24   [        R                  " 5       R                  S5      U R                  -   S9  [        R                  " SS	/S
S//5      n[        X0R                  R                  5       5        g ©Nrl   rŠ   r,  r-  rI   r.  rò   ro   r/  r   rp   )rô   rõ   r#   r0  r  Úpcolorr1  r¬   r   r   rø   r$   r   r2  r3  r4  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                  óô  • [         R                  " 5       n [        R                  " [        R                  " SSS5      [        R                  " SSS5      5      u  pU R                  X[        R                  " X-  5      S S2S S24   [        R                  " 5       R                  S5      U R                  -   S9  [        R                  " SS	/S
S//5      n[        X0R                  R                  5       5        g r:  )rô   rõ   r#   r0  r  r  r1  r¬   r   r   rø   r$   r   r2  r3  r4  s       r)   Ú$test_pcolormesh_pre_transform_limitsr>  æ  sÁ   € ä	�Š‹€BÜ�[Š[œŸš R¨¨RÓ0´"·+²+¸dÀDÈ"Ó2MÓN�F€BØ‡M�M�"œ"Ÿ&š& ¡›/¨#¨2¨#¨s°¨s¨(Ñ3Ü'×0Ò0Ó2×8Ñ8¸Ó=ÀÇÁÑLð ñ Nô �xŠx˜#˜t˜Ø˜d˜ð%ó &€Hä˜§*¡*×"7Ñ"7Ó"9Õ:r,   c                  ó  • [         R                  R                  S5        [         R                  " SSS5      n [         R                  " SSS5      n[         R                  " X5      u  p#[         R
                  " [         R                  R                  " UR                  6 S-  5      n[        R                  " 5       nUR                  SS	S
9nUR                  SS5        UR                  XCUSS9  UR                  R                  5         g )Nr.   r   rL   r   r  iè  rØ   éo   Úpolar©Ú
projectionée   Úgouraud)Úshading)r#   r/   r0   r  r0  ÚradiansrB   Úshaperô   ÚfigureÚadd_subplotÚset_rlimr  Úcanvasrù   )r4   ÚradiiÚzr'  r&  Úfigrü   s          r)   Útest_pcolormesh_gouraud_nansrP  ò  s·   € Ü‡I�I‡N�N�8Ôä�[Š[˜˜C Ó#€FÜ�KŠK˜˜T 2Ó&€EÜ�;Š;�vÓ%�D€AÜ
�
Š
”2—9‘9—>’> 1§7¡7Ð+¨cÑ1Ó2€Aä
�*Š*‹,€CØ	�‰˜¨ˆÐ	1€Bð ‡K�K��TÔØ‡M�M�!˜ 9€MÑ-à‡J�J‡O�OÕr,   c                  ó¶  • [         R                  " SS/SS/SS//5      n [        R                  R	                  SSSSSS5      nUR                  U 5      n[         R                  " SS/SS/SS//5      n[        X#5        [        R                  R	                  SSSSSS5      nUR                  U 5      n[         R                  " SS/SS/SS//5      n[        X#5        [        R                  R	                  SSSSSS5      nUR                  U 5      n[         R                  " SS/S	S/SS//5      n[        X#5        [        R                  R	                  SSSS
SS5      nUR                  U 5      n[         R                  " SS/SS/SS//5      n[        X#5        [        R                  R	                  SSSSSS5      nUR                  U 5      n[         R                  " SS/SS/SS//5      n[        X#5        [        R                  R	                  SSSSSS5      nUR                  U 5      n[         R                  " SS/SS/SS//5      n[        X#5        g )Nr   rØ   rŠ   rI   r   r   rJ   r   é<   r   éP   r   r   )r#   r$   r¬   r   r1   rR   r   )Úpointsr±   Úactualr7  s       r)   Útest_Affine2D_from_valuesrV    s5  € Ü�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                  óR  • SS/n [         R                  " 5       n[        XR                  UR	                  5       R                  U 5      5      5        UR                  SS5      R                  5         [        XR                  UR	                  5       R                  U 5      5      5        g )Nr   )r¬   r   r   rR   Úinvertedr€   r<   )Úpointr±   s     r)   Ú test_affine_inverted_invalidatedrZ  *  st   € à�#ˆJ€EÜ×ÒÓ€Aä˜Ÿ{™{¨1¯:©:«<×+AÑ+AÀ%Ó+HÓIÔJà‡K�K��SÓ×$Ñ$Ô&Ü˜Ÿ{™{¨1¯:©:«<×+AÑ+AÀ%Ó+HÓIÕJr,   c                  óV  • [         R                  " / SQ5      n [        R                  " [        R                  " 5       [
        R                  " SS5      5      nUR                  U 5      nUR                  UR                  5       SSS9n[        U6 u  pE[        XPR                  S S 5        g )N))çš™™™™™É?é�ÿÿÿ)çš™™™™™Ù?r]  )r^  rŠ   )r\  rŠ   rØ   Úclip)r   r   r  r  F)r_  ÚsimplifyrI   )r   Ú_create_closedr¬   ÚBlendedGenericTransformr   r   ÚLogTransformræ   Úiter_segmentsÚ
get_affineÚzipr   Úcodes)rå   r=   ÚtpathÚresultÚtpointsÚtcodess         r)   Útest_clipping_of_logrl  5  s”   € ä×ÒÒMÓN€Dä×/Ò/Ü×ÒÓ¤× 2Ò 2°2°vÓ >ó@€Eà×+Ñ+¨DÓ1€EØ× Ñ  ×!1Ñ!1Ó!3Ø&6Ø*/ð !ð 1€Fô ˜6�l�O€GÜ�FŸJ™J s¨˜OÕ,r,   c                   óD   ^ • \ rS rSrSrSrSrSrU 4S jrS r	S r
SrU =r$ )	ÚNonAffineForTestiC  zÊ
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   >• Xl         [        TU ]  " U0 UD6  g r  )Ú
real_transrÙ   rÚ   )r(   rp  rÝ   rÞ   rß   s       €r)   rÚ   ÚNonAffineForTest.__init__N  s   ø€ Ø$ŒÜ‰Ò˜$Ð) &Ó)r,   c                 ó8   • U R                   R                  U5      $ r  )rp  rR   r3   s     r)   ré   Ú%NonAffineForTest.transform_non_affineR  s   € Ø�‰×(Ñ(¨Ó0Ð0r,   c                 ó8   • U R                   R                  U5      $ r  )rp  rã   rä   s     r)   ræ   Ú*NonAffineForTest.transform_path_non_affineU  s   € Ø�‰×-Ñ-¨dÓ3Ð3r,   )rp  )rÅ   rÆ   rÇ   rÈ   rë   rî   rí   rì   rÚ   ré   ræ   rÉ   rï   rð   s   @r)   rn  rn  C  s-   ø† ñð €IØ€KØ€Jõ*ò1÷4ð 4r,   rn  c                   ó8   • \ rS rSrS rS rS rS rS rS r	Sr
g	)
ÚTestBasicTransformiY  c                 ó|  • [         R                  " SS9R                  [        R                  S-  5      U l        [         R                  " SS9R                  SS5      U l        [         R                  " SS9R                  SS5      U l	        [        [         R                  " 5       R                  SS5      S	S9U l        [        [         R                  " 5       R                  SS5      S
S9U l        [        [         R                  " 5       R                  SS5      SS9U l        U R
                  U R                  U R                  -   -   U R                  -   U l        U R
                  U R                  -   U R                  -   U R                  -   U l        U R                  U R                  -   U R                  -   U l        g )NÚta1)Úshorthand_namer   Úta2rØ   r   Úta3r   Útn1Útn2Útn3)r¬   r   rO   r#   rP   ry  r€   r{  r   r|  rn  r}  r~  r  Ústack1Ústack2Ústack2_subsetr'   s    r)   Úsetup_methodÚ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                 ó¬   • U R                   R                  S:X  d   eU R                  R                  S:X  d   eU R                  R                  S:X  d   eg )Nr   r   )r€  Údepthr�  r‚  r'   s    r)   Útest_transform_depthÚ'TestBasicTransform.test_transform_depths  sL   € Ø�{‰{× Ñ  AÓ%Ð%Ð%Ø�{‰{× Ñ  AÓ%Ð%Ð%Ø×!Ñ!×'Ñ'¨1Ó,Ð,Ñ,r,   c                 ó<  • U R                   U R                  U R                  U R                  -   -   -   U R                  -   nUU R                  U R                  U R                  -   -   U R                  -   U R                  U R                  -   U R                  -   U R                  U R                  -   U R                  /nUR                  5        VVs/ s H  u  p4UPM	     nnn[        U5      [        U5      :X  d   e[        X%5       H  u  pgXg:X  a  M   e   g s  snnf r  )ry  r}  r{  r~  r|  Ú_iter_break_from_left_to_rightÚlenrf  )r(   Ústack3Útarget_transformsÚ_ÚrhÚrÚtarget_stackÚstacks           r)   Útest_left_to_right_iterationÚ/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ÒD‘E�A‹RÑDˆÑEÜ�1‹vœÐ.Ó/Ó/Ð/Ð/ä#&Ð'8Ö#<ÑˆLØÕ(Ð(Ð(ò $=ùó Fs   ÃDc                 ó²  • U R                   U R                  -
  U R                  :X  d   eU R                  U R                  -
  U R                  :X  d   eU R                  U R                  -
  U R                  R	                  5       :X  d   eU R                  U R                  -
  R
                  S:X  d   e[        R                  " [        5         U R                   U R                  -
    S S S 5        U R                  U R                  U R                  -   -   nU R                  U R                  -   nX-
  U R                  :X  d   eXR                  -
  XR                  R	                  5       -   :X  d   eU R                   U R                  -
  U R                  U R                  U R                  -   -   :X  d   eU R                  U R                  -
  U R                  U R                  -   U R                  -   :X  d   eU R                  U R                  -   U R                  -
  U R                  -   U R                  U R                  -   :X  d   eg ! , (       d  f       GNg= f)Nr   )r€  r‚  ry  r�  rX  r†  r­   r®   r¯   r{  r|  r}  )r(   Úaff1Úaff2s      r)   Útest_transform_shortcutsÚ+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Ÿh™hÓ&Ð&Ð&Ø—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                 óF  • U R                   U R                  -   nU R                   U R                  -   nX:X  d   eXR                  :w  d   eUR                  U5      (       d   eUR                  U R                  5      (       d   eUR                  U R                   5      (       a   eUR                  U R                   U R                   -   5      (       a   eX:X  d   eU R                  R                  U R                  5      (       d   eU R
                  R                  U R                  5      (       d   eU R                  R                  U R                  5      (       d   eU R
                  R                  U R                  5      (       d   eU R                  R                  U R                  5      (       a   eU R                  R                  U R
                  5      (       a   eU R                  R                  U R                   U R                  -   5      (       d   eU R
                  R                  U R                   U R                  -   5      (       d   eU R                  R                  U R                  U R                   -   5      (       a   e[        R                  " U R                  U R
                  5      nUR                  U R                  5      u  pEU R                  U-   nUR                  U R                  5      u  pxXGs=L a  SL d   e   eXXs=L a  SL d   e   eg )NFT)r{  ry  Úcontains_branchr€  r|  r�  r‚  r}  r¬   rb  r~  Úcontains_branch_seperatelyr  )	r(   Úr1Úr2Úblendr&  r'  Ústack_blendrg   rh   s	            r)   Útest_contains_branchÚ'TestBasicTransform.test_contains_branchž  ss  € Ø�h‰h˜Ÿ™Ñ!ˆØ�h‰h˜Ÿ™Ñ!ˆØ‹xˆˆxØ—X‘X‹~Ðˆ~Ø×!Ñ! "×%Ñ%Ð%Ð%Ø×!Ñ! $§(¡(×+Ñ+Ð+Ð+Ø×%Ñ% d§h¡h×/Ñ/Ð/Ð/Ø×%Ñ% d§h¡h°·±Ñ&9×:Ñ:Ð:Ð:à‹xˆˆxà�{‰{×*Ñ*¨4¯8©8×4Ñ4Ð4Ð4Ø�{‰{×*Ñ*¨4¯8©8×4Ñ4Ð4Ð4à�{‰{×*Ñ*¨4×+=Ñ+=×>Ñ>Ð>Ð>Ø�{‰{×*Ñ*¨4×+=Ñ+=×>Ñ>Ð>Ð>à×%Ñ%×5Ñ5°d·k±k×BÑBÐBÐBØ×%Ñ%×5Ñ5°d·k±k×BÑBÐBÐBà�{‰{×*Ñ*¨4¯8©8°d·h±hÑ+>×?Ñ?Ð?Ð?Ø�{‰{×*Ñ*¨4¯8©8°d·h±hÑ+>×?Ñ?Ð?Ð?à—;‘;×.Ñ.¨t¯x©x¸$¿(¹(Ñ/B×CÑCÐCÐCä×3Ò3°D·H±H¸d¿k¹kÓJˆØ×/Ñ/°×0BÑ0BÓC‰ˆØ—h‘h Ñ&ˆØ×7Ñ7¸×8JÑ8JÓK‰ˆØÔ˜%ÒÐÑÐÐØŒ˜$ŠÐ‰Ð‰r,   c                 ó  • [         R                  " SS/SS/[         R                  S/SS//[         R                  S9nU R                  R                  U5      nU R                  R                  U5      n[         R                  " SS/S	S
/[         R                  [         R                  /SS//[         R                  S9n[         R                  " SS/SS/[         R                  [         R                  /SS//[         R                  S9n[        X$5        [        X55        [        U R                  R                  U5      U5        [        U R                  R                  5       R                  U5      U5        U R                  U R                  -   R                  5       nU R                  R                  5       R                  5       n[        Xg5        U R                  R                  5       R                  5       n[        Xg5        g )Nr   rØ   rŠ   r   rI   )Údtyper   r   g      3Àç      (@g      &@r   g      "Àg      8@)r#   r$   ÚnanÚfloat64r€  ré   rR   r   Útransform_affinere  r{  r|  r<   r   r�  )r(   rT  Úna_ptsÚall_ptsÚna_expectedÚall_expectedÚexpected_resultri  s           r)   Útest_affine_simplificationÚ-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ˆÜ˜?Ô3à—‘×'Ñ'Ó)×4Ñ4Ó6ˆÜ˜?Õ3r,   )	r€  r�  r‚  ry  r{  r|  r}  r~  r  N)rÅ   rÆ   rÇ   rÈ   rƒ  r‡  r“  r˜  r¡  r®  rÉ   rÄ   r,   r)   rw  rw  Y  s!   † ò<ò2-ò
)ò %ò,õB#4r,   rw  c                   óP   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)ÚTestTransformPlotInterfaceiå  c                 ó\  • [         R                  " 5       nUR                  / SQ/ SQUR                  S9  [	        UR
                  R                  5       [        R                  " [        R                  [        R                  /[        R                  * [        R                  * //5      5        g )N©r.  ç333333ó?çš™™™™™é?©çÍÌÌÌÌÌì?r‘   rµ  rò   )
rô   rõ   rö   rú   r   r2  r3  r#   r$   Úinf©r(   rü   s     r)   Útest_line_extent_axes_coordsÚ7TestTransformPlotInterface.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                 óè   • [         R                  " 5       nUR                  / SQ/ SQUR                  S9  [	        UR
                  R                  5       [        R                  " SS/SS//5      5        g )Nr³  r¶  rò   r.  r‘   r´  r·  )	rô   rõ   rö   rø   r   r2  r3  r#   r$   r¹  s     r)   Útest_line_extent_data_coordsÚ7TestTransformPlotInterface.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  • [         R                  " 5       n[        R                  " UR                  UR
                  5      nUR                  / SQ/ SQUS9  [        UR                  R                  5       [        R                  " [        R                  S/[        R                  * S//5      5        g )Nr³  ©rœ   éûÿÿÿr   rò   g      Àg     €A@)rô   rõ   r¬   Úblended_transform_factoryrú   rø   rö   r   r2  r3  r#   r$   r¸  ©r(   rü   r=   s      r)   Ú!test_line_extent_compound_coords1Ú<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  • [         R                  " 5       n[        R                  " 5       R	                  S5      UR
                  -   nUR                  / SQ/ SQUS9  [        UR                  R                  5       [        R                  " SS/SS//5      5        g )	NrØ   r³  rÀ  rò   r   ç      IÀr¥  ç     àu@)rô   rõ   r¬   r   r   rø   rö   r   r2  r3  r#   r$   rÃ  s      r)   Ú)test_line_extent_predata_transform_coordsÚDTestTransformPlotInterface.test_line_extent_predata_transform_coords   sr   € ä�XŠX‹ZˆÜ×$Ò$Ó&×,Ñ,¨RÓ0°2·<±<Ñ?ˆØ
�‰’¢¸ˆÑ?Ü˜2Ÿ:™:×0Ñ0Ó2ÜŸ8š8 b¨$ Z°#°t°Ð$=Ó>õ	@r,   c                 ó®  • [         R                  " 5       n[        R                  " UR                  [        R
                  " 5       R                  S5      UR                  -   5      nUR                  / SQ/ SQUS9  [        UR                  R                  5       [        R                  " [        R                  S/[        R                  * S//5      5        g )NrØ   r³  rÀ  rò   rÇ  rÈ  )rô   rõ   r¬   rÂ  rú   r   r   rø   rö   r   r2  r3  r#   r$   r¸  rÃ  s      r)   Ú!test_line_extent_compound_coords2Ú<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                 óh  • [         R                  " 5       n[        R                  " 5       R	                  SS5      n[         R
                  " [        R                  " S5      X!R                  -   S9  [        R                  " SS/SS//5      S-   n[        UR                  R                  5       U5        g )NrØ   rò   r   ç      "@©rô   rõ   r¬   r   r€   rö   r#   r÷   rø   r$   r   r2  r3  ©r(   rü   ÚoffsetÚexpected_data_lims       r)   Útest_line_extents_affineÚ3TestTransformPlotInterface.test_line_extents_affine  s~   € Ü�XŠX‹ZˆÜ×%Ò%Ó'×1Ñ1°"°bÓ9ˆÜ�Š”—’˜2“¨&·<±<Ñ*?Ò@ÜŸHšH r¨2 h°°b°	Ð%:Ó;¸bÑ@ÐÜ! "§*¡*×"7Ñ"7Ó"9Ð;LÕMr,   c                 óÊ  • [         R                  " 5       n[        R                  " 5       R	                  SS5      n[        [        R                  " 5       R	                  SS5      5      n[         R                  " [        R                  " S5      X#-   UR                  -   S9  [        R                  " SS/SS//5      S-   n[        UR                  R                  5       U5        g )NrØ   rò   r   rÏ  rŠ   )rô   rõ   r¬   r   r€   rn  rö   r#   r÷   rø   r$   r   r2  r3  )r(   rü   rÒ  Ú	na_offsetrÓ  s        r)   Útest_line_extents_non_affineÚ7TestTransformPlotInterface.test_line_extents_non_affine  s£   € Ü�XŠX‹ZˆÜ×%Ò%Ó'×1Ñ1°"°bÓ9ˆÜ$¤[×%9Ò%9Ó%;×%EÑ%EÀbÈ"Ó%MÓNˆ	Ü�Š”—’˜2“¨&Ñ*<¸r¿|¹|Ñ*KÒLÜŸHšH r¨2 h°°b°	Ð%:Ó;¸bÑ@ÐÜ! "§*¡*×"7Ñ"7Ó"9Ð;LÕMr,   c                 óò  • [         R                  " 5       n[        R                  " 5       R	                  SS5      n[        [        R                  " 5       R	                  SS5      5      n[        SS/SS/SS/SS//5      n[        R                  " UX#-   UR                  -   S9nUR                  U5        [        R                  " SS/SS//5      S-   n[        UR                  R                  5       U5        g )NrØ   r   rò   r   ç      $@rŠ   )rô   rõ   r¬   r   r€   rn  r   ÚmpatchesÚ	PathPatchrø   Ú	add_patchr#   r$   r   r2  r3  )r(   rü   rÒ  r×  ÚpthÚpatchrÓ  s          r)   Útest_pathc_extents_non_affineÚ8TestTransformPlotInterface.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Ñ-?À"Ç,Á,Ñ-NñPˆà
�‰�UÔÜŸHšH r¨2 h°°s°Ð%<Ó=ÀÑBÐÜ! "§*¡*×"7Ñ"7Ó"9Ð;LÕMr,   c                 ó�  • [         R                  " 5       n[        R                  " 5       R	                  SS5      n[        SS/SS/SS/SS//5      n[        R                  " X2UR                  -   S9nUR                  U5        [        R                  " SS/SS//5      S-   n[        UR                  R                  5       U5        g )NrØ   r   rò   r   rÛ  )rô   rõ   r¬   r   r€   r   rÜ  rÝ  rø   rÞ  r#   r$   r   r2  r3  )r(   rü   rÒ  rß  rà  rÓ  s         r)   Útest_pathc_extents_affineÚ4TestTransformPlotInterface.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                 ój  • [         R                  " SS9n[        R                  " 5       R	                  SS5      n[         R
                  " [        R                  " S5      X!R                  -   S9  [        R                  " SS/SS//5      SS/-   n[        UR                  R                  5       U5        g )NrA  rB  r   rØ   rò   r   rÏ  rÐ  rÑ  s       r)   Ú*test_line_extents_for_non_affine_transDataÚETestTransformPlotInterface.test_line_extents_for_non_affine_transData5  s‡   € Ü�XŠX Ñ)ˆä×%Ò%Ó'×1Ñ1°!°RÓ8ˆä�Š”—’˜2“¨&·<±<Ñ*?Ò@ô ŸHšH r¨2 h°°b°	Ð%:Ó;¸qÀ"¸gÑEÐÜ! "§*¡*×"7Ñ"7Ó"9Ð;LÕMr,   rÄ   N)rÅ   rÆ   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   • [        U R                  UR                  5        g r  )r   Úbounds)Úbbox1Úbbox2s     r)   Úassert_bbox_eqrí  B  s   € Ü�u—|‘| U§\¡\Õ2r,   c                  ó¦   • [         R                  R                  SSSSSS9n U R                  5       n[	        UR
                  U R
                  5        g )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            	      ó¤  • [         R                  R                  n [         R                  R                  nU " SSSS5      nU " SSSS5      nU " SSSS5      nU " SSSS5      nU " SSSS5      n[	        U" X"5      U5        [	        U" X#5      U " SSSS5      5        [	        U" X$5      U5        U" X%5      b   e[	        U" X&5      U " SSSS5      5        g )Nr   r   r‘   ro   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˜“= "Ô%ä‘5˜“=¡-°°S¸!¸QÓ"?Ô@ä‘5˜“= "Ô%á�‹=Ñ Ð Ð ä‘5˜“=¡-°°1°a¸Ó";Õ<r,   c            	      óØ  • [         R                  " SS/SS//5      n [        U [        [	        U 5      S[         R                  05      5        [        [        U 5      S[        05      nUR                  5        H  u  p#[        X5      U:X  a  M   e   Sn[        [        X5      S[        05      nUR                  5        H)  u  p#[        [        [        X5      U5      5      U:X  a  M)   e   g )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Ø—‘–‰ˆÜ�q‹} Õ!Ð!Ð!ñ à
€CÜ”&˜“. 6¬4 .Ó1€FØ—‘–‰ˆÜ”Fœ7 1›=¨#Ó.Ó/°1Õ4Ð4Ð4ò r,   c                  ó^   • [        [        R                  " SS9R                  5      S:X  d   eg )NrA  rB  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                  ót   • [         R                  " 5       n U R                  S5      nUR                  S:X  d   eg )N©r   r   )r   )r¬   r   r¨  rH  )r±   r�  s     r)   Útest_transform_single_pointr     s0   € Ü×ÒÓ€AØ	×Ñ˜6Ó"€AØ�7‰7�d‹?Ð‰?r,   c                  óŠ   • [         R                  " 5       u  pUR                  S5        UR                  R	                  S5        g )Nr1  r  )rô   ÚsubplotsÚ
set_yscalerø   rR   )rO  rü   s     r)   Útest_log_transformr  ¦  s/   € ô �lŠl‹n�G€CØ‡M�M�%ÔØ‡L�L×Ñ˜6Õ"r,   c                  óÀ   • [         R                  " SS/SS//5      n [         R                  " SS/S[        R                  //5      nU R	                  U5      (       a   eg )Nr   r   )r¬   r	   r#   r¦  Úoverlaps)rD   rº   s     r)   Útest_nan_overlapr  ®  sU   € Ü×Ò˜1˜a˜& 1 a &Ð)Ó*€AÜ×Ò˜1˜a˜& 1¤b§f¡f +Ð.Ó/€AØ�z‰z˜!�}‰}ÐÐˆ}r,   c                  ó  • [         R                  " 5       n [        R                  " / SQ5      n[        R                  " SS/SS/SS//5      nU R	                  X5      n[        X5        [        R                  " [        5         U R	                  XSS2SS24   5        S S S 5        [        R                  " [        5         U R	                  XSS2S S 24   5        S S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)N)rŠ   r~   rR  r   r   r   )	r¬   r   r#   r$   Útransform_anglesr   r­   r®   r¯   )r±   ÚanglesrT  Ú
new_angless       r)   Útest_transform_anglesr  ´  sÍ   € Ü×ÒÓ€AÜ�XŠX’lÓ#€FÜ�XŠX˜˜1�v  1˜v¨¨1 vÐ.Ó/€Fð ×#Ñ# FÓ3€JÜ˜fÔ1ô 
�Š”zÕ	"Ø	×Ñ˜6¨!¨A¨#¨q°¨s¨(Ñ#3Ô4÷ 
#ô 
�Š”zÕ	"Ø	×Ñ˜6¨!¨A¨#ªq¨&¡>Ô2÷ 
#Ð	"÷	 
#Õ	"ú÷ 
#Õ	"ús   ÂC$Ã C5Ã$
C2Ã5
Dc                  óÔ   • [         R                  " SS/5      n S[         R                  4SS/nU H5  n[         R                  " [        R                  " U6 5      n[        X05        M7     g )Ngü©ñÒMbP¿gü©ñÒMbP?r   r9   )r   güó     )r#   r$   r¦  r¬   Únonsingularr   )Úzero_expansionÚcasesrÝ   Úouts       r)   Útest_nonsingularr  Æ  sS   € ä—X’X˜v u˜oÓ.€NØ”—‘ˆ[˜& -Ð0€EÛˆÜ�hŠh”{×.Ò.°Ð5Ó6ˆÜ˜3Ö/ò r,   c                  ó
  • / SQn [        U SS9n[        R                  " 5       n[        R                  " X5      n[	        UR                  5       R                  U 5        S[        R                  " S5      -  nUR                  [        R                  S-  5        [	        UR                  5       R                  SXD4SSU-  4U* U4/S	S
9  S/S-  Ul        [	        UR                  5       R                  SXD4SSU-  4U* U4/S	S
9  g )N)r9   ©r   r   r  ©r   r   T)Úclosedr   r   r   r9   r   çVçž¯Ò<©Úatol)r   r¬   r   ÚTransformedPathr   Úget_fully_transformed_pathÚverticesr#   ÚsqrtrO   rP   rT  )rT  rå   r=   Ú
trans_pathrž  s        r)   Útest_transformed_pathr,  Ï  sð   € Ú-€FÜ�˜tÑ$€Dä× Ò Ó"€EÜ×,Ò,¨TÓ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                  ó˜  • [         R                  " 5       n [        R                  " SSSSU S9n[         R                  " U5      nUR                  5       R                  nU R                  S5        [        UR                  5       R                  US-  5        UR                  S5        [        UR                  5       R                  U5        g )Nr9   r   r~   é‡   rò   r   r‘   )
r¬   r   rÜ  ÚWedgeÚTransformedPatchPathr(  r)  r   r   Ú
set_radius)r=   rà  ÚtpatchrT  s       r)   Útest_transformed_patch_pathr3  å  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                 ór  • / SQnUR                  U 5        [        R                  R                  5       n[        R                  " U40 U S0D6n[        X05      S:X  d   e[        USU -   5      S:X  d   eU H  n[        X45      [        X$5      :X  a  M   e   UR                  UR                  5       S-   5        [        X05      S:X  d   e[        USU -   5      S:X  d   eU H  n[        X45      [        X$5      :X  a  M   e   [        USU -   S 5        [        USU -   5      b   e[        R                  " UR                  5       UR                  5       :H  5      (       d   e[        USU -   S5        [        X05      S:X  d   e[        USU -   5      S:X  d   eU H  n[        X45      [        X$5      :X  a  M   e   g )Nr5  r   Úlocked_rØ   r   )Úremover¬   r	   ÚunitÚLockableBboxr  Ú
set_pointsr3  Úsetattrr#   r¸   )r4  Úother_elementsÚorigÚlockedÚelems        r)   Útest_lockable_bboxrE  ö  s´  € â-€NØ×Ñ˜.Ô)ä×Ñ× Ñ Ó"€DÜ×%Ò% dÑB¨~¸qÐ.AÑB€Fô �6Ó*¨aÓ/Ð/Ð/Ü�6˜9 ~Ñ5Ó6¸!Ó;Ð;Ð;ÛˆÜ�vÓ$¬°Ó(;Õ;Ð;Ð;ñ ð 	‡O�O�D—O‘OÓ%¨Ñ*Ô+Ü�6Ó*¨aÓ/Ð/Ð/Ü�6˜9 ~Ñ5Ó6¸!Ó;Ð;Ð;ÛˆÜ�vÓ$¬°Ó(;Õ;Ð;Ð;ñ ô ˆF�I Ñ.°Ô5Ü�6˜9 ~Ñ5Ó6Ñ>Ð>Ð>Ü�6Š6�$—/‘/Ó# v×'8Ñ'8Ó':Ñ:×;Ñ;Ð;Ð;ô ˆF�I Ñ.°Ô2Ü�6Ó*¨aÓ/Ð/Ð/Ü�6˜9 ~Ñ5Ó6¸!Ó;Ð;Ð;ÛˆÜ�vÓ$¬°Ó(;Õ;Ð;Ð;ò r,   c                  ó  • [         R                  " [         R                  " 5       5      n [        R                  " [
        SS9   U R                  [        R                  " S5      5        S S S 5        g ! , (       d  f       g = f)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   rc  )r±   s    r)   Útest_transformwrapperrK    sW   € Ü×$Ò$¤[×%9Ò%9Ó%;Ó<€AÜ	�Š”zð<ó
>ð 	
�‰Œe× Ò  Ó$Ô%÷
>÷ 
>ö 
>ús   Á&A2Á2
B Úpng)Ú
extensionsc           	      ó  • [         R                  R                  S5        [         R                  R                  SS9n[         R                  " SSS5      n[        X/SS/5       H¥  u  pEUR                  5       nUR                  X%SS9  UR                  U[         R                  " US	-  * S	-  5      [         R                  " S	[         R                  -  5      -  5        UR                  R                  5         UR                  S
5        M§     g )Nr.   rØ   )ÚsizerÁ  r   TF)r1  Údensityr   Úlinear)r#   r/   r0   Únormalr  rf  r  Úhiströ   Úexpr*  rP   rL  rù   r  )Úfig_testÚfig_refÚsamplesr&  rO  Ú	log_staterü   s          r)   Útest_scale_swappingrY     sÂ   € ä‡I�I‡N�N�8ÔÜ�i‰i×Ñ BÐÐ'€GÜ
�Š�B˜˜2Ó€Aä˜xÐ1°D¸%°=ÖA‰ˆØ�\‰\‹^ˆØ
�‰�°ˆÑ5Ø
�‰�”2—6’6˜A˜q™D˜' A™+Ó&¬¯ª°´R·U±U±Ó);Ñ;Ô<Ø�
‰
�‰ÔØ
�‰�hÖò Br,   c                  ó$  • [         R                  " [        SS9   [        R                  " S SS9  S S S 5        [         R                  " [        SS9   [        R                  " S SS9  S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)NzZ'fontsize' is not a valid value for units; supported values are 'dots', 'points', 'inches'rG  Úfontsize)Úunitsz3For units of inches or points a fig kwarg is neededÚinches)r­   r®   r¯   r¬   Úoffset_copyrÄ   r,   r)   Útest_offset_copy_errorsr_  .  sy   € Ü	�Š”zðPó
Qô 	×Ò ¨JÒ7÷
Qô
 
�Š”zØRó
Tä×Ò ¨HÒ5÷
Tð 
T÷
Qõ 
Qú÷

Tõ 
Tús   šA0ÁBÁ0
A>Â
Bc                  ó
  • [        [        R                  " 5       [        5       R	                  S5      5      n U R                  SS5      (       d   eU R                  SS5      (       d   eU R                  SS5      (       a   e[        [        R                  " 5       [        5       R                  SS5      5      n U R                  SS	5      (       d   eU R                  SS	5      (       a   eU R                  S
S
5      (       a   eg )Né   rµ  r‘   gš™™™™™Ù¿g333333ë?r·  g      Ð?rp   ro   r.  )r
   r	   r=  r   rQ   Úcontainsr€   Úfully_contains)Úbbs    r)   Útest_transformedbbox_containsre  9  sÓ   € Ü	œŸš›¤h£j×&;Ñ&;¸BÓ&?Ó	@€BØ�;‰;�r˜2×ÑÐÐØ�;‰;�s˜C× Ñ Ð Ð Ø�{‰{˜2˜r×"Ñ"Ð"Ð"Ü	œŸš›¤h£j×&:Ñ&:¸3ÀÓ&CÓ	D€BØ�;‰;�t˜S×!Ñ!Ð!Ð!Ø× Ñ   s×+Ñ+Ð+Ð+Ø× Ñ   R×(Ñ(Ð(Ð(Ð(r,   c                  ól  • [         R                  " SS5      (       d   e[         R                  " SS5      (       d   e[         R                  " SS5      (       d   e[         R                  " SS5      (       a   e[         R                  " SS5      (       a   e[         R                  " SS5      (       d   eg ©Nr"  r‘   r   r   rI   r   r!  )r¬   Úinterval_containsrÄ   r,   r)   Útest_interval_containsri  D  s˜   € Ü×(Ò(¨°×5Ñ5Ð5Ð5Ü×(Ò(¨°×3Ñ3Ð3Ð3Ü×(Ò(¨°×3Ñ3Ð3Ð3Ü×,Ò,¨V°R×8Ñ8Ð8Ð8Ü×,Ò,¨V°Q×7Ñ7Ð7Ð7Ü×(Ò(¨°×5Ñ5Ð5Ñ5r,   c                  ól  • [         R                  " SS5      (       d   e[         R                  " SS5      (       a   e[         R                  " SS5      (       a   e[         R                  " SS5      (       a   e[         R                  " SS5      (       a   e[         R                  " SS5      (       d   eg rg  )r¬   Úinterval_contains_openrÄ   r,   r)   Útest_interval_contains_openrl  M  s˜   € Ü×-Ò-¨f°c×:Ñ:Ð:Ð:Ü×1Ò1°&¸!×<Ñ<Ð<Ð<Ü×1Ò1°&¸!×<Ñ<Ð<Ð<Ü×1Ò1°&¸"×=Ñ=Ð=Ð=Ü×1Ò1°&¸!×<Ñ<Ð<Ð<Ü×-Ò-¨f°c×:Ñ:Ð:Ñ:r,   c                  ó˜   • Sn [        5       n[        X5      nUR                  U :X  d   eUR                  U:X  d   eUR                  b   eg)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_initializationrt  V  sP   € à€EÜ“+€KÜ  Ó4€JØ×Ñ Ó%Ð%Ð%Ø×"Ñ" kÓ1Ð1Ð1Ø�?‰?Ñ"Ð"Ñ"r,   c                  ó:  • [         R                  S-  n [        [        U S//S9S9n[        X5      nSUl        UR                  5       nUR                  R                  U S//5        [         R                  " SS/SS//5      nUc   e[        USS2SS24   US	S
9  g)zCTest get_matrix when the matrix is invalid and needs recalculation.r   r   )Úreturn_valuerò   TrI   r   Nr$  r%  )
r#   rP   r   r   r·   r<   rR   Úassert_called_once_withr$   r   )rq  rr  rs  ÚmatrixÚexpected_rotations        r)   Ú&test_scaledrotation_get_matrix_invalidrz  `  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*  r8  r<  r>  rP  rV  rZ  rl  ró   rn  rw  r±  rí  ró  rû  r  r
  r  r  r  r  r  r,  r3  ÚmarkÚparametrizerE  rK  rY  r_  re  ri  rl  rt  rz  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,   