
     j              
          d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlm	Z	m
Z
mZmZmZ d dlmZ  ej        d          Zd dlmZ d dlmZmZmZmZ ej        d             Zej        d             Zej        d	             Zej        d
             Zej        d             Zej        d             Z ej!        "                    ddddddddddgfdddddddddgfg          d             Z#ej!        "                    ddddddddddgfdddddddddgfg          d             Z$d Z%ej!        "                    dg d          d             Z&ej!        "                    dddg          d              Z'ej!        "                    ddd!g          d"             Z(d# Z)d$ Z*ej!        "                    d%ddg          ej!        "                    d&ddg          ej!        "                    d'ddg          d(                                     Z+ej!        "                    d'ddg          d)             Z,d* Z-d+ Z.d, Z/ej!        "                    d-d.d/d.gd/gg          d0             Z0ej!        "                    d-d.d/d.gd/gg          ej!        "                    d1ddg          d2                         Z1ej!        "                    d3d4d5g          ej!        "                    d6d7d8g          d9                         Z2ej!        "                    d3d5d4g          ej!        "                    d6d7d8g          d:                         Z3d; Z4 G d< d=          Z5d> Z6d? Z7ej!        "                    d@g dA          dB             Z8dC Z9dD Z:dE Z;dF Z<dG Z=dH Z>dI Z?ej!        "                    dJg dK          dL             Z@dS )M    N)dedent)	DataFrame
IndexSlice
MultiIndexSeriesoption_contextjinja2Styler)_get_level_lengths_get_trimming_maximumsmaybe_convert_css_to_tuplesnon_reducing_slicec            	          t          ddgddggt          j        dgddgg          t          j        dgd	d
gg          t                    S )N            i0i1_ai1_bc0c1_ac1_b)indexcolumnsdtype)r   r   from_productint     |C:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pandas/tests/io/formats/style/test_style.pymi_dfr#      s`    
Q!Q%v/?&@AA'$&&1A(BCC	   r!   c                 $    t          | d          S )Nr   uuid_lenr
   )r#   s    r"   	mi_stylerr'   (   s    %!$$$$r!   c                 L   |                      d          } i | j        ddd| _        d| _        d| _        |                     d           |                     d	d
dg           |                     d           |                     dgdd           |                     d           |                     dgdd           |                     d           | j        	                    dg          }t          j        dg|j        g          |_        |                     |j                   |                     dd           |                     dd           |                     dd           |                     d            |                     d d           |                     d d           |                     t)          d	dgd	d gg| j        | j        !                     |                     t)          d"d#gd"d$gg| j        | j        !                     | S )%NT)deepcopyROWCOL)rowcol   abcdecaptaa:v;selectorpropsr   axis)r   r   r7   namesr   )r   r   zclass="box"mean MISSINGr   )na_rep	precisionr   r   )r>   r7   r   r   c                     dS )Nzcolor: white;r    xs    r"   <lambda>z mi_styler_comp.<locals>.<lambda>B       / r!   c                     dS )Nzcolor: black;r    r@   s    r"   rB   z mi_styler_comp.<locals>.<lambda>C   rC   r!   bcr   r   a2b2c2)_copycssr&   uuidset_captionset_table_styleshideset_table_attributesdataaggr   r   r   concatstyleformatformat_indexhighlight_max	map_indexset_td_classesr   r   set_tooltips)r'   others     r"   mi_styler_compr]   -   s\    ..IAy}AU5AAAIMIIN&!!!S6 B BCDDDNN	N"""NNN#)4N@@@NNN   NNN#'N>>>""=111Nx((E)B4*=>>EKU[!!!I333QQ///QQ///&&&11:::11:::3Z#s$IOYEV	
 	
 	
  
 D\D$<(/%	
 	
 	
   r!   c                      dS )N&nbsp;r    r    r!   r"   blank_valuer`   S   s    8r!   c                      t          ddgt          j                            d                              d          d          } | S Nr   r   r   AB)r   nprandomdefault_rngstandard_normaldfs    r"   rk   rk   X   s>    	!Qbi&;&;A&>&>&N&Nq&Q&QRR	S	SBIr!   c                     t          ddgt          j                            d                              d          d          } t          |           S rb   )r   rf   rg   rh   ri   r   rj   s    r"   stylerrm   ^   sE    	!Qbi&;&;A&>&>&N&Nq&Q&QRR	S	SB"::r!   zsparse_columns, exp_colsTzcolspan="2"r   )
is_visible
attributesvalueFr;   c                 R   dddd}dddd}|                      d|          }|d                                         |d         d         d                                         k    sJ |d	                                         |d         d         d
                                         k    sJ |                                |d         d	         d                                         k    sJ |                                |d         d	         d
                                         k    sJ d S )NTr;   r   rn   ro   display_valuer   r   headr   r   r   
_translateitems)r'   sparse_columnsexp_cols	exp_l1_c0	exp_l1_c1ctxs         r"   test_mi_styler_sparsify_columnsr}   d   s   (  $2OOI#2OOI


t^
4
4CA;#f+a."3"9"9";";;;;;A;#f+a."3"9"9";";;;;;??FAq 1 7 7 9 99999??FAq 1 7 7 9 9999999r!   zsparse_index, exp_rowsrowspan="2"r   c                 R   dddd}dddd}|                      |d          }|d                                         |d         d         d                                         k    sJ |d                                         |d         d         d                                         k    sJ |                                |d         d         d                                         k    sJ |                                |d         d         d                                         k    sJ d S )	NTr;   r   rr   r   r   bodyr   ru   )r'   sparse_indexexp_rows	exp_l1_r0	exp_l1_r1r|   s         r"   test_mi_styler_sparsify_indexr      s   (  $2OOI#2OOI


|T
2
2CA;#f+a."3"9"9";";;;;;A;#f+a."3"9"9";";;;;;??FAq 1 7 7 9 99999??FAq 1 7 7 9 9999999r!   c                    t          dd          5  |                                 }d d d            n# 1 swxY w Y   t          dd          5  |                                 }d d d            n# 1 swxY w Y   ||k    sJ t          dd          5  |                                 }d d d            n# 1 swxY w Y   t          dd          5  |                                 }d d d            n# 1 swxY w Y   ||k    sJ d S )Nzstyler.sparse.indexFTzstyler.sparse.columns)r   to_html)r'   html1html2s      r"   test_mi_styler_sparsify_optionsr      s   	-u	5	5 $ $!!##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	-t	4	4 $ $!!##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ E>	/	7	7 $ $!!##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	/	6	6 $ $!!##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ E>sB   266A..A25A2B22B69B6C..C25C2z3rn, cn, max_els, max_rows, max_cols, exp_rn, exp_cn))d   r   r   NN      )  r     NN   r   )r   r     NNr   }   )r   r   r   
   Nr   r   )r   r   r   Nr.   r   r.   )r   r   i  2   r      r   c                 N    t          | ||||d          \  } }| |f||fk    sJ d S )Ng      ?)scaling_factor)r   )rncnmax_elsmax_rowsmax_colsexp_rnexp_cns          r"   test_trimming_maximumr      sK     $
B8C  FB 8'''''''r!   zoption, val)styler.render.max_elementsr   )styler.render.max_rowsr   c                    t          t          j        d                              dd                    }t	          | |          5  |j                            dd          }d d d            n# 1 swxY w Y   t          |d         d                   dk    sJ t          |d                   d	k    sJ t          |d         d                   dk    sJ d S )
Nx   <   r   Trt   r   r   r   r   r   rf   arangereshaper   rU   rv   lenoptionvalrk   r|   s       r"   test_render_trimming_rowsr      s
    
29S>>))"a00	1	1B		$	$ . .h!!$--. . . . . . . . . . . . . . .s6{1~!####s6{q    s6{1~!######   A..A25A2)styler.render.max_columnsr   c                    t          t          j        d                              dd                    }t	          | |          5  |j                            dd          }d d d            n# 1 swxY w Y   t          |d         d                   dk    sJ t          |d                   dk    sJ t          |d         d                   dk    sJ d S )	N   r   r   Trt   r   r   r   r   r   s       r"   test_render_trimming_colsr      s
    
29R==((B//	0	0B		$	$ . .h!!$--. . . . . . . . . . . . . . .s6{1~!####s6{q    s6{1~!######r   c                  (   t          j        ddgg dg          } t          t          j        d                              dd          | |           }t          dd          5  |j                            d	d	          }d d d            n# 1 swxY w Y   t          |d
         d                   dk    sJ ddi
                                |d
         d         d         
                                k    sJ ddi
                                |d
         d         d         
                                k    sJ ddi
                                |d
         d         d         
                                k    sJ t          |d
                   dk    sJ d S )Nr   r   r   r   r   $   r   r   r   r   r   Tr   r   r.   ro   r~   classzdata row0 col_trimzdata row_trim col_trimr   )r   r   r   rf   r   r   r   rU   rv   r   rw   midxrk   r|   s      r"   test_render_trimming_mir      s   "QFIII#677D	29R==((A..D	I	I	IB	4a	8	8 . .h!!$--. . . . . . . . . . . . . . . s6{1~!####-(..00CKN14E4K4K4M4MMMMM)*0022c&k!nQ6G6M6M6O6OOOOO-.4466#f+a.:K:Q:Q:S:SSSSSs6{q      s   #BBBc                      t          t          j        dgddggd dg                    } t          d          }|| j                                        v sJ d S )Nrd   r   r   oner9   r   z    >
      <thead>
        <tr>
          <th class="index_name level0" >&nbsp;</th>
          <th class="index_name level1" >one</th>
        </tr>
      </thead>
    )r   r   r   r   rU   r   )rk   expecteds     r"   test_render_empty_mir      sk    	03%!QuVVV	W	W	WB	
 
