
    Owg!                        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                  j                  dg d      d        Ze j                  j                  d	g d
      d        Ze j                  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                  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                  j                  d$g d%      d&        Ze j                  j                  d'g d(      d)        Ze j                  j                  d*g d+      d,        Ze j                  j                  d-d.d/d0d1d2fd3d4d1d2fd5d6d7d1d2fd8d9d:d;d<d=d>d?d?g      e j                  j                  d@ddAg      dB               Ze j                  j                  dCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWddXd1d2fdYg      dZ        Zy)\    N)
CSSWarningCSSResolverc                 :    t               } || |      }||k(  sJ y N	inheritedr   )csspropsr	   resolveactuals        W/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/io/formats/test_css.pyassert_resolvesr   
   s!    mGSI.FF??    c                 N    t               } || |      } |||      }||k(  sJ y r   r   )css1css2r	   r   	resolved1	resolved2s         r   assert_same_resolutionr      s/    mG	2I	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        ||       y 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                 x    t        j                  t              5  t        | |       d d d        y # 1 sw Y   y xY wr   )tmassert_produces_warningr   r   )invalid_css	remainders     r   test_css_parse_invalidr)   (   s1    0 
	#	#J	/ 7{I67 7 7s   09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                 D   |\  }}}}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        y # 1 sw Y   y xY w)
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+Uc5%tUS +Y#ueUFE4QV!W +]#	eUE65$>
 +&'	eUE65$>
 
	#	#J	/ A9+%:;R@A A As   =BBzshorthand,sidesz
border-topr6   zborder-rightr7   zborder-bottomr8   zborder-leftr9   border)r6   r7   r8   r9   c           	      <    dd}t        |  d ||ddd             y )Nc                 \    i }| D ]$  }|r	||d| d<   |r	||d| d<   |s||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   s_     	9D3874&/03874&/03874&/0	9 r   z: 1pt red solidredsolidr0   )NNNr   )r4   r?   rE   s      r   test_css_border_shorthand_sidesrI      s*    	 +_%'9%QV'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                 6    |\  }}}t        d|  |||d       y )Nzborder-left: )r-   r.   r,   rH   )propexpectedr@   rA   rB   s        r   test_css_border_shorthandsrS      s0    ( #E5%
v!&!&!&	
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                 Z    t               } ||      } || |      } ||      }||k(  sJ y r   r   )rA   r	   equivr   inherited_propsstyle_propsequiv_propss          r   test_css_precedencer^      s8    , mGi(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        | |       y 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                 <    |d }nd|i}t        d|  d|i|       y Nz	font-sizezfont-size: r   rH   sizerl   rC   r	   s       r   test_css_absolute_font_sizerr      s1    * 	 +.	k$(;*AY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                 <    |d }nd|i}t        d|  d|i|       y ro   rH   rp   s       r   test_css_relative_font_sizer     s1    6 	 +.	k$(;*AY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
 	QR	VW	
 	
 	
+!DAE!DA2 	w	'#	8*%	!	56		" &
'&
 *&+*& 
)
) 	s1gRL!	SG2,	T!HB- & v7X 8'(X  !" "#   #!#	4D82'"+4X54Xr   