
    Mh!                        S SK r S SKJr  S SKJr  S SKJr  S[S jrS[S jr	\ R                  R                  S/ SQ5      S 5       r\ R                  R                  S	/ S
Q5      S 5       r\ R                  R                  SS/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ4/5      S 5       r\ R                  R                  SSS/4SS/4SS/4SS /4S!/ S"Q4/5      S# 5       r\ R                  R                  S$/ S%Q5      S& 5       r\ R                  R                  S'/ S(Q5      S) 5       r\ R                  R                  S*/ S+Q5      S, 5       r\ R                  R                  S-S.S/S0S1 S234S3S4S1 S234S5S6S7S1 S234S8S9S:S;S<S=S>S?S?/5      \ R                  R                  S@SSA/5      SB 5       5       r\ R                  R                  SCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSSXS1 S234SY/5      SZ 5       rg)\    N)
CSSWarningCSSResolverc                 2    [        5       nU" XS9nX:X  d   eg N	inheritedr   )csspropsr	   resolveactuals        R/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/formats/test_css.pyassert_resolvesr   
   s    mGS.F??    c                 >    [        5       nU" XS9nU" XS9nXE:X  d   eg 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                     [        X5        g 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                     [         R                  " [        5         [        X5        S S S 5        g ! , (       d  f       g = fr   )tmassert_produces_warningr   r   )invalid_css	remainders     r   test_css_parse_invalidr)   (   s&    0 
	#	#J	/{6 
0	/	/s   0
>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                 L   Uu  p#pE[        U  S3USUSUSUS05        [        U  S3USUSUSUS05        [        U  S3USUSUSUS05        [        U  S3USUSUSUS05        [        R                  " [        5         [        U  S	30 5        S S S 5        g ! , (       d  f       g = f)
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	/9+%:;R@ 
0	/	/s   <B
B#zshorthand,sidesz
border-topr6   zborder-rightr7   zborder-bottomr8   zborder-leftr9   border)r6   r7   r8   r9   c           	      >    SS jn[        U  S3U" USSS5      5        g )Nc                 z    0 nU  H2  nU(       a  XSU S3'   U(       a  X$SU S3'   U(       d  M*  X4SU S3'   M4     U$ )Nzborder-z-colorz-stylez-width )sidescolorstylewidthresolvedsides         r   create_border_dict;test_css_border_shorthand_sides.<locals>.create_border_dict   sV    D3874&/03874&/0u3874&/0  r   z: 1pt red solidredsolidr0   )NNNr   )r4   r?   rE   s      r   test_css_border_shorthand_sidesrJ      s*    	 +_%'9%QV'Wr   zprop, expected))z1pt red solidrG   rH   r0   )zred 1pt solidrK   )zred solid 1ptrK   )zsolid 1pt redrK   )z	red solid)rG   rH   
1.500000pt)z	1pt solid)blackrH   r0   )z1pt red)rG   noner0   )rG   )rG   rN   rL   )r0   )rM   rN   r0   )rH   )rM   rH   rL   )1em)rM   rN   12ptc                 4    Uu  p#n[        SU  3UUUS.5        g )Nzborder-left: )r-   r.   r,   rI   )propexpectedr@   rA   rB   s        r   test_css_border_shorthandsrT      s.    ( #E%
v!&!&!&	
r   zstyle,inherited,equiv))zmargin: 1px; margin: 2pxr   margin: 2px)margin: 1pxrU   rV   )zmargin: 1px; margin: inheritrU   rU   )margin: 1px; margin-top: 2pxr   zHmargin-left: 1px; margin-right: 1px; margin-bottom: 1px; margin-top: 2px)margin-top: 2pxrV   rW   )rV   rX   rV   ) margin: 1px; margin-top: inheritrU   rW   c                 R    [        5       nU" U5      nU" XS9nU" U5      nXV:X  d   eg r   r   )rA   r	   equivr   inherited_propsstyle_propsequiv_propss          r   test_css_precedencer_      s4    , mGi(O%;K%.K%%%r   zstyle,equiv))rY   z7margin-bottom: 1px; margin-right: 1px; margin-left: 1px)zmargin-top: inheritr   )zmargin-top: initialr   c                     [        X5        g r   r   )rA   r[   s     r   test_css_none_absentra      s     5(r   zsize,resolved)zxx-small6ptzx-smallg      @fptsmallg333333#@)mediumrP   largeg      +@)zx-large18pt)zxx-large24pt)8pxrb   )z1.25pc15pt)z.25inrh   )z02.54cm72pt)z25.4mmrl   )z101.6qrl   relative_to16ptc                 8    Uc  S nOSU0n[        SU  3SU0US9  g Nz	font-sizezfont-size: r   rI   sizerm   rC   r	   s       r   test_css_absolute_font_sizers      s1    * 	 +.	k$(;*AYWr   zsize,relative_to,resolved)rO   NrP   )1.0emNrP   )1.25emNrk   )rO   rn   rn   )rt   rn   rn   )ru   rn   20pt)1remrn   rP   )z1.0remrn   rP   )z1.25remrn   rk   )100%NrP   )125%Nrk   )rx   rn   rn   )ry   rn   rv   )2exNrP   )z2.0exNrP   )z2.50exNrk   )inheritrn   rn   )smallerN10pt)r|   rh   rk   largerg,@)r~   rk   rh   c                 8    Uc  S nOSU0n[        SU  3SU0US9  g rp   rI   rq   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:   rJ   rT   r_   ra   rs   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   