ó
    “’¤jd1 ã                   ó~  • S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SK	r
S SKJrJrJr  S SKrS SKrS SKJr  S SKJr   " S S5      r " S S5      r " S	 S
5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r  " S S5      r! " S S5      r" " S S5      r# " S S5      r$ " S S 5      r% " S! S"5      r& " S# S$5      r' " S% S&5      r( " S' S(5      r) " S) S*5      r* " S+ S,5      r+ " S- S.5      r,S/ r-\R\                  R_                  S0/ S1Q5      S2 5       r0 " S3 S45      r1S5 r2S6 r3S7 r4S8 r5S9 r6S: r7S; r8S< r9\R\                  R_                  S=S>5      S? 5       r:\R\                  R_                  S@SASB/\
Rv                  " SC5      /5      SD 5       r<\R\                  R_                  SESFSG/ SHQ4SISG/ SHQ4SJSG/ SHQ4SKSG/ SHQ4SFSL/ SMQ4SISL/ SNQ4SJSL/ SNQ4SKSL/ SNQ4SFSO/ SMQ4SISO/ SPQ4SJSO/ SQQ4SKSO/ SQQ4SFSR/ SSQ4SISR/ STQ4SJSR/ STQ4SKSR/ SUQ4/5      \Rz                  R}                  SV5      SW 5       5       r?\Rz                  R}                  SV5      SX 5       r@SY rA\R\                  R_                  SZ\R„                  " S[ 5      \R†                  " S\5      45      S] 5       rDS^ rEg)_é    )ÚnullcontextN)Úparse)Úassert_almost_equalÚassert_array_equalÚassert_allclosec            
       ó*  • \ rS rSrSS\R
                  " / SQ5      4SS\R
                  " / SQ5      4SS	\R
                  " / S
Q5      4SS\R                  " S5      S-  4SS\R                  " SS5      S-  4/rSSS\R
                  " / SQ5      4SSS\R
                  " / SQ5      4SS/ SQ\R
                  " / SQ5      4/r\	R                  R                  S\5      S 5       r\	R                  R                  S\5      S 5       r\	R                  R                  SS S0\\R                   " S!5      4S"S#S/0\S$4S"S#0\S$4S"S#S%/0\S$4/5      S& 5       r\	R                  R                  S'/ S(Q/ S(Q4S#S)// S(Q4SS#// S(Q4S#// S(Q4/5      S* 5       rS+rg),ÚTestMaxNLocatoré   é   éd   )ç      4@g      D@g      N@g      T@ç      Y@çü©ñÒMbP?ç-Cëâ6?)ç        g-Cëâ6*?g-Cëâ6:?ga2U0*©C?g-Cëâ6J?r   ç  4&õkÃç  4&õkC)r   g  4&õküÂr   g  4&õküBr   r   g�œ&q‰5é   gL“oûñg5g�œ&q‰µéûÿÿÿé   çš™™™™™¹¿çš™™™™™ñ?N)éÿÿÿÿr   r   é   çffffffî?)g      Ð¿r   ç      Ð?ç      à?ç      è?ç      ð?é7   )r   ç      ø?é   r   é
   )r   é   é   é-   é<   úvmin, vmax, expectedc                 ób   • [         R                  " SS9n[        UR                  X5      U5        g )Nr"   ©Únbins©ÚmtickerÚMaxNLocatorr   Útick_values)ÚselfÚvminÚvmaxÚexpectedÚlocs        ÚªC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\matplotlib/tests/test_ticker.pyÚ
