
    P/Ph                         d dl Z d dlmZ d dlmZmZmZmZm	Z	 d dlm
Z d dlmZmZ d dlmZmZ d dlZd dlmZ d dlZd dlZ e            d             Zd Z edgd	
          d             Zd Zd Z edgd	
          d             Zd Zd Zd Z  edgd	dd          d             Z!d Z" edgd	d          d             Z#d Z$d Z% G d d          Z&dS )     N)
AsinhScaleAsinhTransformLogTransformInvertedLogTransformSymmetricalLogTransform)AsinhLocatorLogFormatterSciNotation)check_figures_equalimage_comparison)assert_allclosec                    |                      ddd          }|                    d           |                    d           |                                }|                                }|                     ddd          }|                    ||           |                    ddg|d           |                    |ddgd           d S )Nz   logsymlog)yscalexscaleg8@)xlimylimb)add_subplotaxvlineaxhlineget_xlimget_ylimsetplot)fig_testfig_refax_testr   r   ax_refs         [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_scale.pytest_log_scalesr"      s    ""3uX"FFGOODOODDD  U8 DDF
JJDtJ$$$
KKtdC(((
KKtTlC(((((    c                     t          ddd          } |                                 }t          j        ddd          }|                    |                     |                    }t          ||           t          |          t          |          u sJ t          j        |d<   |                    |                     |                    }t          ||           t          |          t          |          u sJ t          j        	                    |          }|                    |                     |                    }t          ||           t          |          t          |          u sJ t          j        j
        |d<   |                    |                     |                    }t          ||           t          |          t          |          u sJ d S )	N
         g               ?      )r   invertednparangetransform_non_affiner   typenanmaarraymasked)sltsltixouts       r!   test_symlog_mask_nanr9      s    ""a
+
+C<<>>D
	$3A

#
#C$<$<Q$?$?
@
@CC99Q6AaD

#
#C$<$<Q$?$?
@
@CC99Q
AA

#
#C$<$<Q$?$?
@
@CC99Q5<AaD

#
#C$<$<Q$?$?
@
@CC99Qr#   zlogit_scales.pngT)remove_textc                     t          j                    \  } }t          j        g d          }d|z  }|                    ||           |                    d           |                    d           |                    | j        	                                          }t          j
        |j                  sJ t          j
        |j                  sJ d S )N)gMbP?g~jth?{Gz?gQ?g?皙?g333333?g?r)   g333333?gffffff?g?g?g
ףp=
?gGz?gCl?g+?g      ?logitT)pltsubplotsr-   r3   r   
set_xscalegridget_tightbboxcanvasget_rendererisfinitex0y0)figaxr7   ybboxs        r!   test_logit_scalesrM   :   s    lnnGC 	 @ @ @ 	A 	AAaAGGAqMMMMM'GGDMMMCJ335566D;tw;twr#   c                     t          j        d          \  } }t          j        d          }t          j        d          dz
  }|                    ||           t          j                    }|                     |d           t          j                    }|                     |d           t          j                    }|                     |d           dS )zIssue #1799r'   r%   pdf)formatepssvgN)r?   r@   r-   r.   scatterioBytesIOsavefig)rI   rJ   r7   rK   bufs        r!   test_log_scatterrX   K   s    l1ooGC
	"A
	"AJJq!
