
    Eg!                        d dl Z d dlmZ d dlmZ d dlmZ d[dZd[dZ	e j
                            dg d          d             Ze j
                            d	g d
          d             Ze j
                            ddg dfdg dfdg dfdg dfdg dfg          d             Ze j
                            dddgfddgfddgfdd gfd!g d"fg          d#             Ze j
                            d$g d%          d&             Ze j
                            d'g d(          d)             Ze j
                            d*g d+          d,             Ze j
                            d-d.d/d0d1d2fd3d4d1d2fd5d6d7d1d2fd8d9d:d;d<d=d>d?d?g          e j
                            d@ddAg          dB                         Ze j
                            dCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWddXd1d2fdYg          dZ             ZdS )\    N)
CSSWarningCSSResolverc                 L    t                      } || |          }||k    sJ d S N	inheritedr   )csspropsr	   resolveactuals        U/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/io/formats/test_css.pyassert_resolvesr   
   s0    mmGWSI...FF??????    c                 f    t                      } || |          } |||          }||k    sJ d S r   r   )css1css2r	   r   	resolved1	resolved2s         r   assert_same_resolutionr      sJ    mmG	222I	222I	!!!!!!r   zname,norm,abnorm))
whitespacehello: world; foo: barz( 	 hello 	 :
  world 
  ;  
 foo: 	bar

)caser   zHello: WORLD; foO: bar)z
empty-declr   z; hello: world;; foo: bar;
; ;)z
empty-list ;c                 &    t          ||           d S Nr   )namenormabnorms      r   test_css_parse_normalisationr"      s     4(((((r   zinvalid_css,remainder))zhello-worldr   )z border-style: solid; hello-worldzborder-style: solid)z3border-style: solid; hello-world; font-weight: boldz&border-style: solid; font-weight: bold)zfont-size: blahfont-size: 1em)zfont-size: 1a2br#   )zfont-size: 1e5ptr#   )zfont-size: 1+6ptr#   )zfont-size: 1unknownunitr#   )zfont-size: 10r#   )zfont-size: 10 ptr#   )zborder-top: 1pt solid red greenzborder-top: 1pt solid greenc                     t          j        t                    5  t          | |           d d d            d S # 1 swxY w Y   d S r   )tmassert_produces_warningr   r   )invalid_css	remainders     r   test_css_parse_invalidr)   (   s    0 
	#J	/	/ 7 7{I6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   8<<zshorthand,expansionsmargin)z