H rx''))))))))r!   comprehensiverenderr)   c                 >  	 | r|n|}d|_         |rt          j        |          nt          j        |          }||usJ |r|                                 g d|sVfd|j        D             D ]@}t          t          ||                    t          t          ||                    k    sJ Ad S g d		D ]@}t          t          ||                    t          t          ||                    k    sJ A	fd|j        D             D ]}t          ||          ?t          t          ||                    t          t          ||                    k    sJ Qt          t          ||                    t          t          ||                    k    sJ d S )Nr.   )cellstyle_mapcellstyle_map_columnscellstyle_map_indextemplate_latextemplate_htmltemplate_html_styletemplate_html_tablec                 :    g | ]}t          |          |v|S r    callable.0r1   excls     r"   
<listcomp>ztest_copy.<locals>.<listcomp>  s.    WWW1WQUWQWWWr!   )rR   r   r   r&   rM   captioncell_idshide_index_hide_columns_hide_index_nameshide_column_namestable_attributesc                 B    g | ]}t          |          |v|v|S r    r   )r   r1   r   shallows     r"   r   ztest_copy.<locals>.<listcomp>/  sR     
 
 
QKK
 %&TM
 78w6F

 
 
r!   )r&   copyr)   r   __dict__idgetattr)
r   r   r)   r'   r]   rm   s2attrr   r   s
           @@r"   	test_copyr     s     -;^^)FFO"*	Av				&0A0ABV   D  JWWWWWWW 	F 	FDgb$''((Bwvt/D/D,E,EEEEEE	F 	F
 
 
  	F 	FDgb$''((Bwvt/D/D,E,EEEEEE
 
 
 
 
_
 
 
 	J 	JD
 r4   J'"d++,,7643H3H0I0IIIIII'"d++,,7643H3H0I0IIIIII	J 	Jr!   c                      G d dt                     } || j                  }|rt          j        |          nt          j        |          }t	          ||          sJ d S )Nc                       e Zd ZdS ))test_inherited_copy.<locals>.CustomStylerN)__name__
__module____qualname__r    r!   r"   CustomStylerr   >  s        r!   r   )r   rR   r   r)   
isinstance)r'   r)   r   custom_stylercustom_styler_copys        r"   test_inherited_copyr   :  s        v    !L00M(0Nm$$$di6N6N  (,7777777r!   c                 x   | }|                                  t          |j        |j                  }g dfd|j        D             D ]}t          ||          t          ||          k    }t          |d          r%t          |          dk    rt          |          rJ Yt          |d          rt          |          dk    r}|rJ |	                                 d |j        D             D ]H}t          ||          t          ||          k    }t          |d          rt          |          sn|sJ Id S )NrM   )rR   r   r   rM   r&   r   r   r   r   r   r   r   r   c                 :    g | ]}t          |          |v |S r    r   r   s     r"   r   ztest_clear.<locals>.<listcomp>a  s-    NNNqHQKKN19NNNNr!   __iter__r   c                 0    g | ]}t          |          |S r    r   )r   r1   s     r"   r   ztest_clear.<locals>.<listcomp>l  s#    ???q8A;;????r!   )
_computer   rR   rM   r   r   hasattrr   allclear)r]   rm   
clean_copyr   resr   s        @r"   
test_clearr   H  sp    F
OO&+666J  D  ONNNFONNN  fd##wz4'@'@@3
## 	C1 	3xxS*%% 	#c((a- 	NNNN LLNNN??FO??? = =fd##wz4'@'@@"3
33<s3xx<<<<<= =r!   c                     g d}|D ][}t          ||          t          | |          k    }t          |d          r#t          |          dk    rt          |          rn|rJ \|                                 }|                    |          }|D ][}t          ||          t          | |          k    }t          |d          r#t          |          dk    rt          |          sn|sJ \|                                 d S )N)_todor   r   r   r   r   table_stylesrL   r   r   )r   r   r   r   exportuser   )r]   r'   	exp_attrsr   checkr   useds          r"   test_exportr   q  s*   	 	 	I  
 
	4((GND,I,II"5*55	
:=e**q.	
JJ	
 	
OT	
 	
 	
 ""$$F==  D X Xd##w~t'D'DD%eZ88WSZZ!^Ws5zzWWRWWWWLLNNNNNr!   c                 @   d}t          j        t          |          5  |                     ddd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     ddd	d
           d d d            d S # 1 swxY w Y   d S )Nz4`subset` and `level` cannot be passed simultaneouslymatchr   	somethingzsomething else)r7   subsetlevelz4`level` must be of type `int`, `str` or list of suchr   r   )badtyper7   r  )pytestraises
ValueErrorrP   )r'   msgs     r"   test_hide_raisesr    sN   
@C	z	-	-	- Q QGK?OPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q AC	z	-	-	- B BG1a+@+@AAAB B B B B B B B B B B B B B B B B Bs#   AA
A+BBBr  r   r   c                    ddgddgc| j         _        | j        _        |                     d|                              dd          }t          |d         d                   d	k    sJ t          |d         d
                   d	k    sJ t          |d         d                   dk    sJ |d         d         d         d         sJ |d         d         d
         d         rJ |d         d         d         d         sJ |d         d         d
         d         rJ |d         d
         d         d         sJ |d         d
         d
         d         rJ d S )Nzeror   r   r	  FTrt   r   r   r   r   r   rn   r   )r   r9   r   rP   rv   r   )r'   r  r|   s      r"   test_hide_index_levelr    sc   6<e_vuo2IO9,2
..gU.
3
3
>
>ud
K
KCs6{1~!####s6{1~!####s6{1~!####v;q>!\****6{1~a ....v;q>!\****6{1~a ....v;q>!\****6{1~a ......r!   r9   c                     ddg| j         _        |rddg| j        _        |                     d|                              dd          }t          |d                   |rdnd	k    sJ d S )
Nr  r   r   r	  TFrt   r   r   )r   r9   r   rP   rv   r   )r'   r  r9   r|   s       r"   test_hide_columns_levelr    sz      &uoI 0!'	
..iu.
5
5
@
@u
M
MCs6{U 1222222r!   methodmapapplyr7   r   r   c                 ~   t          ddgddgdddg          }d d d	} t          |j        |  d
          ||          |          }t          |j                  dk    sJ t          t          |d|                     dk    sJ |                                 ddgi}t          |d|           |k    sJ d S )Nr   r   rc   CDr   c                     d | D             S )Nc                 &    g | ]}d |v sd|v rdndS )rd   r  	attr: valr;   r    r   vs     r"   r   z;test_apply_map_header.<locals>.<lambda>.<locals>.<listcomp>  s.    UUUaC1HIqIKKrUUUr!   r    ss    r"   rB   z'test_apply_map_header.<locals>.<lambda>  s    UUSTUUU r!   c                     d| v sd| v rdndS )Nrd   r  r  r;   r    r  s    r"   rB   z'test_apply_map_header.<locals>.<lambda>  s    FSAXFB r!   r  r  _indexr6   ctx_r   r   r   r   )r   r   rU   r   r   r   )r  r7   rk   funcresultr   s         r"   test_apply_map_headerr*    s     
