
    rbi                         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g          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_allclosepng)
extensionsc                    |                      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         k/var/www/html/mdtn/previsions/meteo_cartes/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_nanr;      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/   r5   r   
set_xscalegridget_tightbboxcanvasget_rendererisfinitex0y0)figaxr9   ybboxs        r#   test_logit_scalesrO   :   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)rA   rB   r/   r0   scatterioBytesIOsavefig)rK   rL   r9   rM   bufs        r#   test_log_scatterrZ   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)rA   rB   
set_yscaler/   r5   rF   drawrK   rL   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/   linspacerA   rB   r   exprF   r^   r   )xsrK   rL   s      r#   test_logscale_maskrf   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)rA   rB   pytestraises	TypeErrorr]   rK   rL   scales      r#   test_extra_kwargs_raiserp   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)
rA   rB   r]   	transAxes	transDatar.   r   
isinstancer   rr   )rK   rL   tforminverted_transforms       r#   test_logscale_invert_transformrx   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)rA   rB   r]   reprrt   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   ri   r{   r   r>   r?   r*   r)   r-   )yerr)r/   randomseednormalintrA   rB   histr]   r0   rd   cosfill_betweenlogspaceerrorbarrC   )re   rK   ax1ax2ax3ax4xdataydataedatar9   rM   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)rA   rB   rU   r   rC   r   rk   warnsUserWarningset_xlimr]   r   set_ylim)rK   rL   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(    r9   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)rA   rB   r/   r0   r   rC   r   )r   r   rK   rL   r9   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   )	rA   rB   mscaleLogScalerC   r]   xaxis	get_scaleyaxisrn   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 )Nr9   r'   r   rr   )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@irb   d   )r/   rc   r   r.   r1   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*   )	rA   rB   r   r   _base_subsr   ru   r   )r   rK   rL   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   rr   r\   )rA   rB   r   r   r   )r   rK   rL   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_formattersru   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      @)rA   rB   rk   rl   
ValueErrorr   )r   rK   rL   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pyplotrA   matplotlib.scaler   r   r   r   r   ro   r   matplotlib.tickerr   r	   matplotlib.testing.decoratorsr
   r   numpyr/   numpy.testingr   rV   rk   r$   r;   rO   rZ   r`   rf   rp   rx   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%   