
    g                      v   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&y)     N)
AsinhScaleAsinhTransformLogTransformInvertedLogTransformSymmetricalLogTransform)AsinhLocatorLogFormatterSciNotation)check_figures_equalimage_comparison)assert_allclosec                 R   | j                  ddd      }|j                  d       |j                  d       |j                         }|j	                         }|j                  ddd      }|j                  ||       |j                  ddg|d       |j                  |ddgd       y )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         X/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/matplotlib/tests/test_scale.pytest_log_scalesr"      s    ""3uX"FGOODOODDD  U8 DF
JJDtJ$
KKtdC(
KKtTlC(    c                  *   t        ddd      } | j                         }t        j                  ddd      }|j	                  | j	                  |            }t        ||       t        |      t        |      u sJ t        j                  |d<   |j	                  | j	                  |            }t        ||       t        |      t        |      u sJ t        j                  j                  |      }|j	                  | j	                  |            }t        ||       t        |      t        |      u sJ t        j                  j                  |d<   |j	                  | j	                  |            }t        ||       t        |      t        |      u sJ y )	N
         g               ?      )r   invertednparangetransform_non_affiner   typenanmaarraymasked)sltsltixouts       r!   test_symlog_mask_nanr9      sJ    ""a
+C<<>D
		$3A

#
#C$<$<Q$?
@CC9Q66AaD

#
#C$<$<Q$?
@CC9Q
AA

#
#C$<$<Q$?
@CC9Q55<<AaD

#
#C$<$<Q$?
@CC9Qr#   zlogit_scales.pngT)remove_textc                     t        j                         \  } }t        j                  g d      }d|z  }|j	                  ||       |j                  d       |j                  d       |j                  | j                  j                               }t        j                  |j                        sJ t        j                  |j                        sJ y )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    llnGC 	 @ 	AAaAGGAqMMM'GGDMCJJ3356D;;tww;;twwr#   c                     t        j                  d      \  } }t        j                  d      }t        j                  d      dz
  }|j	                  ||       t        j                         }| j                  |d       t        j                         }| j                  |d       t        j                         }| j                  |d       y)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    ll1oGC
		"A
		"AJJq!
**,CKKEK"
**,CKKEK"
**,CKKEK"r#   c                      t        j                         \  } }|j                  dt        j                  g d             | j
                  j                          y )Nr   )r&   r+   r*   )subs)r?   r@   