!Qq!f--c3Z	@	@	@BUUFF D 2WRX&00011$v,TJJJFv|!!!!wv}d}}--..!3333 OO!H 6=$==))X555555r!   c                     d d d} t          | | d          ||         |                                          }ddgi}t          |d|           |k    sJ d S )	Nc                     d | D             S )Nc                     g | ]
}d |v rdndS )rE   
attr: val;r;   r    r  s     r"   r   z>test_apply_map_header_mi.<locals>.<lambda>.<locals>.<listcomp>  s%    HHHC1H<LL"HHHr!   r    r  s    r"   rB   z*test_apply_map_header_mi.<locals>.<lambda>  s    HHaHHH r!   c                     d| v rdndS )NrE   r  r;   r    r"  s    r"   rB   z*test_apply_map_header_mi.<locals>.<lambda>  s    q8b r!   r#  r$  r6   r   r   r'  r%  )r   r   )r'   r  r7   r(  r)  r   s         r"   test_apply_map_header_mir1    s    
 IH88 D 3WY6 1 1 1224<dKKKTTVVF)*H6=$==))X555555r!   c                     t          j        t          d          5  |                     d d                                           d d d            d S # 1 swxY w Y   d S )Nz+No axis named bad for object type DataFramer  c                     dS )Nr.  r    r"  s    r"   rB   z.test_apply_map_header_raises.<locals>.<lambda>  s    l r!   r  r6   )r
  r  r  rY   r   r'   s    r"   test_apply_map_header_raisesr5    s    	z)V	W	W	W K K22??HHJJJK K K K K K K K K K K K K K K K K Ks   +AAAc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej                            dddg          d             Zej                            dddg          ej                            dddg          d                         Zej                            dedd         edddgf         edgddf         edgdgf         eddddgf         g          ej                            dddg          d                         Zej                            dedd         edddgf         edgddf         edgdgf         eddddgf         g          d              Zej                            dedded!         f         eddedddf         f         eddedddd"gf         f         eed#         ddf         eedddf         ddf         eedddd$gf         ddf         eddd!f         ed#ddf         g          d%             Zd& Zej                            d'g d(          d)             Zd* Zd+ Zd, Z d- Z!d. Z"d/ Z#d0 Z$d1 Z%d2 Z&d3 Z'd4 Z(d5 Z)d6 Z*d7 Z+d8 Z,d9 Z-d: Z.ej                            dddg          d;             Z/d< Z0d= Z1d> Z2d? Z3d@ Z4dA Z5dB Z6dC Z7dD Z8dE Z9dF Z:ej                            dG e;dHdIge<j=        dggddgdJdKgL           e;dIggdgdJgL           e;dIdMggdd"gdJgL          g          dN             Z>dO Z?dP Z@dQ ZAej                            dRg dS          dT             ZBej                            dRg dU          dV             ZCej                            dWeddddf         edddf         edddf         edgdgf         eddgf         edgdf         ed         edX          eDddd          ddg e<jE        ddg           eFddg          g          dY             ZGej                            dZeHeFe<jE        g          d[             ZId\ ZJej                            deddddf         eddedJg         f         eddedJgd]gf         f         eddedJd]ddf         f         eddedJddd^f         f         eddeddd]d^f         f         eddedJd]d_gddf         f         eddedJg d`ddf         f         eddedJg d`d^f         f         eedag         ddf         eedagdbgf         ddf         eedadbddf         ddf         eedadddcf         ddf         eedddbdcf         ddf         eedddbdcddgf         ddf         eedddbg def         ddf         eedadbg def         ddf         eedddbdcf         edJd]ddf         f         g          df             ZKdS )g
TestStylerc                     d}t          j        t          |          5  t          g d           d d d            d S # 1 swxY w Y   d S )Nz&``data`` must be a Series or DataFramer  r   )r
  r  	TypeErrorr   selfr  s     r"   test_init_non_pandaszTestStyler.test_init_non_pandas  s    6]9C000 	 	999	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   =AAc                 f    t          t          ddg                    }|j        j        dk    sJ d S )Nr   r   )r   r   rR   ndim)r;  r)  s     r"   test_init_serieszTestStyler.test_init_series  s5    1v''{1$$$$$$r!   c                 .    |                                  d S N)_repr_html_r;  rm   s     r"   test_repr_html_okzTestStyler.test_repr_html_ok  s    r!   c                     d|                                 vsJ t          dd          5  d|                                 v sJ 	 d d d            d S # 1 swxY w Y   d S )Ntex2jax_ignorezstyler.html.mathjaxF)rB  r   rC  s     r"   test_repr_html_mathjaxz!TestStyler.test_repr_html_mathjax  s    v'9'9';';;;;;1599 	< 	<#v'9'9';';;;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   AAAc                 z    |                     t          dddgi                     dgdgd}|j        |k    sJ d S )Nrd   
color: redcolor: bluecolorredrL  bluer&  r   r   )_update_ctxr   r|   )r;  rm   r   s      r"   test_update_ctxzTestStyler.test_update_ctx  sU    9cL-+H%IJJKKK-.9J8KLLzX%%%%%%r!   c                     t          dddgi          }|                    |           ddgddgd}|j        |k    sJ d S )	Nrd   zcolor: red; foo: barzcolor:blue ; foo: baz;rK  foobarrN  )rV  bazrP  )r   rR  r|   )r;  rm   attrsr   s       r"   /test_update_ctx_flatten_multi_and_trailing_semiz:TestStyler.test_update_ctx_flatten_multi_and_trailing_semi  sf    3!79Q RSTT5!!!%~6&7
 
 zX%%%%%%r!   c                     t          dddgi          }d }t          |d                              |          }|                                 d S )Nrd   r   r   c                 2    t          ddg| j                  S )NrI  rJ  namer   r^  r@   s    r"   rB   z(TestStyler.test_render.<locals>.<lambda>  s    &,!>QVLLL r!   ABr   r   r   r  r   r;  rk   rU   r   s       r"   test_renderzTestStyler.test_render  sP    aV}%%LL2D!!!''..			r!   c                     t          |d                              d dg          }|                                 d|                                v sJ d S )Nr   r%   c                     dS Ncolor: red;r    r@   s    r"   rB   z1TestStyler.test_multiple_render.<locals>.<lambda>  s     r!   rd   r  zO<style type="text/css">
#T__row0_col0, #T__row1_col0 {
  color: red;
}
</style>)r   r  r   r;  rk   r   s      r"   test_multiple_renderzTestStyler.test_multiple_render  sh    2"""&&'>'>u&MM			),-IIKK8	
 	
 	
 	
 	
r!   c                    t                      }t          |          }|                                 t          dg          j                                         t          dg          j                                         d S )Nr1   r   r   )r   r   r   rU   )r;  empty_dfess      r"   test_render_empty_dfsz TestStyler.test_render_empty_dfs  so    ;;H


3%   &..000$,,.....r!   c                     t          dddgi          }d }t          |d                              |          }|                                 d S )Nrd   r   r   c                 2    t          ddg| j                  S )Nzcolor: red; border: 1pxzcolor: blue; border: 2pxr]  r_  r@   s    r"   rB   z/TestStyler.test_render_double.<locals>.<lambda>  s"    &&(BC!&
 
 
 r!   r`  r   ra  rb  s       r"   test_render_doublezTestStyler.test_render_double  sV    aV}%%
 
 2D!!!''..			r!   c                    t          dddgi          }|j                            dd                                          j        }ddg}||d	}|                                |                                k    sJ t          |                                |                                          D ]'\  }}t          |          t          |          k    sJ (d S )
Nrd   r   r   white10px)rL  sizerL  rt  )rv  ru  rP  )	r   rU   set_propertiesr   r|   keyszipvaluessorted)r;  rk   r)  r  r   v1v2s          r"   test_set_propertieszTestStyler.test_set_properties  s    aV}%%((wV(DDMMOOS!12q)){{}}////&--//8??+<+<== 	, 	,FB"::+++++	, 	,r!   c                     t          dddgi          }|j                            t          d         d                                          j        }ddgi}||k    sJ d S )	Nrd   r   r   )r   rd   rt  )r  rL  r&  rw  )r   rU   rx  r   r   r|   r;  rk   r)  r   s       r"   test_set_properties_subsetz%TestStyler.test_set_properties_subset(  sl    aV}%%H##:f+=W#MMXZZ 	
 /01!!!!!!r!   c                 0   t          ddgddgddgd          }|j                            dd          }t          |d	                   dk    sJ d
d|d|d}|                                |d	         d         d                                         k    sJ d S )Nr   r   r   r   r.   r   rd   re   r  Trt   zblank level0thr   r  rp   rn   rs   r   )r   rU   rv   r   rw   )r;  r`   rk   r)  r   s        r"   $test_empty_index_name_doesnt_displayz/TestStyler.test_empty_index_name_doesnt_display2  s    aV1a&1v>>??$$T4006&>""a''''# (
 
 ~~6&>!#4Q#7#=#=#?#???????r!   c                     t          ddgddgddgd          }|                    d          j                            d	d	          }d
ddd	dd}|                                |d         d         d                                         k    sJ d S )Nr   r   r   r   r.   r   r  rd   Tindex_name level0r  r  rt   r   )r   	set_indexrU   rv   rw   r  s       r"   test_index_namezTestStyler.test_index_name@  s    aV1a&1v>>??c""(33D$??( 
 
 ~~6&>!#4Q#7#=#=#?#???????r!   c                 b    t          dg di          }|j                            dd           d S )Nr   r   T)r   rU   rv   )r;  rk   s     r"   test_numeric_columnszTestStyler.test_numeric_columnsM  s7     999~&&