test_basicÚTestMaxNLocator.test_basic    s%   € ä×!Ò!¨Ñ*ˆÜ˜CŸO™O¨DÓ7¸ÕBó    zvmin, vmax, steps, expectedc                 óf   • [         R                  " SSUS9n[        UR                  X5      U5        g )Nr"   T)r+   ÚintegerÚstepsr,   )r0   r1   r2   r;   r3   r4   s         r5   Útest_integerÚTestMaxNLocator.test_integer%   s)   € ä×!Ò!¨°4¸uÑEˆÜ˜CŸO™O¨DÓ7¸ÕBr8   zkwargs, errortype, matchÚfooz5set_params() got an unexpected keyword argument 'foo'r;   r   z$steps argument must be an increasingé   c                 óŒ   • [         R                  " X#S9   [        R                  " S0 UD6  S S S 5        g ! , (       d  f       g = f)N©Úmatch© )ÚpytestÚraisesr-   r.   )r0   ÚkwargsÚ	errortyperB   s       r5   Útest_errorsÚTestMaxNLocator.test_errors*   s-   € ô �]Š]˜9Ó2Ü×ÒÑ) &Ò)÷ 3×2Ö2ús	   •5µ
Azsteps, result)r   r   r#   r#   c                 ót   • [         R                  " US9nUR                  U:H  R                  5       (       d   eg )N)r;   )r-   r.   Ú_stepsÚall)r0   r;   Úresultr4   s       r5   Útest_paddingÚTestMaxNLocator.test_padding5   s2   € ô ×!Ò!¨Ñ.ˆØ—
‘
˜fÑ$×)Ñ)×+Ñ+Ð+Ñ+r8   rC   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚnpÚarrayÚarangeÚ
basic_dataÚinteger_datarD   ÚmarkÚparametrizer6   r<   Ú	TypeErrorÚreÚescapeÚ
ValueErrorrH   rN   Ú__static_attributes__rC   r8   r5   r	   r	      så  † à	ˆS�"—(’(Ò5Ó6Ð7Ø	�˜ŸšÒ!LÓMÐNØ	��b—h’hÒJÓKÐLØ	
ˆH�b—i’i “l UÑ*Ð+Ø	�A�r—y’y  QÓ'¨%Ñ/Ð0ð€Jð 
ˆs�D˜"Ÿ(š(¢=Ó1Ð2Ø	ˆt�T˜2Ÿ8š8Ò$DÓEÐFØ	
ˆBÒ" B§H¢HÒ-@Ó$AÐBð€Lð ‡[�[×ÑÐ3°ZÓ@ñCó AðCð ‡[�[×ÑÐ:¸LÓIñCó JðCð ‡[�[×ÑÐ7Ø
�ˆ�YØ	�ŠÐJÓ	Kð	Mà
�A�q�6Ð	˜JÐ(NÐOØ
�1ˆ�zÐ#IÐJØ
�A�r�7Ð	˜ZÐ)OÐPð:ó ñ*óð*ð ‡[�[×Ñ˜_Ú	’ZÐ Ø
ˆRˆ’*ÐØ
ˆQˆ’ÐØ
ˆŠjÐð	/ó ñ,óó,r8   r	   c                   ó,   • \ rS rSrS rS rS rS rSrg)ÚTestLinearLocatoré@   c                 ó”   • [         R                  " SS9n[        R                  " / SQ5      n[	        UR                  SS5      U5        g )Né   ©Únumticks)çš™™™™™é¿ç333333Ó¿çš™™™™™É?rg   ri   )r-   ÚLinearLocatorrT   rU   r   r/   ©r0   r4   Ú
test_values      r5   r6   ÚTestLinearLocator.test_basicA   s6   € Ü×#Ò#¨QÑ/ˆÜ—X’XÒ/Ó0ˆ
Ü˜CŸO™O¨D°#Ó6¸
ÕCr8   c                 óV   • [         R                  " SS9nUR                  SS5      / :H    g )Nr   re   rg   ri   )r-   rj   r/   ©r0   r4   s     r5   Útest_zero_numticksÚ$TestLinearLocator.test_zero_numticksF   s%   € Ü×#Ò#¨QÑ/ˆØ�‰˜˜cÓ" bÓ(r8   c                 óœ   • [         R                  " SS9nUR                  SS/ 0S9  UR                  S:X  d   eUR                  S/ 0:X  d   eg)zˆ
Create linear locator with presets={}, numticks=2 and change it to
something else. See if change was successful. Should not exception.
r   re   é   ©r   r   )rf   ÚpresetsN)r-   rj   Ú
set_paramsrf   ru   ro   s     r5   Útest_set_paramsÚ!TestLinearLocator.test_set_paramsJ   sP   € ô
 ×#Ò#¨QÑ/ˆØ�‰ ¨F°B¨<ˆÑ8Ø�|‰|˜qÓ Ð Ð Ø�{‰{˜v r˜lÓ*Ð*Ñ*r8   c                 óŠ  • [         R                  " / SQSS/S.S9nUR                  SS5      / SQ:X  d   eUR                  SS5      / SQ:X  d   eUR                  SS5      SS/:X  d   eUR                  S	S
5      SS/:X  d   eUR                  SS5      [        R                  " SSS5      :H  R                  5       (       d   eg )N)r   ç      ô?ç      ü?r   r!   ))r   r   ©r   r   )ru   r   r   r   r   ç       @r?   )r-   rj   r/   rT   ÚlinspacerL   ro   s     r5   Útest_presetsÚTestLinearLocator.test_presetsT   sÀ   € Ü×#Ò#²_Ø69¸3°Zñ-Añ Bˆà�‰˜q !Ó$ªÓ7Ð7Ð7Ø�‰˜q !Ó$ªÓ7Ð7Ð7Ø�‰˜q !Ó$¨¨c¨
Ó2Ð2Ð2Ø�‰˜s CÓ(¨S°#¨JÓ6Ð6Ð6Ø—‘  1Ó%¬¯ª°Q¸¸2Ó)>Ñ>×CÑC×EÑEÐEÑEr8   rC   N)	rP   rQ   rR   rS   r6   rp   rw   r   r_   rC   r8   r5   ra   ra   @   s   † òDò
)ò+õFr8   ra   c                   ó>   • \ rS rSrS rS rS rS rS rS r	S r
S	rg
)ÚTestMultipleLocatoré^   c                 ó”   • [         R                  " SS9n[        R                  " / SQ5      n[	        UR                  SS5      U5        g )Nç“V-	@©Úbase)goƒÀÊá"Àç“V-Àg“V-	Àr   r…   ç“V-@goƒÀÊá"@g“V-)@éùÿÿÿr#   ©r-   ÚMultipleLocatorrT   rU   r   r/   rk   s      r5   r6   ÚTestMultipleLocator.test_basic_   s:   € Ü×%Ò%¨5Ñ1ˆÜ—X’Xò .ó /ˆ
ä˜CŸO™O¨B°Ó3°ZÕ@r8   c                 ó–   • [         R                  " SSS9n[        R                  " / SQ5      n[	        UR                  SS5      U5        g )Nr…   ç333333ó?©r‡   Úoffset)g¬Zd{ ÀgÇK7‰A`ÀgôýÔxé&ÿ¿r�   gÙÎ÷Sc@g`åÐ"Ûù@gÕxé&1H%@rŠ   r#   r‹   rk   s      r5   Útest_basic_with_offsetÚ*TestMultipleLocator.test_basic_with_offsete   s<   € Ü×%Ò%¨5¸Ñ=ˆÜ—X’Xò 'ó (ˆ
ä˜CŸO™O¨B°Ó3°ZÕ@r8   c                 óÈ   • [         R                  " SS05         [        R                  " SS9n[	        UR                  SS5      S5        SSS5        g! , (       d  f       g= f)	z%
Test basic behavior of view limits.
úaxes.autolimit_modeÚdatar…   r†   r   r"   )r   r"   N©ÚmplÚ
rc_contextr-   rŒ   r   Úview_limitsro   s     r5   Útest_view_limitsÚ$TestMultipleLocator.test_view_limitsk   sG   € ô �^Š^Ð2°FÐ;Õ<Ü×)Ò)¨uÑ5ˆCÜ §¡°°AÓ 6¸Ô@÷ =×<Ö<úó   ™1AÁ
A!c                 óÈ   • [         R                  " SS05         [        R                  " SS9n[	        UR                  SS5      S5        SSS5        g! , (       d  f       g= f)	úJ
Test that everything works properly with 'round_numbers' for auto
limit.
r•   Úround_numbersr…   r†   éüÿÿÿé   )rˆ   r‰   Nr—   ro   s     r5   Útest_view_limits_round_numbersÚ2TestMultipleLocator.test_view_limits_round_numberss   sH   € ô
 �^Š^Ð2°OÐDÕEÜ×)Ò)¨uÑ5ˆCÜ §¡°°AÓ 6¸ÔH÷ F×EÖEúr�   c                 óÊ   • [         R                  " SS05         [        R                  " SSS9n[	        UR                  SS5      S5        S	S	S	5        g	! , (       d  f       g	= f)
rŸ   r•   r    r…   çÍÌÌÌÌÌô?r�   r¡   r¢   )g`åÐ"ÛùÀg}?5^ºÉ@Nr—   ro   s     r5   Ú*test_view_limits_round_numbers_with_offsetÚ>TestMultipleLocator.test_view_limits_round_numbers_with_offset|   sJ   € ô
 �^Š^Ð2°OÐDÕEÜ×)Ò)¨u¸SÑAˆCÜ §¡°°AÓ 6¸ÔH÷ F×EÖEús   ™2AÁ
A"c                 óÈ   • [         R                  " SS05         [        R                  " SS9n[	        UR                  SS5      S5        SSS5        g! , (       d  f       g= f)	z=
Test that 'round_numbers' works properly with a single bin.
r•   r    r   r*   gffffffÀgffffff@)r¡   r¢   N)r˜   r™   r-   r.   r   rš   ro   s     r5   Útest_view_limits_single_binÚ/TestMultipleLocator.test_view_limits_single_bin…   sH   € ô �^Š^Ð2°OÐDÕEÜ×%Ò%¨AÑ.ˆCÜ §¡°°cÓ :¸GÔD÷ F×EÖEúr�   c                 óÄ   • [         R                  " SS9nUR                  SS9  UR                  R                  S:X  d   eUR                  SS9  UR
                  S:X  d   eg)zg
Create multiple locator with 0.7 base, and change it to something else.
See if change was successful.
çffffffæ?r†   ç333333û?rd   )r‘   N)r-   rŒ   rv   Ú_edgeÚstepÚ_offset)r0   Úmults     r5   rw   Ú#TestMultipleLocator.test_set_params�   sX   € ô
 ×&Ò&¨CÑ0ˆØ�‰˜SˆÑ!Ø�z‰z�‰ #Ó%Ð%Ð%Ø�‰˜qˆÑ!Ø�|‰|˜qÓ Ð Ñ r8   rC   N)rP   rQ   rR   rS   r6   r’   r›   r£   r§   rª   rw   r_   rC   r8   r5   r‚   r‚   ^   s+   † òAòAòAòIòIòEõ	!r8   r‚   c            
       ó   • \ rS rSrS rSS/rS r\R                  R                  S\5      S 5       r
/ SQrS	 r\R                  R                  S
\5      S 5       r/ SQr/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/r\" \" \\5      5      r\R                  R                  S\5      S 5       r\R                  R                  SSS/5      \R                  R                  SS/ SQ4S/ SQ4/5      S 5       5       r\R                  R                  SSS/5      \R                  R                  SSS/ S Q4S!S"/ S#Q4S$S%/ S&Q4/5      S' 5       5       rS(rg))*ÚTestAutoMinorLocatoré™   c                 óì   • [         R                  " 5       u  pUR                  SS5        UR                  5         [        R
                  " / SQ5      n[        UR                  R                  SS9U5        g )Nr   ç=
×£p=ö?©çš™™™™™©?çš™™™™™¹?g333333Ã?r   ç333333Ó?gffffffÖ?çÍÌÌÌÌÌÜ?r   çš™™™™™á?gÍÌÌÌÌÌä?r­   r   g333333ë?çÍÌÌÌÌÌì?r   çÍÌÌÌÌÌð?r   gffffffò?rz   r¦   gš™™™™™õ?T©Úminor)	ÚpltÚsubplotsÚset_xlimÚminorticks_onrT   rU   r   ÚxaxisÚget_ticklocs©r0   ÚfigÚaxrl   s       r5   r6   ÚTestAutoMinorLocator.test_basicš   s\   € Ü—,’,“.‰ˆØ
�‰�A�tÔØ
×ÑÔÜ—X’Xò Gó Hˆ
ô 	˜BŸH™H×1Ñ1¸Ð1Ð=¸zÕJr8   ©r   r   )r   r   c                 óÂ  • [         R                  " 5       u  pUR                  SS5        UR                  R	                  [
        R                  " 5       5        [        R                  " / SQ5      n[        UR                  R                  SS9U5        UR                  SS5        [        R                  " / SQ5      n[        UR                  R                  SS9U5        g	)
z9
Test that first and last minor tick appear as expected.
çffffffþ¿çffffffþ?) rÏ   gÍÌÌÌÌÌü¿ç333333û¿gš™™™™™ù¿gffffffö¿gÍÌÌÌÌÌô¿g333333ó¿çš™™™™™ñ¿gÍÌÌÌÌÌì¿rg   gffffffæ¿g333333ã¿çš™™™™™Ù¿rh   çš™™™™™É¿r   r»   ri   r¼   çš™™™™™Ù?ç333333ã?r­   çš™™™™™é?r¿   r   r�   r¦   gffffffö?gš™™™™™ù?r®   gÍÌÌÌÌÌü?rÐ   TrÁ   r   r"   )g      Àg      Àg      Àg      Àg      Àg      ø¿ç      ð¿ç      à¿r   r   r!   ç      @g      @ç      @g      @ç      @N)rÃ   rÄ   rÅ   rÇ   Úset_minor_locatorr-   ÚAutoMinorLocatorrT   rU   r   rÈ   rÉ   s       r5   Útest_first_and_last_minorticksÚ3TestAutoMinorLocator.test_first_and_last_minorticks©   s¬   € ô
 —,’,“.‰ˆØ
�‰�D˜#ÔØ
�‰×"Ñ"¤7×#;Ò#;Ó#=Ô>Ü—X’Xò Bó Cˆ
ô 	˜BŸH™H×1Ñ1¸Ð1Ð=¸zÔJà
�‰�B˜ÔÜ—X’Xò Gó Hˆ
ä˜BŸH™H×1Ñ1¸Ð1Ð=¸zÕJr8   z%nb_majorticks, expected_nb_minorticksc                 ó|  • [         R                  " 5       u  p4SnUR                  " U6   UR                  [        R
                  " US   US   U5      5        UR                  5         UR                  R                  [        R                  " 5       5        [        UR                  R                  5       5      U:X  d   eg )N)r   r"   r   r   )rÃ   rÄ   rÅ   Ú
set_xticksrT   r~   rÆ   rÇ   rÝ   r-   rÞ   ÚlenÚget_minorticklocs)r0   Únb_majorticksÚexpected_nb_minorticksrÊ   rË   Úxlimss         r5   Útest_low_number_of_majorticksÚ2TestAutoMinorLocator.test_low_number_of_majorticks¼   s‹   € ô —,’,“.‰ˆØˆØ
�Š�UÑØ
�‰”b—k’k %¨¡(¨E°!©H°mÓDÔEØ
×ÑÔØ
�‰×"Ñ"¤7×#;Ò#;Ó#=Ô>Ü�2—8‘8×-Ñ-Ó/Ó0Ð4JÓJÐJÑJr8   ))r   r"   )r   r¢   )rÚ   r"   )r"   r"   )r#   r"   c                 ó(  • [         R                  " SS05         U R                   Vs/ s H  oS   PM	     nn[        R                  R                  U[        R                  " 5       R                  5        S S S 5        g s  snf ! , (       d  f       g = f)Nú_internal.classic_modeFr   )	r˜   r™   Úmajorstep_minordivisionsrT   Útestingr   r-   ÚAutoLocatorrK   )r0   ÚxÚ
majorstepss      r5   Ú"test_using_all_default_major_stepsÚ7TestAutoMinorLocator.test_using_all_default_major_stepsÐ   sm   € Ü�^Š^Ð5°uÐ=Õ>Ø(,×(EÒ(EÓFÒ(E 1˜Aœ$Ñ(EˆJÐFÜ�J‰J×&Ñ& zÜ'.×':Ò':Ó'<×'CÑ'CôE÷ ?Ð>ùÚF÷ ?Õ>ús   ™B¨A>¶?BÁ>BÂ
Bz&major_step, expected_nb_minordivisionsc                 óP  • [         R                  " 5       u  p4SU4nUR                  " U6   UR                  U5        UR	                  5         UR
                  R                  [        R                  " 5       5        [        UR
                  R                  5       5      S-   nXb:X  d   eg ©Nr   r   )rÃ   rÄ   rÅ   râ   rÆ   rÇ   rÝ   r-   rÞ   rã   rä   )r0   Ú
major_stepÚexpected_nb_minordivisionsrÊ   rË   rç   Únb_minor_divisionss          r5   Útest_number_of_minor_ticksÚ/TestAutoMinorLocator.test_number_of_minor_ticksÖ   s‚   € ô —,’,“.‰ˆØ�J�ˆØ
�Š�UÑØ
�‰�eÔØ
×ÑÔØ
�‰×"Ñ"¤7×#;Ò#;Ó#=Ô>Ü  §¡×!;Ñ!;Ó!=Ó>ÀÑBÐØ!Ó?Ð?Ñ?r8   )©r   r¸   ©r   g˜nƒÀÊÁ?)r   ç�Ô�ùÉ;)r   g¦ÖVs†?=)gH¯¼šò×Š¾gIhG|·a¾)gvƒôõ!´>ç�Ûí‚ÚÒ·>)çÍÒÊ”A{¶¾çÁ�v¾À(¸¾)g"s2_Èd­¾glEÕŽfU¹¾r¹   )ç{®Gázt?ç{®Gáz„?ç¸…ëQ¸Ž?gš™™™™™™?g¸…ëQ¸ž?gìQ¸…ë¡?g
×£p=
§?rº   g)\�Âõ(¬?g¤p=
×£°?gìQ¸…ë±?g333333³?gÃõ(\�Âµ?g
×£p=
·?gR¸…ëQ¸?gáz®Gáº?ç)\�Âõ(¼?gq=
×£p½?ç      À?g¤p=
×£À?gHáz®GÁ?)gO›
´ã‚;gO›
´ã’;g÷èŽUœ;g#B’¡œ§;g÷èŽU¬;gæÇÌˆ=‡°;g¹nP‹*@µ;g#B’¡œ·;g�Ô�ù¹;ga¼W�²¾;gæÇÌˆ=‡À;g›±mÉxµÁ;g…¯JïÄ;g¹nP‹*@Å;gnXñËenÆ;gØ+3MÜÊÈ;rü   )g›+¡†›„ö<g›+¡†›„=g´àø¤tã=g‚vIhÂ%=g´àø¤tã =g(Í´#=gQu÷.U)=g‚vIhÂ%,=gõ›ÙUö.=gnób]¾K2=g(Í´3=gá7ÎQ5=gU>?åì7=gQu÷.U9=gÈcß¯x½:=g;‰³ Ž==gõ›ÙUö>=)gç*«#&,Š¾g…¦™¬Y€‰¾g#"ˆ5�Ôˆ¾g_eGô|‡¾gý”SÐ'Ñ†¾gœBY[%†¾gØkÂÍ„¾gvƒôõ!„¾gÿû|)vƒ¾gQöØŽ�‚¾gïqÇÄr�¾g�íµ ÷Æ€¾g“É%e½Þ~¾gÐÀw$‡}¾g¸ßˆ‹/|¾g…¦™¬Y€y¾gÁ�v¾À(x¾gý”SÐ'Ñv¾gvƒôõ!t¾g³zê]Êr¾gïqÇÄrq¾gÐÀw$‡m¾gH¯¼šò×j¾gÁ�v¾À(h¾g³zê]Êb¾)g�äÑéL´>g§E–/Üw´>gÀ¦ZMÏ¢´>gØkÂÍ´>g	Ê§¦¨#µ>g!+lÄ›Nµ>g:Œ0âŽyµ>gRíôÿ�¤µ>gƒ¯};húµ>gœBY[%¶>g´qwNP¶>gÍÒÊ”A{¶>gý”SÐ'Ñ¶>göîü¶>g.WÜ'·>gG¸ )R·>gxz)eç§·>rý   )g5m”/G¸¾g©<² Íý·¾gÐTè·¾g«ô`½·¾gxz)eç§·¾gìIGÖm’·¾gÓè‚¸zg·¾gG¸ )R·¾g»‡¾š‡<·¾g¢&ú|”·¾göîü¶¾gŠÅ5_¡æ¶¾gqdqA®»¶¾gå3�²4¦¶¾gY­#»�¶¾)g#"ˆ5�Ô¸¾gò_ÿù¦~¸¾rÿ   g�Ûí‚ÚÒ·¾g.WÜ'·¾gý”SÐ'Ñ¶¾rþ   gœBY[%¶¾g:Œ0âŽyµ¾g	Ê§¦¨#µ¾gØkÂÍ´¾g§E–/Üw´¾gEÁ„¸Ì³¾gÿû|)v³¾gä<sAC ³¾g³zê]Ê²¾gQöØŽ�²¾g 4PSªÈ±¾gïqÇÄr±¾g¾¯>ÜÝ±¾g\+-eq°¾g+i¤)+°¾gõM7Ü‰Š¯¾g“É%e½Þ®¾gÐÀw$‡­¾zlim, refc                 ó  • [         R                  " 5       u  p4UR                  5         UR                  SSSSS9  UR                  SSSSS9  UR	                  U5        [        UR                  R                  SS	9U5        g )
NTrÂ   Úyr   )Ú	linewidthÚmajorÚk)Úcolorr  rÁ   )rÃ   rÄ   rÆ   ÚgridÚset_ylimr   ÚyaxisrÈ   )r0   ÚlimÚrefrÊ   rË   s        r5   Útest_additionalÚ$TestAutoMinorLocator.test_additional  sk   € ä—,’,“.‰ˆà
×ÑÔØ
�‰��g˜s¨aˆÑ0Ø
�‰��g S°AˆÑ6Ø
�‰�CÔä˜BŸH™H×1Ñ1¸Ð1Ð=¸sÕCr8   Úuse_rcparamFTrú   rû   c                 ó@  • U(       a  SSS.n0 nO0 nSS0n[         R                  " U5         [        R                  " 5       u  pgUR                  " U6   UR
                  " U6   UR                  R                  [        R                  " S0 UD65        UR                  R                  [        R                  " S0 UD65        [        UR                  R                  SS9U5        [        UR                  R                  SS9U5        S S S 5        g ! , (       d  f       g = f)NÚauto©zxtick.minor.ndivszytick.minor.ndivsÚnTrÁ   rC   )r˜   r™   rÃ   rÄ   rÅ   r  rÇ   rÝ   r-   rÞ   r  r   rÈ   )r0   r  r  r  ÚcontextrF   rÊ   rË   s           r5   Útest_number_of_minor_ticks_autoÚ4TestAutoMinorLocator.test_number_of_minor_ticks_auto  sÙ   € ö Ø,2ÈÑPˆGØ‰FàˆGØ˜6�]ˆFä�^Š^˜GÕ$Ü—l’l“n‰GˆCØ�KŠK˜ÑØ�KŠK˜ÑØ�H‰H×&Ñ&¤w×'?Ò'?Ñ'IÀ&Ñ'IÔJØ�H‰H×&Ñ&¤w×'?Ò'?Ñ'IÀ&Ñ'IÔJÜ §¡× 5Ñ 5¸DÐ 5Ð AÀ3ÔGÜ §¡× 5Ñ 5¸DÐ 5Ð AÀ3ÔG÷ %×$Ö$ús   ¬CDÄ
Dzn, lim, refr   )r   r¢   ©r   r!   rÚ   rÛ   r¢   r|   )r   r   r   rz   r!   r{   r#   rt   )	r»   ri   r¼   rÕ   r   rÖ   r­   r×   r¿   c                 óú  • U(       a  XS.n0 nO0 nSU0n[         R                  " U5         [        R                  " 5       u  pxUR                  " U6   UR
                  " U6   UR                  R                  [        R                  " S5      5        UR                  R                  [        R                  " S0 UD65        UR                  R                  [        R                  " S5      5        UR                  R                  [        R                  " S0 UD65        [        UR                  R                  SS9U5        [        UR                  R                  SS9U5        S S S 5        g ! , (       d  f       g = f)Nr  r  r   TrÁ   rC   )r˜   r™   rÃ   rÄ   rÅ   r  rÇ   Úset_major_locatorr-   rŒ   rÝ   rÞ   r  r   rÈ   )	r0   r  r  r  r  r  rF   rÊ   rË   s	            r5   Útest_number_of_minor_ticks_intÚ3TestAutoMinorLocator.test_number_of_minor_ticks_int.  s  € ö Ø,-ÑFˆGØ‰FàˆGØ˜1�XˆFä�^Š^˜GÕ$Ü—l’l“n‰GˆCØ�KŠK˜ÑØ�KŠK˜ÑØ�H‰H×&Ñ&¤w×'>Ò'>¸qÓ'AÔBØ�H‰H×&Ñ&¤w×'?Ò'?Ñ'IÀ&Ñ'IÔJØ�H‰H×&Ñ&¤w×'>Ò'>¸qÓ'AÔBØ�H‰H×&Ñ&¤w×'?Ò'?Ñ'IÀ&Ñ'IÔJÜ §¡× 5Ñ 5¸DÐ 5Ð AÀ3ÔGÜ §¡× 5Ñ 5¸DÐ 5Ð AÀ3ÔG÷ %×$Ö$ús   «D8E,Å,
E:rC   N)rP   rQ   rR   rS   r6   Úparamsrß   rD   rY   rZ   rè   rì   rñ   rø   ÚlimitsÚ	referenceÚlistÚzipÚadditional_datar  r  r  r_   rC   r8   r5   rµ   rµ   ™   sÂ  † òKð 	Øð€Fò
Kð& ‡[�[×ÑÐDÀfÓMñ	Kó Nð	Kò )ÐòEð ‡[�[×ÑÐEØ5ó7ñ	@ó7ð	@ò>€Fò	Bò	ò	'ò	'ò	ò
	1ò	Eò	ð/€Iñ: ™3˜v yÓ1Ó2€Oà‡[�[×Ñ˜Z¨Ó9ñDó :ðDð ‡[�[×Ñ˜]¨U°D¨MÓ:Ø‡[�[×ÑØØòGðHð ò"ð#ð	
ó	ñHó	ó ;ðHð" ‡[�[×Ñ˜]¨U°D¨MÓ:Ø‡[�[×ÑØØ�Ò,Ð-Ø�Ò:Ð;Ø�ÒFÐGð
óñHóó ;óHr8   rµ   c                   ó>   • \ rS rSrS rS rS rS rS rS r	S r
S	rg
)ÚTestLogLocatoriI  c                 ó°  • [         R                  " SS9n[        R                  " [        5         UR                  SS5        S S S 5        [        R                  " / SQ5      n[        UR                  SS5      U5        [         R                  " SS	9n[        R                  " / S
Q5      n[        UR                  SS5      U5        g ! , (       d  f       N‹= f)Nr"   re   r   éè  )çñhãˆµøä>r   r»   ç      $@ç     @�@ç     jø@ç    ÐcAr   g     Ûú@r   r†   )	r   r   r}   ç      @g       @g      0@g      @@g      P@g      `@r   r   )	r-   Ú
LogLocatorrD   rE   r^   r/   rT   rU   r   rk   s      r5   r6   ÚTestLogLocator.test_basicJ  s”   € Ü× Ò ¨!Ñ,ˆÜ�]Š]œ:Õ&Ø�O‰O˜A˜tÔ$÷ 'ô —X’XÒHÓIˆ
Ü˜CŸO™O¨E°5Ó9¸:ÔFä× Ò  aÑ(ˆÜ—X’XÒGÓHˆ
Ü˜CŸO™O¨A¨sÓ3°ZÕ@÷ 'Õ&ús   ¯CÃ
Cc                 ó²   • [         R                  " SS0S9u  pUR                  S5        UR                  SS5        [	        UR                  5       / SQ5        g)	z,
Polar Axes have a different ticking logic.
Ú
projectionÚpolar)Ú
subplot_kwÚlogr   r   )r#   r   r(  N)rÃ   rÄ   Ú
set_yscaler  r   Ú
get_yticks©r0   rÊ   rË   s      r5   Útest_polar_axesÚTestLogLocator.test_polar_axesV  sC   € ô —,’,¨<¸Ð*AÑB‰ˆØ
�‰�eÔØ
�‰�A�sÔÜ˜2Ÿ=™=›?ªOÕ<r8   c                 ó˜  • [         R                  " SS9n[        UR                  SS5      / SQ5        [         R                  " [        R
                  " SS5      S9nSUR                  S	S
5      ;  d   eSUR                  S	S
5      ;  d   e[         R                  " SS9nUR                  SS5      n[        USU:*  US:*  -     S/5        g )NrL   ©Úsubsr½   r¾   )g)\�Âõ(Ü?gq=
×£pÝ?g¸…ëQ¸Þ?r   g¤p=
×£à?gHáz®Gá?gìQ¸…ëá?r   r#   r   r¿   r   r*  r  r   )r-   r/  r   r/   rT   rV   )r0   r4   Útvs      r5   Útest_switch_to_autolocatorÚ)TestLogLocator.test_switch_to_autolocator_  s¸   € Ü× Ò  eÑ,ˆÜ˜3Ÿ?™?¨4°Ó6ÚDô	Fô × Ò ¤b§i¢i°°2Ó&6Ñ7ˆØ˜#Ÿ/™/¨#¨sÓ3Ó3Ð3Ð3Ø˜3Ÿ?™?¨3°Ó4Ó4Ð4Ð4ä× Ò  fÑ-ˆØ�_‰_˜R Ó$ˆÜ˜2˜r R™x¨B°"©HÑ5Ñ6¸¸Õ=r8   c                 óÒ   • [         R                  " 5       nUR                  SS/SS9  UR                  S:X  d   eUR                  S:X  d   e[        UR                  5      S/:X  d   eg)z¦
Create log locator with default value, base=10.0, subs=[1.0],
numticks=15 and change it to something else.
See if change was successful. Should not raise exception.
é   r}   r¢   )rf   r=  r‡   N)r-   r/  rv   rf   Ú_baser"  Ú_subsro   s     r5   rw   ÚTestLogLocator.test_set_paramsl  s`   € ô × Ò Ó"ˆØ�‰ ¨¨°AˆÑ6Ø�|‰|˜qÓ Ð Ð Ø�y‰y˜A‹~Ðˆ~Ü�C—I‘I‹ 3 %Ó'Ð'Ñ'r8   c                 ó”   • [         R                  " SS9n[        R                  " / SQ5      n[	        UR                  SS5      U5        g )N©r   r   r"   r<  )r»   ri   r   r   r}   rÜ   r*  r   ç      I@r   ç      i@ç     @@r+  ç     @Ÿ@ç     ˆ³@ç     ˆÃ@ç     ˆÓ@ç     jè@r,  ç     jAç    €„Aç    €„.Aç    €„>Aç    ÐSAr-  ç    ÐsAç    „×‡Ar   r-  )r-   r/  rT   rU   r   r/   ©r0   Úllrl   s      r5   Útest_tick_values_correctÚ'TestLogLocator.test_tick_values_correctx  s<   € Ü×Ò YÑ/ˆÜ—X’Xò 7ó 8ˆ
ô
 	˜BŸN™N¨1¨cÓ2°JÕ?r8   c                 óº   • S[         R                  S'   [        R                  " SS9n[        R
                  " / SQ5      n[        UR                  SS5      U5        g )NFrë   rG  r<  )r»   ri   r   r   r}   rÜ   r*  r   rH  r   rI  rJ  r+  rK  rL  rM  rN  rO  r,  rP  rQ  rR  rS  rT  r-  rU  rV  ç    „×—Ag    „×§Ag    eÍ½Ar   r\  )r˜   ÚrcParamsr-   r/  rT   rU   r   r/   rW  s      r5   Útest_tick_values_not_emptyÚ)TestLogLocator.test_tick_values_not_empty�  sM   € Ø16Œ�‰Ð-Ñ.Ü×Ò YÑ/ˆÜ—X’Xò Oó Pˆ
ô
 	˜BŸN™N¨1¨cÓ2°JÕ?r8   c                 ó  • [         R                  R                  S5      nUR                  SS9/ / /n[        R
                  " [        U5      SSS9u  p4[        UR                  5       U5       H%  u  pVUR                  USS9  UR                  SS	S
9  M'     UR                  5        H^  n[        UR                  5       US   R                  5       :H  5      (       d   eUR                  5       US   R                  5       :X  a  M^   e   g )Ni!N,r   )ÚsizeT)ÚsharexÚshareyr#   )Úbinsr5  Úclip)Únonpositiver   )rT   ÚrandomÚdefault_rngÚnormalrÃ   rÄ   rã   r#  ÚflattenÚhistr6  rL   r7  Úget_ylim)r0   ÚrngÚ
dummy_datarÊ   ÚaxesrË   r–   s          r5   Útest_multiple_shared_axesÚ(TestLogLocator.test_multiple_shared_axes‹  sÚ   € Ü�i‰i×#Ñ# HÓ-ˆØ—j‘j c�jÐ*¨B°Ð3ˆ
Ü—L’L¤ Z£¸ÀdÑK‰	ˆä˜DŸL™L›N¨JÖ7‰HˆBØ�G‰G�D˜rˆGÑ"Ø�M‰M˜%¨VˆMÓ4ñ 8ð —,‘,–.ˆBÜ�r—}‘}“¨$¨q©'×*<Ñ*<Ó*>Ñ>×?Ñ?Ð?Ð?Ø—;‘;“= D¨¡G×$4Ñ$4Ó$6Õ6Ð6Ð6ò !r8   rC   N)rP   rQ   rR   rS   r6   r9  r?  rw   rY  r^  rp  r_   rC   r8   r5   r&  r&  I  s(   † ò
Aò=ò>ò
(ò@ò@õ7r8   r&  c                   ó   • \ rS rSrS rSrg)ÚTestNullLocatori™  c                 ó¶   • [         R                  " 5       n[        R                  " [        5         UR                  5         SSS5        g! , (       d  f       g= f)zp
Create null locator, and attempt to call set_params() on it.
Should not exception, and should raise a warning.
N)r-   ÚNullLocatorrD   ÚwarnsÚUserWarningrv   ro   s     r5   rw   ÚTestNullLocator.test_set_paramsš  s4   € ô
 ×!Ò!Ó#ˆÜ�\Š\œ+Õ&Ø�N‰NÔ÷ '×&Ö&ús   °A
Á

ArC   N©rP   rQ   rR   rS   rw   r_   rC   r8   r5   rs  rs  ™  s   † õr8   rs  c                   ó4   • \ rS rSr\S 5       r\S 5       rSrg)Ú_LogitHelperi¤  c                 óà   • SU s=:  a  S:  a`  O  O]SUs=:  a  S:  aP  O  OM[         R                  " [         R                  " SU -  S-
  5      * [         R                  " SU-  S-
  5      * 5      $ S$ )Nr   r   F)rT   Úiscloser5  )rï   r  s     r5   r}  Ú_LogitHelper.isclose¥  sZ   € ð �q•9˜1–9  Q¥¨¦ô —
’
œBŸFšF 1 Q¡3 q¡5›M˜>¬B¯FªF°1°Q±3°q±5«M¨>Ó:ð 	7Ø05ð	7r8   c                 óÞ  • [         R                  " U 5      n[         R                  " U5      n[         R                  " US:„  5      (       a  [         R                  " US:  5      (       d   e[         R                  " US:„  5      (       a  [         R                  " US:  5      (       d   e[         R                  " SU-  S-
  5      * n[         R                  " SU-  S-
  5      * n[	        XE5        g rô   )rT   rU   rL   r5  r   )rï   r  rË   ÚayÚlxÚlys         r5   r   Ú _LogitHelper.assert_almost_equalª  s    € ä�XŠX�a‹[ˆÜ�XŠX�a‹[ˆÜ�vŠv�b˜1‘f�~‰~¤"§&¢&¨¨a©§.¡.Ð0Ð0Ü�vŠv�b˜1‘f�~‰~¤"§&¢&¨¨a©§.¡.Ð0Ð0Ü�fŠf�Q�r‘T˜!‘V‹nˆ_ˆÜ�fŠf�Q�r‘T˜!‘V‹nˆ_ˆÜ˜BÕ#r8   rC   N)rP   rQ   rR   rS   Ústaticmethodr}  r   r_   rC   r8   r5   r{  r{  ¤  s(   † Øñ7ó ð7ð ñ$ó ó$r8   r{  c                   óL  • \ rS rSr/ SQrSS\R                  " SS5      -  -  SS\R                  " SS5      -  -  SS\R                  " SS5      -  -  SS\R                  " SS5      -  -  SS\R                  " SS	5      -  -  SS\R                  " SS
5      -  -  SS\R                  " SS5      -  -  SS\R                  " SS5      -  -  /r/ SQr\	R                  R                  S\" \" \\5      5      5      S 5       r\	R                  R                  S\5      S 5       r\	R                  R                  S\\-   5      S 5       r\	R                  R                  S\" \" \\5      5      5      S 5       rS r/ S\R                  " SS5      -  QSS\R                  " SS5      -  -
  Qr\	R                  R                  S\R*                  " \SS9 V VVs/ s H  u  pX:w  d  M  X4PM     snnn 5      S 5       r\	R                  R                  S\5      S 5       rSrgs  snnn f )ÚTestLogitLocatoriµ  )©rº   r   )r   g×£p=
×ï?)gü©ñÒMb@?g–C‹lçûï?©ç-Cëâ6
?g�St$—ÿï?)gñhãˆµøÔ>gŽ;¥ƒõÿï?)g�íµ ÷Æ >gõ…�óþÿï?©gH¯¼šò×j>ge(åÿÿï?)g:Œ0âŽy5>g$ÎPýÿÿï?r   r#   rd   r¢   r"   r   rB  rs   é	   ))rÕ   rÖ   )rº   ri   )r×   r   zlims, expected_low_ticksc                 óš   • [        / UQSPSU-
  Q5      n[        R                  " SS9n[        R	                  UR
                  " U6 U5        g)zB
Create logit locator with huge number of major, and tests ticks.
r   r   r   r*   N)Úsortedr-   ÚLogitLocatorr{  r   r/   )r0   ÚlimsÚexpected_low_ticksÚexpected_ticksr4   s        r5   Útest_basic_majorÚ!TestLogitLocator.test_basic_majorÎ  sV   € ô  ØAÐ ÐA #ÐA¨Ð-?Ñ)?ÐAó
ˆô ×"Ò"¨Ñ-ˆÜ×(Ñ(Ø�OŠO˜TÐ"Øõ	
r8   r�  c                 óN  • [         R                  " SS9n[         R                  " S/ SQS9nS Ht  nUR                  US9  UR                  US9  UR                  " U6 nUR                  " U6 nUR
                  UR
                  :X  d   eXV:H  R                  5       (       a  Mt   e   g)zR
When the axis is zoomed, the locator must have the same behavior as
MaxNLocator.
r   r*   )r   r   r"   r#   )r+   r;   )r¢   rs   é   N)r-   rŽ  r.   rv   r/   ÚshaperL   )r0   r�  r4   Úmaxn_locr+   ÚticksÚ
maxn_tickss          r5   Útest_maxn_majorÚ TestLogitLocator.test_maxn_majorß  s�   € ô ×"Ò"¨Ñ-ˆÜ×&Ò&¨SºÑFˆÛˆEØ�N‰N ˆNÑ'Ø×Ñ eÐÑ,Ø—O’O TÐ*ˆEØ!×-Ò-¨tÐ4ˆJØ—;‘; *×"2Ñ"2Ó2Ð2Ð2ØÑ'×,Ñ,×.Ó.Ð.Ð.ò  r8   c                 ó.  • [        [        R                  " [        R                  " US   5      5      * 5      S-  S-   n[        R
                  " SS9n[        USS5       H3  nUR                  US9  [        UR                  " U6 5      US-   ::  a  M3   e   g)z2
Assert logit locator for respecting nbins param.
r   r   r   r   r*   r   N)
ÚintrT   ÚfloorÚlog10r-   rŽ  Úrangerv   rã   r/   )r0   r�  Úbasic_neededr4   r+   s        r5   Útest_nbins_majorÚ!TestLogitLocator.test_nbins_majorï  s‚   € ô œBŸHšH¤R§X¢X¨d°1©gÓ%6Ó7Ð7Ó8¸1Ñ<¸qÑ@ˆÜ×"Ò"¨Ñ-ˆÜ˜<¨¨BÖ/ˆEØ�N‰N ˆNÑ'Ü�s—’¨Ð-Ó.°%¸!±)Õ;Ð;Ð;ò 0r8   c                 óî  • [        / UQSPSU-
  Q5      n[        U5      n[        R                  " SS9n[        R                  " SSS9n[	        USS5       Hœ  nUR                  US9  UR                  US9  UR                  " U6 nUR                  " U6 n	[        U5      [        U5      :¼  a"  [        U5      S-
  S	-  [        U	5      :  d   eMy  [        R                  [        / UQU	Q5      U5        Mž     g
)z\
In large scale, test the presence of minor,
and assert no minor when major are subsampled.
r   r   r   r*   T)r+   rÂ   r   r   r"   N)	r�  rã   r-   rŽ  r   rv   r/   r{  r   )
r0   r�  r�  r‘  r¡  r4   Ú	minor_locr+   Úmajor_ticksÚminor_tickss
             r5   Ú
test_minorÚTestLogitLocator.test_minorû  sÿ   € ô  ØAÐ ÐA #ÐA¨Ð-?Ñ)?ÐAó
ˆô ˜>Ó*ˆÜ×"Ò"¨Ñ-ˆÜ×(Ò(¨s¸$Ñ?ˆ	Ü˜<¨¨BÖ/ˆEØ�N‰N ˆNÑ'Ø× Ñ  uÐ Ñ-ØŸ/š/¨4Ð0ˆKØ#×/Ò/°Ð6ˆKÜ�;Ó¤3 ~Ó#6Ó6ä˜KÓ(¨1Ñ,°Ñ1´C¸Ó4DÓDÐDÒDô ×0Ñ0ÜÐ7˜[Ð7¨;Ð7Ó8¸.öJò 0r8   c                 óÊ   • [         R                  " SS9nUR                  (       a   eSUl        UR                  (       d   eUR                  SS9  UR                  (       a   eg )Nr   r*   TFrÁ   )r-   rŽ  rÂ   rv   ro   s     r5   Útest_minor_attrÚ TestLogitLocator.test_minor_attr  sM   € Ü×"Ò"¨Ñ-ˆØ—9—9Ðˆ}ØˆŒ	Ø�y�yÐˆyØ�‰˜UˆÑ#Ø—9—9Ðˆ}�9r8   rÚ   éýÿÿÿr   r   )Úrepeatc                 ó€   • [         R                  " 5       nUR                  " U6 n[        U5      [        U5      :X  d   eg)zL
Create logit locator, and test the nonsingular method for acceptable
value
N)r-   rŽ  Únonsingularr�  )r0   r�  r4   Úlims2s       r5   Útest_nonsingular_okÚ$TestLogitLocator.test_nonsingular_ok%  s6   € ô ×"Ò"Ó$ˆØ—’ Ð&ˆÜ�d‹|œv e›}Ó,Ð,Ñ,r8   Úokvalc                 óè   • [         R                  " 5       nSUpCUR                  X45      u  pVXd:X  d   eSUs=:  a  U:  d   e   eUSpCUR                  X45      u  pVXS:X  d   eXVs=:  a  S:  d   e   eg)zP
Create logit locator, and test the nonsingular method for non
acceptable value
r   r   r   r   N)r-   rŽ  r°  )r0   r´  r4   r1   r2   Úvmin2Úvmax2s          r5   Útest_nonsingular_nokÚ%TestLogitLocator.test_nonsingular_nok6  s„   € ô ×"Ò"Ó$ˆØ˜%ˆdØ—‘ tÓ2‰ˆØ‹}Ðˆ}Ø�5Õ ˜5Ó Ð Ñ Ð Ð Ø˜QˆdØ—‘ tÓ2‰ˆØ‹}Ðˆ}ØÕ ˜qÓ Ð Ñ Ð Ñ r8   rC   N)rP   rQ   rR   rS   Úref_basic_limitsrT   rV   Úref_basic_major_ticksÚref_maxn_limitsrD   rY   rZ   r"  r#  r’  rš  r¢  r¨  r«  Úacceptable_vmin_vmaxÚ	itertoolsÚproductr²  r¸  r_   )Ú.0ÚaÚbs   000r5   r†  r†  µ  s]  † ò	Ðð 	
ˆR�2—9’9˜Q “?Ñ"Ñ#Ø	ˆR�2—9’9˜Q “?Ñ"Ñ#Ø	ˆR�2—9’9˜Q “?Ñ"Ñ#Ø	ˆR�2—9’9˜Q “?Ñ"Ñ#Ø	ˆR�2—9’9˜Q “?Ñ"Ñ#Ø	ˆR�2—9’9˜Q “?Ñ"Ñ#Ø	ˆR�2—9’9˜Q “?Ñ"Ñ#Ø	ˆR�2—9’9˜Q Ó#Ñ#Ñ$ð	Ðò G€Oà‡[�[×ÑØ"Ù‰SÐ!Ð#8Ó9Ó:óñ
ó	ð
ð ‡[�[×Ñ˜V _Ó5ñ/ó 6ð/ð ‡[�[×Ñ˜VÐ%5¸Ñ%GÓHñ	<ó Ið	<ð ‡[�[×ÑØ"Ù‰SÐ!Ð#8Ó9Ó:óñJó	ðJò2ðØ
�—’˜2˜qÓ!Ñ
!ðà
ˆc�R—Y’Y˜r 1Ó%Ñ%Ñ
%ðÐð
 ‡[�[×ÑØð $×+Ò+Ð,@ÈÒKõ	
âK‘�Ø‰vó ˆQ‹FÙKó	
óñ-óð-ð ‡[�[×Ñ˜WÐ&:Ó;ñ!ó <ó!ùô!	
s   ÇHÇ$Hr†  c                   ó   • \ rS rSrS rSrg)ÚTestFixedLocatoriG  c                 ó„   • [         R                  " [        SS5      SS9nUR                  SS9  UR                  S:X  d   eg)zy
Create fixed locator with 5 nbins, and change it to something else.
See if change was successful.
Should not exception.
r   é   r"   r*   rB  N)r-   ÚFixedLocatorr   rv   r+   )r0   Úfixeds     r5   rw   Ú TestFixedLocator.test_set_paramsH  s?   € ô ×$Ò$¤U¨1¨b£\¸Ñ;ˆØ×Ñ˜qÐÑ!Ø�{‰{˜aÓÐÑr8   rC   Nry  rC   r8   r5   rÄ  rÄ  G  s   † õ r8   rÄ  c                   ó    • \ rS rSrS rS rSrg)ÚTestIndexLocatoriS  c                 ó–   • [         R                  " SSS9nUR                  SSS9  UR                  S:X  d   eUR                  S:X  d   eg)z‚
Create index locator with 3 base, 4 offset. and change it to something
else. See if change was successful.
Should not exception.
rd   r¢   r�   rB  N)r-   ÚIndexLocatorrv   rC  r‘   ©r0   Úindexs     r5   rw   Ú TestIndexLocator.test_set_paramsT  sM   € ô ×$Ò$¨!°AÑ6ˆØ×Ñ˜a¨ÐÑ*Ø�{‰{˜aÓÐÐØ�|‰|˜qÓ Ð Ñ r8   c                 ó6  • [         R                  " SSS9n[        UR                  SS5      / SQ5        [         R                  " SSS9n[        UR                  SS5      / SQ5        [         R                  " SSS9n[        UR                  SS	5      / S
Q5        g)zA
Test that tick_values does not return values greater than vmax.
r   r   r�   r¢   )r   r   r   rd   r¢   r   r  r   r"   )r   r   r¢   N)r-   rÍ  r   r/   rÎ  s     r5   Ú#test_tick_values_not_exceeding_vmaxÚ4TestIndexLocator.test_tick_values_not_exceeding_vmax_  s„   € ô
 ×$Ò$¨!°AÑ6ˆÜ˜5×,Ñ,¨Q°Ó2²OÔDô ×$Ò$¨!°CÑ8ˆÜ˜5×,Ñ,¨Q°Ó2Ò4HÔIô ×$Ò$¨!°AÑ6ˆÜ˜5×,Ñ,¨Q°Ó2²IÕ>r8   rC   N)rP   rQ   rR   rS   rw   rÒ  r_   rC   r8   r5   rË  rË  S  s   † ò	!õ?r8   rË  c                   ó‚   • \ rS rSrS r\R                  R                  SSSSS/4SS/ SQ4/5      S 5       rS	 r	S
 r
Srg)ÚTestSymmetricalLogLocatorip  c                 óš   • [         R                  " SSS9nUR                  S/SS9  UR                  S/:X  d   eUR                  S:X  d   eg)z�
Create symmetrical log locator with default subs =[1.0] numticks = 15,
and change it to something else.
See if change was successful.
Should not exception.
r#   r   ©r‡   Ú	linthreshr}   rs   )r=  rf   N)r-   ÚSymmetricalLogLocatorrv   rD  rf   ©r0   Úsyms     r5   rw   Ú)TestSymmetricalLogLocator.test_set_paramsq  sN   € ô ×+Ò+°¸qÑAˆØ�‰˜S˜E¨AˆÑ.Ø�y‰y˜S˜EÓ!Ð!Ð!Ø�|‰|˜qÓ Ð Ñ r8   r(   r   r   r   ©r   r   r   c                 ób   • [         R                  " SSS9nUR                  XS9n[        XS5        g )Nr#   r   r×  )r1   r2   )r-   rÙ  r/   r   )r0   r1   r2   r3   rÛ  r˜  s         r5   Útest_valuesÚ%TestSymmetricalLogLocator.test_values}  s.   € ô ×+Ò+°¸qÑAˆØ—‘ T�Ð5ˆÜ˜5Õ+r8   c                 ó²   • [         R                  " SSSS/S9nUR                  5         UR                  R	                  SS5        [        U" 5       / SQ5        g )Nr#   r   r}   r.  )r‡   rØ  r=  éöÿÿÿ)	éìÿÿÿiØÿÿÿéþÿÿÿr¡   r   r   r¢   r   é(   )r-   rÙ  Úcreate_dummy_axisÚaxisÚset_view_intervalr   rÚ  s     r5   Ú	test_subsÚ#TestSymmetricalLogLocator.test_subsŠ  sG   € Ü×+Ò+°¸qÈÈSÀzÑRˆØ×ÑÔØ�‰×"Ñ" 3¨Ô+Ü™3›5Ò"EÕFr8   c                 óÐ  • [         R                  " SSS9nUR                  5         UR                  R	                  SS5        U" 5       S/:H  R                  5       (       d   eUR                  R	                  SS5        U" 5       SS/:H  R                  5       (       d   eUR                  SS5      S	:X  d   eUR                  S
S
5      S:X  d   eUR                  SS5      S:X  d   eg )Nr#   r   r×  rs   r‹  r   é   r*  )r   r   râ  )éœÿÿÿr   r   )çü©ñÒMbP¿r   )r-   rÙ  ræ  rç  rè  rL   rš   rÚ  s     r5   Útest_extendingÚ(TestSymmetricalLogLocator.test_extending�  sÐ   € Ü×+Ò+°¸qÑAˆØ×ÑÔØ�‰×"Ñ" 1 aÔ(Ù“˜#˜‘×#Ñ#×%Ñ%Ð%Ð%Ø�‰×"Ñ" 1 bÔ)Ù“˜#˜t˜Ñ$×)Ñ)×+Ñ+Ð+Ð+Ø�‰˜r 2Ó&¨(Ó2Ð2Ð2Ø�‰˜s CÓ(¨JÓ6Ð6Ð6Ø�‰˜q !Ó$¨Ó7Ð7Ñ7r8   rC   N)rP   rQ   rR   rS   rw   rD   rY   rZ   rß  ré  rï  r_   rC   r8   r5   rÕ  rÕ  p  sT   † ò
!ð ‡[�[×ÑØ"à�A˜˜1�v�Ø�Qš
Ð#ðóñ,óð,òGõ	8r8   rÕ  c                   óD   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)ÚTestAsinhLocatoriœ  c                 óš   • [         R                  " SSS9nUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eg )NgX9´Èv¾@é   )Úlinear_widthrf   r#   )r-   ÚAsinhLocatorrõ  rf   r‡   ©r0   Úlctrs     r5   Ú	test_initÚTestAsinhLocator.test_init�  sJ   € Ü×#Ò#°ÀÑDˆØ× Ñ  EÓ)Ð)Ð)Ø�}‰} Ó"Ð"Ð"Ø�y‰y˜B‹Ð‰r8   c                 ó  • [         R                  " SSSSSS9nUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR
                  S:X  d   eUR                  SS9  UR                  S:X  d   eUR                  S 5        UR                  S:X  d   eUR                  S	S
9  UR                  S	:X  d   eUR                  S S
9  UR                  S	:X  d   eUR                  SS9  UR                  S:X  d   eUR                  S S9  UR                  S:X  d   eUR                  SS9  UR
                  S:X  d   eUR                  S S9  UR
                  S:X  d   eUR                  / S9  UR
                  b   eg )Nr"   r
   r  r¢   )rÚ   g      
@)rõ  rf   Ú	symthreshr‡   r=  é   re   r   )rü  rB  r†   )r   g     €@r<  )r-   rö  rf   rü  r‡   r=  rv   r÷  s     r5   rw   Ú TestAsinhLocator.test_set_params£  s~  € Ü×#Ò#°Ø-/¸5Ø)*°ñ>ˆð �}‰} Ó"Ð"Ð"Ø�~‰~ Ó&Ð&Ð&Ø�y‰y˜A‹~Ðˆ~Ø�y‰y˜KÓ'Ð'Ð'à�‰ ˆÑ$Ø�}‰} Ó"Ð"Ð"Ø�‰˜ÔØ�}‰} Ó"Ð"Ð"à�‰ #ˆÑ&Ø�~‰~ Ó$Ð$Ð$Ø�‰ $ˆÑ'Ø�~‰~ Ó$Ð$Ð$à�‰˜QˆÑØ�y‰y˜A‹~Ðˆ~Ø�‰˜TˆÑ"Ø�y‰y˜A‹~Ðˆ~à�‰˜ZˆÑ(Ø�y‰y˜JÓ&Ð&Ð&Ø�‰˜TˆÑ"Ø�y‰y˜JÓ&Ð&Ð&Ø�‰˜RˆÑ Ø�y‰yÑ Ð Ñ r8   c                 ó\  • [         R                  " SSSS9n[        UR                  SS5      [        R
                  " SSS5      5        [        UR                  S	S
5      [        R
                  " S	SS5      5        [        UR                  SS5      [        R
                  " SSS5      5        g )Nr   r?   r   ©rõ  rf   r‡   r   r   ç)\�Âõ(ð?ri   r   r»   gB`åÐ"Û¹?ç{®Gáz”?g{®Gáz„¿r  gM„O¯„?çü©ñÒMb`?©r-   rö  r   r/   rT   rV   r÷  s     r5   Útest_linear_valuesÚ#TestAsinhLocator.test_linear_valuesÂ  s‹   € Ü×#Ò#°¸rÈÑJˆä˜D×,Ñ,¨R°Ó3ÜŸIšI b¨$°Ó4ô	6ä˜D×,Ñ,¨T°3Ó7ÜŸIšI d¨E°4Ó8ô	:ä˜D×,Ñ,¨U°DÓ9ÜŸIšI e¨V°UÓ;õ	=r8   c                 ó¨   • [         R                  " SSSS9n[        UR                  SS5      / SQ5        [        UR                  SS	5      / S
Q5        g )Nr»   r?   r   r   rí  r   )rí  rã  r   r   rÔ   r   ri   r   r"   r   r   éüÿÿr(  )r  rí  rã  r­  rÓ   r   rÕ   rd   r   r   r(  ©r-   rö  r   r/   r÷  s     r5   Útest_wide_valuesÚ!TestAsinhLocator.test_wide_valuesÌ  sP   € Ü×#Ò#°¸rÈÑJˆä˜D×,Ñ,¨T°3Ó7ò4ô	5ô 	˜D×,Ñ,¨U°DÓ9ò7õ	8r8   c                 ól   • [         R                  " SSSS9n[        UR                  SS5      / SQ5        g)	z<Check that manually injected zero will supersede nearby tickr   rd   r   r   rÒ   r¿   )rØ   r   r¿   Nr	  r÷  s     r5   Útest_near_zeroÚTestAsinhLocator.test_near_zeroÖ  s.   € ä×#Ò#°¸qÀqÑIˆä˜D×,Ñ,¨T°3Ó7Ò9IÕJr8   c                 ó’   • [         R                  " SSS9n[        UR                  SS5      [        R
                  " SSS5      5        g )Nr   r?   re   ée   éf   gq=
×£€Y@r»   r  r÷  s     r5   Útest_fallbackÚTestAsinhLocator.test_fallbackÜ  s;   € Ü×#Ò# C°"Ñ5ˆä˜D×,Ñ,¨S°#Ó6ÜŸIšI c¨6°3Ó7õ	9r8   c                 óÊ  • [         R                  " SSSSS9nUR                  5         UR                  R	                  SS5        [        U" 5       / SQ5        UR                  R	                  SS	5        [        U" 5       / S
Q5        UR                  R	                  SS5        [        U" 5       / S
Q5        UR                  R	                  SS5        [        U" 5       / SQ5        g )Nr   rd   r   r   )rõ  rf   rü  r‡   r   r   )r   r   r   r¿   rÝ  g333333ë¿rÀ   r   )r   rÀ   r   )r-   rö  ræ  rç  rè  r   r÷  s     r5   Útest_symmetrizingÚ"TestAsinhLocator.test_symmetrizingâ  s§   € Ü×#Ò#°¸QØ.2¸ñ<ˆà×ÑÔ à�	‰	×#Ñ# B¨Ô*Ü™D›F¢JÔ/à�	‰	×#Ñ# B¨Ô,Ü™D›F¢JÔ/à�	‰	×#Ñ# E¨4Ô0Ü™D›F¢JÔ/à�	‰	×#Ñ# A sÔ+Ü™D›F¢NÕ3r8   c                 óÖ   • [         R                  " SSSSS9n[        UR                  SS5      / SQ5        [         R                  " SS	S
S9n[        UR                  SS5      / SQ5        g )Nr   rs   r#   )r   rd   r"   )rõ  rf   r‡   r=  é’ÿÿÿén   )iþÿÿiÔþÿÿrí  iÎÿÿÿiâÿÿÿrâ  r   r­  r   rÙ   rh   r   r   r»   r¼   r   r   rd   r"   r#   r%   é2   r   i,  éô  r   r"   r   iæûÿÿi  )i�ýÿÿiƒÿÿÿiçÿÿÿr   r   rÔ   r   ri   r   r"   é   é}   iq  r	  )r0   Úlctr10Úlctr5s      r5   Útest_base_roundingÚ#TestAsinhLocator.test_base_roundingó  sk   € Ü×%Ò%°1¸qØ+-°Iñ?ˆä˜F×.Ñ.¨t°SÓ9òAô	Bô
 ×$Ò$°!¸bÀqÑIˆÜ˜E×-Ñ-¨e°TÓ:ò6õ	7r8   rC   N)rP   rQ   rR   rS   rù  rw   r  r
  r  r  r  r   r_   rC   r8   r5   rò  rò  œ  s+   † òò!ò>=ò8òKò9ò4õ"7r8   rò  c                   ó¬  • \ rS rSr/ SQrSS/rSS/r/ SQrSS/SS	/S
S/SS/SS//r/ SQr	\
R                  R                  SSS/5      S 5       r\
R                  R                  S\5      S 5       r\
R                  R                  S\5      S 5       r\
R                  R                  S\5      S 5       rS rS rS rS r\
R                  R                  S\5      S  5       r\
R                  R                  S!\	5      S" 5       r\
R                  R                  S#\5      S$ 5       r\
R                  R                  S#\5      S% 5       rS& rS' rS( rS)rg*)+ÚTestScalarFormatteri  ))é{   é½   r   )iCÿÿÿi…ÿÿÿr   )i50  i=0  i40  )iÃÏÿÿiËÏÿÿiÌÏÿÿ)g    øiø@g    ¨jø@é † )g    ¨jøÀg    øiøÀé`yþÿ)g    hiø@g    jø@r&  )g    jøÀg    hiøÀr'  )iOÔ iQÔ iPÔ )i¯+íÿi±+íÿi°+íÿ)r   r   r   )r$  r$  r   )gì/»'Ý?g”ö_˜LÝ?r½   )g
×£p=š­@g33333Ž­@iÄ  )gš™™™‰æ@g    ø`æ@iÈ¯  )g1Ðµ/ G?gšÃÿgÞ»G?gÖÿ9Ì—G?)g\�Âõh˜È@g¤p=
·—È@i.1  )g      "@g      (@r   )g      Œ@ç     À’@r   )g     °�@r(  r   )ç®Gáz®ï?r  r   )g{®Gáú#@g…ëQ¸$@r#   )g�Âõ(\ÿX@gq=
×£ Y@r   )gö(\�Âõ@g
×£p=
@r   )g{®Gáú/@gÃõ(\�0@r•  )g!°rh‘íÜ¿ç°rh‘í|ß?r   )g°rh‘í|ß¿r*  r   )g3333³È@g    @È@i0  )gffff¦ÈÀgffff¦È@r   TF)	)FrÍ   )r*  r   r   F)T©rä  r   )râ  r   r   F)Tr+  )rã  r#   r   F)Tr+  )r  éx   r   F)Tr+  )iˆÿÿÿr  r   F)Tr+  )rî  r  r­  F)T)rŠ   rB  )g   €tÒÚAg   0ëþAr‹  T)TrÍ   ©g     jøÀr,  r"   F)T)r   r   r-  r   Fr   z0.000g�(í¾0‰?z0.012g°rh‘í|¿?z0.123g®Gáz®ó?z1.230gš™™™™™(@z12.300))r»   ú1e-1)r  z1.1e-1)r\  Ú1e8)g    Þ9šAz1.1e8zunicode_minus, result)Tõ   âˆ’1)Fú-1c                 óÊ   • U[         R                  S'   [        R                  " 5       R                  R                  5       R                  S5      R                  5       U:X  d   eg )Núaxes.unicode_minusr   )r˜   r]  rÃ   ÚgcarÇ   Úget_major_formatterÚformat_data_shortÚstrip)r0   Úunicode_minusrM   s      r5   Útest_unicode_minusÚ&TestScalarFormatter.test_unicode_minusC  sO   € ð .;Œ�‰Ð)Ñ*ä�GŠG‹I�O‰O×/Ñ/Ó1×CÑCÀBÓG×MÑMÓOØóð	ñr8   zleft, right, offsetc                 ób  • [         R                  " 5       u  pEUR                  R                  5       nX:X  a  [        R
                  " [        SS9O	[        5          UR                  X5        S S S 5        UR                  R                  5         UR                  U:X  d   eX:X  a  [        R
                  " [        SS9O	[        5          UR                  X!5        S S S 5        UR                  R                  5         UR                  U:X  d   eg ! , (       d  f       N©= f! , (       d  f       NL= f)NzAttempting to set identicalrA   )rÃ   rÄ   rÇ   r5  rD   rv  rw  r   rÅ   Ú_update_ticksr‘   )r0   ÚleftÚrightr‘   rÊ   rË   Ú	formatters          r5   Útest_offset_valueÚ%TestScalarFormatter.test_offset_valueK  sé   € ä—,’,“.‰ˆØ—H‘H×0Ñ0Ó2ˆ	ð “ô �lŠlœ;Ð.KÒLÜ$/£Mñ2à�K‰K˜Ô$÷2ð 	�‰×ÑÔ Ø×Ñ 6Ó)Ð)Ð)ð “ô �lŠlœ;Ð.KÒLÜ$/£Mñ2à�K‰K˜Ô$÷2ð 	�‰×ÑÔ Ø×Ñ 6Ó)Ð)Ñ)÷2õ 2ú÷2õ 2ús   ÁDÃD Ä
DÄ 
D.Ú
use_offsetc                 óâ   • [         R                  " SU05         [        R                  " 5       nXR	                  5       :X  d   eUR
                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nzaxes.formatter.useoffsetr   )r˜   r™   r-   ÚScalarFormatterÚget_useOffsetr‘   )r0   rB  Útmp_forms      r5   Útest_use_offsetÚ#TestScalarFormatter.test_use_offset\  sV   € ä�^Š^Ð7¸ÐDÕEÜ×.Ò.Ó0ˆHØ×!7Ñ!7Ó!9Ó9Ð9Ð9Ø—?‘? aÓ'Ð'Ñ'÷ F×EÖEús   ™=A Á 
A.Úuse_math_textc                 ó¾   • [         R                  " SU05         [        R                  " 5       nXR	                  5       :X  d   e S S S 5        g ! , (       d  f       g = f)Núaxes.formatter.use_mathtext)r˜   r™   r-   rD  Úget_useMathText)r0   rI  rF  s      r5   Útest_useMathTextÚ$TestScalarFormatter.test_useMathTextc  sD   € ä�^Š^Ð:¸MÐJÕKÜ×.Ò.Ó0ˆHØ ×$<Ñ$<Ó$>Ó>Ð>Ñ>÷ L×KÖKús   ™+AÁ
Ac                 ó¢   • [         R                  " 5       nUR                  S5        UR                  5       (       a   eUR                  S:X  d   eg )Nr   ©r-   rD  Úset_useOffsetrE  r‘   ©r0   rF  s     r5   Útest_set_use_offset_floatÚ-TestScalarFormatter.test_set_use_offset_floati  sE   € Ü×*Ò*Ó,ˆØ×Ñ˜sÔ#Ø×)Ñ)×+Ñ+Ð+Ð+Ø�‰ #Ó%Ð%Ñ%r8   c                 ó  • [         R                  " 5       nUR                  S5        UR                  5       (       d   eUR                  S:X  d   eUR                  S5        UR                  5       (       a   eUR                  S:X  d   eg )NTr   FrP  rR  s     r5   Útest_set_use_offset_boolÚ,TestScalarFormatter.test_set_use_offset_boolo  sz   € Ü×*Ò*Ó,ˆØ×Ñ˜tÔ$Ø×%Ñ%×'Ñ'Ð'Ð'Ø�‰ !Ó#Ð#Ð#à×Ñ˜uÔ%Ø×)Ñ)×+Ñ+Ð+Ð+Ø�‰ !Ó#Ð#Ñ#r8   c                 ó¢   • [         R                  " 5       nUR                  S5        UR                  5       (       a   eUR                  S:X  d   eg )Nr   rP  rR  s     r5   Útest_set_use_offset_intÚ+TestScalarFormatter.test_set_use_offset_inty  sE   € Ü×*Ò*Ó,ˆØ×Ñ˜qÔ!Ø×)Ñ)×+Ñ+Ð+Ð+Ø�‰ !Ó#Ð#Ñ#r8   c                 ó  • [         R                  " 5       nUS   nU(       a  US   SS  / [         R                  /4;   a  [        R                  " S5        [
        R                  " SS05         [        R                  " 5       nUR                  5       (       d   eUR                  5         UR                  R                  SS5        UR                  / S	Q5        X#" S
5      ;   d   e S S S 5        g ! , (       d  f       g = f)NÚthousands_sepÚgroupingr   zLocale does not apply groupingzaxes.formatter.use_localeTr   r#   )r   r   rd   g    eÍÍA)ÚlocaleÚ
localeconvÚCHAR_MAXrD   Úskipr˜   r™   r-   rD  Úget_useLocaleræ  rç  Úset_data_intervalÚset_locs)r0   ÚconvÚseprF  s       r5   Útest_use_localeÚ#TestScalarFormatter.test_use_locale  sË   € Ü× Ò Ó"ˆØ�?Ñ#ˆÞ�d˜:Ñ& r sÐ+°´V·_±_Ð4EÐ/FÓFÜ�KŠKÐ8Ô9ä�^Š^Ð8¸$Ð?Õ@Ü×.Ò.Ó0ˆHØ×)Ñ)×+Ñ+Ð+Ð+à×&Ñ&Ô(Ø�M‰M×+Ñ+¨A¨rÔ2Ø×ÑšiÔ(Ø˜( 3›-Ó'Ð'Ñ'÷ A×@Ö@ús   Á-A9C0Ã0
C>z.sci_type, scilimits, lim, orderOfMag, fewticksc                 óÔ  • [         R                  " 5       nUR                  U5        UR                  U5        [        R
                  " 5       u  pxUR                  R                  U5        UR                  " U6   U(       a/  UR                  R                  [         R                  " S5      5        UR                  UR                  R                  5       5        XFR                  :X  d   eg )Nr¢   )r-   rD  Úset_scientificÚset_powerlimitsrÃ   rÄ   r  Úset_major_formatterr  r  r.   rd  Úget_majorticklocsÚ_orderOfMagnitude)	r0   Úsci_typeÚ	scilimitsr  Ú
orderOfMagÚfewticksrF  rÊ   rË   s	            r5   Útest_scilimitsÚ"TestScalarFormatter.test_scilimitsŽ  s¦   € ô ×*Ò*Ó,ˆØ×Ñ Ô)Ø× Ñ  Ô+Ü—,’,“.‰ˆØ
�‰×$Ñ$ XÔ.Ø
�Š�SÑÞØ�H‰H×&Ñ&¤w×':Ò':¸1Ó'=Ô>à×Ñ˜"Ÿ(™(×4Ñ4Ó6Ô7Ø×7Ñ7Ó7Ð7Ñ7r8   zvalue, expectedc                 ó‚   • S[         R                  S'   [        R                  " 5       nUR	                  U5      U:X  d   eg )NFr3  )r˜   r]  r-   rD  Úformat_data)r0   Úvaluer3   Úsfs       r5   Útest_format_dataÚ$TestScalarFormatter.test_format_data�  s6   € à-2Œ�‰Ð)Ñ*Ü×$Ò$Ó&ˆØ�~‰~˜eÓ$¨Ó0Ð0Ñ0r8   zdata, expectedc                 óº   • [         R                  " 5       u  p4UR                  SS5        UR                  R	                  5       R
                  nU" U5      U:X  d   eg )Nr   r   )rÃ   rÄ   rÅ   rÇ   r5  r6  )r0   r–   r3   rÊ   rË   Úfmts         r5   Útest_cursor_precisionÚ)TestScalarFormatter.test_cursor_precision£  sG   € ä—,’,“.‰ˆØ
�‰�B˜ÔØ�h‰h×*Ñ*Ó,×>Ñ>ˆÙ�4‹y˜HÓ$Ð$Ñ$r8   c                 ó:  • [         R                  " 5       nUR                  5         UR                  R	                  SS5        UR
                  nU" U5      U:X  d   eUR                  R                  5       S:X  d   eUR                  R                  5       S:X  d   eg )Nr   r#   r‹  )r-   rD  ræ  rç  rè  r6  Úget_tick_spaceÚ
get_minpos)r0   r–   r3   rx  r|  s        r5   Útest_cursor_dummy_axisÚ*TestScalarFormatter.test_cursor_dummy_axisª  s…   € ô ×$Ò$Ó&ˆØ
×ÑÔØ
�‰×!Ñ! ! RÔ(Ø×"Ñ"ˆÙ�4‹y˜HÓ$Ð$Ð$Ø�w‰w×%Ñ%Ó'¨1Ó,Ð,Ð,Ø�w‰w×!Ñ!Ó# qÓ(Ð(Ñ(r8   c                 óÜ  • [         R                  R                  SSSS.5        [        [        R
                  5      R                  S:  ag  [        R                  " [        SS9   [        R                  " 5       u  pUR                  / SQ5        UR                  R                  5         S S S 5        g [        R                  " [        S	S9   [        R                  " [        SS9   [        R                  " 5       u  pUR                  / SQ5        UR                  R                  5         S S S 5        S S S 5        g ! , (       d  f       g = f! , (       d  f       N(= f! , (       d  f       g = f)
NÚserifÚcmr10F)úfont.familyz
font.serifrK  rs   zcmr10 font should ideallyrA   rÝ  z
Glyph 8722)r˜   r]  ÚupdateÚparse_versionrD   Ú__version__r  rv  rw  rÃ   rÄ   râ   ÚcanvasÚdrawr8  s      r5   Útest_mathtext_ticksÚ'TestScalarFormatter.test_mathtext_ticksµ  sï   € Ü�‰×ÑØ"Ø!Ø+0ñ
ô 	ô œ×+Ñ+Ó,×2Ñ2°QÓ6Ü—’œkÐ1LÓMÜŸ,š,›.‘�Ø—‘šjÔ)Ø—
‘
—‘Ô!÷ NÐMô
 —,’,œ{°,Ó?Ü—,’,œ{Ð2MÓNÜŸ,š,›.‘�Ø—‘šjÔ)Ø—
‘
—‘Ô!÷ O÷ @Ð?÷ NÕMú÷ OÕNú÷ @Õ?ús2   Á$AD;ÃEÃ%AEÄ*EÄ;
E	Å
E	ÅEÅ
E+c                 óú  • [         R                  R                  SSSS.5        UR                  [        R
                  SS9   [        R                  " 5       u  p#UR                  SS/S	S/5        UR                  S
5        / SQn[        R                  " 5       nUR                  U[        XT5      5        UR                  R                  5         UR                   (       a   e S S S 5        g ! , (       d  f       g = f)Nr†  ÚcmT)r‡  zmathtext.fontsetrK  zmatplotlib.mathtext)Úloggerg¸…ëQ¸ž¿rº   rå  r5  )r  r¼   r¢   r  )r˜   r]  rˆ  Úat_levelÚloggingÚWARNINGrÃ   rÄ   Úplotr6  r-   ÚLogFormatterSciNotationÚ
set_yticksÚmapr‹  rŒ  Útext)r0   ÚcaplogrÊ   rË   Úyticksr?  s         r5   Útest_cmr10_substitutionsÚ,TestScalarFormatter.test_cmr10_substitutionsÈ  s·   € Ü�‰×ÑØ"Ø $Ø+/ñ
ô 	ð �_‰_œWŸ_™_Ð5Jˆ_ÒKÜ—l’l“n‰GˆCØ�G‰G�U˜D�M B¨ :Ô.Ø�M‰M˜%Ô Ú'ˆFÜ×7Ò7Ó9ˆIØ�M‰M˜&¤# iÓ"8Ô9Ø�J‰J�O‰OÔØ—{—{Ð"�?�{÷ L×KÖKús   ÁB C,Ã,
C:c                 ól   • [         R                  " 5       nUR                  / 5        U" S5      S:X  d   eg )Nr   Ú )r-   rD  rd  )r0   rx  s     r5   Útest_empty_locsÚ#TestScalarFormatter.test_empty_locsÚ  s+   € Ü×$Ò$Ó&ˆØ
�‰�BŒÙ�#‹w˜"‹}Ð‰}r8   rC   N)rP   rQ   rR   rS   Úoffset_dataÚuse_offset_dataÚuseMathText_dataÚscilimits_dataÚcursor_datarv  rD   rY   rZ   r9  r@  rG  rM  rS  rV  rY  rg  rs  ry  r}  r‚  r�  rœ  r   r_   rC   r8   r5   r#  r#    s¿  † ò€KðB ˜U�m€Oà˜e�}Ðò
€Nð 
ˆWˆØ	�ÐØ	�ÐØ	�ÐØ	ˆxÐð€Kò€Kð ‡[�[×ÑÐ4Ø7¸ÐGóIñóIðð ‡[�[×ÑÐ2°KÓ@ñ*ó Að*ð  ‡[�[×Ñ˜\¨?Ó;ñ(ó <ð(ð ‡[�[×Ñ˜_Ð.>Ó?ñ?ó @ð?ò
&ò$ò$ò(ð ‡[�[×ÑØ8¸.óJñ8óJð8ð ‡[�[×ÑÐ.°Ó<ñ1ó =ð1ð
 ‡[�[×ÑÐ-¨{Ó;ñ%ó <ð%ð ‡[�[×ÑÐ-¨{Ó;ñ)ó <ð)ò"ò&#õ$r8   r#  c                   óÄ  • \ rS rSrSS\R
                  " SS5      \R
                  " SS5      / SQ4SS\R                  " S	S
\R                  SSS/5      \" S5      / SQ4SS\R                  " / SQ\	S9\" S5      / SQ4/r
SSS\R                  \R                  /r\R                  R                  S\
5      \R                  R                  S\5      S 5       5       rS rSrg)ÚTestLogFormatterExponentià  Tr¢   r­  r.  )z-3z-2r1  Ú0Ú1Ú2Ú3Fr#   r»   r)  ri   rÔ   gñhãˆµøä¾r   )ú0.1z1e-05ú3.14z0.2z-0.2z-1e-05r  )rd   r"   rì  é*   ©Údtype)r¬  Ú5Ú12Ú42r}   rÜ   r*  z2labelOnlyBase, exponent, locs, positions, expectedr‡   c                 óB  • [         R                  " UUS9nUR                  5         UR                  R	                  SX#-  5        X$-  n[        X…5       V	V
s/ s H  u  pšU" Xš5      PM     nn	n
U Vs/ s H  oÌR                  SS5      PM     nnX¶:X  d   eg s  sn
n	f s  snf )N©r‡   ÚlabelOnlyBaser   Ú-u   âˆ’)r-   ÚLogFormatterExponentræ  rç  rè  r#  Úreplace)r0   r·  r‡   ÚexponentÚlocsÚ	positionsr3   r?  Úvalsrï   ÚposÚlabelsÚlabels                r5   r6   Ú#TestLogFormatterExponent.test_basicî  s˜   € ô
 ×0Ò0°dØ?LñNˆ	à×#Ñ#Ô%Ø�‰×(Ñ(¨¨D©NÔ;Ø‰zˆÜ47¸Ô4HÔIÒ4H©¨‘)˜AÖ#Ñ4HˆÑIÙFNÓOÂh¸U—M‘M #Ð'7Ö8ÁhˆÐOØÓ!Ð!Ñ!ùó JùÚOs   ÁBÁ1Bc                 ó¢   • [         R                  " SSS9nUR                  5         UR                  R	                  SS5        U" S5      S:X  d   eg )Nr#   Tr¶  r   g&üøŽ$ô?rŸ  )r-   r¹  ræ  rç  rè  )r0   r?  s     r5   Ú
test_blankÚ#TestLogFormatterExponent.test_blankü  sG   € ä×0Ò0°bÈÑMˆ	Ø×#Ñ#Ô%Ø�‰×(Ñ(¨¨BÔ/Ù˜Ó! RÓ'Ð'Ñ'r8   rC   N)rP   rQ   rR   rS   rT   rV   rU   Úpir   ÚfloatÚ
param_dataÚeÚ	base_datarD   rY   rZ   r6   rÄ  r_   rC   r8   r5   r¨  r¨  à  sã   † à	ˆq�"—)’)˜B Ó$ b§i¢i°°CÓ&8Ú	/ð	1ð 
��B—H’H˜c 7¨B¯E©E°3¸¸hÐGÓHÙ	ˆq‹ÒDð	Fà	��B—H’Hš^°5Ñ9¹5À»8Ú	ð	!ð	€Jð �c˜4 §¡¨¯©Ð-€Ià‡[�[×ÑØ@À*óNà‡[�[×Ñ˜V YÓ/ñ	"ó 0óNð	"õ(r8   r¨  c                   ó‚   • \ rS rSr\R
                  " 5       r/ SQr\R                  R                  S\5      S 5       rSrg)ÚTestLogFormatterMathtexti  ))r   r   ú$\mathdefault{10^{0}}$)r   r  z$\mathdefault{10^{-2}}$)r   r   z$\mathdefault{10^{2}}$)rd   r   z$\mathdefault{1}$)rd   r  z$\mathdefault{0.01}$)rd   r   z$\mathdefault{100}$)rd   r   z$\mathdefault{10^{-3}}$)rd   r+  z$\mathdefault{10^{3}}$zmin_exponent, value, expectedc                 ó˜   • [         R                  " SU05         U R                  U5      U:X  d   e S S S 5        g ! , (       d  f       g = f)Nzaxes.formatter.min_exponent)r˜   r™   r|  )r0   Úmin_exponentrw  r3   s       r5   Útest_min_exponentÚ*TestLogFormatterMathtext.test_min_exponent  s7   € ä�^Š^Ð:¸LÐIÕJØ—8‘8˜E“? hÓ.Ð.Ñ.÷ K×JÖJús	   ™;»
A	rC   N)rP   rQ   rR   rS   r-   ÚLogFormatterMathtextr|  Ú	test_datarD   rY   rZ   rÐ  r_   rC   r8   r5   rÌ  rÌ    s>   † Ø
×
&Ò
&Ó
(€Cò	€Ið ‡[�[×ÑÐ<¸iÓHñ/ó Ió/r8   rÌ  c                   óœ   • \ rS rSr/ SQr\R                  R                  S5      \R                  R                  S\5      S 5       5       rSrg)ÚTestLogFormatterSciNotationi  ))r   g       ?z$\mathdefault{2^{-5}}$)r   r   z$\mathdefault{2^{0}}$)r   é    z$\mathdefault{2^{5}}$)r   g333333£?z$\mathdefault{1.2\times2^{-5}}$)r   r�   z$\mathdefault{1.2\times2^{0}}$)r   g333333C@z$\mathdefault{1.2\times2^{5}}$)r#   r   z$\mathdefault{-10^{0}}$)r#   r)  z$\mathdefault{10^{-5}}$)r#   r   rÍ  )r#   r&  z$\mathdefault{10^{5}}$)r#   gñhãˆµøô>z$\mathdefault{2\times10^{-5}}$)r#   r   z$\mathdefault{2\times10^{0}}$)r#   i@ z$\mathdefault{2\times10^{5}}$)r#   r‰  z$\mathdefault{5\times10^{-5}}$)r#   r"   z$\mathdefault{5\times10^{0}}$)r#   i ¡ z$\mathdefault{5\times10^{5}}$Údefaultzbase, value, expectedc                 ó®   • [         R                  " US9n[        R                  " SS05         U" U5      U:X  d   e S S S 5        g ! , (       d  f       g = f)Nr†   útext.usetexF)r-   r–  r˜   r™   )r0   r‡   rw  r3   r?  s        r5   r6   Ú&TestLogFormatterSciNotation.test_basic+  sD   € ô ×3Ò3¸Ñ>ˆ	Ü�^Š^˜]¨EÐ2Õ3Ù˜UÓ# xÓ/Ð/Ñ/÷ 4×3Ö3ús   ­AÁ
ArC   N)rP   rQ   rR   rS   rÓ  r˜   Ústyler  rD   rY   rZ   r6   r_   rC   r8   r5   rÕ  rÕ    sG   † ò€Ið& 	‡Y�Y×Ñ�yÓ!Ø‡[�[×ÑÐ4°iÓ@ñ0ó Aó "ó0r8   rÕ  c                   ó„  • \ rS rSr/ SQr\R                  R                  S\5      S 5       r\R                  R                  S/ SQ5      S 5       r	SS	 jr
\R                  R                  S
5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       rSrg)ÚTestLogFormatteri3  )„)ç}…9“x ?r   z3.142e-5)çÜæGÅ·–4?r   z3.142e-4)ç“à™¶e¼i?r   z3.142e-3)ç\, ’¿ ?r   z3.142e-2)çs7¨v/Ô?r   z3.142e-1)çPERTû!	@r   ú3.142)ç¤Öf)zj?@r   z3.142e1)ç&FàYŒ¢s@r   z3.142e2)ç°WXp/‹¨@r   z3.142e3)çœmnLû­Þ@r   z3.142e4)ç�Å½,Ar   z3.142e5)r)  r   ú1e-5)r   r   ú1e-4)r   r   ú1e-3)r  r   ú1e-2)r»   r   r.  )r   r   rª  )r#   r   Ú10)r   r   Ú100)r(  r   Ú1000)é'  r   Ú1e4)r&  r   Ú1e5)rÞ  r  r©  )rß  r  r©  )rà  r  ú0.003)rá  r  ú0.031)râ  r  ú0.314)rã  r  rä  )rå  r  ú31.416)ræ  r  ú314.159)rç  r  ú3141.593)rè  r  ú	31415.927)ré  r  ú
314159.265)r)  r  r©  )r   r  r©  )r   r  ú0.001)r  r  ú0.01)r»   r  r­  )r   r  rª  )r#   r  rî  )r   r  rï  )r(  r  rð  )rñ  r  Ú10000)r&  r  Ú100000)rÞ  r   r©  )rß  r   r©  )rà  r   rô  )rá  r   rõ  )râ  r   rö  )rã  r   rä  )rå  r   r÷  )ræ  r   rø  )rç  r   rù  )rè  r   rú  )ré  r   rû  )r)  r   r©  )r   r   r©  )r   r   rü  )r  r   rý  )r»   r   r­  )r   r   rª  )r#   r   rî  )r   r   rï  )r(  r   rð  )rñ  r   rþ  )r&  r   rÿ  )rÞ  r"   r©  )rß  r"   r©  )rà  r"   r©  )rá  r"   z0.03)râ  r"   z0.31)rã  r"   r®  )rå  r"   z31.42)ræ  r"   z314.16)rç  r"   z3141.59)rè  r"   z31415.93)ré  r"   z	314159.27)r)  r"   r©  )r   r"   r©  )r   r"   r©  )r  r"   rý  )r»   r"   r­  )r   r"   rª  )r#   r"   rî  )r   r"   rï  )r(  r"   rð  )rñ  r"   rþ  )r&  r"   rÿ  )rÞ  r   r©  )rß  r   r©  )rà  r   r©  )rá  r   r©  )râ  r   z0.3)rã  r   ú3.1)rå  r   z31.4)ræ  r   z314.2)rç  r   z3141.6)rè  r   z31415.9)ré  r   z314159.3)r)  r   r©  )r   r   r©  )r   r   r©  )r  r   r©  )r»   r   r­  )r   r   rª  )r#   r   rî  )r   r   rï  )r(  r   rð  )rñ  r   rþ  )r&  r   rÿ  )rÞ  rR  z3.1e-5)rß  rR  z3.1e-4)rà  rR  z3.1e-3)rá  rR  z3.1e-2)râ  rR  z3.1e-1)rã  rR  r   )rå  rR  z3.1e1)ræ  rR  z3.1e2)rç  rR  z3.1e3)rè  rR  z3.1e4)ré  rR  z3.1e5)r)  rR  rê  )r   rR  rë  )r   rR  rì  )r  rR  rí  )r»   rR  r.  )r   rR  rª  )r#   rR  rî  )r   rR  rï  )r(  rR  rð  )rñ  rR  rò  )r&  rR  ró  zvalue, domain, expectedc                 ó^   • [         R                  " 5       nUR                  X5      nXS:X  d   eg ©N)r-   ÚLogFormatterÚ_pprint_val)r0   rw  Údomainr3   r|  rÁ  s         r5   Útest_pprintÚTestLogFormatter.test_pprint»  s*   € ä×"Ò"Ó$ˆØ—‘ Ó.ˆØÓ Ð Ñ r8   zvalue, long, short))r   r©  r©  )r   r©  r©  )rØ   z-10^0r1  )g»½×Ùß|ë=z2x10^-10z2e-10)g    _ Bz10^10z1e+10c                 óä   • [         R                  " 5       u  pEUR                  S5        UR                  R	                  5       nUR                  U5      U:X  d   eUR                  U5      U:X  d   eg )Nr5  )rÃ   rÄ   Ú
set_xscalerÇ   r5  rv  r6  )r0   rw  ÚlongÚshortrÊ   rË   r|  s          r5   ry  Ú!TestLogFormatter.test_format_dataÁ  s_   € ô —,’,“.‰ˆØ
�‰�eÔØ�h‰h×*Ñ*Ó,ˆØ�‰˜uÓ%¨Ó-Ð-Ð-Ø×$Ñ$ UÓ+¨uÓ4Ð4Ñ4r8   rC   c                 óX  • UR                  5       nUR                  5       nUR                  U5        US[        R                  " [        R
                  " U5      5      -  -  nU Vs/ s H  n[        U5      U;   PM     nnU Vs/ s H  oƒ" U5      S:g  PM     n	nX—:X  d   egs  snf s  snf )z.Test whether locator marks subs to be labeled.r#   rŸ  N)Úget_minor_formatterrä   rd  rT   rž  rŸ  Úround)
r0   rç  r=  r|  Úminor_tlocsÚcoefsÚcÚlabel_expectedrï   Ú
label_tests
             r5   Ú_sub_labelsÚTestLogFormatter._sub_labelsÏ  s˜   € à×&Ñ&Ó(ˆØ×,Ñ,Ó.ˆØ�‰�[Ô!Ø˜b¤2§8¢8¬B¯HªH°[Ó,AÓ#BÑCÑCˆÙ49Ó:²E¨qœ% ›( dÔ*±EˆÐ:Ù,7Ó8ªK q�c˜!“f ”l©Kˆ
Ð8ØÓ+Ð+Ñ+ùò ;ùÚ8s   Á&B"ÂB'r×  c           	      ób  • [         R                  " 5       u  pUR                  S5        UR                  R	                  [
        R                  " S/ S95        UR                  R                  [
        R                  " S[        R                  " SS5      S95        UR                  R                  [
        R                  " SS95        UR                  R                  [
        R                  " SS95        UR                  SS	5        UR                  R                  5       nUR                  UR                  R!                  5       5        UR                  R!                  5        Vs/ s H  nU" U5      S
:g  PM     nn[        R"                  " U5      (       d   eU R%                  UR                  / S9  UR                  SS5        U R%                  UR                  / S9  UR                  SS5        U R%                  UR                  / S9  UR                  SS5        U R%                  UR                  / SQS9  UR                  SS5        U R%                  UR                  / SQS9  UR                  SS5        U R%                  UR                  [        R                  " SS[&        S9S9  g s  snf )Nr5  r#   )r‡   r=  r   T)r·  Fr   rM  rŸ  r<  i   éP   r×   r‹  )r   rd   r¢   r   rs   r   r¿   r°  )rÃ   rÄ   r	  rÇ   r  r-   r/  rÝ   rT   rV   rl  r  Úset_minor_formatterrÅ   r5  rd  rm  rL   r  r�  )r0   rÊ   rË   r|  rï   Úshow_major_labelss         r5   Útest_sublabelÚTestLogFormatter.test_sublabelÙ  s  € ô —,’,“.‰ˆØ
�‰�eÔØ
�‰×"Ñ"¤7×#5Ò#5¸2ÀBÑ#GÔHØ
�‰×"Ñ"¤7×#5Ò#5¸2Ü;=¿9º9ÀQÈÓ;Kñ$Mô 	Nà
�‰×$Ñ$¤W×%9Ò%9ÈÑ%MÔNØ
�‰×$Ñ$¤W×%9Ò%9ÈÑ%NÔOà
�‰�A�sÔØ�h‰h×*Ñ*Ó,ˆØ�‰�R—X‘X×/Ñ/Ó1Ô2à&(§h¡h×&@Ñ&@Ô&BóDÚ&B ñ ! ›V rœ\Ù&Bð 	ð Dä�vŠvÐ'×(Ñ(Ð(Ð(Ø×Ñ˜Ÿ™¨ÐÑ+ð 	�‰�A�sÔØ×Ñ˜Ÿ™¨ÐÑ+ð 	�‰�A�rÔØ×Ñ˜Ÿ™¨ÐÑ+ð 	�‰�B˜ÔØ×Ñ˜Ÿ™ªÐÑ5ð 	�‰�A�qÔØ×Ñ˜Ÿ™ªÐÑ5ð 	�‰�C˜ÔØ×Ñ˜Ÿ™¬¯	ª	°!°R¼sÑ(CÐÒDùò7Ds   Å%J,Úval)r   r#   r   r(  c                 ó´   • [         R                  " 5       nUR                  5         UR                  R	                  SS5        U" U5      [        U5      :X  d   eg ©Nr   r#   )r-   r  ræ  rç  rè  Ústr©r0   r  Útemp_lfs      r5   Útest_LogFormatter_callÚ'TestLogFormatter.test_LogFormatter_call  sH   € ô ×&Ò&Ó(ˆØ×!Ñ!Ô#Ø�‰×&Ñ& q¨"Ô-Ù�s‹|œs 3›xÓ'Ð'Ñ'r8   )g       g       g       g       c                 ó–   • [         R                  " 5       nUR                  5         UR                  R	                  SS5        U" U5        g r  )r-   r  ræ  rç  rè  r!  s      r5   Útest_LogFormatter_call_tinyÚ,TestLogFormatter.test_LogFormatter_call_tiny  s9   € ô ×&Ò&Ó(ˆØ×!Ñ!Ô#Ø�‰×&Ñ& q¨"Ô-Ù��r8   N)rC   )rP   rQ   rR   rS   Úpprint_datarD   rY   rZ   r  ry  r  r˜   rÛ  r  r  r#  r&  r_   rC   r8   r5   rÝ  rÝ  3  sÕ   † òE€KðN ‡[�[×ÑÐ6¸ÓDñ!ó Eð!ð
 ‡[�[×ÑÐ1ò 4ó ñ5óð5ô,ð 	‡Y�Y×Ñ�yÓ!ñ(Eó "ð(EðT ‡[�[×Ñ˜UÒ$6Ó7ñ(ó 8ð(ð ‡[�[×Ñ˜UÒ$FÓGñó Hór8   rÝ  c                   óà  • \ rS rSr\S 5       r\R                  R                  S/ SQ5      S 5       r	\
" \" SS5       V Vs/ s H	  nSU* -  PM     snn \" SS5       V Vs/ s H  nSSU* -  -
  PM     snn -   S/-   5      r\R                  R                  S	\5      S
 5       r\R                  R                  S	S5      S 5       r\R                  R                  S	SS\R                   " \R"                  " SSS5      * 5      -   -  5      S 5       r/ SQr\R                  R                  S\5      S 5       rS rS rS r\R                  R                  SS5      S 5       rSrgs  snn f s  snn f )ÚTestLogitFormatteri  c                 óˆ  • [         R                  " SU 5      nU(       a]  US   SLnUS   (       a  [        US   5      OSnUS   b  [        US   5      OSnUSU-  -  nUS   (       d  US   b  U(       a  SU-
  $ U$ [         R                  " S	U 5      nU(       a  [        US
   5      [        US   5      pvXg-  $ [	        S5      e)z�
Parser to convert string as r'$\mathdefault{1.41\cdot10^{-4}}$' in
float 1.41e-4, as '0.5' or as r'$\mathdefault{\frac{1}{2}}$' in float
0.5,
zT[^\d]*(?P<comp>1-)?(?P<mant>\d*\.?\d*)?(?:\\cdot)?(?:10\^\{(?P<expo>-?\d*)})?[^\d]*$ÚcompNÚmantr   Úexpor   r#   z4[^\d]*\\frac\{(?P<num>\d+)\}\{(?P<deno>\d+)\}[^\d]*$ÚnumÚdenozNot formatted by LogitFormatter)r\   rB   rÇ  r�  r^   )ÚstringrB   r,  Úmantissar.  rw  r/  r0  s           r5   Úlogit_deformatterÚ$TestLogitFormatter.logit_deformatter  sÓ   € ô —’ðð ó
ˆö Ø˜‘=¨Ð,ˆDØ/4°V¯}”u˜U 6™]Ô+À!ˆHØ).¨v©Ñ)B”3�u˜V‘}Ô%ÈˆDØ˜r T™zÑ)ˆEØ�V�}  f¡Ñ 9ÞØ˜u™9Ð$Ø�Ü—’ØCÀVó
ˆö Ü˜e E™lÓ+¬U°5¸±=Ó-A�Ø‘:ÐÜÐ:Ó;Ð;r8   zfx, x))zSTUFF0.41OTHERSTUFFg=
×£p=Ú?)zSTUFF1.41\cdot10^{-2}OTHERSTUFFgÿ!ýöuàŒ?)zSTUFF1-0.41OTHERSTUFFgâz®Gáâ?)z!STUFF1-1.41\cdot10^{-2}OTHERSTUFFgx$(~Œï?)ÚSTUFFN)zSTUFF12.4e-3OTHERSTUFFNc                 ó   • Uc9  [         R                  " [        5         [        R	                  U5        S S S 5        g [        R	                  U5      n[
        R                  X#5      (       d   eg ! , (       d  f       g = fr  )rD   rE   r^   r*  r3  r{  r}  )r0   Úfxrï   r  s       r5   Útest_logit_deformaterÚ(TestLogitFormatter.test_logit_deformater7  s]   € ð ‰9Ü—’œzÕ*Ü"×4Ñ4°RÔ8÷ +Ð*ô #×4Ñ4°RÓ8ˆAÜ×'Ñ'¨×-Ñ-Ð-Ñ-÷	 +Õ*ús   žA/Á/
A=r   r#   r   rï   c                 óÔ   • [         R                  " SS9nUR                  U R                  5        U" U5      n[        R                  U5      n[        R                  X5      (       d   eg)zR
Test the formatted value correspond to the value for ideal ticks in
logit space.
F©Úuse_overlineN)r-   ÚLogitFormatterrd  Údecade_testr*  r3  r{  r}  )r0   rï   r?  ÚsÚx2s        r5   r6   ÚTestLogitFormatter.test_basicP  sX   € ô ×*Ò*¸Ñ>ˆ	Ø×Ñ˜4×+Ñ+Ô,Ù�a‹LˆÜ×1Ñ1°!Ó4ˆÜ×#Ñ# A×*Ñ*Ð*Ñ*r8   )r   rÙ   r   r   r!   r   c                 ó‚   • [         R                  " SS9nUR                  U R                  5        U" U5      nUS:X  d   eg)zT
Test that invalid value are formatted with empty string without
raising exception.
Fr;  rŸ  N)r-   r=  rd  r>  )r0   rï   r?  r?  s       r5   Útest_invalidÚTestLogitFormatter.test_invalid\  s<   € ô ×*Ò*¸Ñ>ˆ	Ø×Ñ˜4×+Ñ+Ô,Ù�a‹LˆØ�B‹wˆ‰wr8   rŠ   rB  c                 óD  • [         R                  " SS9nS H†  nUSU-  -   S:  d  M  UR                  USU-  -
  XSU-  -   /5        U" U5      nU" USU-  -   5      n[        R	                  U5      [        R	                  U5      -
  nSUs=:  a  SU-  :  a  Mƒ   e   e   g)zC
The format length should change depending on the neighbor labels.
Fr;  )	r#   r   r  r   éÈ   r(  iÐ  éˆ  rñ  r   r   r   N)r-   r=  rd  r*  r3  )r0   rï   r?  ÚNÚsxÚsx1Úds          r5   Útest_variablelengthÚ&TestLogitFormatter.test_variablelengthg  s­   € ô
 ×*Ò*¸Ñ>ˆ	Û@ˆAØ�1�q‘5‰y˜1�}Ø×"Ñ" A¨¨A©¡I¨q°a¸!±e±)Ð#<Ô=Ù˜q“\�Ù  A¨¡E¡	Ó*�ä&×8Ñ8¸Ó=Ü(×:Ñ:¸2Ó>ñ?ð ð ˜1•}˜q 1™u•}Ð$‘}Ð$�}ò Ar8   ))TrŠ  )©r  F)éK   F)Trˆ  )rN  ©rO  T)Tr‡  )©r  TrP  )F)r   gR¸…ëQè?g¤p=
×£è?))rB  TrQ  rP  zmethod, lims, casesc                 óÆ  • U(       a$  [         R                  " SS9nUR                  " U6 nO[        R                  " U5      n[         R
                  " SS9nU H�  u  pxUR                  U5        UR                  U5      n	U	 V
s/ s H  n
[        U
5      S:”  d  M  U
PM     nn
U(       a  [        U5      S:”  d   Xx45       eMj  [        U5      S:X  a  M{   Xx45       e   gs  sn
f )z
Test minor/major displays.
TrÁ   r   N)	r-   rŽ  r/   rT   rU   r=  Úset_minor_thresholdÚformat_ticksrã   )r0   Úmethodr�  ÚcasesÚmin_locr˜  Úmin_formÚ	thresholdÚ	has_minorÚ	formattedÚfÚlabelleds               r5   Útest_minor_vs_majorÚ&TestLogitFormatter.test_minor_vs_major  sÉ   € ö Ü×*Ò*°Ñ6ˆGØ×'Ò'¨Ð.‰Eä—H’H˜T“NˆEÜ×)Ò)°Ñ5ˆÛ$)Ñ ˆIØ×(Ñ(¨Ô3Ø ×-Ñ-¨eÓ4ˆIÙ#,Ó;¢9˜a´°A³¸±
Ÿ¡9ˆHÐ;ÞÜ˜8“} qÓ(Ð@¨9Ð*@Ó@Ò(ä˜8“}¨Õ)ÐA¨IÐ+AÓAÐ)ò %*ùò <s   ÂCÂCc                 ó@  • [         R                  " SS9n[         R                  " SS9nUR                  SS5      nS HY  nUR	                  U5        UR                  U5      nU Vs/ s H  n[        U5      S:”  d  M  UPM     nn[        U5      U:X  a  MY   e   gs  snf )z!
Test the parameter minor_number
TrÁ   rº   r   )r   r¢   rs   r•  r   N)r-   rŽ  r=  r/   Úset_minor_numberrT  rã   )r0   rW  rX  r˜  Úminor_numberr[  r\  r]  s           r5   Útest_minor_numberÚ$TestLogitFormatter.test_minor_number”  s“   € ô ×&Ò&¨TÑ2ˆÜ×)Ò)°Ñ5ˆØ×#Ñ# D¨(Ó3ˆÛ)ˆLØ×%Ñ% lÔ3Ø ×-Ñ-¨eÓ4ˆIÙ#,Ó;¢9˜a´°A³¸±
Ÿ¡9ˆHÐ;Ü�x“= LÕ0Ð0Ð0ò	 *ùò <s   Á&BÁ=Bc                 óÐ   • SnSnSn[         R                  " SS9nU" U5      U:X  d   eUR                  S5        U" U5      U:X  d   eUR                  S5        U" U5      U:X  d   eg)z!
Test the parameter use_overline
r)  z$\mathdefault{1-10^{-2}}$z"$\mathdefault{\overline{10^{-2}}}$Fr;  TN)r-   r=  r<  )r0   rï   Úfx1Úfx2Úforms        r5   Útest_use_overlineÚ$TestLogitFormatter.test_use_overline¡  so   € ð ˆØ*ˆØ3ˆÜ×%Ò%°5Ñ9ˆÙ�A‹w˜#‹~Ðˆ~Ø×Ñ˜$ÔÙ�A‹w˜#‹~Ðˆ~Ø×Ñ˜%Ô Ù�A‹w˜#‹~Ð‰~r8   c                 óÆ   • [         R                  " 5       nSU" S5      ;   d   eUR                  S5        SU" S5      ;   d   eUR                  S5        SU" S5      ;   d   eg)z
Test the parameter one_half
z\frac{1}{2}r   z1/2zone halfN)r-   r=  Úset_one_half)r0   rh  s     r5   Útest_one_halfÚ TestLogitFormatter.test_one_half¯  sd   € ô ×%Ò%Ó'ˆØ¡ c£Ó*Ð*Ð*Ø×Ñ˜%Ô Ø™˜S›	Ó!Ð!Ð!Ø×Ñ˜*Ô%Ø™T #›YÓ&Ð&Ñ&r8   rH  )r   éý   iò  c                 ó*  • [         R                  " SSU5      SS n[        R                  " 5       nU H]  nUR	                  U5      nUR                  S5      (       a  S[        USS  5      -
  nO[        U5      n[        XF-
  5      SU-  :  a  M]   e   g )Nr   r   r   z1-r   )rT   r~   r-   r=  r6  Ú
startswithrÇ  Úabs)r0   rH  r¼  rh  rï   r7  r@  s          r5   Útest_format_data_shortÚ)TestLogitFormatter.test_format_data_shortº  s‡   € ä�{Š{˜1˜a Ó# A bÐ)ˆÜ×%Ò%Ó'ˆÛˆAØ×'Ñ'¨Ó*ˆBØ�}‰}˜T×"Ñ"Øœ˜r ! "˜v›Ñ&‘ä˜2“Y�Ü�q‘v“;  Q¡Õ&Ð&Ð&ò r8   rC   N)rP   rQ   rR   rS   r„  r3  rD   rY   rZ   r8  r�  r   r>  r6   rC  rT   Úexpr~   rL  Úlims_minor_majorr^  rc  ri  rm  rs  r_   )rÀ  Úis   00r5   r*  r*    sŸ  † Øñ<ó ð<ð@ ‡[�[×ÑØò	
ó
ñ.ó
ð.ñ Ù" 1 bœ\Ô*š\˜ˆ��Œ™\Ò*Ù#(¨¨B¤<Ô
0¢<˜aˆ1ˆr�q�b‰zŒ>¡<Ò
0ñ	1àˆ'ñ	ó€Kð ‡[�[×Ñ˜S +Ó.ñ	+ó /ð	+ð ‡[�[×Ñ˜SÐ"?Ó@ñó Aðð ‡[�[×Ñ˜S ! q¨2¯6ª6°2·;²;¸rÀ1ÀbÓ3IÐ2IÓ+JÑ'JÑ"KÓLñ%ó Mð%ò Ðð ‡[�[×ÑÐ2Ð4DÓEñBó FðBò(1òò	'ð ‡[�[×Ñ˜S /Ó2ñ	'ó 3ó	'ùóa 	+ùÛ
0s   ÁE$
Á E*r*  c                   ó   • \ rS rSrS rSrg)ÚTestFormatStrFormatteriÇ  c                 óL   • [         R                  " S5      nSU" S5      :X  d   eg )Nz%05dÚ00002r   )r-   ÚFormatStrFormatterrR  s     r5   r6   Ú!TestFormatStrFormatter.test_basicÈ  s$   € ä×-Ò-¨fÓ5ˆØ™( 1›+Ó%Ð%Ñ%r8   rC   N)rP   rQ   rR   rS   r6   r_   rC   r8   r5   ry  ry  Ç  s   † õ&r8   ry  c                   ó`   • \ rS rSr/ SQr\R                  R                  S\5      S 5       rSr	g)ÚTestStrMethodFormatteriÎ  ))ú{x:05d}©r   Fr{  )r€  r�  Tr{  )r€  ©rä  Fz-0002)r€  r‚  Tu   âˆ’0002)ú{x:03d}-{pos:02d}©r   r   Fú002-01)rƒ  r„  Tr…  )rƒ  ©rä  r   Fz-02-01)rƒ  r†  Tu   âˆ’02-01z&format, input, unicode_minus, expectedc                 ó¬   • [         R                  " SU05         [        R                  " U5      nU" U6 U:X  d   e S S S 5        g ! , (       d  f       g = f)Nr3  )r˜   r™   r-   ÚStrMethodFormatter)r0   ÚformatÚinputr8  r3   r|  s         r5   r6   Ú!TestStrMethodFormatter.test_basicÚ  sC   € ä�^Š^Ð1°=ÐAÕBÜ×,Ò,¨VÓ4ˆCÙ˜�; (Ó*Ð*Ñ*÷ C×BÖBús   ™"AÁ
ArC   N)
rP   rQ   rR   rS   rÓ  rD   rY   rZ   r6   r_   rC   r8   r5   r  r  Î  s0   † ò	€Ið ‡[�[×ÑÐEÀyÓQñ+ó Ró+r8   r  c                   ó`   • \ rS rSr/ SQr\R                  R                  S\5      S 5       rSr	g)ÚTestEngFormatteriá  ))FççÆô„EJ“À)z
-1.23457 kú-1 kz-1.23 k)TrŽ  )u   âˆ’1.23457 kõ   âˆ’1 ku	   âˆ’1.23 k)FçÞƒBÊÀó¿)z-1.23457r1  z-1.23)Tr‘  )u
   âˆ’1.23457r0  u   âˆ’1.23)Fç_c97Ýš¿¿)z
-123.457 mz-123 mz	-123.46 m)Tr’  )u   âˆ’123.457 mu   âˆ’123 mu   âˆ’123.46 m)FçQ^•-':T¿)z
-1.23457 mz-1 mz-1.23 m)Tr“  )u   âˆ’1.23457 mu   âˆ’1 mu	   âˆ’1.23 m)Tg       €©r©  r©  z0.00©Tr   r”  r•  )Tg›áÀm¶´>)u
   1.23457 Âµu   1 Âµu   1.23 Âµ)Tg_c97Ýš¿?)z	123.457 mz123 mz123.46 m)Tr»   )ú100 mr–  z100.00 m)Tr   )rª  rª  z1.00)TgÞƒBÊÀó?)z1.23457rª  z1.23)Tg33333?�@)z999.9ú1 kz999.90)Tg*:’Ëÿ?�@©r—  r—  ú1.00 k)Fç*:’Ëÿ?�À)r�  r�  z-1.00 k)Trš  )r�  r�  u	   âˆ’1.00 k)Tr(  r˜  )Tié  )z1.001 kr—  r™  )Ti¡† )z	100.001 kz100 kz100.00 k)Tg¬Z¤$.A)z	987.654 kz988 kz987.65 k)TgCY¸,dRÎF)ú1230 Qr›  z	1230.00 Qzunicode_minus, input, expectedc           	      ó˜  ^^	^
• U[         R                  S'   Sm	SmUn[        R                  " 5       [        R                  " SS9[        R                  " SS94n[	        XT5       H  u  pgU" U5      U:X  a  M   e   UU	4S jU 5       n[        R                  " T	S9[        R                  " T	SS	9[        R                  " T	SS	94n[	        XT5       H  u  pgU" U5      U:X  a  M   e   S
 HÞ  m
UU	U
4S jU 5       n[        R                  " T	T
S9[        R                  " T	ST
S9[        R                  " T	ST
S94n[	        XT5       H  u  pgU" U5      U:X  a  M   e   U
4S jU 5       n[        R                  " T
S9[        R                  " ST
S9[        R                  " ST
S94n[	        XT5       H  u  pgU" U5      U:X  a  M   e   Mà     g)a¡  
Test the formatting of EngFormatter for various values of the 'places'
argument, in several cases:

0. without a unit symbol but with a (default) space separator;
1. with both a unit symbol and a (default) space separator;
2. with both a unit symbol and some non default separators;
3. without a unit symbol but with some non default separators.

Note that cases 2. and 3. are looped over several separator strings.
r3  r?  Ú
0123456789r   )Úplacesr   c              3   óP   >#   • U  H  nUS    T;   a  US-   T-   OUT-   v •  M     g7f©r   Ú NrC   )rÀ  Ú_sÚDIGITSÚUNITs     €€r5   Ú	<genexpr>Ú/TestEngFormatter.test_params.<locals>.<genexpr>*  s7   øé € ð :Ú08¨"ð +-¨R©&°FÓ*:�r˜C‘x $’Ø ™Iô&Ú08ùs   ƒ#&)Úunit)r§  rž  )rŸ  u   â€¯z@_@c              3   óp   >#   • U  H+  nUS    T;   a  UT-   T-   OUR                  ST5      T-   v •  M-     g7fr   ©rº  )rÀ  r¢  r£  r¤  Ú_seps     €€€r5   r¥  r¦  :  sD   øé € ð /â%-˜rð 02°"©v¸Ó/?˜2 ™9 tÒ+Ø "§
¡
¨3°Ó 5¸Ñ <ô=â%-ùs   ƒ36)r§  rf  )r§  rž  rf  c              3   óF   >#   • U  H  oR                  S T5      v •  M     g7f)r¡  Nr©  )rÀ  r¢  rª  s     €r5   r¥  r¦  H  s   øé € ÐDº8°RŸ:™: c¨4×0Ð0º8ùs   ƒ!)rf  )rž  rf  N)rÃ   r]  r-   ÚEngFormatterr#  )r0   r8  rŠ  r3   Úexp_outputsÚ
formattersÚ
_formatterÚ_exp_outputr£  r¤  rª  s           @@@r5   Útest_paramsÚTestEngFormatter.test_params
  sÔ  ú€ ð .;Œ�‰Ð)Ñ*ØˆØˆð ˆä× Ò Ó"Ü× Ò ¨Ñ*Ü× Ò ¨Ñ*ð
ˆ
ô
 (+¨:Ö'CÑ#ˆJÙ˜eÓ$¨Õ3Ð3Ð3ñ (Dõ:Ù08ó:ˆô × Ò  dÑ+Ü× Ò  d°1Ñ5Ü× Ò  d°1Ñ5ð
ˆ
ô
 (+¨:Ö'CÑ#ˆJÙ˜eÓ$¨Õ3Ð3Ð3ñ (Dó
 =ˆDö/á%-ó/ˆKô ×$Ò$¨$°DÑ9Ü×$Ò$¨$°q¸dÑCÜ×$Ò$¨$°q¸dÑCðˆJô
 ,/¨zÖ+GÑ'�
Ù! %Ó(¨KÕ7Ð7Ð7ñ ,Hô E¹8ÓDˆKä×$Ò$¨Ñ.Ü×$Ò$¨A°4Ñ8Ü×$Ò$¨A°4Ñ8ðˆJô
 ,/¨zÖ+GÑ'�
Ù! %Ó(¨KÕ7Ð7Ð7ó ,Hò1 =r8   rC   N)
rP   rQ   rR   rS   Úraw_format_datarD   rY   rZ   r±  r_   rC   r8   r5   r�  r�  á  s3   † ò#€OðJ ‡[�[×ÑÐ=¸ÓOñD8ó PóD8r8   r�  c                  óÄ  • [         R                  " 5       u  pUR                  / SQ/ SQ5        UR                  / SQ5        [        R
                  " SS9[        R
                  " SS94 Ho  nUR                  R                  U5        U R                  R                  5         UR                  5        Vs/ s H  o3R                  5       PM     nnU/ SQ:X  a  Mo   e   g s  snf )N)r   r  r(  T)Úusetex)ÚuseMathText)z$0$z$500$z$1$ k)rÃ   rÄ   r•  râ   r-   r¬  rÇ   rl  r‹  rŒ  Úget_xticklabelsÚget_text)rÊ   rË   r?  ÚlablÚx_tick_label_texts        r5   Ú$test_engformatter_usetex_useMathTextr»  R  s¬   € Ü�lŠl‹n�G€CØ‡G�GŠNšNÔ+Ø‡M�M’.Ô!Ü×*Ò*°$Ñ7Ü×*Ò*°tÑ<ó>ˆ	à
�‰×$Ñ$ YÔ/Ø�
‰
�‰ÔØ9;×9KÑ9KÔ9MÓNÒ9M°Ÿ]™]ž_Ñ9MÐÐNð !Ò$=Õ=Ð=Ð=ò>ùò Os   Â3Cz9data_offset, noise, oom_center_desired, oom_noise_desired))g  @R›OBr#   r‹  r   )g  B€±¸Bi€–˜ rì  r   )ç /Ý$&;@r  r   r­  )gÍÌÌÌÌ5¥@r  rd   r­  )g    ’Ar   rd   r­  )ç¤p=
×÷p@r   r   r­  )g   uÓHBr   r‹  rd   )r¼  gH¯¼šò×z>r   iúÿÿÿ)r½  r   r   r­  )r¼  r   r   r­  )g    @ƒÚ@rñ  r   rd   )r¼  rñ  r   rd   )r¼  r(  r   rd   )r¼  r   r   r   )r¼  r#   r   r   c                 ó4  • Sn[         R                  " 5       u  pVU [        R                  " SS[        S9U-  -   nUR                  U5        [        R                  " SUS9nSUR                  S'   UR                  R                  U5        UR                  R                  5         UR                  5       n	UR                  5        V
s/ s H  oªR                  5       PM     nn
UR                   (       aT  U	S	   nUR                  U   nU	S
[#        U5      -
     nUR                  U   nXÜ:X  d   eXþ:X  d   eU H  nUU;  a  M   e   g US:X  d   eU	S:X  d   eU H8  nUS   S:X  a  SOUnUR%                  UR                  U   U-   5      (       a  M8   e   g s  sn
f )NÚeVr   rB  r°  T)Ú	useOffsetr§  Ú_r   r   r   rŸ  r©  )rÃ   rÄ   rT   rV   rÇ  r•  r-   r¬  ÚENG_PREFIXESr  rl  r‹  rŒ  Ú
get_offsetÚget_yticklabelsr¸  r‘   rã   Úendswith)Údata_offsetÚnoiseÚoom_center_desiredÚoom_noise_desiredr¤  rÊ   rË   Úydatar?  Ú
offset_gotr¹  Ú	ticks_gotÚprefix_noise_gotÚprefix_noise_desiredÚprefix_center_gotÚprefix_center_desiredÚtickÚ
prefix_idxs                     r5   Útest_engformatter_offset_oomrÓ  `  s“  € ð< €DÜ�lŠl‹n�G€CØœ"Ÿ)š) B¨´Ñ7¸Ñ=Ñ=€EØ‡G�GˆE„NÜ×$Ò$¨t¸$Ñ?€Ià #€I×Ñ˜1ÑØ‡H�H× Ñ  Ô+Ø‡J�J‡O�OÔØ×%Ñ%Ó'€JØ-/×-?Ñ-?Ô-AÓBÒ-A T—‘–Ñ-A€IÐBð ××Ø% a™=ÐØ(×5Ñ5Ð6GÑHÐØ& r¬#¨d«)¡|Ñ4ÐØ )× 6Ñ 6Ð7IÑ JÐØ#Ó7Ð7Ð7Ø$Ó9Ð9Ð9ãˆDØ˜tÕ#Ð#Ð#ò ð " QÓ&Ð&Ð&Ø˜RÓÐÐãˆDð # 1™g¨›n™Ð2CˆJØ—=‘= ×!7Ñ!7¸
Ñ!CÀdÑ!J×KÓKÐKÐKò	 ùò) Cs   ÃFc                   ó²   • \ rS rSr/ SQr/ SQr/ SQr\R                  R                  S\\S9S 5       r
\R                  R                  S\5      S	 5       rS
rg)ÚTestPercentFormatteri£  ))r   r   Ú%r,  r   z120%)r   r   rÖ  r   éZ   z100%)r   r   rÖ  r×  r  z90%)r   r   rÖ  rÑ   rå  z-2%)r   r   rÖ  g     €V@r   z90.0%)r   r   rÖ  gfffffT@r×  z80.1%)r   r   rÖ  g…ëQ¸ŽQ@r  z70.2%)r   r   rÖ  gôýÔxéFNÀrå  z-60.6%)r   NrÖ  é_   r   z95.00%)r   NrÖ  rd   r   z300%)ç      1@NrÖ  r   g      !@z6%)rÙ  NrÖ  r   gÍÌÌÌÌÌ @z5.9%)r"   NrÖ  rí  g�íµ ÷Æ°>z-2000.00000%)r   r   Nr�   r   z120.00)rO  rd   rŸ  r  r   z66.667)r¯  Nz
^^Foobar$$é   rì  z50.0^^Foobar$$)zdecimals=0, x>100%zdecimals=0, x=100%zdecimals=0, x<100%zdecimals=0, x<0%zdecimals=1, x>100%zdecimals=1, x=100%zdecimals=1, x<100%zdecimals=1, x<0%z$autodecimal, x<100%, display_range=1z7autodecimal, x>100%, display_range=6 (custom xmax test)z;autodecimal, x<100%, display_range=8.5 (autodecimal test 1)z;autodecimal, x<100%, display_range=8.4 (autodecimal test 2)z=autodecimal, x<-100%, display_range=1e-6 (tiny display range)zNone as percent symbolzEmpty percent symbolzCustom percent symbol))FFú50\{t}%)FTz50\\\{t\}\%)TFrÛ  )TTrÛ  z2xmax, decimals, symbol, x, display_range, expected)Úidsc                 óÂ   • [         R                  " XU5      n[        R                  " SS0S9   UR	                  XE5      U:X  d   e S S S 5        g ! , (       d  f       g = f)NrÙ  F©Úrc©r-   ÚPercentFormatterr˜   r™   Ú
format_pct)r0   ÚxmaxÚdecimalsÚsymbolrï   Údisplay_ranger3   r?  s           r5   r6   ÚTestPercentFormatter.test_basicØ  sL   € ô
 ×,Ò,¨T¸VÓDˆ	Ü�^Š^ ¨uÐ5Ó6Ø×'Ñ'¨Ó9¸XÓEÐEÑE÷ 7×6Ö6ús   ®AÁ