set_yscaler-   r3   rD   drawrI   rJ   s     r!   test_logscale_subsr^   ^   s8    llnGCMM%bhhy1M2JJOOr#   zlogscale_mask.pngc                     t        j                  ddd      } t        j                         \  }}|j	                  t        j
                  | dz                |j                  j                          |j                  d       y )Nr   2   i  r&   r   )r   )	r-   linspacer?   r@   r   exprD   r\   r   )xsrI   rJ   s      r!   test_logscale_maskrd   e   s[     
QD	!BllnGCGGBFFBE6NJJOOFF%Fr#   c                      t        j                         \  } }dD ]7  }t        j                  t              5  |j                  |d       d d d        9 y # 1 sw Y   DxY w)N)linearr   r   mask)foo)r?   r@   pytestraises	TypeErrorr[   rI   rJ   scales      r!   test_extra_kwargs_raisern   q   sV    llnGC, -]]9% 	-MM%VM,	- 	--	- 	-s   AA	c                  8   t        j                         \  } }|j                  d       |j                  |j                  j                         z   j                         }t        d      j                         }t        |t              sJ |j                  dk(  sJ y )Nr   r&   )base)
r?   r@   r[   	transAxes	transDatar,   r   
isinstancer   rp   )rI   rJ   tforminverted_transforms       r!   test_logscale_invert_transformrv   y   s}    llnGCMM%\\BLL1133==?E &1-668(*>???""a'''r#   c                      t        j                         \  } }|j                  d       t        |j                         t        t        dd             y )Nr   r%   clipnonpositive)r?   r@   r[   reprrr   r   r]   s     r!   test_logscale_transform_reprr|      s8    llnGCMM%bf	-.r#   zlogscale_nonpos_values.pngg{Gz?mpl20)r:   tolstylec                  :   t         j                  j                  d       t         j                  j                  t	        d            } t        j                  dd      \  }\  \  }}\  }}|j                  | dd       |j                  d       |j                  | dd       |j                  dd	
       t        j                  ddd      }t        j                  |       }dd|z
  z  t        j                  d|z        z  t        j                  |       z  }|j                  |||z
  ||z          |j                  d       t        j                  dd      }	|	dz  }
|	dz  }|j                  |	|
|       |j                  d       |j                  d       y )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      sQ    IINN8			s3x		(B$'LLA$6!C	!*3jsCHHRwRH(NN5HHRwRH(NN5fN-IIaT"EFFE6NEEN266!E'?*2665&>9EUEEM55=9NN5
BA	QAa4DLLADL!NN5NN5r#   c                     t        j                         \  } }|j                  t        dd      t        dd             |j	                  d       |j                         }t        j                  t              5  |j                  d       d d d        |j                         |k(  sJ t        j                  t              5  |j                  d       d d d        |j                         |k(  sJ |j                  d       |j                         }t        j                  t              5  |j                  d       d d d        |j                         |k(  sJ t        j                  t              5  |j                  d       d d d        |j                         |k(  sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   DxY w)	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      se   llnGCJJuQ{E!QK(MM%KKMM	k	" 
;;=M)))	k	" 
";;=M)))MM%KKMM	k	" 
1;;=M)))	k	" 
;;=M)))    s0   8F%F2+F>4G
%F/2F;>G
Gzfunction_scales.png)r:   r   c                      d } d }t        j                         \  }}t        j                  dd      }|j	                  ||       |j                  d|| f       |j                  dd       y )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]     llnGC
		!TAGGAqMMM*'(:M;KK4r#   c                  J   t        j                         \  } }t        j                  d       }|j	                  |       t        j                  d       }|j                  |       |j                  j                         dk(  sJ |j                  j                         dk(  sJ y )Naxisr   )	r?   r@   mscaleLogScalerA   r[   xaxis	get_scaleyaxisrl   s      r!   test_pass_scaler      s{    llnGCOO&EMM%OO&EMM%885(((885(((r#   c                      t        j                  dd      } t        j                  |       }t	        | j                               t	        |j                               k(  sJ | j                  |j                  usJ y )Nr7   r%   r   rp   )r   r   copydeepcopystrget_transform
_transform)scsc2s     r!   test_scale_deepcopyr      s`    	c	+B
--
Cr!"c#*;*;*=&>>>>==...r#   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestAsinhScalec                 T   d}t        j                  ddd      }t        |      }|j                         }|j                         }|j	                  |      }|j	                  |      }t        ||       |j	                  |      }t        ||t        j                  ||z        z         y )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    KKR% $""$!!#003	11)<

A&..q1"rzz!b&'9"9:r#   c                 ,   t        j                         \  }}t        d d      }|j                  dk(  sJ |j                  dk(  sJ |j
                  dk(  sJ |j                         }t        |t              sJ |j                  |j                  k(  sJ y )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~~###ww"}}ww&   __"n---!..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 y )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   so    ,,.RT*xx1}}xx4T7xx1}}xx6!!!r#   c                     G d d      } |       }t        |d      }|j                  |       t        |j                  d   t              sJ t        |j                  d   t
              sJ  |       }t        |d      }|j                  |       t        |j                  d   t              sJ t        |j                  d   t              sJ y )Nc                       e Zd Zd Zd Zd Zy)-TestAsinhScale.test_fmtloc.<locals>.DummyAxisc                     i | _         y )Nfields)r   s    r!   __init__z6TestAsinhScale.test_fmtloc.<locals>.DummyAxis.__init__  s	     r#   c                 <     | j                   j                  di | y )Nr   )r   update)r   kwargss     r!   r   z1TestAsinhScale.test_fmtloc.<locals>.DummyAxis.set  s    """,V,r#   c                 "    || j                   d<   y )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   
  s    !-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 kSq)
..s3#**_5|DDD#**%67===kSq)
..s3#**_5|DDD#**%6713 	3 3r#   c                 P   t        j                         \  }}t        j                  t              5  t        d d       d d d        t        j                  t              5  t        d d       d d d        t        d       }t        d d      }y # 1 sw Y   RxY w# 1 sw Y   /xY w)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Dq1	2]]:& 	3Dr2	3T$T4	2 	2	3 	3s   B BBB%N)r   r   r   r   r   r   r   r   r   r#   r!   r   r      s    ;
1	"3,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 O  ) 	  	) 	) 6 %&D9  :  #& &'T: ;-	(/ /0"G==2*0 ()t7K L )/E5 E5r#   