D$'''''r!   c                 6   t          ddgddgd          }d }|j                            |d          }t          |j                  dk    sJ t          |j                  dk    sJ |                                 dgdgdgdgd}|j        |k    sJ |j                            |d          }dgdgdgdgd}|                                 |j        |k    sJ |j                            |          }|                                 |j        |k    sJ d S )	Nr   r   rc   c                        fd D             S )Nc                 >    g | ]}d                                   S )zval: )max)r   r  rA   s     r"   r   z@TestStyler.test_apply_axis.<locals>.<lambda>.<locals>.<listcomp>U  s*    444Q(quuww((444r!   r    r@   s   `r"   rB   z,TestStyler.test_apply_axis.<locals>.<lambda>U  s    4444!444 r!   r6   )r   1)r&  r   r   rQ  r0  )r   0)r   rU   r  r   r   r|   r   )r;  rk   fr)  r   s        r"   test_apply_axiszTestStyler.test_apply_axisS  sO   aV1a&112244**6<  A%%%%6:!####!N!N!N!N	
 
 zX%%%%**!N!N!N!N	
 
 	zX%%%%""zX%%%%%%r!   r7   r   r   c                    t          ddgddggddgddg          }d }|j                            ||	                                          j        }|d
         dgk    sJ |d|z
  |f         dgk    sJ d }|j                            ||	                                          j        }|d         dgk    sJ |d
         dgk    sJ |d|z
  |f         dgk    sJ ||d|z
  f         dgk    sJ d S )Nr   r   r   r   XYrG   c                 (    t          dgdg          S )Nrg  r  r   r   r  s    r"   rB   z5TestStyler.test_apply_series_return.<locals>.<lambda>u  s    u=== r!   r6   r0  rK  c                 ,    t          ddgddg          S )Nrg  zcolor: blue;r  r  r   r  r  s    r"   rB   z5TestStyler.test_apply_series_return.<locals>.<lambda>{  s     ?SzRRR r!   r&  rN  r   rU   r  r   r|   )r;  r7   rk   r(  r)  s        r"   test_apply_series_returnz#TestStyler.test_apply_series_returno  sH    AA'SzC:NNN >=40099;;?f~"2!33333q4x&',<+===== SR40099;;?f~"3!44444f~"2!33333q4x&',<+=====tQX&',=+>>>>>>>r!   r   FTr   c                 |   t          ddgddggddgddg          }|rddgndg}|rddgndg}t          d||          |j                            fd	d 
                                          j        }|d         dgk    sJ |d         dgk    |u sJ |d         dgk    |u sJ |d         dgk    |o|u sJ d S )Nr   r   r   r   r  r  rG   rg  c                     S rA  r    )rA   	df_styless    r"   rB   z8TestStyler.test_apply_dataframe_return.<locals>.<lambda>  s    ) r!   r6   r0  rK  r  rQ  r&  r  )r;  r   r   rk   idxscolsr)  r  s          @r"   test_apply_dataframe_returnz&TestStyler.test_apply_dataframe_return  s    AA'SzC:NNN"-Szz$/Szz3%m4FFF	 3 3 3 3$??HHJJNf~"2!33333v#3"44>>>>v#3"44@@@@v#3"44%:KGLLLLLLr!   slice_Nrd   r   re   c                     dd}j                             ||d                                          j        }fdt	          j                  D             }||k    sJ d S )NrW  c                 @    t          d| | j        | j                  S )Ncolor: )r   r^  )r   r   r^  )rA   rL  s     r"   hz'TestStyler.test_apply_subset.<locals>.h  s$    +E++17HHHHr!   rX  )r7   r  rL  c                     i | ]M\  }}t          j                  D ]3\  }}|j                 j        v |j                 j        v -||fd g4NS )rL  rX  	enumerater   locr   r   rr,   rF   r-   rk   r  s        r"   
<dictcomp>z0TestStyler.test_apply_subset.<locals>.<dictcomp>       
 
 
3#BJ//
 
 3bfVn**	
 03bfVn6L/L	
F%&
 
 
 
r!   )rW  )rU   r  r   r|   r  r   )r;  r  r7   rk   r  r)  r   s    ` `   r"   test_apply_subsetzTestStyler.test_apply_subset  s    	I 	I 	I 	I V5IIRRTTX
 
 
 
 
#BH--
 
 
 !!!!!!r!   c                     j                             d                                           j        }fdt	          j                  D             }||k    sJ d S )Nc                     dS )Nz
color:baz;r    r@   s    r"   rB   z,TestStyler.test_map_subset.<locals>.<lambda>  s     r!   rh  c                     i | ]M\  }}t          j                  D ]3\  }}|j                 j        v |j                 j        v -||fd g4NS r  r  r  s        r"   r  z.TestStyler.test_map_subset.<locals>.<dictcomp>  r  r!   )rU   r  r   r|   r  r   )r;  r  rk   r)  r   s    ``  r"   test_map_subsetzTestStyler.test_map_subset  s     44VDDMMOOS
 
 
 
 
#BH--
 
 
 !!!!!!r!   )rA   rd   r  )r1   r   r   c                 L   t          |d         t                    rMt          |d         d         t                    r,d|d         d         v rt          j        t
          d          }n{t          |d         t                    rMt          |d         d         t                    r,d|d         d         v rt          j        t
          d          }nt          j                    }t          j	        dd	gdd
gg          }t          j	        ddgddgg          }t          t          j                            d
                              d          ||          }|5  |j                            d |                                           d d d            d S # 1 swxY w Y   d S )Nr  r  r   r   r   3r1   rE   r   rA   yrd   re   )r   r   r   c                     dS rf  r    r@   s    r"   rB   z7TestStyler.test_map_subset_multiindex.<locals>.<lambda>  s    = r!   rh  )r   tuplelistr
  r  KeyError
contextlibnullcontextr   r   r   rf   rg   rh   rU   r  r   )r;  r  r|   idxr-   rk   s         r"   test_map_subset_multiindexz%TestStyler.test_map_subset_multiindex  s   " vbz5))	+6":b>400	+ vbz"~%	+
 -444CCvay%((	+6!9Q<..	+ VAYq\!	+
 -444CC(**C%SzAq6&:;;%SzC:&>??ry,,Q//66v>>SVWWW 	K 	KHLL00L@@HHJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks   0FF Fc                 >   t          j        g dg dg          }t          ddgddgg|ddg          }t          g d	g d
gddg|          }t          d d t          d d ddf         f         }d }|j        |          |j                            ||           d S )N)r   r   r   r   r   r   r   r   r1   rE   %#r;   )levelscodesr9   )r   r  r   r   )r  r   r   r   helloworldrG   c                      | dk     rdnd}d| S )Nr   rM  blackr  r    )r   rL  s     r"   color_negative_redzFTestStyler.test_map_subset_multiindex_code.<locals>.color_negative_red  s"     1W1EE'E$U$$$r!   rh  )rf   arrayr   r   r   r  rU   r  )r;  r  r   rk   
pct_subsetr  s         r"   test_map_subset_multiindex_codez*TestStyler.test_map_subset_multiindex_code  s     ,,,566#Jc
+5R
 
 
 ]]MMM*7G2Dg
 
 
  :aaaSj#9 9:
	% 	% 	% 	z
'
;;;;;r!   	stylefunc)background_gradientrW  text_gradientc                     t          ddgddggddg          } t          |j        |                      }|                                 t	          |j                  h dk    sJ d S )	Nr   r   r   r   FTrl  >   r&  r  r0  rQ  )r   r   rU   r   setr|   )r;  r  rk   styleds       r"   test_subset_for_boolean_colsz'TestStyler.test_subset_for_boolean_cols  s    
 AA DM
 
 
 .9--//6:"B"B"BBBBBBBr!   c                     t          dddgi          }|j        }dgdgd|_        |                    dd          d         }dgd	gd
dgdgd
g}||k    sJ d S )Nrd   r   r   rK  )r;   r;   rP  T	cellstyle	row0_col0r5   	selectors	row1_col0r   rU   r|   rv   r;  rk   r   r)  r   s        r"   
test_emptyzTestStyler.test_empty  s    aV}%%H*+hZ@@dD))+6'(}EEj}==
 !!!!!!r!   c                     t          dddgi          }|j        }dgdgd|_        |                    dd          d         }dgdd	gd
g}||k    sJ d S )Nrd   r   r   rK  rP  Tr  r  r  r  r  r  s        r"   test_duplicatezTestStyler.test_duplicate  s    aV}%%H*+6F5GHHdD))+6'([7QRR
 !!!!!!r!   c                    t          d d gddggddg          }t          |d                              dd          }|d	         d
         d         d         dk    sJ |d	         d
         d         d         dk    sJ d S )Ng?g333333?rd   re   rl  NA)r=   Tr   r   r   rs   r   )r   r   rv   r;  rk   r|   s      r"   test_init_with_na_repz TestStyler.test_init_with_na_rep  s    tsCj1C:FFFR%%%00t<<6{1~a 1T99996{1~a 1T999999r!   c                     t          |d          }|                                }t          d|v d|v g          sJ |j        }|                    d          }||u sJ |j        dk    sJ d S )NrV  )r   r   rX  )r   r   r   rU   rN   r   r;  rk   rm   r)  s       r"   test_captionzTestStyler.test_caption%  s    E***!!I'&9:::::##E**~&&&&&&r!   c                     t          |d          }|                                }d|v sJ |j        }|                    d          }||u sJ |j        dk    sJ d S )Nabc123r   aaa)r   r   rU   set_uuidrM   r  s       r"   	test_uuidzTestStyler.test_uuid/  sv    ***!!6!!!!''{e######r!   c                     t          g dg dd          }|j                            d          }d|v sJ t          j        d|          }t          j        |          j        t          |          k    sJ d S )N)r   r   r.   r   )r   r   r      r1   rE   testr   z
id="(.*?)")	r   rU   r   refindallrf   uniquerv  r   )r;  rk   r)  idss       r"   test_unique_idzTestStyler.test_unique_id9  s    \\\??@@!!v!..jv..y~~"c#hh......r!   c                    ddgdg}t          ||          }d                    |                                                                          }d|v sJ |j        }|                    |          }||u sJ |j        |k    sJ dddg}|j                            |          }d                    |                                                                          }d|v sJ d S )Nr  rU  r3   )r    zth { foo: bar; }zfoo:bar;)r   joinr   splitrU   rO   r   )r;  rk   rU   rm   r)  s        r"   test_table_styleszTestStyler.test_table_stylesA  s   "n-=>>?///&..**002233!V++++((//"e++++ #Z889**511&..**002233!V++++++r!   c                     |j                             ddddddg                              dd          d         }|dd	gdd
d	gdddgdgk    sJ d S )Nth,tdz
color:red;r3   trzcolor:green;Tr   r  rK  td)rL  greenrU   rO   rv   r  s      r"   test_table_styles_multiplez%TestStyler.test_table_styles_multipleR  s    h''$|<<!N;;
 

 *T4
 
 1 )9(:;;)9(:;;);(<==
 
 	
 	
 	
 	
 	
r!   c                     |j                             dddgdgi                              dd          d         }ddgdddgdg}||k    sJ d S )	Nre   r  )zborder-leftz2px solid blackr3   Tr   zth.col1ztd.col1r  r  s       r"   )test_table_styles_dict_multiple_selectorsz4TestStyler.test_table_styles_dict_multiple_selectors_  s    **!(4V3WXX
 
 *T4
 
 1 #.P-QRR".P-QRR

 !!!!!!r!   c                     ddg}t          d          |k    sJ t          d          |k    sJ g }t          d          |k    sJ d S )Nr  )rF   zd ez
a:b;c:d e;za: b ;c:  d e  r;   )r   )r;  r   s     r"    test_maybe_convert_css_to_tuplesz+TestStyler.test_maybe_convert_css_to_tuplesp  sc    -*<88HDDDD*+<==IIII*2..(::::::r!   c                     d}t          j        t          |          5  t          d           d d d            d S # 1 swxY w Y   d S )Nz6Styles supplied as string must follow CSS rule formatsr  err)r
  r  r  r   r:  s     r"   $test_maybe_convert_css_to_tuples_errz/TestStyler.test_maybe_convert_css_to_tuples_errw  s    F]:S111 	/ 	/'...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   ;??c                     d}t          ||          }|                                }d|v sJ |j                            |                                          }d|v sJ d S )Nzclass="foo" data-bar)r   )r   r   rU   rQ   )r;  rk   ro   rm   r)  s        r"   test_table_attributesz TestStyler.test_table_attributes|  sq    +
Z888!!%////..z::BBDD%//////r!   c                     d }t          ddgddgg          j                            |d                                           j        }|d         dgk    sJ d S )	Nc                     t          t          j        | |                                 k    dd          | j        | j                  S )NrI  r;   rG   )r   rf   wherer  r   r   r@   s    r"   r  z%TestStyler.test_apply_none.<locals>.f  s@    aeegg|R88g	   r!   r   r   r   r   r6   r0  rK  r  )r;  r  r)  s      r"   test_apply_nonezTestStyler.test_apply_none  sq    	 	 	 QFQF+,,2888FFOOQQUf~"2!3333333r!   c                    |j                                         }|                    d          dk    sJ |j                                                                         }|                    d          t	          |j                  k    sJ d S )Nr  r   )rU   r   countrX   r   r   )r;  rk   r)  s      r"   	test_trimzTestStyler.test_trim  s|    !!##||C  A%%%%''))1133||C  C
OO333333r!   c                 ^   d }d }|}|                     |                               |d                                                                           |                                }|j        }|                    |           |j        |j        k    sJ |                                 d S )Nc                     | dk    rdndS )Nr   rI  rJ  r    r@   s    r"   rB   z(TestStyler.test_export.<locals>.<lambda>  s    a!e>ll r!   c                 "    | dk    rd| nd| S )Nr   r  r    )rA   zs     r"   rB   z(TestStyler.test_export.<locals>.<lambda>  s    !a%B1]q]] r!   rE   )r  )r  rX   r   r   rU   r   r   r   )r;  rk   rm   r  gstyle1r)  style2s           r"   r   zTestStyler.test_export  s    >>BB

1!s##1133<<>>>

6|v|++++r!   c                 ^   t          ddgddggddgddg	          }d
}t          j        t          |          5  |j                            d            d d d            n# 1 swxY w Y   d}t          j        t          |                    d                    5  |j                            d            d d d            n# 1 swxY w Y   t          j        t          |                    d                    5  |j                            d            d d d            n# 1 swxY w Y   t          j        t          |                    d                    5  |j                            d d           d d d            n# 1 swxY w Y   t          j        t          |                    d                    5  |j                            d d           d d d            n# 1 swxY w Y   t          j        t          |                    d                    5  |j                            d d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |j                            d d            d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   rd   re   r  r  rG   z4resulted in the apply method collapsing to a Series.r  c                     dS )NrA   r    r@   s    r"   rB   z1TestStyler.test_bad_apply_shape.<locals>.<lambda>  s    c r!   zcreated invalid {} labelsr   c                     dgS Nr;   r    r@   s    r"   rB   z1TestStyler.test_bad_apply_shape.<locals>.<lambda>  s    rd r!   c                 
    g dS )N)r;   r;   r;   r;   r    r@   s    r"   rB   z1TestStyler.test_bad_apply_shape.<locals>.<lambda>  s    &6&6&6 r!   c                 ,    t          ddgddg          S )Nr2   r;   rd   r  r   r  r@   s    r"   rB   z1TestStyler.test_bad_apply_shape.<locals>.<lambda>      ffb\#s&L&L&L r!   r   r6   r   c                 
    g dS )N)r;   r;   r;   r    r@   s    r"   rB   z1TestStyler.test_bad_apply_shape.<locals>.<lambda>  s
    lll r!   c                 ,    t          ddgddg          S )Nr2   r;   r  Zr   r  r@   s    r"   rB   z1TestStyler.test_bad_apply_shape.<locals>.<lambda>  r"  r!   z!returned ndarray with wrong shapec                 2    t          j        dgdgg          S r  )rf   r  r@   s    r"   rB   z1TestStyler.test_bad_apply_shape.<locals>.<lambda>  s    bhrd|&<&< r!   )r   r
  r  r  rU   _applyrV   )r;  rk   r  s      r"   test_bad_apply_shapezTestStyler.test_bad_apply_shape  sc   AA'SzC:NNND]:S111 	+ 	+HOOMM***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ *]:SZZ-@-@AAA 	, 	,HOONN+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, ]:SZZ-@-@AAA 	8 	8HOO66777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 ]:SZZ-@-@AAA 	V 	VHOOLLSTOUUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V ]:SZZ	-B-BCCC 	< 	<HOO22O;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< ]:SZZ	-B-BCCC 	V 	VHOOLLSTOUUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 2]:S111 	I 	IHOO<<4OHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Is}   A""A&)A&CC	C	>D&&D*-D*F		FFG,,G03G0%III7J""J&)J&c                     d }t          ddgddgg          }d}t          j        t          |          5  |j                            |d            d d d            d S # 1 swxY w Y   d S )	Nc                     dS r  r    r@   s    r"   r  z+TestStyler.test_apply_bad_return.<locals>.f  s    2r!   r   r   r   r   zOmust return a DataFrame or ndarray when passed to `Styler.apply` with axis=Noner  r6   )r   r
  r  r9  rU   r'  )r;  r  rk   r  s       r"   test_apply_bad_returnz TestStyler.test_apply_bad_return  s    	 	 	 AA'(( 	 ]9C000 	* 	*HOOADO)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   A  A$'A$c                     fd}t          ddgddgg          }d d}t          j        t          |          5  |j                            |d 	           d d d            d S # 1 swxY w Y   d S )
Nc                 $    t          di ddgiS )Nr  labelsr    )r   )rA   r7   s    r"   r  z+TestStyler.test_apply_bad_labels.<locals>.f  s!    99uh&78999r!   r   r   r   r   zcreated invalid z labels.r  r6   )r   r
  r  r  rU   r'  )r;  r7   r  rk   r  s    `   r"   test_apply_bad_labelsz TestStyler.test_apply_bad_labels  s    	: 	: 	: 	: 	: AA'((////]:S111 	* 	*HOOADO)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   A''A+.A+c                 
   t          j        ddgg dg          }ddddddddd}t          |dd	          }t          j        ||           ddddddddddddd
}t          |dd	          }t          j        ||           d S )Nr1   rE   r   r   r   r   r   )r&  r   r   rQ  r0  r   r   r   r   r   r   r   r.   Tr   sparsify	max_index)r&  r  r   r   r2  r   r   r   r.   rQ  r0  r3  r4  r5  r6  F)r   r   r   tmassert_dict_equalr;  r   r   r)  s       r"   test_get_level_lengthsz!TestStyler.test_get_level_lengths  s    '#sYYY(?@@	
 	
 $EDCHHH
VX... 
 
 $EESIII
VX.....r!   c           	          t          j        g dg dg          }dddddddd}t          |dd          }t          j        ||           ddddddddd	}t          |d
d          }t          j        ||           d S )N)r   r   r   r   )r1   rE   rE   dr   r   )r&  r:  r2  rQ  r0  r3  r4  Tr   r7  )r&  r  r:  r2  rQ  r0  r3  r4  Fr   from_arraysr   r=  r>  r?  s       r"    test_get_level_lengths_un_sortedz+TestStyler.test_get_level_lengths_un_sorted  s    &6J6J6J'KLL
 
 $EDCHHH
VX... 	
 	
 $EESIII
VX.....r!   c                 j   t          dddgit          j        ddgddggddg          	          }|j                            d
d
          }|d         d         }ddd
dddd
dd|d
dg}t          |          D ]7\  }}|                                ||                                         k    sJ 8d S )Nrd   r   r   r1   r   idx_level_0idx_level_1r   r   Trt   r  r   rs   rn   zindex_name level1z
blank col0)r   r   rD  rU   rv   r  rw   )r;  r`   rk   r)  rt   r   iexpected_dicts           r"   test_mi_sparse_index_namesz%TestStyler.test_mi_sparse_index_names  s   1a&M(saV$]M,J  
 
 
 $$T400f~a  -!."  -!."  &!," 
" !*( 3 3 	< 	<A} &&((DGMMOO;;;;;	< 	<r!   c           	         t          t          j        d                              dd          t	          j        g dg dgddg          t	          j        g dg d	gd
dg                    }t          |d                              dd          }dD ]i}|d         |         }d|ddd| d| ddg}t          |          D ]7\  }}|	                                ||         	                                k    sJ 8jd S )N   r   )r1   r1   rE   r1   )r   r   r   r   rG  rH  r   )C1rO  C2rP  )r   r   r   r   colnam_0colnam_1rG   F)r   Tr  rt   blankrI  zindex_name levelcolnam_)
r   rf   r   r   r   rD  r   rv   r  rw   )	r;  r`   rk   r)  r  rt   r   rJ  rK  s	            r"   test_mi_sparse_column_namesz&TestStyler.test_mi_sparse_column_names,  sr   IbMM!!!Q''(%%%|||4$m4   *)))<<<8Z@X  	
 	
 	
 U+++66tTBB 	@ 	@E&>%(D %%0"&  877%6u%6%6"& H %.h$7$7 @ @ =$**,,Q?????@	@ 	@r!   c                 <   |                     d                              dd          }t          |d                   dk    sJ d|j        _        |j                             d                              dd          }t          |d                   dk    sJ d S )Nr   r6   Trt   r   	some_namer   )rP   rv   r   r   r^  rU   )r;  rk   rm   r|   s       r"   test_hide_column_headersz#TestStyler.test_hide_column_headersJ  s    kkyk))44T4@@3v;1$$$$#hmmm++66tTBB3v;1$$$$$$r!   c                    |j                             dd          }|d         d         d         d         sJ |d         d         d         d         sJ |j                             d                              dd          }|d         d         d         d         rJ |d         d         d         d         rJ |                    d          j                             dd          }|d         d         d         d         sJ t	          |d                   d	k    sJ |d         d         d         d         sJ |                    d          j                             d                              dd          }|d         d         d         d         rJ t	          |d                   d
k    sJ |d         d         d         d         rJ d S )NTr   r   rn   rt   r   r6   rd   r   r   )rU   rv   rP   r  r   )r;  rk   r|   ctx2ctx3ctx4s         r"   test_hide_single_indexz!TestStyler.test_hide_single_indexS  s    h!!$--6{1~a ....6{1~a ....x}}'}**55dDAA<?1%l3333<?1%l3333 ||C  &11$==F|Aq!,////4<  A%%%%F|Aq!,////||C  &+++99DDT4PP<?1%l33334<  A%%%%<?1%l333333r!   c                    t          ddgddgdt          j        ddgddggddg          	          }|j                            d
d
          }|d         d         d         d         sJ |d         d         d         d         sJ t          |d         d                   dk    sJ |j                            d                              d
d
          }|d         d         d         d         rJ |d         d         d         d         rJ t          |d         d                   dk    sJ |d         d         d         d         rJ d S )Nr   r   rc   r1   r   rG  rH  r   r   Tr   rn   rt   r   r   r6   r   )r   r   rD  rU   rv   r   rP   )r;  rk   ctx1rZ  s       r"   test_hide_multiindexzTestStyler.test_hide_multiindexh  sq   a&1v&&(saV$]M,J  
 
 
 x""4..F|Aq!,////F|Aq!,////4<?##q((((x}}'}**55dDAA<?1%l3333<?1%l33334<?##q((((<?1%l333333r!   c                    |j                             dd          }|d         d         d         d         sJ |d         d         d         d         dk    sJ |d         d         d         d         sJ |d         d         d         d         d	k    sJ |d
         d         d         d         sJ |d
         d         d         d         sJ |j                             dd                              dd          }|d         d         d         d         rJ |d
         d         d         d         rJ |d
         d         d         d         sJ |j                             dd	gd                              dd          }|d         d         d         d         rJ |d         d         d         d         rJ |d
         d         d         d         rJ |d
         d         d         d         rJ d S )NTrt   r   r   rn   rs   rd   r   re   r   r   r6   )rU   rv   rP   r  s      r"   test_hide_columns_single_levelz)TestStyler.test_hide_columns_single_level  s    h!!$--6{1~a ....6{1~a 1S88886{1~a ....6{1~a 1S88886{1~a ....6{1~a ....hmmCim00;;D$GGv;q>!$\2222v;q>!$\22226{1~a .... hmmS#JYm77BB4NNv;q>!$\2222v;q>!$\2222v;q>!$\2222v;q>!$\222222r!   c                 l	   t          j        ddgddggddg          }t          j        ddgddggdd	g          }t          dd
gddgg||          }|j                            dd          }|d         d         d
         d         sJ |d         d         d
         d         sJ |d         d         d         d         dk    sJ |d         d         d         d         sJ |d         d         d
         d         sJ |d         d         d
         d         dk    sJ |d         d         d         d         sJ |d         d         d         d         dk    sJ |j                            dd                              dd          }|d         d         d
         d         rJ |d         d         d
         d         rJ |d         d         d
         d         rJ |d         d         d         d         sJ |j                            dgd                              dd          }|d         d         d
         d         rJ |d         d         d         d         sJ |d         d         d
         d         rJ |d         d         d
         d         rJ |d         d         d         d         sJ |d         d         d         d         dk    sJ |j                            dgd                              d                              dd          }|d         d         d         d         rJ t          |d         d                   dk    sJ |d         d         d         d         sJ |d         d         d         d         sJ |d         d         d
         d         rJ |d         d         d         d         rJ |d         d         d
         d         sJ |d         d         d
         d         dk    sJ |j                            dd                              dd          }|d         g k    sJ |j                            dd                              dd          }dD ]<}d|d         d         |         d         v sJ |d         d         |         d         sJ =d S )Nr1   r   r   rG  rH  r   rE   col_level_0col_level_1r   r   r   rG   Trt   rn   rs   r  r   r  4r   r6   )rE   r   )rE   r   r   )r1   r   )r   r   r   r   row1r   )r   rD  r   rU   rv   rP   r   )r;  i1i2rk   r|   rJ  s         r"   #test_hide_columns_index_mult_levelsz.TestStyler.test_hide_columns_index_mult_levels  s    #3Z!Q (F
 
 
 #3Z!Q (F
 
 
 AA'r2>>>h!!$--6{1~a ....6{1~a ....6{1~a 1S88886{1~a ....6{1~a ....6{1~a 1S88886{1~a ....6{1~a 1S8888 hmmCim00;;D$GGv;q>!$\2222v;q>!$\2222v;q>!$\22226{1~a .... hmmXJYm77BB4NNv;q>!$\22226{1~a ....v;q>!$\2222v;q>!$\22226{1~a ....6{1~a 1S8888 hmmXJQm//44!4<<GGdSSv;q>!$\22223v;q>""a''''6{1~a ....6{1~a ....v;q>!$\2222v;q>!$\22226{1~a ....6{1~a 1S8888 hmmCgm..99$EE6{b     hmmH7m33>>tTJJ 	3 	3AS[^A.w77777v;q>!$\22222	3 	3r!   c                     d }|j                             |dd          }d|                                v sJ d }|j         }|                    |dfdd	
          }|dd	|fk    sJ d S )Nc                 8    |                      d| d|           S )NzDataframe with a = z	 and b = )rN   )rm   r1   rE   s      r"   set_caption_from_templatez7TestStyler.test_pipe.<locals>.set_caption_from_template  s'    %%&KA&K&K&K&KLLLr!   rd   re   )rE   zDataframe with a = A and b = Bc                     | ||fS rA  r    )r1   rE   rm   s      r"   r  zTestStyler.test_pipe.<locals>.f  s    q&>!r!   rm   r   r   r  )rU   piper   )r;  rk   rm  rm   r  r)  s         r"   	test_pipezTestStyler.test_pipe  s    	M 	M 	M 8#EE/6>>3C3CCCCC	" 	" 	" a]a155!Q''''''r!   c                     t          dgg          }t          |dd          }|                                 |                                }|                    d          dk    sJ d S )Nr   rR   _F)rM   r   z<td class="data row0 col0" >r  r   r   r   find)r;  rk   rm   r   s       r"   test_no_cell_idszTestStyler.test_no_cell_ids  so     aSE"""u555NNvv455;;;;;;r!   classesr;   z