Azis_latex, usetex, expectedc                 óÀ   • [         R                  " SUS9n[        R                  " SU0S9   UR	                  SS5      U:X  d   e S S S 5        g ! , (       d  f       g = f)Nz\{t}%)rå  Úis_latexrÙ  rÞ  r  r   rà  )r0   ré  rµ  r3   r|  s        r5   Ú
test_latexÚTestPercentFormatter.test_latexá  sJ   € ä×&Ò&¨hÀÑJˆÜ�^Š^ ¨vÐ6Ó7Ø—>‘> " cÓ*¨hÓ6Ð6Ñ6÷ 8×7Ö7ús   ¬AÁ
ArC   N)rP   rQ   rR   rS   Úpercent_dataÚpercent_idsÚ
latex_datarD   rY   rZ   r6   rê  r_   rC   r8   r5   rÕ  rÕ  £  sp   † ò€Lò.€Kò,€Jð ‡[�[×ÑØ@Ø˜kð ð +ñFó+ðFð ‡[�[×ÑÐ9¸:ÓFñ7ó Gó7r8   rÕ  c                  ó–  •  [         R                  " [         R                  S5        [
        R                  " SSS9n SnU R                  US5      nUS:X  d   eSnU R                  US5      nUS	:X  d   e[
        R                  " S
SS9n SnU R                  US5      nUS:X  d   eg ! [         R                   a    [	        S5         g f = f)Nzde_DE.UTF-8z9SKIP: Locale de_DE.UTF-8 is not supported on this machineT)r¶  Ú	useLocalez$\mathdefault{%1.1f}$r   z$\mathdefault{0{,}5}$z,$\mathdefault{,%1.1f},$z,$\mathdefault{,0{,}5},$Fz%1.1fz0,5)r^  Ú	setlocaleÚLC_ALLÚErrorÚprintr-   rD  Ú_format_maybe_minus_and_locale)r˜  r|  rï   s      r5   Ú_impl_locale_commarö  è  sÑ   € ðÜ×ÒœŸ™¨Ô6ô ×#Ò#°ÀÑE€EØ
"€CØ×,Ñ,¨S°#Ó6€AØÐ(Ó(Ð(Ð(à
%€CØ×,Ñ,¨S°#Ó6€AØÐ+Ó+Ð+Ð+ä×#Ò#°ÀÑF€EØ
€CØ×,Ñ,¨S°#Ó6€AØ�‹:Ð‰:øô �<‰<ó ÜÐIÔJÙðús   ‚%B& Â&CÃCc                  óà   • [         R                  R                  [        SSS0S9n [	        S U R
                  R                  5        5       S5      nU(       a  [        R                  " U5        g g )Nr'   Ú
MPLBACKENDÚAgg)ÚtimeoutÚ	extra_envc              3   óŠ   #   • U  H9  nUR                  S 5      (       d  M  U[        S 5      S R                  5       v •  M;     g7f)zSKIP:N)rq  rã   r7  )rÀ  Úlines     r5   r¥  Ú$test_locale_comma.<locals>.<genexpr>  s<   é € ð 2Ú!9˜ØŸ™¨×0ó 1�Tœ#˜g›,˜-Ð(×.Ñ.×0Ð0Ú!9ùs
   ‚A #ArŸ  )	r˜   rí   Úsubprocess_run_helperrö  ÚnextÚstdoutÚ
splitlinesrD   ra  )ÚprocÚskip_msgs     r5   Útest_locale_commar  ý  sj   € ô �;‰;×,Ñ,Ô-?ÈØ8DÀeÐ7Lð -ð N€Däñ 2Ø!%§¡×!7Ñ!7Ô!9ó2ð ó€Hö Ü�Š�HÕð r8   c                  óö   • [         R                  " 5       u  p[        R                  " [        5         UR
                  R                  [        R                  " 5       5        S S S 5        g ! , (       d  f       g = fr  )	rÃ   rÄ   rD   rE   r[   rÇ   rl  r-   r/  ©rÊ   rË   s     r5   Útest_majformatter_typer    óB   € Ü�lŠl‹n�G€CÜ	�Š”yÕ	!Ø
�‰×$Ñ$¤W×%7Ò%7Ó%9Ô:÷ 
"×	!Ö	!úó   ²/A*Á*
A8c                  óö   • [         R                  " 5       u  p[        R                  " [        5         UR
                  R                  [        R                  " 5       5        S S S 5        g ! , (       d  f       g = fr  )	rÃ   rÄ   rD   rE   r[   rÇ   r  r-   r/  r  s     r5   Útest_minformatter_typer    r	  r
  c                  óö   • [         R                  " 5       u  p[        R                  " [        5         UR
                  R                  [        R                  " 5       5        S S S 5        g ! , (       d  f       g = fr  )	rÃ   rÄ   rD   rE   r[   rÇ   r  r-   r  r  s     r5   Útest_majlocator_typer    óB   € Ü�lŠl‹n�G€CÜ	�Š”yÕ	!Ø
�‰×"Ñ"¤7×#7Ò#7Ó#9Ô:÷ 
"×	!Ö	!úr
  c                  óö   • [         R                  " 5       u  p[        R                  " [        5         UR
                  R                  [        R                  " 5       5        S S S 5        g ! , (       d  f       g = fr  )	rÃ   rÄ   rD   rE   r[   rÇ   rÝ   r-   r  r  s     r5   Útest_minlocator_typer    r  r
  c                  óŒ   ^• [         R                  " 5       mU4S jn U " SSS5        U " SSS5        U " SSS5        U " SSS5        g )Nc                 óB  >• U US.n[         R                  " US9   TR                  SSU5      nS S S 5        [        WR                  R                  5       5      S:„  U :X  d   e[        UR                  R                  5       5      S:„  U:X  d   eg ! , (       d  f       Ng= f)N)zxtick.minor.visiblezytick.minor.visiblerÞ  r   r   )rÃ   r™   Úadd_subplotrã   rÇ   Úget_minor_ticksr  )ÚxminorÚyminorrw  rß  rË   rÊ   s        €r5   ÚminorticksubplotÚ,test_minorticks_rc.<locals>.minorticksubplot(  sˆ   ø€ Ø%+Ø%+ñ-ˆä�^Š^˜rÓ"Ø—‘  A qÓ)ˆB÷ #ô �B—H‘H×,Ñ,Ó.Ó/°!Ñ3¸Ó>Ð>Ð>Ü�B—H‘H×,Ñ,Ó.Ó/°!Ñ3¸Ó>Ð>Ñ>÷	 #Õ"ús   ›BÂ
BFr   Tr   rd   r¢   )rÃ   Úfigure)r  rÊ   s    @r5   Útest_minorticks_rcr  %  sE   ø€ Ü
�*Š*‹,€Cõ?ñ �U˜E 1Ô%Ù�T˜5 !Ô$Ù�U˜D !Ô$Ù�T˜4 Õ#r8   c                  óú   ^• [         R                  " 5       mU4S jn / SQnU H?  nU " SSUS5        U " SSUS5        U " SSUS5        U " SSUS5        TR                  5         MA     [         R                  " T5        g	)
a\  
Test toggling minor ticks

Test `.Axis.minorticks_on()` and `.Axis.minorticks_off()`. Testing is
limited to a subset of built-in scales - `'linear'`, `'log'`, `'asinh'`
and `'logit'`. `symlog` scale does not seem to have a working minor
locator and is omitted. In future, this test should cover all scales in
`matplotlib.scale.get_scale_names()`.
c                 ó   >• TR                  SSU5      nUR                  U5        UR                  U5        U (       d  U(       d  UR                  5         U (       a;  U(       d4  UR                  R                  5         UR                  R                  5         U (       d;  U(       a4  UR                  R                  5         UR                  R                  5         U (       a  U(       a  UR                  5         [        UR                  R                  5       5      S:„  U :X  d   e[        UR                  R                  5       5      S:„  U:X  d   eg )Nr   r   )	r  r	  r6  Úminorticks_offrÇ   rÆ   r  rã   r  )r  r  Úscalerw  rË   rÊ   s        €r5   ÚminortickstoggleÚ0test_minorticks_toggle.<locals>.minortickstoggleB  sã   ø€ Ø�_‰_˜Q  1Ó%ˆØ
�‰�eÔØ
�‰�eÔÞžfØ×ÑÔÞž&Ø�H‰H×"Ñ"Ô$Ø�H‰H×#Ñ#Ô%Þž&Ø�H‰H×#Ñ#Ô%Ø�H‰H×"Ñ"Ô$Þ–fØ×ÑÔä�B—H‘H×,Ñ,Ó.Ó/°!Ñ3¸Ó>Ð>Ð>Ü�B—H‘H×,Ñ,Ó.Ó/°!Ñ3¸Ó>Ð>Ñ>r8   )Úlinearr5  ÚasinhÚlogitFr   Tr   rd   r¢   N)rÃ   r  ÚclearÚclose)r   Úscalesr  rÊ   s      @r5   Útest_minorticks_toggler(  7  st   ø€ ô �*Š*‹,€Cõ?ò$ 1€FÛˆÙ˜  u¨aÔ0Ù˜˜u e¨QÔ/Ù˜  e¨QÔ/Ù˜˜t U¨AÔ.Ø�	‰	Žñ ô ‡I‚Iˆc…Nr8   z%remove_overlapping_locs, expected_num))Tr   )Nr   )Fr‹  c                 ó0  • [         R                  " SSSS9n[         R                  " [        U5      5      n[        R
                  " 5       u  pEUR                  X#5        UR                  R                  [        R                  R                  5       5        UR                  R                  [        R                  R                  S5      5        UR                  R                  [        R                  R                  S5      5        UR                  R!                  [        R                  R                  S5      5        UR                  R#                  S5        U b  XR                  l        UR                  R$                  nXeR                  R'                  5       :X  d   e[        R(                  " UR                  US	9  UR                  R$                  nXuR                  R$                  :X  d   e[        UR                  R+                  5       5      U:X  d   e[        UR                  R#                  5       5      U:X  d   e[        UR                  R-                  5       5      U:X  d   e[        UR                  R/                  5       5      US
-  :X  d   eg )Nz
2018-11-03z
2018-11-06Ú
datetime64r°  z
%a)r   r   rì  é   z%H:%Mr$   )Úremove_overlapping_locsr   )rT   rV   Úonesrã   rÃ   rÄ   r•  rÇ   r  r˜   ÚdatesÚ
DayLocatorrl  ÚDateFormatterrÝ   ÚHourLocatorr  r  r,  Úget_remove_overlapping_locsÚsetprä   Úget_minorticklabelsÚget_minorticklines)r,  Úexpected_numÚtrï   rÊ   rË   ÚcurrentÚnews           r5   Útest_remove_overlapr:  _  sÊ  € ô
 	�	Š	�, °LÑA€AÜ
�Š”�A“‹€Aä�lŠl‹n�G€CØ‡G�GˆA„Mà‡H�H×ÑœsŸy™y×3Ñ3Ó5Ô6Ø‡H�H× Ñ ¤§¡×!8Ñ!8¸Ó!@ÔAà‡H�H×ÑœsŸy™y×4Ñ4°^ÓDÔEØ‡H�H× Ñ ¤§¡×!8Ñ!8¸Ó!AÔBà‡H�H×Ñ˜RÔ ØÑ*Ø+B�‰Ô(ð �h‰h×.Ñ.€GØ—x‘x×;Ñ;Ó=Ó=Ð>Ð=Ü‡H‚HˆR�X‰X¨wÒ7Ø
�(‰(×
*Ñ
*€CØ—8‘8×3Ñ3Ó3Ð4Ð3ô ˆr�x‰x×)Ñ)Ó+Ó,°Ó<Ð<Ð<äˆr�x‰x×'Ñ'Ó)Ó*¨lÓ:Ð:Ð:Üˆr�x‰x×+Ñ+Ó-Ó.°,Ó>Ð>Ð>Üˆr�x‰x×*Ñ*Ó,Ó-°¸a±Ó?Ð?Ñ?r8   ÚsubÚhiÚaardvark)r   r   c                 ó´   • [         R                  " 5       n[        R                  " [        5         UR                  U S9  S S S 5        g ! , (       d  f       g = f)Nr<  )r-   r/  rD   rE   r^   rv   )r;  rX  s     r5   Útest_bad_locator_subsr?  „  s8   € ô 
×	Ò	Ó	€BÜ	�Š”zÕ	"Ø
�‰˜3ˆÑ÷ 
#×	"Ö	"ús   °A	Á	
Aznumticks, lims, ticksr   )r   r"   )r»   r   r#   r   rd   r‹  )r   r  )r»   r#   r(  )r»   r   r#   r   )r   r  )r  r   r   rñ  )r»   r   r#   r   r(  )r   rG  )r»   r   r&  )r   r   r(  i@B )r»   r   r#   r   r(  rñ  r×  c                 óò   • [         R                  " U S9n[        [        R                  R                  5      R
                  S:  a  [        UR                  " U6 USS9  g [        UR                  " U6 U5        g )Nre   r   g¼‰Ø—²Ò¬<)Úrtol)	r-   r/  r‰  rT   Úversionr  r   r/   r   )rf   r�  r˜  rX  s       r5   Útest_small_range_loglocatorrC  �  sY   € ô( 
×	Ò	 XÑ	.€BÜ”R—Z‘Z×'Ñ'Ó(×.Ñ.°Ó2Ü˜Ÿš¨Ð-¨u¸5ÓAä˜2Ÿ>š>¨4Ð0°%Õ8r8   c                  ó  • Sn Sn[         R                  " [        SU S-   5      [         R                  " [        U5      S5      5       GH4  u  nu  p4[        R
                  " US9n[        R                  " UR                  SU-  SU-  5      5      R                  5       R                  [        5      n[        U5      US-   ::  d   eUS   Us=:  a
  US   ::  d   e   eUS   Us=::  a
  US	   :  d   e   e1 [        R                  " U5      ku  nXg-  S:H  R                  5       (       a  Mä  [        SU5       H@  n[        X8-   US-   U5      n	[        U	5      [        U5      :  a  M/  [        U	5      U:”  a  M@   e   GM7     g )
Nrs   r   r   r   re   r#   r   rä  r   )r¾  r¿  r   Úcombinationsr-   r/  rT   rŸ  r/   r  Úastyper�  rã   ÚdiffrL   )
Úmax_numticksÚpow_endrf   Úlor<  rX  ÚdecadesÚstrider‘   Úalt_decadess
             r5   Útest_loglocator_propertiesrN  ¨  sc  € ð €LØ€GÜ'×/Ò/Ü�!�\ AÑ%Ó&¬	×(>Ò(>¼uÀW»~ÈqÓ(Q÷SÑˆ‘(�2ä×Ò¨Ñ2ˆÜ—(’(˜2Ÿ>™>¨"¨b©&°"°b±&Ó9Ó:×@Ñ@ÓB×IÑIÌ#ÓNˆô �7‹|˜x¨!™|Ó+Ð+Ð+Ø�q‰z˜BÕ, '¨!¡*Ó,Ð,Ñ,Ð,Ð,Ø�r‰{˜bÕ. 7¨2¡;Ó.Ð.Ñ.Ð.Ð.Ø%”B—G’G˜GÓ$Ð%‰ˆàÑ  AÑ%×*Ñ*×,Ó,ô    6Ö*�Ü# B¡K°°a±¸Ó@�Ü˜;Ó'¬#¨g«,Õ6¼#¸kÓ:JÈXÕ:UÐUÐUô +òSr8   c                  ó¦   • [         R                  " 5       n U " S5      S:X  d   eU R                  S5      S:X  d   eU R                  S5      S:X  d   eg )Nr   rŸ  )r-   ÚNullFormatterrv  r6  ©r?  s    r5   Útest_NullFormatterrR  Â  sT   € Ü×%Ò%Ó'€IÙ�S‹>˜RÓÐÐØ× Ñ  Ó%¨Ó+Ð+Ð+Ø×&Ñ& sÓ+¨rÓ1Ð1Ñ1r8   r?  c                 ó   • SU  3$ )Nzval: rC   )rÁ  s    r5   Ú<lambda>rT  Ê  s
   €  e¨A¨3¡Kr8   )r>   Úbarc                 ó~   • U R                  5       S:X  d   eU R                  S5        U R                  5       S:X  d   eg )NrŸ  r˜   )rÃ  Úset_offset_stringrQ  s    r5   Útest_set_offset_stringrX  É  s@   € ð ×ÑÓ! RÓ'Ð'Ð'Ø×Ñ Ô&Ø×ÑÓ! UÓ*Ð*Ñ*r8   c                  ó@  • [         R                  " 5       u  pUR                  [        R                  " S5      S/S9  UR                  [        R                  " S5      S/S9  UR                  [        R                  " S5      S/S9  UR                  SS9  UR                  SS9  UR                  5         U R                  5         UR                  5       (       d   e[        UR                  R                  5       [        R                  R                  5      (       d   eg)	zŒ
Turning on minor gridlines in a multi-Axes Figure
that contains more than one boxplot and shares the x-axis
should not raise an exception.
r#   r   )r½  r   r  )ÚwhichrÂ   N)rÃ   rÄ   ÚboxplotrT   rV   r  rÆ   Údraw_without_renderingÚget_xgridlinesÚ
isinstancerÇ   Úget_minor_locatorr˜   ÚtickerrÞ   r  s     r5   Útest_minorticks_on_multi_figra  Ò  sÒ   € ô �lŠl‹n�G€Cà‡J�JŒr�yŠy˜‹}¨¨€JÑ,Ø‡J�JŒr�yŠy˜‹}¨¨€JÑ,Ø‡J�JŒr�yŠy˜‹}¨¨€JÑ,à‡G�G�'€GÑØ‡G�G�'€GÑØ×ÑÔØ×ÑÔ à×Ñ×ÑÐÐÜ�b—h‘h×0Ñ0Ó2´C·J±J×4OÑ4O×PÑPÐPÑPr8   )FÚ
contextlibr   r¾  r^  r“  r\   Úpackaging.versionr   r‰  ÚnumpyrT   Únumpy.testingr   r   r   rD   Ú
matplotlibr˜   Úmatplotlib.pyplotÚpyplotrÃ   Úmatplotlib.tickerr`  r-   r	   ra   r‚   rµ   r&  rs  r{  r†  rÄ  rË  rÕ  rò  r#  r¨  rÌ  rÕ  rÝ  r*  ry  r  r�  r»  rY   rZ   rÓ  rÕ  rö  r  r  r  r  r  r  r(  r:  Úzerosr?  rÛ  r  rC  rN  rR  ÚFuncFormatterÚFixedFormatterrX  ra  rC   r8   r5   Ú<module>rm     sY  ðÝ "Û Û Û Û 	Ý 4ã ß RÑ RÛ ã Ý Ý #÷,,ñ ,,÷^Fñ F÷<8!ñ 8!÷vmHñ mH÷`M7ñ M7÷`ñ ÷$ñ $÷"O!ñ O!÷d	 ñ 	 ÷?ñ ?÷:)8ñ )8÷Xb7ñ b7÷J\ñ \÷~!(ñ !(÷H/ñ /÷&0ñ 0÷8_ñ _÷Do'ñ o'÷d&ñ &÷+ñ +÷&n8ñ n8òb>ð ‡�×ÑØ?ò Bóñ0(Ló1ð0(L÷VB7ñ B7òJò*ò ;ò;ò;ò;ò$ò$%ðP ‡�×ÑÐ@ð&ó'ñ@ó	'ð@ðB ‡�×Ñ˜Ø	ˆ:ÐØ‡H‚HˆVÓð!ó ñ óð ð ‡�×ÑÐ0Øˆ’ÐØˆ’ÐØˆ’ÐØˆ’ÐØˆ’/Ð"ØˆÒ"Ð#ØˆÒ"Ð#ØˆÒ"Ð#Øˆ	’?Ð#Øˆ	Ò(Ð)Øˆ	Ò*Ð+Øˆ	Ò*Ð+Øˆ
Ò&Ð'Øˆ
Ò/Ð0Øˆ
Ò/Ð0Øˆ
Ò3Ð4ð!3ó ð$ ‡�×Ñ�9Óñ9ó ó%ð&9ð ‡�×Ñ�9ÓñVó ðVò22ð ‡�×Ñ˜Ø×ÒÑ/Ó0Ø×Ò˜>Ó*ð',ó -ñ+ó-ð+óQr8   