margin-topzmargin-rightzmargin-bottomzmargin-leftpadding)zpadding-topzpadding-rightzpadding-bottomzpadding-leftzborder-width)zborder-top-widthzborder-right-widthzborder-bottom-widthborder-left-widthzborder-color)zborder-top-colorzborder-right-colorzborder-bottom-colorborder-left-colorzborder-style)zborder-top-stylezborder-right-stylezborder-bottom-styleborder-left-stylec                 v   |\  }}}}t          |  d|d|d|d|di           t          |  d|d|d|d|di           t          |  d|d|d|d|di           t          |  d|d|d|d|di           t          j        t                    5  t          |  d	i            d d d            d S # 1 swxY w Y   d S )
Nz: 1pt1ptz	: 1pt 4pt4ptz: 1pt 4pt 2pt2ptz: 1pt 4pt 2pt 0pt0ptz: 1pt 1pt 1pt 1pt 1pt)r   r%   r&   r   )	shorthand
expansionstoprightbottomlefts         r   test_css_side_shorthandsr:   D   s   F  *Cc5%tUS   #ueUFE4QV!W   ###	eUE65$>  
 '''	eUE65$>  
 
	#J	/	/ A A9;;;R@@@A A A A A A A A A A A A A A A A A As   B..B25B2zshorthand,sidesz
border-topr6   zborder-rightr7   zborder-bottomr8   zborder-leftr9   border)r6   r7   r8   r9   c           	      L    dd}t          |  d ||ddd                     d S )Nc                 V    i }| D ]#}|r	||d| d<   |r	||d| d<   |r	||d| d<   $|S )Nzborder-z-colorz-stylez-width )sidescolorstylewidthresolvedsides         r   create_border_dictz;test_css_border_shorthand_sides.<locals>.create_border_dict   sv     	9 	9D 938/4///0 938/4///0 938/4///0r   z: 1pt red solidredsolidr0   )NNNr   )r4   r?   rE   s      r   test_css_border_shorthand_sidesrI      sU    	 	 	 	 %%%'9'9%QV'W'W    r   zprop, expected))z1pt red solidrF   rG   r0   )zred 1pt solidrJ   )zred solid 1ptrJ   )zsolid 1pt redrJ   )z	red solid)rF   rG   
1.500000pt)z	1pt solid)blackrG   r0   )z1pt red)rF   noner0   )rF   )rF   rM   rK   )r0   )rL   rM   r0   )rG   )rL   rG   rK   )1em)rL   rM   12ptc                 @    |\  }}}t          d|  |||d           d S )Nzborder-left: )r-   r.   r,   rH   )propexpectedr@   rA   rB   s        r   test_css_border_shorthandsrS      sJ    ( #E5%!&!&!&	
 	
    r   zstyle,inherited,equiv))zmargin: 1px; margin: 2pxr   margin: 2px)margin: 1pxrT   rU   )zmargin: 1px; margin: inheritrT   rT   )margin: 1px; margin-top: 2pxr   zHmargin-left: 1px; margin-right: 1px; margin-bottom: 1px; margin-top: 2px)margin-top: 2pxrU   rV   )rU   rW   rU   ) margin: 1px; margin-top: inheritrT   rV   c                 x    t                      } ||          } || |          } ||          }||k    sJ d S r   r   )rA   r	   equivr   inherited_propsstyle_propsequiv_propss          r   test_css_precedencer^      sT    , mmGgi((O'%?;;;K'%..K+%%%%%%r   zstyle,equiv))rX   z7margin-bottom: 1px; margin-right: 1px; margin-left: 1px)zmargin-top: inheritr   )zmargin-top: initialr   c                 &    t          | |           d S r   r   )rA   rZ   s     r   test_css_none_absentr`      s     5%(((((r   zsize,resolved)zxx-small6ptzx-smallg      @fptsmallg333333#@)mediumrO   largeg      +@)zx-large18pt)zxx-large24pt)8pxra   )z1.25pc15pt)z.25inrg   )z02.54cm72pt)z25.4mmrk   )z101.6qrk   relative_to16ptc                 F    |d }nd|i}t          d|  d|i|           d S Nz	font-sizezfont-size: r   rH   sizerl   rC   r	   s       r   test_css_absolute_font_sizerr      sD    * 		 +.	($((;*AYWWWWWWr   zsize,relative_to,resolved)rN   NrO   )1.0emNrO   )1.25emNrj   )rN   rm   rm   )rs   rm   rm   )rt   rm   20pt)1remrm   rO   )z1.0remrm   rO   )z1.25remrm   rj   )100%NrO   )125%Nrj   )rw   rm   rm   )rx   rm   ru   )2exNrO   )z2.0exNrO   )z2.50exNrj   )inheritrm   rm   )smallerN10pt)r{   rg   rj   largerg,@)r}   rj   rg   c                 F    |d }nd|i}t          d|  d|i|           d S ro   rH   rp   s       r   test_css_relative_font_sizer     sD    6 		 +.	($((;*AYWWWWWWr   r   )pytestpandas.errorsr   pandas._testing_testingr%   pandas.io.formats.cssr   r   r   markparametrizer"   r)   r:   rI   rS   r^   r`   rr   r   r>   r   r   <module>r      s    $ $ $ $ $ $       - - - - - -   " " " " 	 	 	 ) ) )    .7 7/ .7
 	QQQR	VVVW  	
   	
   	
+! !DA AE! !DA2 	w	'#	8*%	!	5556	 	 	 	"    &
 
' &
    *& &+ *&   
 
) )
 
) 	sLLLL!	S,,,,	T----  & v77X X 87' (X  !" "#   #!#	4D'"+ 4X X5 4X X Xr   