test-classr1   rE   rR   r   r   unusedc                 z   t          ddgddggddgddg	          }t          |dd
                              |                                          }d|v sJ d|v sJ d|v sJ d|v sJ t          |dd                              |                                          }d|v sJ d|v sJ d|v sJ d|v sJ d S )Nr   r   r   r   rd   re   r1   rE   rx  Fr&   r   z"<td class="data row0 col0" >0</td>z-<td class="data row0 col1 test-class" >1</td>z"<td class="data row1 col0" >2</td>z"<td class="data row1 col1" >3</td>Tz4<td id="T__row0_col0" class="data row0 col0" >0</td>z?<td id="T__row0_col1" class="data row0 col1 test-class" >1</td>z4<td id="T__row1_col0" class="data row1 col0" >2</td>z4<td id="T__row1_col1" class="data row1 col1" >3</td>r   r   rZ   r   )r;  rw  rk   r   s       r"   test_set_data_classesz TestStyler.test_set_data_classes  s    aVaV,sCjc
SSS2E222AA'JJRRTT3q8888>!CCCC3q88883q88882D111@@IIQQSSEJJJJPTUUUUUEJJJJEJJJJJJr!   c                 $   t          g dg dg dgg dg d          }t          ddgddggd	d
gd	d
g          }t          |d	                              |                                          }d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ d S )Nr1  )r   r   r.   )r         rx  mimamumor   r   r%   z7<td id="T__row0_col0" class="data row0 col0 mi" >0</td>z7<td id="T__row0_col2" class="data row0 col2 ma" >2</td>z4<td id="T__row1_col1" class="data row1 col1" >4</td>z7<td id="T__row2_col0" class="data row2 col0 mu" >6</td>z7<td id="T__row2_col2" class="data row2 col2 mo" >8</td>r|  )r;  rk   rw  r   s       r"   test_set_data_classes_reindexz(TestStyler.test_set_data_classes_reindex  s    ))YYY			2IIIYYY
 
 
 ,t-Fa&
 
 

 2"""11'::BBDDHAMMMMHAMMMMEJJJJHAMMMMHAMMMMMMr!   c                     t          ddgddggddg          }|j                            ddgd	g                              d
dgd	gd          }t          |j                  dk    sJ d S )Nr   r   r   rd   re   rR   r   r;   )background-coloryellowr3   z.col0)r  rO  F)	overwrite)r   rU   rO   r   r   )r;  rk   rm   s      r"   test_chaining_table_stylesz%TestStyler.test_chaining_table_styles  s    aVaV,sCjAAA**(F'GHHI
 


!-I,JKKL  
 
 	 6&''1,,,,,,r!   c                 .   t          ddgddggddg          }t          |d          }|                    ddd	gd
gi          }d|                                v sJ |                    ddd	gd
gid          }d|                                v sJ d S )Nr   r   r   rd   re   r  r%   r;   rN  r3   z#T_ .col0 {
  color: blue;
}r6   z#T_ .row0 {
  color: blue;
})r   r   rO   r   ri  s      r"   test_column_and_row_stylingz&TestStyler.test_column_and_row_styling!  s    aVaV,sCjAAA2"""2AR@S&T&T%UVWW/199;;>>>>b,=+>??@A  
 
 0199;;>>>>>>r!   len_)r   r.       !   r   c                    t          dgg          }t          ||d                                          }|                    d          }||dz   d                              d          }|dk    r
