o
    5c\)                     @   s  d dl Zd dlZd dlmZmZmZ ed ed d dlZ	d dl
mZ ejdd Zejdd	 Zejd
d Zejdd Zejdddgdd Zejdddgdd Zejdd g dfdg dfdg dfgejdddgdd Zejddddgd d!gd"fd#d$dgd%d!gd&fdd'd!gd(dgd)fgd*d+ Zd,d- Zd.d/ Zejd0d dd1gd2dgd3d!gd2dgd3d!gd4fddd1gd2dgd2dgd3d!gd3d!gd4fded1dgdd1ggd3d!gd2dgd2dgd3d!gd4fgd5d6 Zejd7g d8d fdd1gdfedd1gdd1ggdfgd9d: Zejd;ed1dgdd1ggd<d=gd>d?gd@ed1dgdd1ggd=d<gd?d>gd@edd1gd1dggd<d=gd?d>gd@eg d8g dAgg dBd>d?gd@edd1gd1dgdCdCggd=d<gg dDd@gejdEddd1gd1dggfd=gdgd1ggfd<d=gd1dgdd1ggfed>ddf dd1ggfed?d>gddf d1dgdd1ggfgdFdG ZejdHed1dgd?d>gdId ddgd1d1ggfed1dgd<d=gdIddd1gdd1ggfeg d8g dDdId ddgd1d1ggfeg d8g dBdIddd1gdd1ggfgdJdK Zejd7edd1gd1dggd=d<gd>d?gd@dfedd1gd1dggd=d<gd>d?gd@d fgdLdM ZdNdO ZejdPde	j !dgdQdR Z"dSdT Z#ejdUdVdWgdXdY Z$dS )Z    N)	DataFrame
IndexSliceSeries
matplotlibjinja2Stylerc                   C   s   t ddgddggddgdS )N         AB)columnsr    r   r   c/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/io/formats/style/test_matplotlib.pydf   s   r   c                 C      t | ddS Nr   )uuid_lenr   )r   r   r   r   styler      r   c                   C   s"   t ddgddggddgddgdS )Nr   r   r   XYr   indexr   r   r   r   r   df_blank   s   "r   c                 C   r   r   r   )r   r   r   r   styler_blank!   r   r   fbackground_gradienttext_gradientc                 C   sf   dD ].}t | ||d j}tdd | D sJ |d |d ks&J |d |d ks0J qd S )	N)NYlOrRd)cmapc                 s   s     | ]}d |d d v V  qdS )#r   r	   Nr   ).0xr   r   r   	<genexpr>*   s    z)test_function_gradient.<locals>.<genexpr>r   r   r   r	   r	   r   r	   r	   )getattr_computectxallvalues)r   r   c_mapresultr   r   r   test_function_gradient&   s   r2   c                 C   s\   t | |td d j}|dkr|d ddgksJ d S |dkr*|d dgks,J d S d S )	N)r	   r   )subsetr   r)   background-color#fff7fbcolorz#000000r    )r8   r6   )r+   r   r,   r-   )r   r   r1   r   r   r   test_background_gradient_color/   s   r9   zaxis, expected)lowr:   highr;   r	   )r:   r;   r:   r;   )r:   midr<   r;   c                 C   s   |dkrddgddgddgd}n|dkrd	gd
gdgd}t | |d|d j}tg dD ]\}}|| |||  ks@J q0d S )Nr   )r5   #f7fbffr7   )r5   #abd0e6)r5   #08306br8   z#f1f1f1)r:   r<   r;   r    )r8   r=   )r8   r>   )r8   r?   Bluesr"   axis)r'   r(   r)   r*   )r+   r,   r-   	enumerate)r   rC   expectedr   colorsr1   icellr   r   r   test_background_gradient_axis8   s   
rI   zcmap, expectedPuBu)r5   z#86b0d3r7   )r5   z#83afd3r@   ))r      )r      r!   )r5   z#fd913e)r5   z#fd8f3d))r      )r   	   )r5   z#48c16e)r5   z#4cc26c))   r   )rO   r	   c                 C   sR   t tddd}|jj| d d j}| D ]}|| || ks&J qd S )Nd   
   rB   )	r   nparangereshapestyler   r,   r-   keys)r"   rE   r   r1   kr   r   r   test_text_color_thresholdS   s
   rX   c                  C   sN   t td} | jjddd j}|d |d ksJ |d |d ks%J d S )	NrK   r	      )vminvmaxr'   r)   )r   r   )rY   r   )r   rangerU   r   r,   r-   )r   r-   r   r   r   "test_background_gradient_vmin_vmaxu   s   r]   c                  C   s   t td } t tddd }| j  j}|j  j}|d |d ks,J |d |d ks6J |d |d ks@J d S )NrY   Int64)dtyper'   r)   )r
   r   )r   r\   to_framerU   r   r,   r-   )df1df2ctx1ctx2r   r   r   test_background_gradient_int64}   s   re   zaxis, gmap, expectedr
   r4   )r5   #023858r'   r)   r(   r*   c                 C   s$   | j ||d j}||ksJ d S N)rC   gmapr   r,   r-   )r   rC   ri   rE   r1   r   r   r   #test_background_gradient_gmap_array   s   %rk   z