*,,CKKEK"""
*,,CKKEK"""
*,,CKKEK"""""r#   c                      t          j                    \  } }|                    dt          j        g d                     | j                                         d S )Nr   )r&   r+   r*   )subs)r?   r@   
set_yscaler-   r3   rD   drawrI   rJ   s     r!   test_logscale_subsr^   ^   sM    lnnGCMM%bhyyy11M222JOOr#   zlogscale_mask.pngc                     t          j        ddd          } t          j                    \  }}|                    t          j        | dz                        |j                                         |                    d           d S )Nr   2   i  r&   r   )r   )	r-   linspacer?   r@   r   exprD   r\   r   )xsrI   rJ   s      r!   test_logscale_maskrd   e   sr     
QD	!	!BlnnGCGGBFBE6NNJOOFF%Fr#   c                      t          j                    \  } }dD ]J}t          j        t                    5  |                    |d           d d d            n# 1 swxY w Y   Kd S )N)linearr   r   mask)foo)r?   r@   pytestraises	TypeErrorr[   rI   rJ   scales      r!   test_extra_kwargs_raisern   q   s    lnnGC, - -]9%% 	- 	-MM%VM,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-- -s   AA	A	c                  N   t          j                    \  } }|                    d           |j        |j                                        z                                   }t          d                                          }t          |t                    sJ |j	        dk    sJ d S )Nr   r&   )base)
r?   r@   r[   	transAxes	transDatar,   r   
isinstancer   rp   )rI   rJ   tforminverted_transforms       r!   test_logscale_invert_transformrv   y   s    lnnGCMM%\BL11333==??E &1---6688(*>?????"a''''''r#   c                      t          j                    \  } }|                    d           t          |j                   t          t          dd                     d S )Nr   r%   clipnonpositive)r?   r@   r[   reprrr   r   r]   s     r!   test_logscale_transform_reprr|      sT    lnnGCMM%bf	-	-	-.....r#   zlogscale_nonpos_values.pngg{Gz?mpl20)r:   tolstylec                     t           j                            d           t           j                            t	          d                    } t          j        dd          \  }\  \  }}\  }}|                    | dd           |                    d           |                    | dd           |                    dd	
           t          j	        ddd          }t          j
        |           }dd|z
  z  t          j        d|z            z  t          j
        |           z  }|                    |||z
  ||z              |                    d           t          j        dd          }	|	dz  }
|	dz  }|                    |	|
|           |                    d           |                    d           d S )Ni!N,g     @@)sizer&   )r(   r%   )rangebinsr   rg   ry   r   r<   r=   r(   r'   r+   )yerr)r-   randomseednormalintr?   r@   histr[   r.   rb   cosfill_betweenlogspaceerrorbarrA   )rc   rI   ax1ax2ax3ax4xdataydataedatar7   rK   r   s               r!   test_logscale_nonpos_valuesr      s    INN8			s3xx		(	(B$'LA$6$6!C	!*3jsCHHRwRH(((NN5HHRwRH(((NN5fN---IaT""EFE6NNEEN26!E'??*265&>>9EUEEM55=999NN5
BA	QAa4DLLADL!!!NN5NN5r#   c                  B   t          j                    \  } }|                    t          dd          t          dd                     |                    d           |                                }t          j        t                    5  |	                    d           d d d            n# 1 swxY w Y   |                                |k    sJ t          j        t                    5  |	                    d           d d d            n# 1 swxY w Y   |                                |k    sJ |
                    d           |                                }t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   |                                |k    sJ t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   |                                |k    sJ d S )	Nr   r*   r   )leftr   )right)bottom)top)r?   r@   rS   r   rA   r   ri   warnsUserWarningset_xlimr[   r   set_ylim)rI   rJ   original_xlimoriginal_ylims       r!   test_invalid_log_limsr      s   lnnGCJJuQ{{E!QKK(((MM%KKMMM	k	"	"  
              ;;==M))))	k	"	"  
"              ;;==M))))MM%KKMMM	k	"	"  
1              ;;==M))))	k	"	"  
              ;;==M))))))sH   B..B25B2,DDD6FF FG::G>G>zfunction_scales.png)r:   r   c                      d } d }t          j                    \  }}t          j        dd          }|                    ||           |                    d|| f           |                    dd           d S )Nc                     | dz  S )Nr&    r7   s    r!   inversez$test_function_scale.<locals>.inverse   s    !tr#   c                     | dz  S )Nr)   r   r   s    r!   forwardz$test_function_scale.<locals>.forward   s    3xr#   r'   i  function)	functions)r?   r@   r-   r.   r   rA   r   )r   r   rI   rJ   r7   s        r!   test_function_scaler      s         lnnGC
	!TAGGAqMMMMM*'(:M;;;KK4r#   c                  V   t          j                    \  } }t          j        d           }|                    |           t          j        d           }|                    |           |j                                        dk    sJ |j                                        dk    sJ d S )Naxisr   )	r?   r@   mscaleLogScalerA   r[   xaxis	get_scaleyaxisrl   s      r!   test_pass_scaler      s    lnnGCO&&&EMM%O&&&EMM%85((((85((((((r#   c                     t          j        dd          } t          j        |           }t	          |                                           t	          |                                          k    sJ | j        |j        usJ d S )Nr7   r%   r   rp   )r   r   copydeepcopystrget_transform
_transform)scsc2s     r!   test_scale_deepcopyr      sy    	c	+	+	+B
-

Cr!!""c#*;*;*=*=&>&>>>>>=......r#   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestAsinhScalec                    d}t          j        ddd          }t          |          }|                                }|                                }|                    |          }|                    |          }t          ||           |                    |          }t          ||t          j        ||z            z             d S )Ng      1@ir`   d   )r-   ra   r   r,   r/   r   arcsinh)	selfa0ar   r   invinv	a_forward
a_inverteda_invinvs	            r!   test_transformszTestAsinhScale.test_transforms   s    KR%% $$""$$!!##0033	11)<<

A&&&..q11"rz!b&'9'9"9:::::r#   c                    t          j                    \  }}t          d d          }|j        dk    sJ |j        dk    sJ |j        dk    sJ |                                }t          |t                    sJ |j        |j        k    sJ d S )Ng      7@r   linear_width   r%   )r&   r(   )	r?   r@   r   r   _base_subsr   rs   r   )r   rI   rJ   stxs        r!   	test_initzTestAsinhScale.test_init   s    ,..RDt444~####w"}}}}w&    __"n-----!.000000r#   c                     t          j                    \  }}t          d d          }|j        dk    sJ |j        dk    sJ t          d dd          }|j        dk    sJ |j        dk    sJ d S )Nr+   r   )r&      )r&   r*   )r   rp   rZ   )r?   r@   r   r   r   )r   rI   rJ   s3s7s        r!   test_base_initzTestAsinhScale.test_base_init   s    ,..RT***x1}}}}x4T777x1}}}}x6!!!!!!r#   c                     G d d          } |            }t          |d          }|                    |           t          |j        d         t                    sJ t          |j        d         t
                    sJ  |            }t          |d          }|                    |           t          |j        d         t                    sJ t          |j        d         t                    sJ d S )Nc                        e Zd Zd Zd Zd ZdS )-TestAsinhScale.test_fmtloc.<locals>.DummyAxisc                     i | _         d S )Nfields)r   s    r!   __init__z6TestAsinhScale.test_fmtloc.<locals>.DummyAxis.__init__  s     r#   c                 *     | j         j        di | d S )Nr   )r   update)r   kwargss     r!   r   z1TestAsinhScale.test_fmtloc.<locals>.DummyAxis.set  s#    "",,V,,,,,r#   c                     || j         d<   d S )Nmajor_formatterr   )r   fs     r!   set_major_formatterzATestAsinhScale.test_fmtloc.<locals>.DummyAxis.set_major_formatter  s    12-...r#   N)__name__
__module____qualname__r   r   r   r   r#   r!   	DummyAxisr   
  sA        ! ! !- - -3 3 3 3 3r#   r   r   r   major_locatorr   r(   )r   #set_default_locators_and_formattersrs   r   r   r   r	   )r   r   ax0s0ax5r   s         r!   test_fmtloczTestAsinhScale.test_fmtloc	  s   	3 	3 	3 	3 	3 	3 	3 	3 ikkSq)))
..s333#*_5|DDDDD#*%67=====ikkSq)))
..s333#*_5|DDDDD#*%6713 3 	3 	3 	3 	3 	3r#   c                 |   t          j                    \  }}t          j        t                    5  t          d d           d d d            n# 1 swxY w Y   t          j        t                    5  t          d d           d d d            n# 1 swxY w Y   t          d           }t          d d          }d S )Nr   r   r   r   g      @)r?   r@   ri   rj   
ValueErrorr   )r   rI   rJ   r   s1s        r!   test_bad_scalezTestAsinhScale.test_bad_scale  s'   ,..R]:&& 	2 	2Dq1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2]:&& 	3 	3Dr2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3T$$$T444s#   AAA2BBBN)r   r   r   r   r   r   r   r   r   r#   r!   r   r      s_        ; ; ;
1 
1 
1	" 	" 	"3 3 3,5 5 5 5 5r#   r   )'r   matplotlib.pyplotpyplotr?   matplotlib.scaler   r   r   r   r   rm   r   matplotlib.tickerr   r	   matplotlib.testing.decoratorsr
   r   numpyr-   numpy.testingr   rT   ri   r"   r9   rM   rX   r^   rd   rn   rv   r|   r   r   r   r   r   r   r   r#   r!   <module>r      s                       " ! ! ! ! ! C C C C C C C C O O O O O O O O     ) ) ) ) ) ) 				  	) 	) 	)     6 %&D999    :9  # # #&   &'T:::  ;:- - -	( 	( 	(/ / / /0"G= = = = =2* * *0 ()t7KKK  LK ) ) )/ / /E5 E5 E5 E5 E5 E5 E5 E5 E5 E5r#   