|dk    sJ d S ||k    sJ d S )	Nrd   rr  Fr{  zid="T_r   "r  rt  )r;  r  rk   r   strtends         r"   test_uuid_lenzTestStyler.test_uuid_len,  s     cUG$$$2u555==??vvhq

m  %%"9 	"9$;r!   )r  Nc                     t          dgg          }d}t          j        t          |          5  t	          ||d                                           d d d            d S # 1 swxY w Y   d S )Nrd   rr  z3``uuid_len`` must be an integer in range \[0, 32\].r  Fr{  )r   r
  r  r9  r   r   )r;  r  rk   r  s       r"   test_uuid_len_raiseszTestStyler.test_uuid_len_raises8  s     cUG$$$E]9C000 	@ 	@2u555==???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   %A""A&)A&slcr0  c                     t          ddgddgg          }t          |          }t          |j        |         t                     sJ d S )Nr   r   r   r   )r   r   r   r  )r;  r  rk   tslice_s       r"   test_non_reducing_slicez"TestStyler.test_non_reducing_slice@  sM    $ AA'(($S))"&/95555555r!   boxc                      |dg          }t          ddgddgdddg          }t          d d dgf         }t          |          }t          j        |j        |         |j        |                    d S )	Nrd   r   r   r   r   rc   re   r   )r   r   r   r=  assert_frame_equalr  )r;  r  r  rk   r   r)  s         r"   test_list_slicezTestStyler.test_list_sliceW  s     cUaV1a&11#sDDDaaa#h'#F++