gmap, axis)r	   r
   rY   c                 C   s`   t g dg dg}d}tjt|d |jj| |d  W d    d S 1 s)w   Y  d S )Nr   r   r   z$supplied 'gmap' is not correct shapematchri   rC   )r   pytestraises
ValueErrorrU   r   r,   )ri   rC   r   msgr   r   r   *test_background_gradient_gmap_array_raises   s
   "rt   ri   r   r   r   r   r   )r
   r	   rY   )r   r   CrY   )r   r   Zzsubset, exp_gmapc                 C   s<   | j d ||d}| j d ||d}| j| jksJ d S )N)rC   ri   r3   rj   )r   ri   r3   exp_gmaprE   r1   r   r   r   -test_background_gradient_gmap_dataframe_align   s    rx   zgmap, axis, exp_gmapr   c                 C   s8   | j d |d }| j ||d }|j|jksJ d S rh   rj   )r   ri   rC   rw   rE   r1   r   r   r   *test_background_gradient_gmap_series_align   s   rz   c                 C   sJ   d}t jt|d | j||d  W d    d S 1 sw   Y  d S )NzD'gmap' is a DataFrame but underlying data for operations is a Seriesrm   ro   )rp   rq   rr   r   r,   )r   ri   rC   rs   r   r   r   -test_background_gradient_gmap_wrong_dataframe   s   	"r{   c                 C   s^   d}t ddgddgd}tjt|d | j|d d  W d    d S 1 s(w   Y  d S )	NzD'gmap' is a Series but underlying data for operations is a DataFramer	   r
   r   r   ry   rm   ro   )r   rp   rq   rr   r   r,   )r   rs   ri   r   r   r   *test_background_gradient_gmap_wrong_series   s
   "r|   r"   c                 C   sf   t ddgddgg}|jj| d d j}dddd	d
}| D ]\}}||| d d v s0J q d S )Nr	   r
   rY   r   rB   z#d0d1e6z#056fafz#73a9cfrf   rg   )r   rU   barr,   r-   items)r"   datar-   pubu_colorsrW   vr   r   r   test_bar_colormap  s   r   c                 C   s   d}t jt|d | jjddhd  W d    n1 sw   Y  t jt|d | jjg dd  W d    n1 sAw   Y  d}t jt|d | jjdd	d
  W d    d S 1 sew   Y  d S )Nz4`color` must be string or list or tuple of 2 stringsrm   ab)r8   )r   r   cz'`color` and `cmap` cannot both be given	somethingzsomething else)r8   r"   )rp   rq   rr   rU   r}   to_html)r   rs   r   r   r   test_bar_color_raises  s   "r   plot_methodscatterhexbinc                 C   sh   t jg dg dg}| j| j | d< tddd|d}|dkr'|d|d< t| j|d	i | d S )
N)r	   r	   r	   rl   r   r   r   )r%   yr   colormapr   ru   r   )	mplrF   ListedColormapr   r   dictpopr+   plot)r   r   r"   kwargsr   r   r   test_pass_colormap_instance!  s   r   )%numpyrR   rp   pandasr   r   r   importorskipr   r   pandas.io.formats.styler   fixturer   r   r   r   markparametrizer2   r9   rI   rX   r]   re   arrayrk   rt   rx   rz   r{   r|   cmget_cmapr   r   r   r   r   r   r   <module>   s   












#0
 "
$$$$
	$$