bfVnbfX.>?????r!   c                    ddgddgddgddgd}t          |ddg          }t          }|d d |d         f         }t          |          }|j        |         }t          dddgi          }t	          j        ||           d S )	Nr   r   r   r   ))r1   rB  )r1   rF   )rE   rF   rE   rB  r   r   r  )r   r   r   r  r=  r  )r;  dicrk   r  r  r  r)  r   s           r"   %test_non_reducing_slice_on_multiindexz0TestStyler.test_non_reducing_slice_on_multiindexb  s     AAAA	
 
 s1a&)))QQQH%&$V,,j1a&122
fh/////r!   rF   erB  )rF   rB  -UWr  r%  )r  r%  r  c                 j   t          j        ddgddgddgg          }t          j        ddgd	d
gddgg          }t          t          j        d                              dd          ||          }dD ]}||         }t          |t                    rb|D ]_}t          |t                    rHd|v rDt          j
        t          d          5  |j        |          d d d            n# 1 swxY w Y     d S `|j        |         }|j        t          |                   }	t          j        |	|           d S )Nr1   rE   rF   rB  r  r  r  Vr  r  r  r%  @   r  r   r  r  r  )r   r   r   rf   r   r   r   r  r  r
  r  r  r  r   r=  r  )
r;  r  r  r  rk   lvlkeysubkeyr   r)  s
             r"   +test_non_reducing_multi_slice_on_multiindexz6TestStyler.test_non_reducing_multi_slice_on_multiindexs  s   8 &c
S#Jc
'KLL&c
S#Jc
'KLLry}},,Q22DMMM 	 	C+C#u%% !  F!&$// C6M #]83??? + +F6NN+ + + + + + + + + + + + + + +6&>*6223
fh/////s   C&&C*-C*)Lr   r   r   r<  r?  rD  rG  rS  rZ  rc  rj  ro  rr  r  r  r  r  r  r  r
  markparametrizer  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@  rE  rL  rU  rX  r]  r`  rb  rj  rp  rv  r   rf   nanr}  r  r  r  r  r  slicer  r   r  r  r  r  r  r    r!   r"   r7  r7    s
         
% % %  < < <& & &
& & &  
 
 
/ / /  , , ," " "@ @ @@ @ @( ( (& & &8 [VaV,,? ? -,?$ [Wudm44[Y66M M 76 54M [qqqMqqq3%x sAAAvsSEz"rrC:~&	
	 	 [VaV,," " -,	 	" [qqqMqqq3%x sAAAvsSEz"rrC:~&	
	 	" "	 	" [qqq*X../qqq*QQQV,,-qqq*QQQc
]334z&)111,-z!!!Q$'*+z!!!aV),aaa/0qqq*}%x{#		
 K K K2< < <& [DDD C C C
" 
" 
"	" 	" 	": : :' ' '$ $ $/ / /, , ,"
 
 
" " ""; ; ;/ / /
0 0 0	4 	4 	44 4 4	 	 	I I I6
* 
* 
* [Vgy%9::* * ;:*/ / /@/ / /6< < <<@ @ @<% % %4 4 4*4 4 4.3 3 3.:3 :3 :3x( ( (< < < [I<(264.9c
Cj  
 I\N+cU3%HHHI\845SzRUQVWWW	
 K K KN N N"	- 	- 	-	? 	? 	? [V%8%8%899	 	 :9	 [V%6%6%677@ @ 87@ [qqq!!!tqqq!tq!!!tsQCx q1#vsAvqMtE$d##FBHaVFAq6NN	
 "6 6# "6 [UT628$<==@ @ >=@0 0 0" [qqq!!!tqqq*cU++,qqq*cUSE\223qqq*S#qqq[112qqq*S!!!S[112qqq*QQQS[112qqq*S3*aaa%7889qqq*S///111%<==>qqq*S///3%>??@z3%(!!!+,z3%#,/23z#sAAA+.12z#qqq#+.12z!!!S#+.12z!!!S3*"45qqq89z!!!S///"9:AAA=>z#sOOO";<aaa?@z!!!S#+.
3QQQ;0GGH+	
 40 05 40 0 0r!   r7  c                    ddg| j         _        | j        }|                    dd          }t	          |d                   dk    sJ |                    dd           |                    dd          }t	          |d                   dk    sJ t          d	          D ]}|d
         d         |         d         sJ |                    dd           |                    dd          }t	          |d                   dk    sJ |d
         d         d         d         du sJ |d
         d         d         d         du sJ d S )NLev0Lev1Trt   r   r   r8   r   r   r   r   rn   r   r	  F)r   r9   rU   rv   r   rP   range)r#   r'   r|   rJ  s       r"   test_hidden_index_namesr    s\   (EKI


tT
*
*Cs6{q    NNtN,,,


tT
*
*Cs6{q    1XX / /6{1~a .....NNqN)))


tT
*
*Cs6{q    v;q>!\*d2222v;q>!\*e333333r!   c                    ddg| j         _        | j        }|                    dd          }|d         d         d         d         dk    sJ |d         d         d         d         dk    sJ |                    dd	           |                    dd          }|d         d         d         d         d
k    sJ |d         d         d         d         d
k    sJ |                    dd           |                    dd          }t          |d                   dk    sJ |d         d         d         d         d
k    sJ d S )Nr  r  Trt   r   r   rs   r   )r9   r7   r_   )r  r7   )r   r9   rU   rv   rP   r   )r#   r'   r|   s      r"   test_hidden_column_namesr    sU   !6*EMI


tT
*
*Cv;q>!_-7777v;q>!_-7777NNIN...


tT
*
*Cv;q>!_-9999v;q>!_-9999NNN+++


tT
*
*Cs6{q    v;q>!_-999999r!   r   )r   )r1   rE   rF   )r   r   c                     d}t          j        t          |          5  |                     |           d d d            d S # 1 swxY w Y   d S )Nz8`caption` must be either a string or 2-tuple of strings.r  )r
  r  r  rN   )r'   r   r  s      r"   test_caption_raisesr    s    
DC	z	-	-	- ' 'g&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   AAAc                     t          j        ddgg dg          } t          d| dg          }|j                            dd          }t          |d                   d	k    sJ |j                            d
d                              dd          }t          |d                   dk    sJ d|d         d         d         d         v sJ d S )Nr   r   r1   r1   rE   	   r   rG   Fr   r   r   r1   r6   r   row2r   )r   r   r   rU   rv   r   rP   r   s      r"   *test_hiding_headers_over_index_no_sparsifyr    s    "QFOOO#<==D	1D1#	.	.	.B
(

eU
+
+Cs6{q    
(--q-
)
)
4
4UE
B
BCs6{q    S[^A&w///////r!   c                     t          j        ddgg dg          } t          d| dg          }|j                            dd          }dD ],}|d	         |d                  |d                  d
         du sJ -|j                            dd                              dd          }dD ],}|d	         |d                  |d                  d
         du sJ -d S )Nr   r   r  r  r   r   F)r  r:  r0  r3  rt   rn   Tr  r   r6   )r   r   r   rU   rv   rP   )r   rk   r|   ixs       r"   ,test_hiding_headers_over_columns_no_sparsifyr    s    "QFOOO#<==D	1d1#	.	.	.B
(

eU
+
+C. ? ?6{2a5!"Q%(6$>>>>>
(--y-
1
1
<
<UE
J
JC. @ @6{2a5!"Q%(6%?????@ @r!   c            	          t          j        g dg dg          } ddddddddd}t          | ddg d          }t          j        ||           d S )	N)r   r   r   r   r   r   )r1   r1   rE   r1   r1   rE   r   )r:  r2  r;  r<  r3  r4  r5  r6  Fr   r  )r8  r9  hidden_elementsrC  )r   r   r)  s      r"    test_get_level_lengths_mi_hiddenr    s    "$6$6$68V8V8V#WXXE	 	H  $	  F *****r!   c                     t          dgdgdgdgdgg          } t          dd          5  | j                            ddgd	                              d
d
          }d d d            n# 1 swxY w Y   t          |d                   dk    sJ t          g d          D ]%\  }}|d         |         d         d         |k    sJ &d S )Nr   r   r   r   r.   r   r   r   r6   Tr   r  rf  ...rs   r   r   rU   rP   rv   r   r  rk   r|   r  r   s       r"   test_row_trimming_hide_indexr    s5   	QC!qcA3,	-	-B	0!	4	4 I IhmmQFm11<<T4HHI I I I I I I I I I I I I I Is6{q    ---.. 9 936{1~a 1S888889 9s   3A))A-0A-c                     t          dgdgdgdgdgg          } t          j        dgg dg          | _        t	          dd          5  | j                            d	d
gd                              dd          }d d d            n# 1 swxY w Y   t          |d                   dk    sJ dddd	                                |d         d         d         	                                k    sJ dddd	                                |d         d         d         	                                k    sJ ddd	                                |d         d         d         	                                k    sJ t          g d          D ]%\  }}|d         |         d         d         |k    sJ &t          g d          D ]%\  }}|d         |         d         d         |k    sJ &d S )Nr   r   r   r   r.   r   )r   r   r   r   r   r   r&  r  r   r6   Tr   r~   )rp   ro   rn   r;   Fr  )rp   rn   )2r  r  rs   r  )r   r   r   r   r   rU   rP   rv   r   rw   r  r  s       r"   test_row_trimming_hide_index_mir    s   	QC!qcA3,	-	-B&___'=>>BH	0!	4	4 S ShmmVV,7m;;FFtTRRS S S S S S S S S S S S S S Ss6{q     m4HHNNPPTWUU		
UEGG    b>>DDFF#f+	KK		    $//55773v;q>!;L;R;R;T;TTTTT---.. 9 936{1~a 1S88888---.. 9 936{1~a 1S888889 9s   3BBBc                  4   t          g dg          } t          dd          5  | j                            ddgd                              dd          }d d d            n# 1 swxY w Y   t          |d	         d                   d
k    sJ t          g d          D ]W\  }}|d	         d         |dz            d         |d         k    sJ |d	         d         |dz            d         |d         k    sJ Xt          |d         d                   d
k    sJ d S )N)r   r   r   r   r.   r   r   r   r   r   r6   Trt   r   ))r   F)r   T)r   T)r  Trp   rn   r   r  )rk   r|   rF   valss       r"   test_col_trimming_hide_columnsr    s}   	OOO$	%	%B	3Q	7	7 K KhmmQFm33>>tTJJK K K K K K K K K K K K K K K s6{1~!####NNNOO > >46{1~a!e$W-a88886{1~a!e$\2d1g=====s6{1~!######s   3A""A&)A&c                 b    |                      d ddg           |                                  d S )Nc                     dgdz  S )Nr2   r   r    r  s    r"   rB   z%test_no_empty_apply.<locals>.<lambda>,  s    vhl r!   Frh  )r  r   r4  s    r"   test_no_empty_applyr  *  s8    OO**E5>OBBBr!   rV   )htmllatexstringc                     t          j        d|           5 } t          | d|           |           d d d            d S # 1 swxY w Y   d S )Nz
delete_me.to_)r=  ensure_cleanr   )r'   rV   r  s      r"   test_output_bufferr  0  s     
.f..	/	/ .1*	>>>**1---. . . . . . . . . . . . . . . . . .s   AA	A)Ar  r   r  textwrapr   numpyrf   r
  pandasr   r   r   r   r   pandas._testing_testingr=  importorskipr	   pandas.io.formats.styler   pandas.io.formats.style_renderr   r   r   r   fixturer#   r'   r]   r`   rk   rm   r  r  r}   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r*  r1  r5  r7  r  r  r  r  r  r  r  r  r  r  r  r    r!   r"   <module>r     s        				                              		X	&	&                    % % % " " "J      
   
  #=4PP$BFF	
 #2EE#2EE	
 &	: 	:' &	:  #=4PP$BFF	
 #2EE#2EE	
 &	: 	:' &	:    9  
 
( (
 
( )% $ $ $ )( $ $ $
! 
! 
!* * *" 4-88D%=11dE]330J 0J 43 21 980Jf dE]33
8 
8 43
8&= &= &=R  4B B B 1eaS5'":;;/ / <;/ 1eaS5'":;;4-003 3 10 <;3 E7#344'9!5666 6 76 546* GU#344'9!5666 6 76 546K K KF0 F0 F0 F0 F0 F0 F0 F0R4 4 4&: : :$ $B$B$BCC' ' DC'0 0 0	@ 	@ 	@+ + +,9 9 99 9 9.$ $ $   #>#>#>??. . @?. . .r!   